用树莓派控制小蜜蜂之自动全屏运行Scratch程序
最近我在忙于由小学发起的、和孩子们合作的一个基于树莓派的项目。我女儿用Scratch写好了代码,下面我需要做的是使其自动运行。本来仅仅通过一个自动启动文件和Scratch演示模式就可实现,但可惜它只支持GOPI端口。同时使用Scratch语言和另一种编程语言(这里是用Python与GPIO通信)时会弹出一个消息框“取消选定‘传感器连接’”。如果有鼠标和显示器,那操作起来就方便的多了。可本项目最初设计时就不需鼠标,即使显示器也是任选部件,因此需要找到实现Scratch与GPIO通讯的方法,以便Scratch运行自启动“演示模式”,接下来一切就可以自动运行了。
本文引用地址:https://www.eepw.com.cn/article/267106.htm用树莓派控制小蜜蜂:实现Scratch与树莓派GPIO的通讯
尽管Scratch不识别树莓派上的GPIO端口,好在能够和其他程序通讯。因此需要后台运行一个python程序,作为连接到GPIO的接口。对此能找到不少有用的资源。
Scratch Wiki对Scratch如何与Python应用程序通讯做了详细阐释:
Scratch Wiki: Communicating between Scratch and Python.
你可以从两个示例RPI:GPIO和WiringPi参考如何实现python与树莓派GPIO的通讯。值得庆幸的是Simplesi 已经将其实现,并对如何安装逐步详解,我们只需按照说明操作就可以了,在此我极力推荐:
演示模式下Scratch自启动运行
演示模式下Scratch名副其实地全屏自启动运行应用程序。除了在scratch命令中启用演示选项,首先还需要启动scratch处理程序。
如果你是CympleCy用户,首先需要运行下列代码:
sudo ps aux | grep 'python.*scratch_gpio_handler.py' | grep -v grep | awk '{print $2}' | xargs sudo kill -9
sudo python /home/pi/simplesi_scratch_handler/scratch_gpio_handler.py &
第一行阻止当前处理程序运行,第二行重新启动处理程序。如果当前正在启动(我之后会加以解释)则不需要运行第一行命令。
通过如下命令使Scratch进入演示模式:
scratch presentation /home/pi/Documents/Scratch/scratchApp.sb
注意,Scratch使用的缺省目录叫做“Scratch Projects”。将其添加至脚本时(因为还有其他情况下需要无空格命名,因此操作并非简单地去掉空格),名字中的空格会造成一些麻烦,所以我直接去掉空格,将其放入了另一个目录。
为了简化可以将其放入一单独的脚本。
首先修改directory /home/pi/Scratch
cd ~/Scratch
(注意,这里我使用回到主目录的快捷键)
然后在如下目录(leafpad ScratchApp.sh) 中建一个名为ScratchApp.sh的文件。
#!/bin/bash
sudo ps aux | grep 'python.*scratch_gpio_handler.py' | grep -v grep | awk '{print $2}' | xargs sudo kill -9
sudo python /home/pi/simplesi_scratch_handler/scratch_gpio_handler.py &
scratch presentation /home/pi/Scratch/scratchApp.sb
授予执行许可
chmod +x ScratchApp.sh
然后创建一自启动脚本
创建目录(如果目录不存在)
mkdir ~/.config/autostart
改为如下目录
cd ~/.config/autostart
输入下列命令结束文件
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Exec=/home/pi/Scratch/scratchApp.sh
Icon=scratch
Terminal=false
Name=Program name
Comment=About the program
Categories=Application;Education;Development;
MimeType=application/x-scratch-project
这样无论何时登陆(假设无论何时启动树莓派,GUI自启动和自动登录都能正常运行),程序都可以运行了。
树莓派文章专题:树莓派是什么?你不知道树莓派的知识和应用
评论