Skip to content

hshin-git/M5RadioControl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5ad3acb · Jul 24, 2022

History

50 Commits
Jul 24, 2022
Jul 24, 2022
Feb 27, 2022
Feb 15, 2022
Mar 17, 2022
Mar 5, 2022

Repository files navigation

M5RadioControl

DIY Radio Control system by M5Stack

IMG_RC_SYSTEM

  • M5RadioControl(M5RC)は、RCシステムの送信機TX/受信機RXをM5Stackで自作するためのオープンソースソフト(OSS)です。
  • RCシステムの標準機能(ペアリング、モデルメモリ、トリム、リバース、D/R、EPA、EXP等)に加えて独自機能を実現します。
  • 独自機能は、「ダンシングライダー」気分の操縦機能、「走る実験室」気分のテレメータ/ロギング機能等です。
  • 送信機TXは「M5Stack Gray」、受信機RXは「M5Atom Matrix」と「M5StickC」で動作確認済みです。
  • TX/RX間の通信は、「ESP-NOW」を利用して、下り(TXからRXへ)約100Hz、上り(RXからTXへ)約300Hz、到達距離20m程度です。

DEMO

M5RCシステムをタミヤ製のRCカー(グラスホッパー2)とミニ四駆(FM-Aシャーシ)へ搭載した事例です。

M5RC_GR02 M5RC_M4WD

Features

退屈な標準機能の解説をすっ飛ばして、独自機能の「ロマン溢れる使い方」を解説します。

ダンシング・コントロール機能

送信機TXのグリップ自体を「操縦桿」の様に傾けることでRCカーを操縦できます。 例えばタミヤT3-01を操縦すると、貴方は「ダンシングライダー(オジサン)」の世界に没入できます。

T3-01

テレメータ/ロギング機能

RCカー搭載IMU(慣性計測ユニット)のテレメータ/ロギングにより、貴方専用の「走る実験室」をお手軽に実現できます。 走行データの定量分析により「ホンダF1のエンジニア」気分でデータドリブンにマシンをセッティングできます。

M4WD-plot M4WD-traj

こちらはミニ四駆コースの走行データ例(三週目の立体交差でコースアウト)です。 IMUデータは、シャーシ固定座標系に対する成分表示で、右がx成分、前がy成分、上がz成分です。 3D軌跡は、車速vyがスロットル(ch2)に比例すると仮定してAHRS計算値(pitch、yaw)を積算した結果です。 AHRS計算値に少しバイアスが乗っていますが、走行データから三次元的なコースレイアウトが分かります。

ステアリング・アシスト機能

RCカーのステアリング操作をPIDコントローラが素早くアシストしてスピンを防ぎます。 例えばヨコモYD-2を操縦すると、貴方は安全かつ地球に優しく「頭文字D」の世界に浸れます。

M5RC_DRIFT

ソースコードは、こちらの「ラジドリ用ジャイロGyroM5」を流用しています。 PIDコントローラのパラメータ調整は、プロポ(送信機)側メニューから設定すると即反映のお手軽さです。

ドレミファ・インバータ機能

ブラシモーターのスイッチング周波数をタイマとスロットルに応じてプログラムできます。 例えばVVVFインバータ調サウンドにプログラムすると、貴方は電車運転士の気分です。

RAILWAY_HDR

Requirement

Software

  • M5RCのFW開発環境: 「ArduinoIDE」(必須、M5TX/M5RXコンパイル&マイコン転送用)
  • IMUデータ分析環境: 「Python/Anaconda」(テレメータ/ロギング機能利用時のみ、tool実行用)

Hardware

  • M5RC送信機TX: 「M5Stack Gray」「A/Dコンバータ(I2C接続)」と「RC送信機の筐体(コントローラ)」
  • M5RC受信機RX: 「M5Atom Matrix」または「M5StickC」と「RC受信機の配線(ワイヤハーネス)」
  • ホビー用RCカー: RCカーのシャーシ、ステアリング用サーボとスロットル用ESC(電子式スピードコントローラ)

M5RC-System

Installation

Sotware

Hadware

M5TXの配線

M5Stackは、GROVEポート経由でADコンバータと接続します。 M5Stackの筐体は、適当な方法でRC送信機の筐体に固定してください。 例えばスマホ用メタルプレートをRC送信機に取り付けた上、M5Stackをマグネット留めすると着脱が容易です。

M5Stack Gray in/out ADC
GND out GND
5V out VDD
G21(SDA) in/out SDA
G22(SCL) out SCL

ADコンバータは、RC送信機TXのステアリング/スロットル位置検出用の可変抵抗(VRのA/B/C端子)と接続します。 ADコンバータの入力チャンネルA3は、電圧VDDの測定用に使うので正味のチャンネル数は3です。

ADC in/out TX (VR)
GND out VR (A)
VDD out VR (C)
A0 in VR (B1)
A1 in VR (B2)
A3 in VR (C)

なお標準的なADコンバータTI製ADS1115の場合、サンプリングレートが最大860回/秒なので、3ch計測のとき最大860/3=286回/秒です。 これにI2C通信やパケット送信の時間を加えた結果、最終的なM5TXの送信周期は約100回/秒でした。 より高速なADコンバータを利用すれば、M5TXの送信周期は更に高められそうです。

M5RXの配線

M5Atomは、ホビー用RCユニット(サーボ、ESC)の電源及び信号線(-/+/S)と接続します。 GROVE端子は、自作モータードライバ(H-bridge)のゲート信号出力用に使います。

M5Atom in/out RC Units
GND in RC (-)
5V in RC (+)
G22 out RC (S1)
G19 out RC (S2)
G26 out DIY-ESC
G32 out DIY-ESC

M5StickCの場合、以下のように接続します。

M5StickC in/out RC Units
GND in RC(-)
5Vin in RC(+)
G26 out RC(S1)
G0 out RC(S2)
G32 out DIY-ESC
G33 out DIY-ESC

Usage

多機能なソフトウェアなので、ぼちぼち追記します。

  • 送信機TX画面: 左エリアがバラメータ表示(縦スクロール)、右エリアがコマンド/IMUデータ表示(2Dカーソル)です。
  • 送信機TX操作: パラメータ選択時はボタン「[A]上へ、[C]下へ、[B]決定」、パラメータ調整時はボタン「[A]減らす、ボタン[C]増やす、[B]決定」の操作です。
  • ペアリング: 受信機RX側はボタン[A]を押して起動、送信機TX側はメニュー「pairing」選択で、ペアリングモードに入ります。
  • 注意点など: 送信機TX側はA/Dコンバータを外して電源オンすると起動中にブロックします(I2C通信にタイムアウトが無いので)。

Reference

ラジコン関係

電子部品関係