IoTミニ四駆製作キット「MKZ4」を作ってみました

f:id:karaage:20160806144243j:plain:w640

IoTミニ四駆製作キット「MKZ4」が届きました!

 会員になっている、自宅IoT友の会のブログの方で書いた下記記事で予約購入報告した「MKZ4」が届きました!(7月下旬でした)。

 こりゃ作ってみないといかん!ということで、早速作ってみました。基本はキットの説明書の通りなのですが、想像していたより上級者向けでした。少し補足した方がよいかなという点もあったので、注意点等を踏まえて製作記録がてら公開していきたいと思います。ちなみに私がハマったポイントと解決方法は下記2点でした。

  • ソフトウェアが書き込みできない -> TX,RXを入れ替えたら解決
  • 真っ直ぐ走れない -> キャリブレーションツールを自作して解決

必要なもの

MKZ4 - Cerevo official store
 「MKZ4」キット。もちろん必須です

タミヤ ワイルドミニ四駆シリーズ No.06 ワイルドザウルス 17006

タミヤ ワイルドミニ四駆シリーズ No.06 ワイルドザウルス 17006

 ワイルドミニ四駆。必須。対応機種は限定されるので、「MKZ4」キット販売サイトで確認しましょう。

 USBシリアルアダプタ。「MKZ4」に搭載されているマイコン「ESP-WROOM-02」の書き込みに使用します。「専用の書き込みキット MKZ4WK」も販売されていますが、個人的には汎用的で半田付けの必要もなくお安いこちらをオススメします。

ジャンパワイヤ(オス?メス) 10本セット

ジャンパワイヤ(オス?メス) 10本セット

 シリアルアダプタとMKZ4の接続用に。MKZ4WKを使用する場合は不要です。

MKZ4用 電子工作向けツールセット WKZ4TS
 半田ごて、テスタ、ピンセット、ドリル等このキットに必要な工作セットが揃っています。私は全て手持ちであったので購入しませんでしたが、これから電子工作を始める人ならこれを購入するのがよいかなと思います。値段も内容パッとみた感じは妥当な価格じゃないかなと思います。

 続きは製作記録になりますので、興味ある方はどうぞ。最後にテスト動作させた動画もあります。

「MKZ4」製作記録

はじめに

 製作キットですが、結構難易度高めで不器用な私には辛かったです。あと、何かあったとき回路図が読めないとちょっと辛いかもしれません。電子工作が初めという人は、迷わず下記のガイドブックの購入をオススメします。今なら100円ですし。そもそも、付属の説明書は最低限のことしか書いてないというか、ミニ四駆のボディの取り付け方すら書いてないので、基本的に買った方がよいのじゃないかなと思います。

 技術的な解説に加え、末尾の参考文献や電子部品のお店情報などは、電子工作これから始める人には非常によい情報かと思います。ちなみに私は全部知っている情報でした。

【Cerevo公式】徹底解説!MKZ4ガイドブック

【Cerevo公式】徹底解説!MKZ4ガイドブック

 また、回路図やソフトウェアは開発元のCEREVOさんがGitHubで公開していますので、何かあったときは要参照。下記です。

基板実装

f:id:karaage:20160728224145j:plain:w640
 ワイルドミニ四駆のパッケージにワクワク。MKZ4はコストダウンを意識した潔いパッケージングですw

f:id:karaage:20160729003207j:plain:w640
 基板実装に使用したツール。キット製作全体を通しては、これに加えてドリルが必要です

f:id:karaage:20160728232823j:plain:w640
 説明書に従って部品を実装

f:id:karaage:20160728232850j:plain:w640
 いやー!汚い半田付けみないでー!

f:id:karaage:20160728233148j:plain:w640
 マイコン「ESP-WROOM-02」の半田付け、半田付けの中では最難関です

f:id:karaage:20160729000415j:plain:w640
 なんとか付いた…

f:id:karaage:20160729003329j:plain:w640
 基板は一通り完成

マイコン書き込み編

 まずはArduino IDEをダウンロードしましょう。Arduino公式サイトから最新版をダウンロードしてください。downloadから適当に自分のOSに適したものをダウンロードしましょう。

 Arduinoは下記記事を参照にセットアップしてください。

 英語よくわからないという人は、Arduino -> Preferenceから下図の通り環境設定画面でBoards manager linkhttp://arduino.esp8266.com/stable/package_esp8266com_index.jsonを追加 f:id:karaage:20160729234147p:plain:w640

 あとは、スケッチ->Include Library-> Manage Libraries... で下図の通りesp8266のライブラリを選択してインストール f:id:karaage:20160729234201p:plain:w640

 これで設定はOK。

 後は、ツールで以下の通り設定します。何故か付録のキットにはここらへん詳しく書いてないのでチェック。ここらへんの設定が正しくないとスケッチのコンパイルがうまくいきません。 f:id:karaage:20160729234212p:plain:w640

 これで設定はOK。ソフトはCEREVOさんの下記GitHubサイトのリポジトリからダウンロードしましょう。

 右の方のClone or download zipからDownload zipを選ぶだけ。Gitに慣れている人はgit cloneしてもOK

 後は、下図の通りパソコンとUSBシリアル変換とMKZ4を接続 f:id:karaage:20160729232756j:plain:w640

 ところがここで何度やっても、PCとMKZ4を接続できない(MKZ4を認識してくれない)という問題発生!「ESP-WROOM-02」の半田付け失敗したかと泣きそうになりながら回路図みながら、1本1本ずつ半田付けチェック。それでもダメ!初期不良かなと絶望的な気持ちになっていとき、回路図と基板を見比べてみると…マイコンのTX,RXとコネクタのシルク(基板の印字)のTX,RXが入れ替わっている!!こ、これはアカン!TXをつなぐという意味ではコネクタをTXというシルクをつけるのは気持ちはわからなくないですが…普通は何も考えずTXとRXを繋いでしまうので、こういうのは止めてもらいたいですね。

 というわけで、USBシリアル変換とMKZ4のTX,RXのワイヤジャンパを入れ替えたら、あっさり解決

