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

 

ジャンル:
ウェブログ
コメント (14)   この記事についてブログを書く
この記事をはてなブックマークに追加
« 3月8日(土)のつぶやき | トップ | 3月9日(日)のつぶやき »
最近の画像もっと見る

14 コメント

コメント日が  古い順  |   新しい順
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サーボモータが無事に動きました。
ありがとうございます。
また、ご質問させていただくかもしれないのでその時はよろしくお願いします。
初めまして (Unknown)
2016-12-08 12:27:15
初めまして。Arduino初心者の者です。
質問なのですが、”PS3USB”のプログラムをコンパイルをすると、
” No such file or directory #include <PS3USB.h>
compilation terminated.”
というエラーが返って来ます。原因等ご存じであれば教えてくれませんか?よろしくお願いします。
Re:初めまして (roboz80)
2016-12-09 01:18:36
そのエラーだとUSB_Host_Shield_20ライブラリーが正常にインストールできていないことぐらいしか思いつきませんが… 他のサンプルプログラムはコンパイルできるんですか?もし同様にコンパイルできないとするとライブラリーが正常にインストールできていないんだと思います。
Unknown (Unknown)
2016-12-12 17:08:08
ありがとうございました。
ライブラリをしっかとインストールしたら、正常に作動しました。
Re:Unknown (roboz80)
2016-12-12 19:21:31
解決できて良かったです。

コメントを投稿

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

コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。

トラックバック

この記事のトラックバック  Ping-URL
  • 30日以上前の記事に対するトラックバックは受け取らないよう設定されております。
  • 送信元の記事内容が半角英数のみのトラックバックは受け取らないよう設定されております。
  • このブログへのリンクがない記事からのトラックバックは受け取らないよう設定されております。
  • ※ブログ管理者のみ、編集画面で設定の変更が可能です。