第十一章 使用Wii搖桿控制機械手臂 認識伺服馬達 認識I2C通訊介面 透過I2C介面串連兩個Arduino板 讀取Wii左手把的資料 改造伺服馬達成連續360°旋轉
認識伺服馬達 伺服馬達(Servo)是一種用於精確移動、定位場合的動力裝置。 它由普通的直流馬達,再加上偵測馬達旋轉角度的電路,以及一組減速齒輪所構成。 伺服馬達有三條接線,分別是正電源、接地和控制訊號線。 參閱 11-2
控制伺服馬達的PPM訊號 伺服馬達接收脈衝比例調變(Pulse Position Modulation,簡稱PPM)訊號,來指揮它的轉動角度。 參閱 11-4
自製機械手臂(一) 可以採用壓克力板、文具整理盒或甚至瓦楞紙板等素材,來製作支架。 底部的馬達可左右擺動,上面的馬達可上下旋轉。 參閱 11-6
自製機械手臂(二) 控制器採用「類比搖桿」或兩個10KΩ可變電阻。 參閱 11-8 伺服馬達的電源請外接
Wii左手把的通訊介面:I2C Wii的右、左手把(Nunchuk)之間,採用業界的I2C通訊標準。 Atmel公司將I2C介面稱為TWI(Two Wire Interface,兩線式介面) 介面名稱 I2C SPI 連接線數量 2條: 序列資料線(SDA) 序列時脈線(SCL) 4條: 資料輸入線(MISO) 資料輸出線(MOSI) 序列時脈線(SCLK) 晶片選擇線(CS) 主控端數量 允許多個 只能一個 定址(選擇從端)方式 毎個從端都有個唯一的地址編號 從端沒有位址,透過「晶片選擇線」選取。 同時雙向通訊(全雙工) 否 可 連線速率 100kbps標準(standard)模式 400Kbps快速(fast)模式 3.4Mbps高速(high speed)模式 1~100Mbps 確認機制 有(亦即,收到資料時,發出通知確認) 無 I2C與SPI界面比較: 參閱 11-11
透過I2C串連兩個Arduino板 透過I2C通訊介面的連結兩塊Arduino,從一個板子發出文字訊息給另一個板子。 參閱 11-14
在I2C介面上傳送整數資料 Wire程式庫的write()函數可傳送單一字元,或0~255範圍的整數。 傳送0~1023數字的方法如下: 參閱 11-17
讀取Wii左手把的搖桿、按鈕與加速度計值 參閱 11-19 透過市售的轉接板或者DIY板,連接Wii。
讀取Wii左手把資料的程式碼 請將ArduinoNunchuk程式庫複製到libraries目錄 參閱 11-21
改造伺服馬達成360°旋轉 伺服馬達容易控制而且內建減速齒輪箱,可將它改造成可連續旋轉的模式,變成自走車的動力。 改造主要是修改主齒輪。 還需要透過程式確認它的旋轉中間值。 參閱 11-29
改造伺服馬達成360°旋轉 參閱 11-30