PTK 7465 MG を用いた4脚ロボットの製法

Home > 電子工作 > PTK 7465 MG を用いた4脚ロボットの製法

本記事にはアフィリエイト広告が含まれます。

すき 0
うんこ 0

はじめに

以前、低価格なのに高トルクで高精度のPWMサーボ PTK 7465 MG を入手して大騒ぎさせていただきました。

低価格のPWMサーボのスペックがゲキ高だった ー PTK 7465 MG ー 

 

この時に検証で製作した4脚ロボットを作ってみたいという声をチラホラいただいたので、ここで製法をまとめたいと思います。

 

AudiostockでBGM・効果音を販売中!

PTK 7465 MG

PTKというメーカーによる 7465 MG というマイクロサーボ、
7465W MGというモデルもありこちらは耐水性

ここでは耐水なしの7465 MGを使用しました。

 

以下が驚きの PTK 7465 MG のスペック

低価格なのに 電源 7.4Vで速度が 0.075 sec/60°、トルクが5.5 kg・cm !!
ヤバいって

PWM信号のパルス長 500~2500usec で180°動きます。
つまり中間点(1500usec)から±90°可動します。

 

構成

マイコンにはIMU内蔵のATOM Matrixを使用します。
2セルのLiPoバッテリを使用してマイコンへは5Vに降圧して供給しています。

PWMサーボ PTK 7465 MG は PCA9685 で制御します。

 

 

ここでは筐体パーツは3Dプリント品で、コントローラは専用基板を製作し用いています。

 

回路図

以下が本4脚ロボットのコントロール基板の回路図です。

 

部品

ここで使用した部品は以下のとおりです。

  • ATOM Matrix
     
     
  • PWMサーボ PTK 7465 MG
     

  • PCA9685

  • 5V 降圧DCDC  M78AR05-0.5 

  • 2セル 7.4V LiPoバッテリ

  • LiPoバッテリ用配線コネクタ

  • 電源用スライドスイッチ

 

基板搭載 1608チップ部品は以下のとおり

  • 4.7k ohm:2個 (R9, R10)
  • 220 ohm:8個 (R1~8)
  • 1uF:1個 (C2)

 

ロボット組立てに使用したネジは以下のとおりです。

  • M2×6mmネジ:1本 (ATOMと基板固定用)
  • 20mm M3ネジスペーサ:4個 (基板固定用)
  • M3×6mmネジ:2個 (電源スイッチ固定用)
  • なべタッピングネジ 2×8mm:16本 (ボディとサーボ固定用) 
  • M2×8mmネジ:8本 (サーボホーンと足筐体固定用)
  • M2×10mmネジ:4本 (サーボホーン固定用)
  • なべタッピングネジ 2×10mm:16本 (足パーツ固定用) 

専用基板

以下で専用基板を販売しておりますので宜しければご購入のほどよろしくお願いいたします。
構成がシンプルであるためユニバーサル基板やPCA9685ボードの組合せなどでの自作も容易かと思います。

[電子工作キット] PTK7465MG 4脚ロボット専用基板

 

部品実装済みの基板も販売しております。ご検討ください。

[電子工作キット] PTK7465MG 4脚ロボット専用基板 (部品実装済み)

 

基板のサイズは以下のとおりで、筐体3Dモデルもこの基板サイズを元に製作しています。

 

3Dモデル

3Dモデルは以下よりダウンロードできます。zipファイルがダウンロードされます。
 4脚ロボット筐体用3Dモデル

ここではshoe.stlのみTPUフィラメントで出力し、残りはPLAフィラメントで出力しました。

筐体組み立てキット

3Dプリント品も販売しております。
よろしければご検討ください。

[電子工作キット] PTK7465MG 4脚ロボット 筐体組み立てキット

 

コントロール基板

前述の回路と部品で制御基板を構築します。

 

コントロール基板の電源入力にスライドスイッチを介してバッテリコネクタをはんだ付けします。

 

ATOM Matrixと基板はピンヘッダで接続して、基板間にM2×6mmネジでspacer.stlを通して固定します。

 

Arduinoコード

コントロール基板に載せたATOM matrixに4脚ロボット用コードを書き込みます。

このコードでスマホなどのブラウザやPS4コントローラで4脚ロボットをコントロールできます。
ブラウザアプリにはサーボモータのオフセット調整モードも用意してあります。

ここでのコード開発環境のバージョンは以下の通りです。
 Arduino IDEバージョン:ver. 1.8.19
 ESP32ライブラリ:ver. 2.0.13
 M5Atomライブラリ:ver. 0.1.3
 Kalman Filter Library :ver. 1.0.2
 PS4Controllerライブラリ:ver. 1.1.0
 PCA9685:秋月電子通商作成のPCA9685ライブラリを使用

 

