Arduino第17課(搖桿)
雙軸按鍵搖桿:
特性:
兩路類比量輸出,一路數位量輸出;
十字搖桿為一個雙向的10K電阻器,隨著搖杆方向不同,X、Y軸的電阻值隨著變化。
向下按搖杆,可以觸動一個開關,為數位輸出。
一、基本操作
搖桿有五個接腳,GND接地,+5V接5V,VRx接類比腳A0輸入,VRy接類比腳A1輸入,SW接類比腳A2輸入(SW也可以接數位輸入)。
各家廠商的接腳位置稍有不同,實際接線請對照板子上的針腳記號。
A.搖桿畫圖1
因為程式修正,以後用到[讀取類比腳位A0]積木時,請在[當綠旗被點一下]積木下方增加[腳位A0模式設為INPUT]積木。
將類比腳位A0、A1、A2讀到的值分別用變數x、y、z來表示,方便程式寫作。
操作搖桿移動角色,就會畫出移動的軌跡。
按下按鍵,清除筆跡,重新開始畫軌跡。
理論上不動搖桿時,X、Y軸的值為中間值512,搖動搖桿分別會加或減,最高為1023最低為0,實際上因為材料關係,會有一些變化。
畫圖時要做一些公式轉換,才可以轉換成畫面上的座標位置。
實際畫圖時發現搖桿移動太靈敏(間隔太小)無法控制微調。
程式下載:搖桿畫圖1.sb2
B.搖桿畫圖2
改成用[如果…就…]來判斷往哪個方向移動。
這樣就比較好控制了。
程式下載:搖桿畫圖2.sb2
二、電流急急棒
在舞台的背景畫上電流急急棒的路線圖形。
重複播放音樂。
主要程式同上面,用[如果…就…]來判斷往哪個方向移動。。
再加上如果超過路線(碰到外面)就回到原點,如果碰到障礙(藍色短棍)也回到原點。
用蘋果來代表終點。
蘋果如果碰到小球,表示小球走到終點了,就說[恭喜過關]並播音樂,然後[停止全部]結束。
畫一個[障礙短棍]的腳色,讓它來回移動。
程式下載:搖桿電流急急棒.sb2
延伸:
1.設計結束畫面,結束時換成結束的畫面。
2.增加倒數計時,超過時間沒過關,顯示失敗。
三、方向燈
在麵包板上接四顆LED,讓搖桿四個方向控制不同燈亮。
搖桿有五個接腳,GND接地,+5V接5V,VRx接類比腳A0輸入,VRy接類比腳A1輸入,SW接類比腳A2輸入。
四顆LED的負極分別接220歐姆電阻後接arduino的GND,LED的正極分別接數位腳D8、D9、D10、D11
[腳位(8、9、10、11)模式為OUTPUT],設定數位腳D8、D9、D10、D11為輸出。
將類比腳位A0、A1、A2讀到的值分別用變數x、y、z來表示,方便程式寫作。
用[如果…就…否則…]來判斷往哪個方向移動。
[果X>900就腳位8輸出1否則腳位8輸出0],如果搖桿往右偏,A0讀到的值就會大於900,就讓腳位8輸出1,右邊的LED亮,否則就不亮。
同理,利用X、Y的值來判斷讀到的值,讓4顆LED分別亮或不亮。
程式下載:XY方向燈.sb2
壓下搖桿時,A2(Z軸)讀到的值為0
同上,利用Z的值來判斷讀到的值,讓4顆LED一起亮或全部不亮。
程式下載:方向燈(4燈).sb2
結合前面兩個程式,搖桿向前、後、左、右搖時分別是前、後、左、右的LED燈亮。
壓下搖桿時,4顆LED一起亮。
程式下載:方向燈(全部).sb2
延伸:
執行結果發現會變成一閃一閃的,為什麼?請找出原因。
四、其他
十字搖桿為一個雙向的10K電阻器,所以請參考第九課(可變電阻)設計相關活動。
延伸:加在自走車上變成線控自走車。
五、遊戲設計
常見的許多電腦遊戲都會運用搖桿來操控腳色移動,我們也可以模仿製作類似的遊戲。
1.如果增加一些飛彈射擊,就可以變成射擊遊戲。
2.如果加一些水果掉下來,就可以變成猴子接水果遊戲。
3.打磚塊遊戲的棍子可以使用搖桿來操控。
4.其他2D(維)的遊戲。
———————————-
相關連結:
WFduino Chrome App
http://blog.ilc.edu.tw/blog/blog/868/post/97509/637303
初級班課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433
設計視訊互動遊戲超簡單
http://blog.ilc.edu.tw/blog/blog/868/post/10898/621592
WFduino課前準備
http://blog.ilc.edu.tw/blog/blog/868/post/97509/636665
WFduino第一課(概論、連接)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/636745
WFduino第二課(LED)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/637840
WFduino第三課(用鍵盤控制LED)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/637841
WFduino第四課(3顆LED紅綠燈)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/637850
WFduino第五課(PWM模擬類比輸出)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/638450
WFduino第六課(RGB三色LED)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/638508
WFduino第七課(蜂鳴器)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/638509
WFduino第八課(按鍵)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/639090
WFduino顏色猜猜機(第8-1課)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/639091
WFduino第九課(可變電阻)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/639092
WFduino第十課(光敏電阻)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/639093
WFduino第十一課(伺服馬達)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/639094
WFduino第十二課(超音波感測器)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/639095
WFduino第十三課(繼電器)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/639096
WFduino第十四課(人體紅外線感測器)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/640850
WFduino第十五課(主動式紅外線感測器)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/640852
WFduino第十六課(七段顯示器)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/640853
英文聽音打字練習(WFduino)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/636484
會說時間的鬧鐘(WFduino)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/637772
會說話的九九乘法表(WFduino)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/636482
WFduino語音控制(forcratchX)
http://blog.ilc.edu.tw/blog/blog/868/post/10898/635592
WFduino無線操控arduino
http://blog.ilc.edu.tw/blog/blog/868/post/97509/636819
WFduino原廠使用方法介紹網頁
http://wf8266.com/wf8266r/tutorials/65_Sx4ABlocks
WFduino for ScratchX
http://blog.ilc.edu.tw/blog/blog/868/post/10898/635190
WF8266R雲端外部感應器