もしアラフォーの駆け出しプログラマーがラズパイでスマホ操作できるラジコンを作ったら

こんにちは、フナキンです。Qiita初投稿です。

私は昨年夏に**17年間のITコンサル経験を捨てて退職**し、その後プログラミングスクールに通って現在４ヶ月目（半年コースなのでまだ通学中）という人間です。

退職したいきさつとか今の思いとかを記事にした方がニーズがありそうですが、それはまたの機会ということで。

今はプログラミングはもちろんですが特にIoTに興味があり、今回はラズパイ使ってラジコン[^0]作るまでのポイントなど共有したいと思います。

[^0]: そもそもラジコンという呼び方が微妙だという異論は認めます。

完成イメージはこちら。
![](https://funaking.sakura.ne.jp/pictures/raspi-radio/IMG_0208.JPG)

ラズパイのOSインストールとか初期設定はすっとばしますので、推奨書籍（以下記載）やグーグルさんをご活用ください。

というわけでラジコン[^0]作成からスタートします。電子工作というか、**ほぼプラモデル制作**。
プログラミング成分1%くらいでお送りします。

Lチカのその先を見たいアラフォー電子工作初心者の皆さん、一緒に頑張りましょう。

#更新
2019/01/30
ブレッドボード図をFritzingで作成してみました。
LCDモジュールについてはドンピシャな部品データが無かったため、それっぽいものを流用しておりますのでご了承ください。。
![raspi-radiocontrol_ブレッドボード.jpg](https://qiita-image-store.s3.amazonaws.com/0/202771/a4ac8865-4f81-397c-0ef5-e382a6f2439f.jpeg)


#前提
####全体的に
ラズパイ使って電子工作始めてみたい！という人に私が**超絶おすすめする、以下の書籍**に沿っています（以下「参考書」と呼びます）

[カラー図解 最新 Raspberry Piで学ぶ電子工作 作って動かしてしくみがわかる (ブルーバックス)](https://www.amazon.co.jp/gp/product/4062579774/)

今回の内容は参考書における10章に該当しますが、途中の設定とか知識とかが前提になってたりしますので、**皆さんで1章から9章まで自習でお願いします**。（乱暴）

####使用機材
ラズパイは最新の3 B+です
![Raspberry Pi 3 Model B+](https://www.raspberrypi.org/app/uploads/2018/03/770A5842-462x322.jpg "Raspberry Pi 3 Model B+")

ラズパイ購入の際には、お得なセット販売がある（タイミングによります）、以下のサイトがオススメです。

[RSオンライン](https://jp.rs-online.com/web/)
[Raspberry Pi Shop by KSY](https://raspberry-pi.ksyic.com/)

####パーツセット
電子工作初心者はどんな部品を買えばよいかわかりません。なので書籍連動している以下のパーツセットは超絶助かりました！

[Ｒａｓｐｂｅｒｒｙ　Ｐｉで学ぶ電子工作　パーツセット](http://akizukidenshi.com/catalog/g/gK-10852/)

※当記事執筆時点では秋月電子の在庫が切れているようです。セットの在庫がなかったため、友人はセット内容を単品で全部買ってました。
![](https://funaking.sakura.ne.jp/pictures/raspi-radio/スクリーンショット 2019-01-22 17.29.23.png)


####追加パーツ
上記パーツセットにはラジコンを作るための**タミヤ製工作キット**が含まれていません。よって参考書指定の以下キット群を購入します。

[タミヤ 楽しい工作シリーズ No.97 ツインモーターギヤーボックス](https://www.amazon.co.jp/gp/product/B001Q119AC/)
[タミヤ 楽しい工作シリーズ No.143 ユニバーサルアームセット](https://www.amazon.co.jp/gp/product/B001VZNAAA/)
[タミヤ 楽しい工作シリーズ No.157 ユニバーサルプレート 2枚セット](https://www.amazon.co.jp/gp/product/B001VZHRXG)
[タミヤ 楽しい工作シリーズ No.211 アームクローラー工作セット](https://www.amazon.co.jp/gp/product/B00F2YLU5I)

また、液晶モジュールも含まれていませんので、個別に購入します。
以下がよさげです。

[I2C低電圧キャラクタ液晶モジュール（１６ｘ２行）](https://strawberry-linux.com/catalog/items?code=27001)

最後に、ラズパイへの電源供給として、モバイルバッテリーを用意します。これがないと電源ケーブルが動く範囲の制約になってしまいます。
おそらくみなさんお持ちだとは思いますが、一応私が愛用しているものを。Ankerすき。[^2]

[Anker PowerCore 10000 (10000mAh 最小最軽量 大容量 モバイルバッテリー) iPhone&Android対応 *2019年1月時点 (ブラック)](https://www.amazon.co.jp/Anker-PowerCore-%E3%83%A2%E3%83%90%E3%82%A4%E3%83%AB%E3%83%90%E3%83%83%E3%83%86%E3%83%AA%E3%83%BC-Android%E5%AF%BE%E5%BF%9C-2018%E5%B9%B411%E6%9C%88%E6%99%82%E7%82%B9/dp/B019GNUT0C/)

[^2]: 私が買った時よりかなり安くなっている、、、

####工作用機器・器具
Lチカを越えようと思ったら避けられない、はんだ付けなどに必須の道具たちです。こちらのサイトを参考にしました。
**この際あきらめて買いましょう。**

[【初心者向け】プロも使っている電子工作に必要な工具まとめ](http://bokuraku.com/denshikosaku-tool-matome/)[^1]

* ニッパー：タミヤの工作キットで部品をライナーから切り外すためと、電子部品の不要な電線部分を切り落とすために必要
* ラジオペンチ：細かい部分のナットを留める際など、細かい作業やちょっと力が必要な際などに重宝
* はんだごて（＆はんだ）：いわずもがな、電子部品（のリード）同士、電線同士、電子部品（のリード）と電線などを電気が通るようにくっつけるために必要
* はんだごて台：こての先は**<FONT color="red">最大600度くらい</FONT>**になるものもあるそうです。かなり熱いと思われます。間違って触ったり大事なものに触れないよう、安定感のあるものを用意したいところです。
* テスター：<Font color="lightgray">ぶっちゃけ、まだ活躍の場がありません。。。この記事レベルの内容では不要かもですが、</Font>今後必要になると思いますので買って損は無いでしょう！筆者は買いましたので、どこかで使ってやります。

[^1]: はんだごては元々持っていたのでコテ台だけ購入したのですが、こて台とメーカーが違ったため、きちんと奥まで台に挿さらず、若干危険そうな状態で使っています。。はんだごてとこて台は同じメーカーで揃えることを推奨します。

#いざ、調理開始
##開封の儀
おもむろにパッケージを開けます。
![IMG_0211.JPG](https://funaking.sakura.ne.jp/pictures/raspi-radio/IMG_0211.JPG)
<Font color="lightgray">*一緒に写ってる雑誌は気にしないでください
*開けた時の写真撮り忘れた</Font>
さて、まず何から組み立てていくかですが、ツインギアボックスで行きましょう

プラモデルを作ったことがある人であれば難しくはないのですが、一点注意です。
ツインギアボックスに標準で入っている六角シャフトは短いので、**アームクローラーのアームを取り付けたい人は、アームクローラーのパッケージに入っている長い六角シャフトで代替**してください。
（※参考書ではクローラー無しバージョンで作られています）

アームとはこれのことです。
![](https://funaking.sakura.ne.jp/pictures/raspi-radio/amazon_クローラー.jpg)

以下に２本のシャフトが写っていますが、上がアームクローラー標準のシャフト、下がツインボックス標準のシャフトです。今回はアームありで作りますので、上の長い方のシャフトを使いましょう。
ギアボックス組み立ててから間違いに気づいたら泣けますので、アームクローラーのパッケージも開封しておいて、長い六角シャフトを抜き取っておきましょう。
![](https://funaking.sakura.ne.jp/pictures/raspi-radio/IMG_0182.JPG)

プラモデル制作になれていない方は、プラモデル付属説明書の独特の書き味（細かい順番が書かれてないとか）に戸惑うかもしれません。例えばこのギアボックスの場合は、
1. 左側のボディを持って
2. シャフト類を挿して
3. ギアを順番に通して
4. 右側のボディを被せて
5. 最後にネジで閉める
と、**先に組む順番を考えて、頭の中でイメージを作ってから組み始める**と、割とすんなり進みます。
![](https://funaking.sakura.ne.jp/pictures/raspi-radio/IMG_0189.JPG)

片側のネジ締めまで終わり。もう片方を組みます。
![](https://funaking.sakura.ne.jp/pictures/raspi-radio/IMG_0190.JPG)

左右組み終わったらグリスを差しておきます。
![](https://funaking.sakura.ne.jp/pictures/raspi-radio/IMG_0191.JPG)

##モーターはんだ付け
モーターにまずはコンデンサをはんだ付けします。

[コンデンサとは？](https://www.murata.com/ja-jp/campaign/ads/japan/elekids/compo/capacitor)

![](https://funaking.sakura.ne.jp/pictures/raspi-radio/IMG_0192.JPG)
参考書では「ボックスにモーターを入れてからはんだ付けしましょう（※ギアボックスとコンデンサが干渉するから）」と書いてあるのですが、「**はんだごてが間違ってギアボックスに当たったらまずいよね。溶けるよね**」という私の判断で、先にはんだ付けすることにしました。結果的には、これが微妙な結果に、、、

後でギアボックスにモーターを入れるときにわかるのですが、この写真の状態ではコンデンサのリード線がボックスと干渉してしまいます。。。

一度ボックスにモーターを入れてみて、「どのようにはんだ付けしたら干渉しないか」を確認した上で、不安なら一度外してはんだ付けする、というのが確実なやり方でした。
筆者はこの後に無理にリード線を曲げて、なんとか対処しました。いまいち。

次に電線（ジャンパーワイヤですが）もはんだ付けします。リード線も干渉防止のため無理に曲げて、結果以下のような形に。
コンデンサが上の写真と比べてかなり**大股開き**になっていることが伺えます。ごめん。
![](https://funaking.sakura.ne.jp/pictures/raspi-radio/IMG_0193.JPG)

##アームクローラーのシャーシにギアボックスをマウント
こんな感じになります。特に難しいことはないです。
![](https://funaking.sakura.ne.jp/pictures/raspi-radio/IMG_0194.JPG)

##キャタピラー（クローラー）制作 <FONT color="red">~1番の難所~</FONT>
当初「クローラー」ってなんやねんって思ってたんですが、いわゆるキャタピラーの別名とのことで。むしろ**キャタピラーは米国キャタピラー社の登録商標**とのこと。(wikipedia調べ）

ホッチキスとかウォシュレットみたいな感じですかね。

[無限軌道](https://ja.wikipedia.org/wiki/%E7%84%A1%E9%99%90%E8%BB%8C%E9%81%93)
<br><br>
**よし、クローラーをつくろう。**
<br><br>
ぶっちゃけ舐めてたんですが、ここが一番の難所でした。
![](https://funaking.sakura.ne.jp/pictures/raspi-radio/IMG_0196.JPG)

二本ないし三本のゴムパーツを組み合わせて一つのクローラーを作るのですが、これが**ハマらないことハマらないこと。。。**

一方を穴に差し込んだら、もう一方を思い切ってぶち込んでください。
反対から見た図。ここまで来たら、思いっきり引き上げる！
![](https://funaking.sakura.ne.jp/pictures/raspi-radio/IMG_0198.JPG)

**多少の力とそれなりの勇気**が必要です。<FONT color="lightgray">ここで心折れる小学生とかいるんじゃないか？</FONT>

##台車制作
**おめでとうございます！**1番の難所を乗り越えました。
次に「ユニバーサルプレート」と「ユニバーサルアーム」を使って、台車に仕上げていきます。
![](https://funaking.sakura.ne.jp/pictures/raspi-radio/IMG_0199.JPG)
プレートを一枚ビス留めした状態のもの（写真奥）と、2枚目のプレートを乗せるためのアーム二つ（写真手前）です。

アームについては、この写真のように**先にこの形に組んでおいた方が圧倒的に楽です**。

ちなみにアームを短く切るのですが（切らなくてもよいけど）、説明書には「カッターで切れ目を入れてから割れ」と書いてあります。愚直にカッターで切れ目を入れていましたが「パキッ」と綺麗に行くまでに2時間くらいかかりそうだったため、**ニッパーでぶっつり切りました。**問題なし。

で、下部のプレートにこのアームを付けて、その後2枚目のプレートを載せます。
終わるとこんな感じ。
![](https://funaking.sakura.ne.jp/pictures/raspi-radio/IMG_0200.JPG)

##モーター動作テスト
この状態で一旦テストしましょう。全部組み上げてからでは何かあったときにバラすのが面倒になります。
![](https://funaking.sakura.ne.jp/pictures/raspi-radio/IMG_0201.JPG)
参考書通りにブレッドボードで配線して、ラズパイ上でwebiopiの設定(*configへのpythonファイル起動指定）をすればきちんと動くはずです。

[WebIOPi](http://webiopi.trouch.com/)

```
sudo service webiopi start
```

<FONT color="lightgray">(プログラマー成分1%、これにて終了)</FONT>

`ifconfig`などでipアドレスを確認して、スマホからアクセスしてみましょう。
無事モーターが動きましたか？

##LCDモジュールの制作 => IPアドレスの表示
参考書ではオプション扱いですが、せっかくなのでLCDモジュールも乗せてみましょう。
まずははんだ付け。
![](https://funaking.sakura.ne.jp/pictures/raspi-radio/IMG_0202.JPG)
**左がLCDモジュールです**。
右は温度センサモジュールで、パーツセットに含まれていますが今回は使いません。
ご覧の通り細かいはんだ付け作業となります。「これ、隣のピンにはんだが流れてくっついちゃうんじゃないの？」と思うほど（私は思ってました）、穴自体や、穴と穴の間隔が小さいのですが、実際にやってみると隣にはんだが流れないようにいい感じにしてくれますので大丈夫です。`Just do it!`

ラズパイの方では`rc.local`ファイルでPythonファイルの起動を指定します。
ラズパイを再起動すると、モニターにIPアドレスが表示されます。

![](https://funaking.sakura.ne.jp/pictures/raspi-radio/IMG_0203.JPG)

##最終組み立て => モバイルバッテリーをラズパイに接続して完成
ここまで動いたら、全パーツを組み上げましょう。
こんな感じに。

自分は両面テープ購入を忘れていたため、ビニルテープを丸めて両面テープのようにして固定させました。

モバイルバッテリーを乗せる直前の図です。
![](https://funaking.sakura.ne.jp/pictures/raspi-radio/IMG_0205.JPG)
<FONT color="lightgray">(Ankerモバイルバッテリー、自慢のポケモン仕様。ポケモンやったことないけど）</FONT>

##Lチカの、その先へ
![](https://funaking.sakura.ne.jp/pictures/raspi-radio/ezgif.com-video-to-gif.gif)
無事動きました。とっても簡単ですね。<FONT color="lightgray">一行もコード書いてない。</FONT>[^3]
[^3]: 正確に言えば、設定ファイルに数行書いてますが。。。

これでLチカ越えを果たしました！

**<FONT color="red">おめでとうございます！</FONT>**

#今後の野望について

参考書に記載のある内容で、まだできていないことがあるので、気が向いたときにやろうと思います。

1. 温度センサー搭載[^4]
2. カメラ搭載
3. そのカメラをサーボモーターで制御
4. インターネットを越えて遠隔操作

カメラについてはラズパイ標準I/Fを使っているのですが、最近カメラを認識してくれなくなりました、、
色々調べた結果、OS再インストールみたいなことまでしなければいけない可能性が高く、面倒なのでUSBカメラを購入しようかなと思っています。

以上、タミヤ工作キット制作の参考になれば幸いです。

[^4]: ラジコンに搭載してどうするのという話もありますが。

#参考にした記事
[Qiitaにアップする画面動画をgifアニメで簡単に作ろう](https://qiita.com/bohebohechan/items/f8bf6d4bbe0f14497a7b)
[Raspberry Piでカメラが認識しない際の対処法](https://qiita.com/kaiyu_hara/items/0d27ec359b5a692c1f89)
[Raspberry Pi 3 (Raspbian Jessie)の無線LANに固定IPアドレスを設定する](https://qiita.com/momotaro98/items/fa94c0ed6e9e727fe15e)
[mjpg-streamerで動画をブラウザでみる](https://qiita.com/H-A-L/items/8766330a07fec689f7f4)