コード説明

L. 12~16  WiFi APモード用設定。SSIDやパスワード、IPを指定 (それぞれ任意)。

L. 22 Preferencesライブラリを使用して調整値をフラッシュに記憶して電源OFF後も保持します。

L. 26~32 PCA9685のアドレスとサーボパルス幅とIOピンを指定
 サーボパルスは500~2500usecになるように設定

L. 36 本ロボットの足の長さです。逆運動学算出時に使用
 大腿長さL1=50mm、下腿長さL2=65mm

L. 49~54 ロボット動作パラメータ初期値。アプリで可変

L. 58~63加速度センサから傾斜角を取得する関数
 ATOM Matrix内蔵のIMUセンサ(MPU6886)で検出した加速度からX軸とY軸の傾斜角を算出

 
L. 66~70 角速度取得関数
 IMUのX軸とY軸の角速度を使用

L. 85~829 ブラウザアプリ表示設定
 APモード接続時の動作モード選択ボタンや各パラメータ設定用の表示
 およびサーボモータオフセット調整ページの記述をしています。 

L. 833~1014 core0動作
 ATOM Matrix デュアルコアのcore0でLEDマトリクス表示とブラウザ表示とIMU処理を実行します。

 慣性センサMPU6886のフルスケールレンジは以下で指定 (L. 837, 838)
 ・加速度:16bit ±2 g
 ・ジャイロ(角速度):16bit ±250 deg/sec

 機体のX軸とY軸の角度を以下の通りLEDインジケータ表示しています。
 インジケータは動作モード実行時は機能しません。
 ・±1°以下:中心で緑表示
 ・±20°以上:赤表示
 ・その他:青表示

 カルマンフィルタライブラリの関数を用いてセンサの姿勢角と角速度を算出 (L. 994~1009)
 

L. 1017~1072 setup関数
 PCA9685用I2C SDA:IO22、SCL:IO23  (L. 1020)

 アプリで設定した各オフセット値はPreferences機能でフラッシュに記録します。
 電源起動時にフラッシュに記録されたオフセット値を読み出します (L. 1039~1060)
 

L. 1075~1498 loop関数
 PS4コントローラ設定 (L. 1076~1111)
  コントローラ接続時に各種動作や足位置を制御 (詳細は後述)

 各種動作モード (L. 1162~1497)
  逆運動学関数で足先の座標を指定して各動作を実現しています。

  ジャンプ動作モード (L. 1162~1199)
   各足の逆運動学関数で足先の座標を指定してバク転動作を実現
   前足を伸ばすタイミングと後ろ足を伸ばすタイミングを
   パラメータDj1, Dj2の時間(msec)で調整可能

  反転(Roll)動作モード (L. 1200~1241)
   ひっくり返った状態から起上って反転動作します。

  屈伸、足踏み、前後進、左右旋回動作モード (L. 1242~1476)
  以下のパラメータで動作を調整可能です。
  ・period:動作の周期時間を指定
  ・x:各足先の前後位置指定
  ・height:各足先の付け根からの高さ位置指定
  ・upHeight:足上げ動作時の上げ量を指定
  ・stride:歩行時の歩幅指定

  IMU動作モード (L. 1477~1487)
   機体の傾きと角速度を検知して足の高さを制御し機体の水平を保ちます。
   それぞれの足の高さをセンサのX軸、Y軸の角度と角速度に応じていわゆるPD制御しています。

   応答はパラメータKp、Kdで調整できます。

  初期姿勢 (L. 1492~1497)
   動作モード以外は全足がパラメータx, heightで指定した位置で固定されます。

 

L. 1502~1511 servo_write() 関数
 サーボIDと角度を指定

L. 1517~1591 逆運動学
 関数 fRIK()、fLIK()、rRIK()、rLIK()でそれぞれの足先座標を指定して、サーボの角度を算出して駆動しています。

 各足の付け根を原点として、高さと前後の座標を指定して以下の式で運動させます。

 各サーボ角度は他のパーツなどに干渉しないようにconstrain関数で動作範囲角度を制限しております。

アプリ画面

  • コードをATOM Matrixに書き込んで、スマホもしくはPCのWiFi接続設定でSSID ”4legRoboPWM”に接続
     パスワード:password

  • ブラウザで”192.168.55.29”にアクセス

動作モードはボタンクリックでONし、再度クリックでOFFします。

パラメータは “-“、”+”をクリックして値を増減させます。
値は電源OFF後も保持されます。

 

