変わりモノがいい!

変わりモノには価値がある・・・ハズ?

Zumo Robotリモートコントロール 進捗状況報告

試行錯誤の結果、ちょっと進みました。

今回も悪戦苦闘中です。
前回の記事でBluetooth shieldが動いたと書きました。
従って最悪でもAndroidタブレットでZumo Robotを動かすことはできそうです。
でも目標はワイヤレスなゲームパッドでZumo Robotを動かすことです。
Bluetooth shieldを手持ちのゲームパッドで使えるようにしたかったのですが、どうも上手くいかないので追加でUSBホストシールドを買ってドングルをUSBに挿してゲームパッドを使えるようにしようと思いました。
今回の記事は、USBホストシールドを動かすまでの作業内容を備忘録として記載するものです。

f:id:ken2017:20211214101054j:plain

USBホストシールドってどんなもの?

USBホストシールドは、その名の通りUSBを使うためのshieldです。
USBホストシールドの使い方を含めた説明はコレ。

ht-deko.comハードウエアの説明はコレ。

chome.nerpa.tech

いつもお世話になっているGithubの記事はコレ。

github.com

USBホストシールドを使う上での注意事項は3点です。
一つ目は、使用電圧に応じて基板に対してハンダブリッジをやらないといけないということです。
例えば5Vで使う場合には下の写真の赤い四角で示した3か所にハンダブリッジを行う必要があります。

f:id:ken2017:20211214102709j:plain
二つ目は、使用している信号SSとINTに対するピンを割り当ててやる必要があります。
SSとINTはデフォルトでピン番号10番と9番に接続されています。
Zumo Robotではピン番号10番と9番はモータの速度信号として使用しているのでSSとINTのピン番号を変更する必要があります。
そのため、まずはSSとINTに繋がっている配線を切断する必要があります。
基板の上にSSとINT用のスルーホールがあるので、そのスルーホールとコネクタの10番ピン、9番ピンを繋いでいるパターンを切断します。
切断後の写真がコレ。
写真上の左にあるコネクタの下の所が削れていますが、これによりコネクタのピンとスルーホールへの配線を切断しました。

f:id:ken2017:20211214111240j:plain
新たにSS用にピン番号6番を、INT用にピン番号3番を割り当てました。
配線を行った写真がコチラ。
白い基板がUSBホストシールドですが、その基板の右上にあるSSとINTのスルーホールに配線をハンダ付けし、そのケーブルをArduino Unoのコネクタにあるピン番号3番と6番のスルーホールにハンダ付けしました。

f:id:ken2017:20211214103233j:plain
コードはコレ。
typedef MAX3421e<P6, P3> MAX3421E; 
三つめはライブラリのインストールです。
USBホストシールドに必要なライブラリは上に示したGithubの中に入っています。
これをフォルダーの所定の位置に入れてやれば概ねOKですが、幾つか注意が必要です。
注意は3つ。
一つ目は、上に書いたSSとINTのピン配置の指定で、これはファイル名UsbCore.hの中のコードを修正して行います。
二つ目は、Arduino Unoとパソコンを接続しているUSBラインの転送速度の修正です。
ライブラリに初期状態として入っている速度では速すぎて文字化けする場合があります。
これに対応するにはUSBホストシールドを使うアプリ(例えばゲームパッド用のアプリとか)の中にあるコードを以下のように修正します。
Serial.begin(9600);
三つ目は、ゲームパッドの種類に応じたアプリを入れてやる必要があるということです。
ライブラリを入れて最初はPS3用のアプリを使おうとしましたが動きませんでした。
あれ?と思ってゲームパッドを見てみると、それはLogicoolのF310でした。

f:id:ken2017:20211214114350j:plain
ネットでしらべてみるとF310用のアプリがあるようでそれを入れないといけませんでした。
それがコレ。

github.com

また、インストールしているUSB Host Shield Library2.0のバージョンによってはバグがあるようで上の記事にあるパッチを当てないといけないとのことでした。
これらのことを全て行ったうえで動かした結果がコチラ。
Arduino Unoがゲームパッドを認識し、ゲームパッドのボタンが押されたことやジョイスティックの位置情報がキチンと認識されています。

f:id:ken2017:20211214113312p:plain
有線でゲームパッドを使えるところまできました。
残りは無線でゲームパッドを使えるようにすることです。

思わぬ落とし穴が待っていました。

有線でゲームパッドが使えるようになったのでUSBホストシールドをZumo Robotに繋いでZumo Robotを動かそうとしました。
そこで問題発生です。
USBホストシールドのUSBコネクタとZumo Robotのコンデンサが干渉して実装できない問題があり、そのために両者の間に拡張基板を入れて干渉を防ぐ予定でした。
   この写真の左中央上にあるコンデンサと右中央上にあるUSBコネクタが干渉

f:id:ken2017:20211214113937j:plain
購入した拡張基板がコレ。
パッと見は使えそうです、が・・・

f:id:ken2017:20211214114201j:plain
あれ?コネクタとピンの位置がズレている。

f:id:ken2017:20211214114313j:plain
これでは中継基板になりません。
元々が下のような使い方なので中継基板ではなく一番上に載せる基板として作られているようです。

f:id:ken2017:20211214114540j:plain
ということで急遽ピンソケットを追加で手配しました。
それがコレ。
6ピン用1個、8ピン用2個、10ピン用1個手配しました。


f:id:ken2017:20211214114802j:plain

akizukidenshi.com

最初からこれを買えば良かったんですけどね。
ということで紆余曲折の最中にいます。
今日はココまで。
では、また。

 

プライバシーポリシー お問い合わせ