f:id:karaage:20160729234232p:plain:w480
 マイコンの書き込み完了!初めて使うマイコンへの書き込み完了すると嬉しくなりますね(自分だけ?)。

組み立てとサーボモータキャリブレーション

 後は、組み立てるだけ。ここは基本説明書通りでうまくいきました(シャーシの切断はかなり大変でしたが…)。ところがまたしても問題発生。ミニ四駆が真っ直ぐ走ってくれません。サーボホーンの取り付けのところ、何度やっても少しずれてしまう。「ハードがダメならソフトがあるじゃないの」と民衆を激怒させたマリー・アントワネットのようにソフトウェアで解決することにしました。

 具体的にはサーボモータのキャリブレーションツールを作りました。といっても凄い簡単なものです。オリジナルのリポジトリをforkしてブランチ切って下記におきました。

 ツールの使い方は、上記リポジトリにも書いていますが、以下の2ステップで使用することになります。

  • キャリブレーションツールを書き込み、適切なモータの角度指定値を確認する
  • メインプログラムを確認した角度指定値を元に修正して「MKZ4」に書き込む

 具体的には、まず下図のように「MKZ4」を仮組みします。 f:id:karaage:20160806022133j:plain:w640

 その状態でCalibration_Tool/Calibration_Tool.inoというプログラムを「MKZ4」に書き込みます。そして、PCと「MKZ4」をUSBシリアルケーブルで接続したまま、MKZ4を電池で通常起動させます。そのとき、シリアル通信の方は、GND,TX,RXのみ接続して電源ピンは接続しないように注意して下さい(電源がぶつかるため)。

 その状態で、Arduino IDEのシリアルモニタ機能でサーボモータモータの角度を指定できます。サーボモータのニュートラル角度、右のステアリング角度、左のステアリング角度を数字を少しずつ変えながら確認してください。シリアルモニタ画面は以下のような感じになります。

f:id:karaage:20160808004340p:plain:w640

 指定する角度は最初は90から始めるのがよいと思います。ボーレート(通信速度、右下の数字)は115200を指定してください。

 キャリブレーションツールで確認した値を、/Cerevo_MKZ4/Cerevo_MKZ4.ino に書き込むとサーボモータの位置を調整できます。52行目が左のステアリング角度、53行目が右のステアリング角度、54行目がサーボモータのニュートラル角度です。例えば、それぞれ90 130 110 だった場合は以下のように書き換えることになります。

#define servo_left    90
#define servo_right   130
#define servo_center   110

後は、Cerevo_MKZ4.inoをMKZ4に書き込めばOKです。

完成と試運転

f:id:karaage:20160806144243j:plain:w640  完成!

160806_MKZ4  家のベランダで試運転してみた動画です(クリックするとリンク先で動画がみれます)。

 なかなか軽快な動き!

まとめと今後の予定

 CEREVOさんのIoTミニ四駆製作キット「MKZ4」作ってみました。簡単だろと舐めていたのですが、思ったより上級者向けなので苦労しました。といっても器用な人なら初心者でもKindleの解説本をみて慎重にやれば完成できると思いますので、興味ある方は是非チャレンジしてみてはいかがでしょうか?何日かに分けて作業しましたが、合計で4時間くらいはかかった気がします。初心者の方は1日がかりくらいを覚悟して取り組むのがよいかなと思います。あと、久しぶりにミニ四駆作ってめちゃめちゃ楽しかったです。操作も楽しくて、誰かとレースしたいです。

 今後は、やはり魔改造していきたいなと思っているのですが、思ったよりコンパクトにまとまっているのでなかなか部品追加等は難しそうです。Raspberry Piとカメラ乗っけたりしたかったのですが、Raspberry Pi ZEROじゃないと無理かなという印象です。ポケモン孵化にも使えるかと思っていたのですが、それもちょっとそのままでは難しそうです(笑)。3Dプリンタで筐体作ったり、スマホの加速度センサでコントロールも面白そうだなと思っていたのですが、Kindle本に書いてあったので、ひねくれ者の私はちょっとやる気を無くしています(笑)

 いくつかアイディアはあるので、うまくいけば夏休みの自由研究として作れたらよいかなと思っています。俺たちの本当の戦い(魔改造)はこれからだ!