「メカナムホイール」タグアーカイブ

メカナムホイールでLEGOラジコンカー製作

DFRobot様よりメカナムホイールをいただきましたので、ラジコンカーを製作してみました。

 

 

思想

非常によいメカナムホイールが手に入ったので、これをどう利用しようかとウキウキで考えました。

長男くんはずっとLEGOが大好きで毎日いろいろ製作しています。

長男くん のレゴ作品集

 

そこで、折角ですのでLEGOで色々カスタマイズできるラジコンにしようと思います。

 

構成

メカナムホイールはレゴを接続できる360°回転サーボで回すことにしました。

サーボとしても低価格で非常に良い買い物をしました♪

 

ホイールとサーボの接続のために3Dプリンタで治具を製作しました。

 
 
サーボの制御にはM5StickCとM5StickC 8Servos Hatを用いました。

 
M5StickCとM5StickC 8Servos Hatによるビークル制御は以前試しているので慣れたものです。

M5StickC 8Servos Hat でラジコンを堪能

 

車体

車体はLEGOで構築しました。

 

Blynk設定

ここではスマホアプリのblynkでBLE通信で車体を動かします。

 

新規プロジェクトを作成します。ハードウェアはESP32 Dev Boardを選択。Conection TypeにはBLEを指定します。
AUTH TOKENはArduinoコード生成時に使用します (アカウント登録したメールに送信されます)。

 

ウィジェットとしてBLEウィジェットとNumeric InputウィジェットとJoystickウェジットを配置します。

 

Numeric InputウェジットはV1を使用します。
メカナムホイールの回転速度を決定します (0~90)。

 

JoystickウェジットはバーチャルピンV0を使用します。

ジョイスティックの設定はx軸とy軸の出力をMERGEしてヴァーチャルピンV0に出力させ、それぞれ値は-100~100としました。

AUTO RETURNはONにしてジョイスティックはタップ移動後離すと自動的に中央に戻します。
ROTATE ON TILTはOFFにてスマホの回転に依存せずのx, y軸を固定とします。

 

メカナムホイール動作

Arduinoコード

ジョイスティックのx, y値をM5StickCで受けて角度に変換してディスプレイ表示しています。
角度のディスプレイ表示は以下のM5StickCのサンプルコードTFT_Pie_Chartを利用しました。

8Servos Hatのサンプルコードを元に制御しております。 

 

 

動作

 

おわりに

憧れのメカナムホイールを用いてレゴカーができました!

あとは長男くんに自由にカスタマイズしていただきましょう。

3Dプリンタでメカナムホイールを堪能

凄いものを見つけてしましました。

なんと憧れのメカナムホイールの3Dプリンタ用データを公開されている方がいたのです!

 

動画もありすごくいい感じに動いてる!これはプリントするしかない!
だって私はずっとメカナムホイールに思いを寄せていたのだから。

 

メカナムホイール 3Dプリンタ出力

3Dプリンタは購入依頼フル稼働で活用させていただいております。

 

早速メカナムホイールを出力してみました!

左右のホイールを2個づつと小さいタイヤを56個出力します。

タイヤをM3×25mmのネジでクルクル回る程度に締め付けて固定しました。

本当にできてしまった。。。

車体構成

出力したメカナムホイールの性能を確かめるべく車を製作します。
ESP32を使用してBlueToothでスマホでラジコン感覚で動かします。

 

部品

 

 

モータドライバDRV8835

モータドライバDRV8835にESP32からPWM信号を入力してモータを制御します。モータドライバのMODEピンはGNDに接続しています。


 http://akizukidenshi.com/download/ds/akizuki/AE-DRV8835-Ss.pdf

ESP32 PWM出力

モータドライバDRV8835にESP32からPWM信号を入力してモータを制御します。
ESP32のPWM出力は通常のArduinoマイコンのアナログ出力と異なりledcWrite()という関数で実施します。

ledcWrite()でPWM出力できるピンは限りがありますので、詳細は参考ブログを参照ください。

GPIO14ピンはデフォルトでHi出力なので10kohmでプルダウンしています。

参考

 

 

Blynk設定

ここではスマホアプリのblynkでBLE32とBluetooth通信で車体を動かします。

新規プロジェクトを作成します。ハードウェアはESP32 Dev Boardを選択。Conection TypeにはBluetoothを指定します。
AUTH TOKENはArduinoコード生成時に使用します (アカウント登録したメールに送信されます)。
 

ウィジェットとしてBluetoothと2個のJoystickウェジットを配置します。

 

2個のJoystickウェジットはそれぞれバーチャルピンV0, V1を使用します。

ジョイスティックの設定はx軸とy軸の出力をMERGEしてヴァーチャルピンV0(V1)に出力させ、それぞれ値は-100~100としました。

AUTO RETURNはONにしてジョイスティックはタップ移動後離すと自動的に中央に戻します。
ROTATE ON TILTはOFFにてスマホの回転に依存せずのx, y軸を固定とします。

メカナムホイール動作

2つのジョイスティックの角度によってモータを制御します。

上のジョイスティック(V0)で直進、下のジョイスティック(V1)で回転させます。

参考

 


 

Arduinoコード

Bluetoothを介してBlynkのジョイスティックの動きをヴァーチャルピンV0, V1で受信して、角度を導出してモータを制御しています。

モータスピードはタミヤのダブルギヤボックスのギア比114.7:1で、PWMのデューティ50%(128)としました。

Blynk BLE接続

ESP32とスマホをBluetoothでつなぎます。

BlynkプロジェクトのBluetoothウェジットをクリックして設定します。

 

“Connect Bluetooth device”をクリックして “Blynk”が表示されたらOKをクリックして接続する。

 

 

動作

 
タイヤが滑るので熱収縮チューブをかぶせてみました。

だいぶ滑りは改善されました♪

モータノイズ対策

もう少しモータの回転スピードを上げたいのですが、これ以上高速化つまりモータへの供給電流を上げるとノイズでマイコンが誤動作してしまいます。

マイコンの電源5Vピンにデカップリングコンデンサ100uFを挿入したり、モータにノイズ除去用に10nFを挿入して対策はしたのですが空中配線ではこれ以上の改善は難しかったです。

 

 
モータドライバのロジック系とモータ電源のGNDが分けれなかったり
ESP32ボードの電源入力ピンの接続が不明確だったりでノイズ対策が完全に実施できていないことが今後の課題です。

自分で基板作ってみようかなぁ。
まだプライベートでオリジナル基板作ったことないのでいい題材かもしれません。

メカナムへの情念

憧れのメカナムホイールを3Dプリンタでタダ同然で手にすることができました。
非常にありがたくそして感動的なことです。

私がいかにメカナムホイールに憧れを抱いていたかをご紹介させていただきお別れしたいと思います。

追記

タイヤの固定 (20/8/19)

メカナムホイールのタミヤのギアボックスへの固定のために以下のようなシャフトを通して固定するリングを3Dプリントしました。

以下でリングの3Dモデル(STLファイル)がダウンロードできます。
 リングモデル

 

リングを以下のようにメカナムホイールに接着してギアボックスのシャフトに通して固定します。