ArduinoでSoloドローンのサーボ制御をマスター:簡単セットアップ&スイープチュートリアル
部品と材料
| Arduino UNO | ×1 | |
| 3DR Solo | ×1 | |
| サーボ (Tower Pro MG996R) | ×1 | |
| Soloブレークアウト基板 | ×1 |
このプロジェクトについて
イントロ
Soloには優れた開発環境がありますが、I/Oが不足しています。現在、アクセサリーポートからはCAN、PixhawkへのMavlinkシリアル、SoloLink(imx6)へのUSBが出ています。ArduinoとFirmataを使えば、カスタムセンサー追加、サーボ制御、LED点滅、その他Arduinoのあらゆる機能を追加できます。
このチュートリアルでは、ArduinoとSoloを連携させてサーボを制御する手順を解説します。
ソフトウェア前提条件:
- Solo ファームウェア 1.2.0 以上
- Arduino IDE
- FileZilla
- PuTTY または任意のSSHクライアント
ステップ1:Arduino UnoにFirmataホストをアップロード


例題から StandardFirmata を開く。ボードとポートを選択。アップロード!
ステップ2:ハードウェアセットアップ
パーツ




※ ブレークアウト基板は現時点では販売されていません。詳細はこちらを参照。
組み立て





電源投入

ステップ2:pyMataとコードのダウンロード
pyMata
SoloServoSweep.py
ステップ3:Soloへファイル転送
- SoloのWi-Fiネットワークに接続!


ステップ4:SoloにSSH接続
OSのSSHクライアントでSoloにSSH接続。Windowsの場合はPuTTYを使用。



SoloのWi-Fiに接続したままにしてください!
写真のキャプションも参照してください
ステップ5:pyMataのインストール
SSHセッションで以下のコマンドを実行:
期待される結果:

ステップ7:例の実行
SSHセッションを開いたまま以下を実行:

コード
SoloServoSweep.py Python
SoloからPythonでサーボを駆動
from PyMata.pymata import PyMata
import time
import sys
SERVO_MOTOR = 9 # サーボ接続ピン
END = 170 # サーボ最大移動角度
# PyMataインスタンス作成
board = PyMata("/dev/ttyACM0")
# ピンをサーボとして設定
board.servo_config(SERVO_MOTOR)
try:
while True:
for i in range(0, END): # スイープアップ
board.analog_write(SERVO_MOTOR, i)
time.sleep(.015)
for i in range(END, 0, -1): # スイープダウン
board.analog_write(SERVO_MOTOR, i)
time.sleep(.015)
except KeyboardInterrupt:
board.close()
sys.exit()
カスタムパーツとエンクロージャ
Soloブレークアウト基板
3DR Soloアクセサリーポート用ブレークアウト基板
https://github.com/3drobotics/Pixhawk_OS_Hardware/tree/master/Accessory_Breakout_X1
回路図
製造プロセス
- Bluetooth操作のArduinoスパイボットを自作する
- FlickMote:ジェスチャー操作のIRリモコンでスマートホームを制御
- 自作Arduino TV-B-Gone:全テレビ対応の万能リモコン
- 12メートル先から見える大型LEDマスタークロック(アラーム機能付き)を自作しよう
- ArduinoとHC-SR04で作るサーボ駆動障害物回避ロボット
- ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
- Arduinoプロジェクトのための最適化電源ソリューション
- Arduino三目並べ:MAX7219 LEDマトリクスと段ボールケースで自作
- スマートArduino四足歩行ロボットの製作:ステップバイステップガイド
- Arduino & MPU6050:SG90 & MG996Rサーボの精密制御
- ゲーム用カスタムArduinoジョイスティックハンドルの製作