0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ArduRover メカナムホイールのラジコン製作

0
Posted at

はじめに

2023年11月頃に購入したおもちゃ。おもちゃはロボマ◯ターのインスパイアっぽい感じです。
このおもちゃをベースにArduRoverのメカナムホイール式ラジコンに改造しました。

製作メモとして残しておきます。

写真

改造後

IMG_0622.jpg

オリジナル

IMG_0494.jpg

不要なパーツを取り除いた状態

IMG_0501.jpg

スペック

  • CubePilot Cube Black (ArduRover 4.7.1)
  • Power Brick Mini
  • HENGE UBEC 6A 5V
  • LDO 5V→3.3V
  • GNSS モジュール
  • モータードライバ 秋月電子 DRV8835
  • BETAFPV ELRS Nano レシーバー V4.1.0
  • DroneBridge for ESP32 V2.4.0

モーターは130サイズのブラシ付きDCモーターです。1Sリポ(Max 4.2V)で駆動していましたので、たぶん6V設計と予想して5Vで駆動させます。
130サイズは1.5V、3V、6V、12Vを見たことあるのであくまでも予想です。分解したときにあまったモーターで試して問題なさそうでした。たとえ燃えても替えはいくらでもあるので気にしませんw

接続図

電源まわりは手元にあったものを再利用して構成しています。もっと最適化もできたでしょうね。

MecanumWheelx4.png

モータードライバ

一点ものなのでユニバーサル基板に組み込んでいます。
モーターのPHコネクターのピッチが2mmなので、合わせるために両面ノンスルーホール2.54mm×2mmピッチ基板を使っています。
ユニバーサル基板のサイズが、ピッタリおもちゃの電池ボックスに収まってグッドです。

テスト中の写真

Motor Driver

テレメトリー

DroneBridge for ESP32 を自作しました。これを使ってテレメトリーを取得しています。

Telemetry

こっちの基板はJLCPCBで製造しました。オリジナルと同じ配線ですがピンヘッダに変えています。別売りのロッドアンテナにしているので感度も向上しているはずです(たぶん)。

IMG_9630.jpg

Cube Blackに接続するモジュールです。

IMG_9632.jpg

GCS (Ground Control Station)に接続するモジュールです。

IMG_9650.jpg

GCS側のモジュールをAndroid端末に接続しています。ちゃんと認識しました。PCにつないでも使用可能です。GCSはQGroundControlを使用しています。
(写真ではV2.2.1となってますが、撮影のあとV2.4.0に更新しました。)

IMG_0623.jpg

QGroundControl 5.1 による設定

ArduRover 4.7.1は執筆時点で最新バージョンです。QGroundControlも最新バージョンを使用してください。古いQGCですとParameterを適切に設定できません。警告が出るので書くまでも有りませんね。

フレームの設定

フレーム(FRAME_CLASS)はローバーを選択します。
FRAME_TYPEはメカナムホイールを選択しますが、ここでは設定できないのでParametersで設定します。(後述)

q1.png

ESC の設定

ブラシ付きモーターで、ドライバにDRV8835を使います。
DRV8835はPHASE/ENABLEモードにしてください。
設定はBrushedWithRelay を選択します。

q2.png

飛行モードの設定

飛行モードチャンネルは6以降にしてください。
ExpressLRSのチャンネル5は1ビットで、Betaflightで使用する場合は通常はARM/DISARMとして使用します。
飛行モードはお好みに合わせてOKです。

q3.png

Servo Output の設定

DRV8835はPHASE/ENABLEモードに設定してください。DRV8835が1つで2個のモーターを駆動できます。よって、Motor1とMotor2は同じDRV8835で駆動され、Motor3とMotor4も同じDRV8835で駆動されます。AIN1とBIN1がフェーズ、AIN2とBIN2がイネーブルです。

  • イネーブルをCube Blackの MAIN OUT 1-4 に接続します。
  • フェーズをCube Blackの AUX OUT 1-4 に接続します。

こちらの図 を参照してください。

フェーズをON/OFFすることで正転・逆転を切り替えることができます。

FunctionのMotor1-4をそれぞれのモーターに割り当てます。上から見て右上から時計回りに割り当てます。

  • Min PWM値を1000に設定します。
  • Max PWM値を2000に設定します。
  • Trim PWM値を1000に設定します。 注意!1500ではありません。

Reverseは必要に応じて設定してください。変な動きをしたらここを確認してください。私の場合、Reverseを設定しなかったら前に進もうとすると右に進みました。モーターの接続を入れ替えてもいいですがちょっと面倒くさいかも。

AUX OUT 1-4 はこの画面の9-12に対応しています。FunctionをGPIOに設定してください。ほかはデフォルトのままで問題ありません。

