ラズパイタンク製作記 〜ハードウェア編〜

![IMG_20200425_213459.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569342/b0dbf1df-d262-3b20-f00f-364f6ea4be20.jpeg)
![IMG_20200425_213614.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569342/1b29fcf8-cf2e-a7c6-f9d7-8ba7d7bf24dd.jpeg)

ラズパイでラジコンを作ったので製作記を書いてみます。
まずはハードウェア編。

##1.材料
|No|品名|型番|価格|備考|
|:---|:---|:--|:--|:--|
|1|Raspberry Pi|モデル3B|5,000円くらい|モデルは何でもいいです|
|2|タミヤ楽しい工作シリーズ ダブルギヤボックス|-|924円|-|
|3|タミヤ楽しい工作シリーズ ユニバーサルプレートセット|-|396円|-|
|4|タミヤ楽しい工作シリーズ トラック＆ホイールセット|-|660円|2~4で土台が作れると思うけど、もしかしたら足りないものがあるかも…|
|5|Arduino用モータードライバシールド|-|3,175円|https://www.switch-science.com/catalog/427/|
|6|モバイルバッテリ|-|2000円くらい|電池＆電池ボックス等でも可|
|7|Raspberry Pi 4B用プロトタイプ基板|ABB-RSP-B-4-NR|388円|自分はこれを使いましたが、同じ作り方をするならこの基板はおすすめしません|
|8|40ピン基板用ピンソケット|21602X20GSE|95円|-|
|9|Raspberry Pi用スペーサー|MPS-M2611|300円|-|
|10|はんだごて|-|-|-|
|11|コネクタ,配線材料、はんだ等|-|-|-|
|-|-|合計|ざっくり15,000円くらい|-|

No.5↓
![IMG_20200414_213934.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569342/53ad2c31-5fb8-2e1f-85b3-db6e631d3901.jpeg)
自分が持っていたのは古い型のもので、今だと新しい型が出ているようです。

No.2,3,4↓
![IMG_20200414_213740.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569342/fbdef63b-ef2e-b344-e9f1-348de50d7fd4.jpeg)

No.7,8,9あたり↓
![IMG_20200414_213513.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569342/e2b1beb8-1100-0e3b-d21a-cfa812d6d4b3.jpeg)

自分の場合、以前にもArduinoでラジコンを作ってみようと思ったことがあり、タンクの土台やモーターシールドを入手済みだったので、それらを流用するためにこのような材料で製作しました。
ゼロから作る場合は、他の構成もあると思います。

##2.タンクの土台作り
上にも書いた通り、タンクの土台は既にできてたので、ここは特に書くことありません。
イチから作る場合も、たぶんそんなに難しくはないと思います。
ミニ四駆みたいな感じだと思います。

##3.ラズパイ-モーターシールド中継基板
ソフトの工程を含めて考えても、ここが一番苦戦しました。

モータードライバシールドの回路図を以下に一部抜粋します。
![モータードライバ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569342/a5513a02-24fa-0358-6795-9e0d8d7d14f7.png)
ここのPWMA,PWMBが、モーターの駆動信号で、PWM信号を入力したいところです。
また、DIRA,DIRBというのはモーターの回転方向を制御する端子で、Highで順回転、Lowで逆回転です。

ラズパイのピン配は以下のようになっています。
![GPIO.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569342/55c5d698-cc83-a083-e26f-fdb979e7290a.png)
ラズパイの「ハードウェアPWM」に使えるチャンネルは2つしかなく、以下のポートが割り当てられています。
*PWM Channel 0 : GPIO12、GPIO18
*PWM Channel 1 : GPIO13、GPIO19
※こちらの記事を参考にさせてもらいました↓
https://qiita.com/s417-lama/items/0ef64a7af3fcf6a56cc5

よって、
GPIO12or18をPWMAorBに接続　または、
GPIO13or19をPWMAorB(残った一方)に接続
ということになります。
DIRA,DIRBには、適当にGPIOを繋げばOKです。
あとはラズパイの5VとGNDを、モーターシールドの5V・GNDに繋げば、動いてくれるはずです。

と、ここまではよかったんですが、コネクタとかを基板にはんだ付けし始めたら、大変でした。
また気が向いたら詳細な配線図とかを追加しようと思いますが、とりあえず苦労したエピソードだけ書いておくと、
下の写真で伝わるか微妙ですが、モーターシールドのピンをぐにっと一列ぶん曲げてコネクタに挿しています。
![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569342/ef7af6d4-77b1-522f-3c3f-644531ae345b.png)
こうしないと、下に見えている剣山みたいな部分にピンがあたってショートしてしまいます。
また、作っている途中で気づいたんですが、この基板は以下のようにパターンで繋がって同電位になっているところがあります。
![1632218_12.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569342/5d09f975-21da-70a3-7d23-1096888d7ec8.jpeg)
よって、何も気にしないとラズパイ側の意図しないピンとモーターシールドのピンがショートしてる場合があります。実際、あとからそのことに気づいて、基板のパターンをカッターナイフで切ることでどうにか処理しました。
なので、今回のようにAruduino用のシールドをラズパイ用に変換する基板をつくる場合は、変にパターンで繋いであるやつじゃなく、ただのユニバーサル基板とかで作ったほうがいいと思います。

とまあ、そんなこんなで、モーターシールドの変換基板を作り上げます。

##4.モーター用電源入力
あとハード的に必要なのでが、モーター駆動用の電源です。
試してないですが、たぶんラズパイからの供給電力ではモーター動かすのは厳しいので、別で電源を供給します。
モーターシールドにはそのためにVinという端子がついています。
![Untitled2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569342/45e2cb0a-84df-24f4-0077-76741e6c692f.png)
ここの端子にモバイルバッテリから電圧を供給しました。

USBケーブルをちょっと加工し、以下のように赤と黒の線を出してきて、Vinに接続すればOKです。
ただし赤と黒の線をショートさせないようにご注意ください。危ないです。
![DSCF2721b.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569342/ed236358-54e7-ca18-5757-b51a4dde2445.jpeg)

##5.タンク土台、モーター、電源、ラズパイの接続
だいたいのモジュールが揃ったので、あとはそれを組み合わせます。
ここも意外と苦戦します。
ラズパイとかモバイルバッテリとか、タンクの土台にはそのままではうまく乗らないので、クッションというか、間を取り持つものが必要です。
自分は最初、とりあえず手元にダンボールしかなかったので、それでどうにか仕上げました。
ただ、どうにも安っぽい感じがしたので、最初の写真のようにブロックで台を作ってそこに載せました（子供のおもちゃを奪って…）

##6.まとめ
以上でハードウェア編は終了です。
全くのゼロからスタートしたら、1週間くらいはかかってしまうかもしれません。
自分のモチベーションは「子供が遊べるおもちゃを作る」ということだったので、そういうのがあればなんとかいけると思います。

Qiitaでは異端かもしれない、ハードウェアだけの記事になってしまいました。
次回はソフトウェア編です。
といってもソースコード載せるだけで終わりかもしれません。

（2020/5/1）[ソフトウェア編](https://qiita.com/shi78ge/items/882d77ee6f78d63c0b0c)を書きました。