Files

4.8 KiB

Module SERVO {docsify-ignore-all}


📝描述      :octocat:例程      🔌原理图      🛒购买链接      🎬相关视频   EasyLoader

描述

SERVO 是M5Stack堆叠模块系列中的一款,舵机驱动模块.拥有12个舵机驱动通道,可同时驱动多个 SERVO 舵机.采用直流电源输入设计用于功率补充,并通过 M-BUS,自动为顶部的 M5Core 供电.将这一种简单快捷的舵机驱动方式应用在你的项目中,将提升你的开发效率.

SERVO 基于 MEGA328 芯片进行 I2C 通信(0x53).

产品特性

  • 12x 舵机驱动通道
  • DC 输入: 6-12V
  • DC 连接器类型: XT30 (母头)
  • 产品尺寸:54.2mm x 54.2mm x 12.8mm
  • 产品重量:24.5g

包含

  • 1x M5Stack Servo 模块
  • 1x 常规公对公 XT30 DC 连接器

应用

  • 人形机器人
  • 仿生多关节机器人
  • 3轴舵机云台

相关链接

EasyLoader

点击下载EasyLoader

1.EasyLoader是一个简洁快速的程序烧录器,每一个产品页面里的EasyLoader都提供了一个与产品相关的案例程序.

2.下载软件后,双击运行应用程序,将M5设备通过数据线连接至电脑,选择端口参数,点击 "Burn" 即可开始烧录

!>3.EasyLoader烧录前需要安装有CP210X(USB驱动程序),点击此处查看驱动安装教程

例程

1. Arduino IDE

以下代码仅为片段,如需获取完整代码, 请点击此处..

#include <Arduino.h>
#include <M5Stack.h>
#include <Wire.h>

#define SERVO_ADDR 0x53
void setup() {
    M5.begin(true, false, true);
    M5.Lcd.setTextFont(4);
    M5.Lcd.setCursor(70, 100);
    M5.Lcd.print("Servo Example");

    Wire.begin(21, 22, 100000);
}

// addr 0x01 means "control the number 1 servo by us"
void Servo_write_us(uint8_t number, uint16_t us) {
    Wire.beginTransmission(SERVO_ADDR);
    Wire.write(0x00 | number);
    Wire.write(us & 0x00ff);
    Wire.write(us >> 8 & 0x00ff);
    Wire.endTransmission();
}

// addr 0x11 means "control the number 1 servo by angle"
void Servo_write_angle(uint8_t number, uint8_t angle) {
    Wire.beginTransmission(SERVO_ADDR);
    Wire.write(0x10 | number);
    Wire.write(angle);
    Wire.endTransmission();
}

void loop() {
    for(uint8_t i = 0; i < 12; i++){
        Servo_write_us(i, 700);
        // Servo_write_angle(i, 0);
    }
    delay(1000);
    for(uint8_t i = 0; i < 12; i++){
        Servo_write_us(i, 2300);
        // Servo_write_angle(i, 180);
    }
    delay(1000);
}

2. UIFlow

想要探索最简单的Servo编程驱动方式吗?快试试Blockly编程平台UIFlow.

以下代码仅为片段,如需获取完整代码, 请点击此处..

原理图

相关视频

SERVO 的使用教程

SERVO 的案例