亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino 控制 3DR Solo 无人机舵机:Firmata + pyMata 实战教程

组件与物料

组件 数量 备注
Arduino UNO 1
3DR Solo 无人机 1
舵机 (Tower Pro MG996R) 1
Solo 附件口扩展板 1 GitHub 开源设计

项目简介

前言

3DR Solo 开发环境完善但 I/O 有限:附件口仅引出 CAN、MAVLink 串口(接飞控)、USB(接 Sololink i.MX6)。通过 Arduino + Firmata 可扩展传感器、舵机、LED 等任意 Arduino 功能。本教程演示用 Solo 控制舵机摆动。

软件前置

步骤 1:Arduino 烧录 StandardFirmata

Arduino 控制 3DR Solo 无人机舵机:Firmata + pyMata 实战教程
Arduino 控制 3DR Solo 无人机舵机:Firmata + pyMata 实战教程

文件 → 示例 → Firmata → StandardFirmata,选板卡端口,上传。

步骤 2:硬件组装

Arduino 控制 3DR Solo 无人机舵机:Firmata + pyMata 实战教程
Arduino 控制 3DR Solo 无人机舵机:Firmata + pyMata 实战教程
Arduino 控制 3DR Solo 无人机舵机:Firmata + pyMata 实战教程
Arduino 控制 3DR Solo 无人机舵机:Firmata + pyMata 实战教程

注:扩展板暂未商业销售,设计文件见 GitHub

步骤 3:获取 pyMata 与示例脚本

需 pyMata 库 (Python Firmata 客户端) 与示例脚本 SoloServoSweep.py。

步骤 4:文件传输到 Solo

  1. 电脑连接 Solo WiFi 热点
  2. FileZilla 连接 sftp://10.1.1.1,用户名 root,密码 TjSDBkAu
  3. 将 SoloServoSweep.py 上传至 /home/root/
Arduino 控制 3DR Solo 无人机舵机:Firmata + pyMata 实战教程
Arduino 控制 3DR Solo 无人机舵机:Firmata + pyMata 实战教程

步骤 5:SSH 登录 Solo

PuTTY 连接 10.1.1.1:22,用户 root,密码 TjSDBkAu。全程保持 WiFi 连接。

Arduino 控制 3DR Solo 无人机舵机:Firmata + pyMata 实战教程
Arduino 控制 3DR Solo 无人机舵机:Firmata + pyMata 实战教程
Arduino 控制 3DR Solo 无人机舵机:Firmata + pyMata 实战教程

步骤 6:安装 pyMata

pip install pymata
Arduino 控制 3DR Solo 无人机舵机:Firmata + pyMata 实战教程

步骤 7:运行示例

python SoloServoSweep.py
Arduino 控制 3DR Solo 无人机舵机:Firmata + pyMata 实战教程

代码

SoloServoSweep.py (Python)

from PyMata.pymata import PyMata
import time
import sys

SERVO_MOTOR = 9   # 舵机信号线接 D9
END = 170         # 最大摆动角度

board = PyMata("/dev/ttyACM0")  # Arduino 串口设备
board.servo_config(SERVO_MOTOR)

try:
    while True:
        for i in range(0, END):      # 正向扫描
            board.analog_write(SERVO_MOTOR, i)
            time.sleep(0.015)
        for i in range(END, 0, -1):  # 反向扫描
            board.analog_write(SERVO_MOTOR, i)
            time.sleep(0.015)
except KeyboardInterrupt:
    board.close()
    sys.exit()

自定义零件

Solo 扩展板设计文件:GitHub

原理图

Arduino 控制 3DR Solo 无人机舵机:Firmata + pyMata 实战教程

制造工艺

  1. DIY 蓝牙控制 Arduino 间谍小车
  2. FlickMote:基于手势的智能家居红外遥控器
  3. DIY Arduino TV-B-Gone:万能关机遥控器
  4. 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
  5. 舵机驱动避障机器人:基于 Arduino 与 HC-SR04 构建
  6. Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
  7. Arduino 项目优化供电方案:从按键开关到电池监测与数据记录
  8. Arduino 井字棋游戏:MAX7219 点阵屏 + 纸板外壳 DIY
  9. 从零构建智能 Arduino 四足机器人:完整指南
  10. Arduino + MPU6050 姿态控制舵机:SG90 与 MG996R 精准跟随实战
  11. DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
  12. ServoTimer2 库指南:解决 Timer1 冲突的舵机控制方案