“サーボOffset調整”をクリックでオフセット調整画面に遷移して、サーボモータを中間位置 (パルス 1500usec)にするPWM信号が出力されます。

“-“、”+”をクリックして各サーボの位置の微調整します。

戻るボタンでホームに戻りサーボも初期姿勢の角度になります。

 

ロボット組立て

ロボットを組み立てます

ボディ組立て

base.stlの天板6個の穴をM3ネジ用のタッピングでネジ切り

 

base.stlにコントロール基板を20mm M3ネジスペーサで固定、
スイッチは裏からM3×6mmネジで固定します。

 

2セルLiPoバッテリを強力両面テープでbase.stlに固定して、コネクタに接続します (電源スイッチがOFFであることを事前に確認してください)。

 

電源をONにすると先ほど書き込んだコードによって姿勢に応じてLEDマトリクスのインジケータが動きます。

 

サーボ4個をなべタッピングネジ 2×8mm (2か所づつ)でbase.stlに固定します。

 

サーボのコネクタを以下のように基板に接続します。

基板コネクタ向きは棒線側がGNDで、信号名がシルク記載されているほうが信号線です。

ヒップサーボ オフセット調整

付属のサーボホーンには筐体固定用に中心穴から3番目の穴を2mm径で穴あけしておきます (8個すべて加工してください)。

 

電源をONしてブラウザアプリからサーボOffset調整画面にはいり、サーボモータを中間位置 (パルス 1500usec)にします。
その状態でサーボホーンを以下のように水平になるようにはめ込みます (なるべく水平にできればOKです)。

サーボOffset調整アプリのOffset S1, 3, 5, 7の”-“、”+”をクリックして完全に水平になるように微調整してください。

 

 

調整が終わったら電源をOFFします。

大腿組立て

サーボホーンにleg2.stlを固定します。leg2.stlは中心の穴をM2ネジ用のタッピングでネジ切りして、サーボのアームに開けた2mm穴にM2×8mmネジで固定します。

 

M2×10mmネジでアーム軸とも固定します。

 

大腿パーツleg1-1.stl, leg1-2.stlをbase.stlの丸突に通してleg2.stlの先端の穴2か所でなべタッピングネジ 2×10mmでネジ止めします。

 

大腿パーツの先にサーボ4個をなべタッピングネジ 2×8mm (2か所づつ)で固定します。

 

ヒザサーボのコネクタを以下のように基板に接続します。

ヒザサーボ オフセット調整

電源をONしてブラウザアプリからサーボOffset調整画面にはいり、サーボモータを中間位置 (パルス 1500usec)にします。
その状態でヒザのサーボホーンを以下のように下方向に直角になるようにはめ込みます 。

サーボOffset調整アプリのOffset S2, 4, 6, 8の”-“、”+”をクリックして完全に直角になるように微調整してください。

調整が終わったら電源をOFFします。

下腿組立て

下腿パーツleg4.stlとサーボホーンを固定します。
leg4.stlは上から2番目の穴をM2ネジ用のタッピングでネジ切りして、サーボのアームに開けた2mm穴にM2×8mmネジで固定します。

 

leg4.stlとleg3.stlを2個のなべタッピングネジ2×10mmでネジ止めします。

機体完成

足先にTPUフィラメントで出力したshoe.stlを履かせてサーボ配線を整えて機体は完成です。

 

あらためてサーボOffset調整アプリで以下のようにコの字になるように再調整してください。

 
こんな感じ調整

 

ブラウザアプリ動作

ブラウザアプリによる動作についてまとめました。

各パラメータは電源OFF後もメモリ保持されます。

 

動作の様子

 

IMU動作モード

 

PS4コントローラ

本ロボットはPS4コントローラでも動かすことができます。

 
ATOM Matrixの起動時に Bluetooth Mac Addressをシリアル出力させています。
アドレスを控えてコントローラと接続します。

 

PS4コントローラとESP32のペアリング方法の詳細は以下を参照ください。

ロボのBluetooth Mac Addressを書き込んだコントローラのホームボタン⌂を押すとペアリングされます。

PS4ペアリング後にはアプリによるWiFi接続ができませんので、両方実施したい場合はWiFiアプリ接続後にBluetoothコントローラペアリングしてください。

 

コントローラの対応は以下の通り

 

ジョイスティックの左右の上下でロボの右側と左側の歩幅を制御して移動が可能です。

 

ボタンでバク転/起上り、トリガで足位置を変更できます。

トリガで変更した足位置はメモリ記憶されないので電源OFFでリセットされます。

コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください