本文重點如下;利用TightVNCServer遠端控制,並以Python及C語言控制LED亮滅。由於是[Device]系列的第一篇文章,故設定的細節會有所著墨,未來這些細節均不再說明。
(一)以Python控制LED:
1.打開VNCServer,其密碼最多只有8碼,怪哉!
2.執行cat /proc/cpuinfo取得板子版本資訊。數字是採16進位,D、E、F是Model B Rev 2 512MB,2、3是Model B Rev 1。
3.GPIO腳位圖。
3.1 B type 26PIN
3.2 B+ type 40PIN
4.在 IDLE執行下列程式,以取得GPIO版本。
5.若版本比5.2a還舊,需以sudo apt-get install RPi.GPIO執行更新。我的是5.11比5.2a要新,所以不用更新。
6.接著以PWM控制LED漸亮、漸暗,故接線以PIN-12接330歐姆電阻,再串接LED正極,LED負極接PIN-6。
7.開啟IDLE並選擇File---New Window,準備撰寫程式碼。
8.程式碼完成後存檔。
9.接著執行sudo python pwm.py就可以看到LED亮、滅,亮、滅的一直執行了。但按Ctrl+C強迫停止後,再執行上行指令會出現該PIN使用中的資訊,且無法關閉的問題!
(二)以C控制LED:
1.首先執行git clone git://git.drogon.net/wiringPi安裝wiringPi程式庫。
2.下載完成後;切到wiringPi資料夾,執行sudo ./buid程式對程式碼進行編譯動作。
3.執行gpio readall指令顯示所有腳位功能圖。
4.執行gpio -1 mode 12 out設定PIN-12(Physical)為輸出。接著執行gpio -1 wirte 12 1讓LED燈亮,執行gpio -1 wirte 12 0讓LED燈滅。可以正常工作的話再進行下一步。
5.執行sudo nano ledpwm.c命令,進入nano編輯器後輸入下列內容。接著按ctrl+o、enter存檔,ctrl+x離開nano程式。
6.接著執行gcc -lwiringPi -lpthread ledpwm.c -o ledpwm編譯程式,並產生ledpwm執行檔。
7.接著執行sudo ./ledpwm,沒問題的話即可看到LED一閃、一滅十次之後,結束本程式。
PS:本篇在操作時不小心遇到IP碰撞的問題(兩台Pi的IP不小心設成一樣),造成不小的錯誤!未來不應在發生這種事,要多注意hostname的辨識。至於後來發生unable to resolve hostname的問題解法在此。
沒有留言:
張貼留言