【MKZ4特別企画1】Arduinoで改造ミニ四駆の動きの精度を上げるチューニング


こんにちは。開発統括部長兼 (以下、略)の押切です。

さて、今回は久しぶりに改造ミニ四駆開発キット「MKZ4」の記事です。
家にいる時間が長い今こそ、電子工作にじっくり個人や親子で挑戦するチャンスです!

MKZ4ってなに?

これまでに何度かご紹介してきたMKZ4について、改めて説明させていただきますと……株式会社タミヤ製のワイルドミニ四駆を、スマートフォンから操作できるように改造できるキットです。

MKZ4で改造したワイルドミニ四駆は、スマートフォンやタブレットのブラウザで、前後左右、自由自在に操作できるようになります。
動く様子はぜひ動画から見てみてください。

MKZ4を完成させるためにはミニ四駆の組み立てはもちろん、専用の基板と電子パーツを使った電子工作と、プログラムの書き込みが必要になります。

ちょっと難しそうかも……と思った方も大丈夫です。
今ならなんと、すべての手順をしっかりと説明した「【Cerevo 公式】徹底解説! MKZ4 ガイドブック」(PDF版)が無料配布中です!

▼ガイドブックのダウンロードはこちらから(2020年5月10日まで)
「【Cerevo 公式】徹底解説! MKZ4 ガイドブック」(PDF版)

MKZ4は改造キットのみなので、通常は別で対応するミニ四駆を購入する必要があるのですが、Cerevo Official Storeでは、対応するミニ四駆がセットになった「MKZ4 スペシャルパック」も用意しています。

MKZ4 スペシャルパックの購入はこちらから
http://cerevo.shop-pro.jp/?mode=cate&cbid=2481355&csid=0&sort=n
10%OFFクーポンコード【GWはお家で楽しもう!2020】

ということで、ワイルドミニ四駆とのセットがお勧めです。
今ならスペシャルパックの10%クーポンセールもやっています(個人的には改造にむいているランチボックスがお勧め)。

ガイドブックが無料&スペシャルパックがお買い得な今こそ皆さんにMKZ4を組み立てて家で楽しい時間を過ごしてもらえるように、今回から数回に渡ってMKZ4の改造記事を投稿していきますのでよろしくお願いします。
改造について何か希望があれば、Twitterでハッシュタグ #cerevo #mkz4 でつぶやいて下さい。可能な範囲で対応します。

MKZ4完成後にチューニングをしてみよう!

前置きが長くなりましたが、今回はキット完成後に組み付けや部品のばらつきにより直進しない場合に、メカを組み直して対処するマニュアルとしていました。

が、それはなかなか面倒なので……

メカをばらさずArduino IDEのシリアルモニタからコマンドを送って、ソフト的に中心を出す方法を解説します。

実は以前からそのスケッチは下記Githubに公開してましたが、今回改めて解説します。
https://github.com/cerevo/MKZ4/tree/master/custom/Cerevo_MKZ4_calib

作業環境

ガイドブックの発行は2016年7月のため、その当時の情報が掲載されていますが今回の記事にあたって、現状最新のArduino環境でビルド、書き込み確認できました。

作業環境は、以下の通りです。

  • Windoes10 パソコン
  • Arduino IDE 1.8.12
  • by ESP8266 Community バージョン2.6.3

キャリブコマンドの使い方

1. CN3をD側にしてCerevo_MKZ4_calib.inoを書きこむ。
※元のスケッチに上書きされますので、SSID等変えている方は書き直してから書き込んで下さい

2. MKZ4WKから、VCC以外のGND、TXD、RXDの3本を引き出す。

3. MKZ4とMKZ4WKから引き出したGND、TXD、RXを繋ぐ。

4. CN3をB側にして MKZ4の電源スイッチを入れる。
※MKZ4WKのVCCを繋がないのは本体の電源とかち合わないためです

5. Arduino IDEのコンソールを開いて以下の通り設定する。

  • ボーレート:115200
  • デリミタ:CR+LF

6. スマホとMKZ4をWi-Fiで接続して、ブラウザを開いて動かせる状態にする。

7. コンソールからコマンドを送って、実際の車の動きをみながら調整する。

使えるコマンドは3つです。いずれのコマンドもプラス側に振ると右側に、マイナスに振ると左側に設定されます。

●前進させた時に少し右や左に曲がってしまうのを修正する

offset角度修正コマンドを使います。

コマンド
offset+space+角度[ENTER] //初期値:0

例)
offset 10  //10°右にずらす
offset -20 //20°左にずらす  

上の窓にコマンドを売って、ENTERを押す

コマンドの値がセーブされます。

●左に曲がる角度を修正する

左ステアリング角度修正コマンドを使います。デフォルトでは左に曲がる角度は65°になっています。

コマンド
left+space+角度[ENTER] //初期値:65

例)
left 60 //左ステアリング角度を浅くする場合
left 70 //左ステアリング角度を深くする場合

●右に曲がる角度を修正する

右ステアリング角度修正コマンドを使います。デフォルトでは右に曲がる角度は110°になっています。

コマンド
right+space+角度[ENTER] //初期値:110

例)
right 105 //右ステアリング角度を浅くする場合
right 115 //右ステアリング角度を深くする場合

これで真っ直ぐ走らせたり、左右にタイヤとボディが干渉して引っかかることを解消できます。
一度に設定するのは難しいので、offsetをまず決めて、左右はちょっとづつ値を変えて試してみて下さい。

8.MKZ4WKを外し、外装を付け直して、心ゆくまで走行を楽しんで下さい。

少しだけスケッチ解説

少しだけ、スケッチの解説をすると、電源を消してもコマンドで指定した値が消えないよう。本体に補正値を書き込んでいます。

Arduino UNO等ですと標準で不揮発性のEEPROMが使えるのですが、MKZ4で使っているマイコンのESP8266はEEPROMはありません。しかし、本体の不揮発性メモリを仮想的にEEPROMを使うライブラリがあるので、それを利用しています。特に意識しなくてもArduino UNOと同じように使えます。

また、

const char command_offset[6]={‘o’,’f’,’f’,’s’,’e’,’t’};

などでコンソールに打つコマンドを定義してparse_command()関数で、コマンドに応じた値をEEPROMに書き込んでいます。

これらは、MKZ4に限らず、量産治具の基板の機能チェック等に利用すると便利です。

私も、REC-1開発時に、Visual C++から順番にカメラにコマンドを送って機能テストするPC用アプリを使って、検査工程を自動化し、時間短縮しました。

組み込み基板をPCでテストするような環境に便利です。

今回はここまです。また次回!

関連リンク

MKZ4の他の記事をみる

Cerevo 採用情報
Cerevoではエンジニアや広報など、様々な職種の採用活動を行なっています。
IoTプロダクト開発やスタートアップ支援、企画、営業に関心が高い方からのご応募をお待ちしております。

採用情報を見る