接棒樂
使用6顆sg90的伺服馬達(可轉180度,或改裝版可轉360度)
要注意腳位,我們只用pin2.3.4.5.15.7
SG90有3條線,分別是訊號(橘S)、VCC(紅+)、GND(褐-),
使用chatgpt,以arduino為例,幫我們寫一個按下按鈕就可以隨機讓八個伺服馬達轉動的範例。
我們需要他的隨機取取數的函數
void moveServosInRandomOrder() {
int order[8];
// 生成0到7的隨機順序
for (int i = 0; i < 8; i++) {
order[i] = i;
}
for (int i = 0; i < 8; i++) {
int j = random(i, 8);
int temp = order[i];
order[i] = order[j];
order[j] = temp;
}
我們再轉化成LinkIt7697的積木函數
功能:
讓棒子隨機掉落,每次掉落的順序都不同
可以改變掉落的時間差
程式:
用手機APP控制,要做面板設計
控制掉落的時間的slider
要有開始的按鈕
要有reset的按鈕
要有全部掉落
我需要兩陣列,個別儲存掉落的順序,另一個儲存sg90的腳位
透過程式碼來改變掉落的順序
藍芽面板設計與變數宣告
設定初始角度
設定pin2.3.4.5.15.7的初始角度為30度
為什麼是30度,不是0度,那是因為雷切的圖檔畫圖開孔位置要設定為30度才能在開孔的正中央或附近
手機APP初始化與釋放鍵、reset按鍵的功能
狀態更新指的是按下跟放開都算是一種狀態
按下的時候,button1會送出訊號1,放開會送出訊0
按下之後,所有的伺服馬達都轉到170度
按下的時候,circle2會送出訊號1,放開會送出訊0
按下之後,所有的伺服馬達都轉到30度
測試伺服馬達是否可以在30度與170度做切換
檢測是否每一次都是隨機掉落
Sreial Port print 序列埠檢查,列印出來直接檢測
要使用 Serial Port Print就必須指定初始化port
處理slider bar變數
這裡是利用Serial Port pint檢查每一次是否都是亂數掉落
然後發現randomArray[5]永遠都是最後一個掉落
解決最後一根都是固定的問題
自己寫一個swap,建立一個新的變數m,m的值是隨機存取0-4的整數
接下來做swap,就是c++裡慣用的技巧
temp=a
a=b
b=temp
讓伺服馬達動起來
趣味程式
前面四根亂數順序掉落,剩下的一次掉,讓人措手不及