常識的なことかも知れませんがこういうことを書いておくのは悪いことでは無いと思うので書いておきます。
さて、今回はArduinoのシールド(Shield)についてです。Arduinoの機能を拡張するボードでArduinoの上に重ねて配置していきます。複数使うことができる物もあり、それに対して連動して処理を作ることもできます。例としてはモータードライバ+USBホストコントローラという組み合わせでしょうか。モーターをUSB機器から制御する物で、USBホストコントローラにBluetoothのドングルをつけてやるとBluetoothから制御できますし、それ以外の機器でも制御ができる様になります。
しかし、こういう風に組み合わせるときには「組み合わせるシールドのピンアサインをあらかじめ調べておく」必要があります。これは制御ICが同じ物であっても出しているメーカーによってはArduinoと通信するデジタルピンのアサインがかなり異なるからです。今回はちょっとその例を出してみたいと思います。
ちなみに以下で出てくる加工をもし行う場合はは自己責任でお願いします。
同じメーカーが出しているのに同時使用ができないとは
購入した店で扱っていたのがSparkFunの製品で、今回対象にしたのは
の二つです。どちらも単体としては普通のシールドです。一応今回の工作ではモータードライバシールドを使って動く物が作れたので良かったのですが、それはまあ置いておいて。
問題はこの二つの製品のピンアサインです。どういうことかと言いますと
- モータードライバ:ピン3,11~13を使用
- USBホストシールド:ピン7~13を使用
というように、この場合はピン11~13が重複していることになります。こうなると基本的に正しい動作を望むことができなくなり、この二つは同時に使用できない、ということになります。無理に同時使用するならおそらくモータードライバシールドを加工することになると思うのですが
- ピンヘッダが付いている状態で半田付けで以下のピンを基板の裏側でつなぐ(できるだけ根元で)(3pin=>5pin、11pin=>6pin、12pin=>2pin、13pin=>4pin)
- 3、11~13pinの半田付けした部分より下をラジオペンチで切断する(絶縁処理でも可)
- このモーターシールドを使用するときは最上段になるようにし、PWM A=>5pin、DIR A=>2pin、PWM B=>6pin、DIR B=>4pinで使用する
という方法が考えられます。が、やりたくはないですよね。失敗すると数千円+手間が吹っ飛びますから。またはICの足を持ち上げてプリント基板から切り離した上で線を接続する、という方法もありますが、それもそれで大変ですね。それよりはピンアサインがかぶっていない基板を探す方が簡単ですよね。たとえば秋月電子通商が扱っているモータードライバシールドとUSBホストシールドの組み合わせだと
- モータードライバ:ピン4~7を使用
- USBホストシールド:ピン8~13を使用
で重複していないため同時使用が可能です。本当はモータードライバだけでも大丈夫だと思ったのですが、SparkFunの製品だと7pinをUSBホストシールドのリセットピンとしてアサインしているためカットかICの足を持ち上げる加工が必要です。カットの場合は元に戻すことは基本的にできないですし、ICの足を持ち上げるのはICのピッチが狭いのでよほど慣れていないと失敗します。(一応この後の手順を紹介すると、足をカットした場合は7pinとRSTピンを裏側で配線すればOKのはず)
この辺の加工も醍醐味と言えば醍醐味
うまく使える様にピンをわざと切ってしまうのもおもしろいと言えばおもしろいです。実際、SparkFunのモータードライバシールドでは外部電源を入れようとするとVinと直接つながっているため、そのままではなんとモータードライバシールドに電源をつなぎ、Arduinoには電源をつながずに乗せるとArduinoに電源が入ります。モーターの電力の問題から単一の電源でやるときにはこうした方がいいかもしれませんがまあ何とも。対処法としては(試していないので何ともいえませんが)ArduinoにつながるピンのうちVinを切断するとこの問題は解決できると思います。別のモータードライバシールドだと外部電源との分離設定が基板上にあることもあるのですが。
ただ、SparkFunの基板はほかの完成基板と違って空き領域にユニバーサル基板の様な配線を組める領域があるのでこちらで自分が考えた回路を実装することで拡張することができる分うまく回路を組めばさらにスタックする必要が無いことがないのが特徴でしょうか。素直に別の基板をスタックすればすむだけと考える人もいるかも知れませんが、高さを抑えることができる分いいかもしれません。
ほかの基板でもこういうピンアサインの問題はあるので購入前には調べましょう
調べなかった私が悪いのかも知れませんが・・・。組み合わせで対象の動作ができることは分かっても組み合わせそのものができなくなるのは想定外でしたし。まあいろいろと楽しませていただきました、ということで。