Arduino實(shí)踐——用PS3手柄遙控你的玩具
趁著過年放假前的空閑時(shí)間,開始著手實(shí)現(xiàn)在“Arduino實(shí)踐——遙控4WD小車”一文中提到過使用PS3手柄作為遙控器的方案,因?yàn)檫^年沒有帶筆記本回家,現(xiàn)在來補(bǔ)一下。
首先要介紹一下USB Host Shield[1]。它是Oleg從2009年春開始設(shè)計(jì)的Arduino Shield,采用MAX3421E控制芯片,目前最新版本為2.0,旨在讓Arduino能夠與USB設(shè)備(如,鍵盤、鼠標(biāo)、游戲手柄、相機(jī)、GPS、手機(jī))進(jìn)行通訊,當(dāng)然也能完成ADK的功能。在軟件方面,Oleg也在github上開放了驅(qū)動代碼和例子程序[2],此后又有人基于前者的代碼給出了更為方便簡潔的USB藍(lán)牙適配器與PS3手柄通訊的示例代碼[3,4]。
PS3手柄只能與具有相同藍(lán)牙地址的主機(jī)配對,所以需要先將USB藍(lán)牙適配器的地址寫入PS3手柄。可以使用[3]中的PS3Pair代碼,將BDADDR值修改為藍(lán)牙適配器的地址。[4]中提供的PS3BT例子,將藍(lán)牙地址修改和通訊功能整合到了一起,省了一次sketch的upload,注意也需要將代碼中的my_bdaddr修改為適配器的地址。配對時(shí)需要將PS3手柄連接線與USB Host Shield相連,待完成后將藍(lán)牙適配器接上,打開手柄,可從Serial Monitor看到日志(注意波特率的一致)。
USB Host Shield占用了SPI、P9、P10,注意不要沖突了。
Reference:
[1] http://www.circuitsathome.com/arduino_usb_host_shield_projects
[2] https://github.com/felis/USB_Host_Shield_2.0
[3] https://github.com/Lauszus/PS3-Controller-BT-Library-for-Arduino
[4] https://github.com/TKJElectronics/USB_Host_Shield_2.0
posted on 2012-02-02 23:33 Heath 閱讀(9824) 評論(4) 編輯 收藏 引用 所屬分類: Arduino