スマホで動くロボットアームを作る

スマホで動くロボットアームを作る

 

続き

只今、6軸制御のアプリ作りに奮闘中。

 

今回の制御方式はESP-32へビットパターン(バイナリデータ)をただただ送りそのままステッピングモーターをドライブする単純な物です。

1秒毎に10000バイト受け取りそのデータを0.1ms間隔の割り込みで各ステッピングモーターのstep信号を更新と言った具合です。

 

なので制御に関する仕事はスマホのアプリでほぼ受け持っています。

この方式のよい所はどんなに複雑な動きでもロボット側には全く影響しません。

ロボットアームが苦手とする直線移動も円弧運動と何ら変わりなくこなせます。

 

アプリ開発にもの凄く役立っているソフトウェア

 

バイナリエディタ「Stirling」で解析

生成された信号が一目瞭然。

作者様に感謝

 

上記のバイナリデータは下記g-codeで作成

G01X0Y0F500
G01X0.1Y0.1Z0.1A0.1B0.1C0.1
G01X-0.1Y-0.1Z-0.1A-0.1B-0.1C-0.1
G01X0.1Y0.1Z0.1A0.1B0.1C0.1F1000
G01X0Y0Z0F2000
G01A0B0C0F500
G01X0.1Y0.1Z0.1A-0.1B-0.1C-0.1F2000
G01X0Y0Z0A0B0C0F500
G01X0.1Y0.2Z0.1A0.2B0.1C0.2
G01X0Y0Z0A0B0C0

 

今は仮の設定で数値入力1で20ステップですが遊星ギヤのギヤ比とステッピングモーターの1ステップの角度に依存します。

 

この実験ではバイナリデータを小さくするため0.1で進めています。

バイナリデータ最初の3Fはビットで言うと00111111で6軸全てにstep信号HI

各軸0.1だからアドレス00と14の2step、アドレス28のBFはビットで言うと10111111となり反転信号がHIで6軸全て反転と言う事になります。

後はFに応じて信号の間隔が変わっていると思います。また、アドレス10Aの87はXYZのみが反転と言う意味で次の3Fでstep信号を送っています。最後の40は終了マークです。

 

こんな感じでアプリの方は順調に進んでおり、xyz座標からの6軸制御にもトライして行きます。(少し停滞ぎみ)

 

ハード面も頑張っていますのでお楽しみに!

 

また、更新します。