用樹(shù)莓派控制小蜜蜂之自動(dòng)全屏運(yùn)行Scratch程序
最近我在忙于由小學(xué)發(fā)起的、和孩子們合作的一個(gè)基于樹(shù)莓派的項(xiàng)目。我女兒用Scratch寫(xiě)好了代碼,下面我需要做的是使其自動(dòng)運(yùn)行。本來(lái)僅僅通過(guò)一個(gè)自動(dòng)啟動(dòng)文件和Scratch演示模式就可實(shí)現(xiàn),但可惜它只支持GOPI端口。同時(shí)使用Scratch語(yǔ)言和另一種編程語(yǔ)言(這里是用Python與GPIO通信)時(shí)會(huì)彈出一個(gè)消息框“取消選定‘傳感器連接’”。如果有鼠標(biāo)和顯示器,那操作起來(lái)就方便的多了??杀卷?xiàng)目最初設(shè)計(jì)時(shí)就不需鼠標(biāo),即使顯示器也是任選部件,因此需要找到實(shí)現(xiàn)Scratch與GPIO通訊的方法,以便Scratch運(yùn)行自啟動(dòng)“演示模式”,接下來(lái)一切就可以自動(dòng)運(yùn)行了。
本文引用地址:http://2s4d.com/article/267106.htm用樹(shù)莓派控制小蜜蜂:實(shí)現(xiàn)Scratch與樹(shù)莓派GPIO的通訊
盡管Scratch不識(shí)別樹(shù)莓派上的GPIO端口,好在能夠和其他程序通訊。因此需要后臺(tái)運(yùn)行一個(gè)python程序,作為連接到GPIO的接口。對(duì)此能找到不少有用的資源。
Scratch Wiki對(duì)Scratch如何與Python應(yīng)用程序通訊做了詳細(xì)闡釋:
Scratch Wiki: Communicating between Scratch and Python.
你可以從兩個(gè)示例RPI:GPIO和WiringPi參考如何實(shí)現(xiàn)python與樹(shù)莓派GPIO的通訊。值得慶幸的是Simplesi 已經(jīng)將其實(shí)現(xiàn),并對(duì)如何安裝逐步詳解,我們只需按照說(shuō)明操作就可以了,在此我極力推薦:
演示模式下Scratch自啟動(dòng)運(yùn)行
演示模式下Scratch名副其實(shí)地全屏自啟動(dòng)運(yùn)行應(yīng)用程序。除了在scratch命令中啟用演示選項(xiàng),首先還需要啟動(dòng)scratch處理程序。
如果你是CympleCy用戶(hù),首先需要運(yùn)行下列代碼:
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 &
第一行阻止當(dāng)前處理程序運(yùn)行,第二行重新啟動(dòng)處理程序。如果當(dāng)前正在啟動(dòng)(我之后會(huì)加以解釋)則不需要運(yùn)行第一行命令。
通過(guò)如下命令使Scratch進(jìn)入演示模式:
scratch presentation /home/pi/Documents/Scratch/scratchApp.sb
注意,Scratch使用的缺省目錄叫做“Scratch Projects”。將其添加至腳本時(shí)(因?yàn)檫€有其他情況下需要無(wú)空格命名,因此操作并非簡(jiǎn)單地去掉空格),名字中的空格會(huì)造成一些麻煩,所以我直接去掉空格,將其放入了另一個(gè)目錄。
為了簡(jiǎn)化可以將其放入一單獨(dú)的腳本。
首先修改directory /home/pi/Scratch
cd ~/Scratch
(注意,這里我使用回到主目錄的快捷鍵)
然后在如下目錄(leafpad ScratchApp.sh) 中建一個(gè)名為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
授予執(zhí)行許可
chmod +x ScratchApp.sh
然后創(chuàng)建一自啟動(dòng)腳本
創(chuàng)建目錄(如果目錄不存在)
mkdir ~/.config/autostart
改為如下目錄
cd ~/.config/autostart
輸入下列命令結(jié)束文件
[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
這樣無(wú)論何時(shí)登陸(假設(shè)無(wú)論何時(shí)啟動(dòng)樹(shù)莓派,GUI自啟動(dòng)和自動(dòng)登錄都能正常運(yùn)行),程序都可以運(yùn)行了。
樹(shù)莓派文章專(zhuān)題:樹(shù)莓派是什么?你不知道樹(shù)莓派的知識(shí)和應(yīng)用
評(píng)論