たぶん最安、オモチャのRCカーを利用し2800円でDonkey AI Carの車体をつくる方法

#■はじめに
本記事は、以前書いた ***[LEGOで作る ゆるメカトロ Donkey AI Car](https://qiita.com/Google_Homer/items/0fbf5b392bac19bc9b6b)*** という記事をさらに進化させて、***より簡単により安くDonkey AI Carの車体を作る***という内容です。Amazonやyodobashi等でも入手可能な1850円のオモチャのラジコンカーを利用して、トータル2800円でDonkey Carの車体を作ります。
####LEGO車体とは比べ物にならないくらい、ビュンビュン走ります。家庭の室内での走行は、ほぼほぼ無理と思います。
#■Donkeyの車体を簡単に安く作成する記事で
##・オモチャのラジコンカーを利用して車体をつくります。
##・プログラム作成や変更は不要です。
##・100%チュートリアル(日本語)通りで動きます。
#■車体イメージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/234533/5bea28e9-aa31-32a7-51ba-2df20bd82759.png)

#■機械学習後の自立走行動画
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr"><a href="https://twitter.com/hashtag/Donkeycar?src=hash&amp;ref_src=twsrc%5Etfw">#Donkeycar</a><br>屋外コースデビュー。スピード70%程度に抑えてもなおグダグダの教師走行ながら、何とか自立自動走行達成。AIとの闘いではなくRC操縦技術(教師走行)との闘い。<br><br>おもちゃのRCカーを流用し、2800円でDonkey AI Carの車体を作成。Qiita投稿準備中。 <a href="https://t.co/7M7r36crCT">pic.twitter.com/7M7r36crCT</a></p>&mdash; Google Homer (@google_homer_) <a href="https://twitter.com/google_homer_/status/1217696971906961408?ref_src=twsrc%5Etfw">January 16, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
#■Donkey Car チュートリアル
とても分かり易いチュートリアルがFaBoさんから公開されています。「[FaBo DonkeyCar Docs](https://faboplatform.github.io/DonkeyDocs/)」を参照下さい。すべてこれで完結しているので、これ以外を参照する必要はないでしょう。
####また、すべての操作はPCからSSHで行うのでラズパイにDisplay/KB等接続する必要はありません。
以下メニューのみ抜粋です。
####「組み立て」部分は、本Qiita記事で読み替えて下さい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/234533/03ff77ca-02f8-4373-0e30-9b431da16bbd.png)
#■Donkey AI car のシステム構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/234533/6a7ee04f-6127-0019-0d19-aa18ac3f1160.png)

#■主要パーツ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/234533/c1b2bf0a-c231-b1c3-368e-f007e1528562.png)
クリックで購入サイト表示されます。
[① オモチャのRCカー CCP バクソーハ ガンマ](https://www.yodobashi.com/product/100000001003827868/)
[② 360°連続回転サーボSG90-HV](http://akizukidenshi.com/catalog/g/gM-14382/) **(部品取り用、2個必要です)**
[③ Raspberry Pi 3B](https://www.switch-science.com/catalog/3050/) **(推奨3B+ですが、持ち合わせの3Bで代用)**
[④ PCA9685 I2C Servo Driver HAT](https://www.amazon.co.jp/dp/B07K7NK2TJ)　**(HAT以外の方が購入しやすいかも)**
[⑤ Raspberry Pi Camera Module V2](http://akizukidenshi.com/catalog/g/gM-10518/)
[⑥ 32G microSD Card](https://www.amazon.co.jp/dp/B07MTCJHP6)
[⑦ ワイヤレスゲームパッドF710](https://www.yodobashi.com/product/100000001001285938/) **(教師走行で使用)**
#■Donkey Carの組み立て方法
###オモチャのRCカー CCP バクソーハ ガンマの改造方法
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/234533/63403e3f-01c0-f602-0a39-7d242c1082d0.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/234533/21ef36e1-2983-e111-3ba3-f0002595cbff.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/234533/a73001bd-52b9-9582-4f8b-4aadaa34860f.png)
カウルと内部カバーをはずして、搭載されている受信機&制御基板を撤去します。付属のプロポは使用しません。ステアリング(前輪)とスロットル(後輪)の2つのDC Motorの端子を内部カバーの外に引き出します。
###ラズパイにMotorを接続する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/234533/b1a63e5b-ebd3-3689-0b86-e27271370e60.png)
ラズパイにPCA9685 I2C Servo Driver HATを刺します。これでラズパイから電源供給されI2C端子とも接続され便利なので、ラズパイと一体化できるHAT形式をお勧めします。ステアリングとスロットルのDC Motorは直接Servo Driverに接続できないので、回転Servo SG90-HVの内蔵基板(PWM→DC Motor変換回路)を取り出してDC Motor Driveとして流用します。スロットルをServo Driveの0番に、ステアリングを1番に接続すれば、Donkey Carの環境変数を変更することなく動作させる事ができます。
###車体にラズパイを乗っけて完成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/234533/f1174d44-2e91-7f6b-7e0a-07efba23ba99.png)
車体のシャーシ部分にモバイルバッテリーとラズパイを乗っけます。強力両面テープ等で適当に固定しました。邪魔な突起等は、削り取るなど適当に処理して下さい。カメラも適当な場所に貼りつけます。これで完成です。ラズパイは消費電力が大きいようですが、Motor Drive及びMotorも含めて2A出力のモバイルバッテリーで動いています。

#■(参考)キャリブレーション設定値
教師走行させる際に、ステアリングが効き過ぎてオーバードリフトしてしまったり、スピード出過ぎて回り切れずに横転したりしてすごく苦労しました。バッテリーの重さや取り付け位置などによっても大きく変わるかとは思いますが、参考としてステアリングとスロットルのキャリブレーションの値を書いておきます。ステアリング緩め、スピード控え目の設定にしてあります。設定の仕方は、前述のチュートリアルを参照下さい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/234533/bff2169f-d75c-9582-7243-f8960d0bbea7.png)

#■最後に
ラズパイやカメラをむき出しのままにしていますが、本格的に走らせるにはアクシデント対応として何かガードを付けた方がよいかもしれません。

以上