q4.png

電源の設定

余っていたLiPoバッテリーを使用しました。バッテリーのスペックに合わせて適当に設定してください。Voltage Multiplierは電圧計で実測しながらCalculateボタンを押して設定できます。

今回使用したPower Brick Miniでは電流が少なすぎて正確に測定できないみたいです。よって適当です。電流をドバドバ使うブラシレスモーター用ですから仕方ないですね。

もっとも電圧だけ分かれば十分。過放電しないように注意しましょう。

q5.png

送信機の設定

キャリブレーションして終わり。

デッドゾーンはParametersでいい感じに設定しましょう。

q6.png

設定リスト

主なパラメータを抜き出しています。

パラメータ 種別
ARMING_SKIPCHK 2076 Arm Checks to Skip (bitmask)
BRD_SAFETY_DEFLT 0 Disabled
FRAME_CLASS 1 Rover
FRAME_TYPE 2 OmniX
GPS2_TYPE 1 AUTO
GPS_PRIMARY 1 SecondGPS
MOT_PWM_TYPE 3 BrushedWithRelay
MOT_SAFE_DISARM 1 PWM Disabled when disarmed
MODE1 4 HOLD
MODE2 4 HOLD
MODE3 0 Manual
MODE4 0 Manual
MODE5 10 AUTO
MODE6 10 AUTO
MODE_CH 6 Mode Channel
RC5_OPTION 153 ArmDisarm
RELAY1_DEFAULT 0 Off
RELAY1_FUNCTION 5 Brushed motor relay
RELAY1_INVERTED 0 Normal
RELAY1_PIN 50 AUXOUT1
RELAY2_DEFAULT 0 Off
RELAY2_FUNCTION 6 Brushed motor relay
RELAY2_INVERTED 0 Normal
RELAY2_PIN 51 AUXOUT2
RELAY3_DEFAULT 0 Off
RELAY3_FUNCTION 7 Brushed motor relay
RELAY3_INVERTED 0 Normal
RELAY3_PIN 52 AUXOUT3
RELAY4_DEFAULT 0 Off
RELAY4_FUNCTION 8 Brushed motor relay
RELAY4_INVERTED 0 Normal
RELAY4_PIN 53 AUXOUT4
SERVO1_FUNCTION 33 Motor1
SERVO1_MAX 2000
SERVO1_MIN 1000
SERVO1_REVERSED Reversed
SERVO1_TRIM 1000
SERVO2_FUNCTION 34 Motor2
SERVO2_MAX 2000
SERVO2_MIN 1000
SERVO2_REVERSED Reversed
SERVO2_TRIM 1000
SERVO3_FUNCTION 35 Motor3
SERVO3_MAX 2000
SERVO3_MIN 1000
SERVO3_REVERSED Normal
SERVO3_TRIM 1000
SERVO4_FUNCTION 36 Motor4
SERVO4_MAX 2000
SERVO4_MIN 1000
SERVO4_REVERSED Normal
SERVO4_TRIM 1000
SERVO9_FUNCTION -1 GPIO
SERVO10_FUNCTION -1 GPIO
SERVO11_FUNCTION -1 GPIO
SERVO12_FUNCTION -1 GPIO
SERIAL0_BAUD 115 Serial0 Baud rate
SERIAL0_PROTOCOL 2 Mavlink2
SERIAL1_BAUD 115 Telem1 Baud rate
SERIAL1_PROTOCOL 2 Mavlink2
SERIAL2_BAUD 57 Telem2 Baud rate
SERIAL2_PROTOCOL 23 RCIN
SERIAL3_BAUD 230 Serial3(GPS) Baud rate
SERIAL3_PROTOCOL -1 None
SERIAL4_BAUD 230 Serial4 Baud rate
SERIAL4_PROTOCOL 5 GPS
SERIAL5_BAUD 57 Serial5 Baud rate
SERIAL5_PROTOCOL -1 None

動作確認

CH5のスイッチ操作でアームしました。CH6の3ポジション・スイッチでマニュアルにしました。

メカナムホイールなので狭い部屋でも八の字走行が余裕でできます。楽しいw

改造前のコントローラではモーターON/OFFだけでしたが、今回はスロットル操作で速度を制御できるようになりました。コントロールしやすいですね。

animation.gif

まとめ

GNSSモジュールをつけていて、自宅の窓際では問題なく衛星を捕捉できました。コンパスもだいたい大丈夫そうです。

しかしちょうど雨続きのため、まだ屋外でオートパイロットが試せていません。晴れた日に試すのが楽しみです。

特別新しいネタでもないですけど、ArduPilotを使った4WDローバーの設定方法がまとまっているサイトはそう多くはなかったので、将来の自分のためにもまとめてみました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?