robo8080のブログ

ロボット製作や電子工作など。

Arduino + USBホストシールドの実験。

2014年03月09日 | Arduino

Arduino UNOの互換ボードとUSB Host Shield 2.0互換ボードをAmazonで入手。

 

Arduino + USB Host Shield 2.0 + USB Bluetoothドングルと、ここのライブラリを使うと、PS3コントローラやWiiリモコンがArduinoで使えるようになるらしいので試してみた。

PS4 controllerも対応してるらしい。

USB Shield « Circuits@Home

felis-USB_Host_Shield_2.0 · GitHub

 


”USB Host Library”を使うための手順。(2014.03.13追記)

1.ここからファイルをダウンロードする。

 ・https://github.com/felis/USB_Host_Shield_2.0/archive/master.zip

2.ダウンロードしたファイルを適当な所に解凍し、フォルダ名を"USB_Host_Shield_20"に変更する。

3."USB_Host_Shield_20"フォルダを”arduino-1.0.5\libraries”にコピーする。(arduino-1.0.5の場合)

4.arduino IDEを起動するとメニューの

  ファイルー>スケッチの例ー>USB_Host_Shield_20

 に、サンプルプログラムが表示されるようになる。

 


まず、Wiiリモコンの接続を試してみた。

接続できた。

ただし、接続がうまくいくBluetoothドングルとうまくいかないドングルがあるので注意。

うまくいったのはこれ。

PLANEX BT-MICRO4

・iBUFFALO BSBT4D09BK

 

使用したのはライブラリ付属のサンプルプログラム”Wii”

 

 


PS3コントローラを試そうと思ったがずっと放置してたので充電不能になってる。orz

仕方がないので有線で接続してみた。 

うまくいった。

使用したのはライブラリ付属のサンプルプログラム”PS3USB”

 

 


なんとかPS3コントローラの充電が出来たのでBT接続を試してみたらこちらもうまく行った。

ただし、接続がうまくいくBluetoothドングルとうまくいかないドングルがあるので注意。

うまくいったのはiBUFFALO BSBT4D09BK 。(PLANEX BT-MICRO4は試していない)

 

使用したのはライブラリ付属のサンプルプログラム”PS3BT”

 

PS3コントローラをBT接続で使うには、PS3コントローラにBluetoothドングルのMACアドレスを書き込む必要がある。

手順は、これ。

 1.Arduinoに”PS3BT”を書き込んでおく。

 2.USBホストシールドにBluetoothドングルを挿してArduinoの電源を入れる。

 3.電源を切らずにBluetoothドングルを抜き、代わりにPS3コントローラをUSBケーブルで接続する。

 (この時BluetoothドングルのMACアドレスがPS3コントローラに書き込まれる)

 4.PS3コントローラのUSBケーブルを抜き、再度Bluetoothドングル挿す。

 5.念のためArduinoをリセットし、PS3コントローラのPSボタンを押す。

 6.PS3コントローラのLEDがしばらく点滅して止まれば接続できているはず。

この動画が参考になるが、長いので12分あたりから見るのがいいと思う。(^^;) 

(ただし、この動画と違って書き込みに関するログがシリアルに出力されなかった。何か設定を見落としたか...)

How to Connect a PS3 controller to an Arduino with a USB host shield and Bluetooth dongle

”settings.h”のENABLE_UHS_DEBUGGING を 1 にするとデバッグ情報が出力されるようだが、メモリ不足になって書き込めなかった。(2014.3.13追記)

 


Arduino Leonardoでも”PS3BT”を試してみたが、メモリ不足で書き込めなかった。

Leonardoは使えるメモリがUNOより若干少ないようだ。

 


PS3コントローラでRCサーボを動かしてみた。

RCサーボの電源は写真のようにArduinoから取ると電流不足で誤動作する可能性があるので注意。

使用したプログラムはこれ。(無保証)

動画はこちら。こちらはちゃんとRCサーボの電源を外部からとるようにしている。

 

 


Bluetooth SPP接続、Win7の時はmbedやGR-SAKURA相手でもうまくいっていたのに、Win8にしてからうまくいかなくなってしまった。(BluetoothのドライバはWin8標準の物を使用)

SBDBTのSPPはWin8でもうまくいく。何が違うのかな。

Auduino + USBホストシールドでもWin8でBleutooth SPP接続を試したがこれもNG。

ペアリングはできるが、TeraTermから接続しようとするとエラーになる。mbedのときと同じ現象。

 


PS3コントローラでモータを回してみた。

Arduinoとシールドを組み合わせれば超簡単。

Adruino + Mortorシールド + USBホストシールド + USB Bluetoothドングル使用。

今回は、”Arduino Duemilanove”を使ってみた。

使用したMortorシールドはこれ

使用したプログラムはこれ。(無保証)

 

動画はこちら。

 

PS3コントローラで操縦するクローラロボットも簡単。

Arduino用にはモバイルバッテリーを使っている。

  

 


 参考リンク

USB Shield « Circuits@Home

felis-USB_Host_Shield_2.0 · GitHub

How to Connect a PS3 controller to an Arduino with a USB host shield and Bluetooth dongle

 


最新の画像もっと見る

28 コメント

コメント日が  古い順  |   新しい順
DCモーター使用時のスケッチについて (Arduino初心者)
2014-05-02 22:50:02
いつも拝見させていただいております。

恐れ入りますが、Adruino + Mortorシールド + USBホストシールド + USB Bluetoothドングルを使用した際のスケッチを教えていただけませんでしょうか?

よろしければお願い致します。
re : DCモーター使用時のスケッチについて (robo8080)
2014-05-04 12:10:40
ブログ見ていただいてありがとうございます。
記事中にリンクを追記しました。
無保証ですので自己責任でどうぞ。
ありがとうございます。 (Arduino初心者)
2014-05-10 23:56:37
スケッチへのリンク誠にありがとうございます。

今後もブログを拝見させていただきますので、よろしくお願い致します。
PS3とarduinoがうまく接続しません... (初心者)
2015-01-22 16:42:07
SparkFun社のUSBホストシールドを使っています。
この記事と同じ手順をやったのにPS3のコントローラが接続しません
USBのほうもBTのほうもうんとすんといいません...
Re:PS3とarduinoがうまく接続しません... (roboz80)
2015-01-22 18:14:42
私はSparkFun社のUSBホストシールドは使った事が無いのでよく分かりません。
すみません。
Unknown (Unknown)
2016-06-25 19:11:47
このモーターシールドで外部電源を使うためには、
どうすればいいか教えてください!!
arduinoの電源が使われてしまいます。
Re:Unknown (roboz80)
2016-06-25 21:59:03
VIN側に挿さっている2つのジャンパーをPWRIN側に挿し替えてください。ここに写真が載ってます。 http://www.dfrobot.com/wiki/index.php?title=Arduino_Motor_Shield_(L298N)_(SKU:DRI0009)#Introduction
Unknown (Unknown)
2016-11-15 16:00:40
いつも参考にさせていただいてます。
PS3コントローラでRCサーボを動かした時のプログラムを教えていただきたいのですがよろしいでしょうか?
よろしくお願いします。
Re:Unknown (roboz80)
2016-11-15 20:31:19
ブログ見ていただいてありがとうございます。
記事中にリンクを追記しました。
無保証ですので自己責任でどうぞ。
Unknown (Unknown)
2016-11-22 15:41:47
返事遅くなってすいません。
RCサーボモータが無事に動きました。
ありがとうございます。
また、ご質問させていただくかもしれないのでその時はよろしくお願いします。

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。