Romeo mini 控制器(ESP32-C3)

简介

Romeo mini机器人控制器是Romeo BLE mini的ESP32版,板载一颗EPS32-C3模组,支持Wi-Fi 和 Bluetooth 5双模通讯,拥有两路1.7A电机驱动。

Romeo mini具备11路IO接口(复用模拟、数字、UART、I2C),每个接口都兼容Gravity标准,可以外接各类Gravity传感器模组,舵机接口可以通过舵机电源口供电,为舵机等大电流设备提供稳定的电源供应,背面还板载一个GDI接口,可连接IPS显示屏,显示项目中所需要的信息,控制器可满足机器人电机、舵机两种控制方案。

技术规格

基本参数

接口引脚

功能引脚示意图

引脚示意图 引脚示意图
名称 功能描述
VIN 电机驱动和控制器外接电源:5~12V,必须连接该端口,M1/M2电机才工作
Servo 数字口电源输入5~12V,如在数字输出口(VCC端)使用大电流高于5V电压外设,可连接该接口,
否则可能烧毁Type-C USB接口
M1/M2端口 2路电机控制端;
M1:GPIO1(方向控制),GPIO0(PWM控制)
M2:GIPO10(方向控制),GPIO2(PWM控制)
I2C 标准I2C接口;SDA(8),SCL(9),VCC(3.3V),GND
A-3.3V-GND 标准模拟接口;
A(蓝色):模拟口3,4,5;
3.3V(红色):电源正极;
GND(黑色):电源负极;
D-VCC-GND 标准数字接口;
D(绿色):数字口6,7,20,21;
VCC(红色):电源正极(当Servo端口未接电源时,VCC为5V;
当Servo端口接上电源时VCC为Servo端的输入电源);
GND(黑色):电源负极
UART RX(20),TX(21),VCC(5V),GND
因为UART与其中两路舵机复用IO口,所以使用舵机时,无法使用UART口
RST 控制器复位按键
BOOT 控制器下载按钮

尺寸图

尺寸图

使用教程

1、Arduino环境配置

当您首次使用ESP32-C3相关开发板,您需要了解以下步骤

注意:电脑首次连接romeo mini模块时,若usb口无法正常显示,需要先长按住BOOT键再按点击RST键,最后同时松开BOOT与RST键

  1. 添加IDE中的json链接
  2. 下载主控的核心
  3. 选择开发板以及串口
  4. 打开示例程序并烧录
  5. 了解串口监视器

Beetle ESP32-C3

Beetle ESP32-C3

Beetle ESP32-C3

Beetle ESP32-C3

Beetle ESP32-C3

Beetle ESP32-C3

Beetle ESP32-C3

Beetle ESP32-C3

Beetle ESP32-C3

Beetle ESP32-C3

Beetle ESP32-C3

2、PWM驱动直流电机

需要准备

连接图

模块5-12V供电,根据电机选择合适的供电电压。

电机连接图

控制方式

EN PH 功能
H H 正向
H L 反向
PWM L 正向
PWM H 反向

示例代码

int EN1 = 0; //M1电机PWM控制
int PH1 = 1; //M1电机方向控制
int EN2 = 2;//M2电机PWM控制
int PH2 = 10;//M2电机方向控制
void setup() {
  pinMode(EN1, OUTPUT);
  pinMode(PH1, OUTPUT);
  pinMode(EN2, OUTPUT);
  pinMode(PH2, OUTPUT);

}
void loop() {
  M1_Forward(200);//M1路电机正转,PWM调速
  M2_Forward(200);//M2路电机正转,PWM调速
  delay(5000);
  M1_Backward(200);//M1路电机反转,PWM调速
  M2_Backward(200);//M2路电机反转,PWM调速
  delay(5000);
}

void M1_Forward(int Speed1) //正向快衰模式,Speed1值越大,电机转动越快
{
  analogWrite(EN1, Speed1);
  digitalWrite(PH1, LOW);
}

void M1_Backward(int Speed1) //反向慢衰模式,Speed2值越小,电机转动越快
{
  int Speed2 = 255 - Speed1;
  analogWrite(EN1, Speed2);
  digitalWrite(PH1, HIGH);
}

void M2_Forward(int Speed1)
{
  analogWrite(EN2, Speed1);
  digitalWrite(PH2, LOW);
}

void M2_Backward(int Speed1)
{
  int Speed2 = 255 - Speed1;
  analogWrite(EN2, Speed2);
  digitalWrite(PH2, HIGH);
}

示例结果:烧录示例程序,M1与M2电机先同时快速正转,然后M1与M2电机同时慢速反转

3、PWM驱动舵机

需要准备

连接图

如果需要用到高于5V电压的舵机或外设,可连接Servon端到电源,供电范围为5-12V,Servon端输入多少电压,VCC端电压就等于Servon端输入电压,Servon端不连接时,VCC端电压默认5V。

电机连接图

示例代码

void setup(){
    ledcSetup(0, 50, 10); //通道0, 5KHz,10位解析度
    ledcAttachPin(6, 0); //pin6定义为通道0的输出引脚
}
void loop(){
    ledcWrite(0, 125); // 通道0输出, PWM输出0~100%(0~2^10=1024)
    delay(1000);
    ledcWrite(0, 25);
    delay(1000); 
}

示例结果:烧录示例程序,1路舵机循环0-180°来回转动

4、驱动SPI屏幕

需要准备

接线图

显示屏连接图

示例代码

#include "DFRobot_GDL.h"
#define TFT_DC  8
#define TFT_CS  7
#define TFT_RST 9

DFRobot_ST7789_172x320_HW_SPI screen(/*dc=*/TFT_DC,/*cs=*/TFT_CS,/*rst=*/TFT_RST);
/* M0 mainboard DMA transfer */
//DFRobot_ST7789_172x320_DMA_SPI screen(/*dc=*/TFT_DC,/*cs=*/TFT_CS,/*rst=*/TFT_RST);
void setup() {
  screen.begin();
  screen.setTextSize(2);
  screen.fillScreen(COLOR_RGB565_BLACK);//背景颜色
  screen.setFont(&FreeMono24pt7b);//字体大小(9 12 18 24)
  screen.setCursor(/*x=*/32,/*y=*/200);//文字位置
  screen.setTextColor(COLOR_RGB565_LGRAY);//文字颜色
  screen.setTextWrap(true);
  screen.print("DF");//英文字符
}
void loop() {
}

示例结果: 烧录示例程序,屏幕显示灰色英文“DF”

屏幕点亮示意图

常见问题

烧录报错

原因

解决办法

串口无打印

解决办法

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。

更多

DFRobot 商城购买链接