HELLO STEM UNO MOC Driver 兼容乐高积木开发板
1、介绍 点这里回到目录
2、技术规格 点这里回到目录
- 微控制器:ATmega328P
- 工作电压:5V
- 输入电压(推荐):6-9V
- 数字输入输出引脚:14个(其中有6个引脚可作为PWM引脚)
- PWM引脚:6个
- 模拟输入引脚:6个
- 输入/输出引脚直流电流:20毫安
- 3.3V引脚电流:500毫安
- Flash Memory(闪存):32KB
- SRAM(静态存储器):2KB
- EEPROM:1KB
- 内置LED引脚:13
- 下载接口:USB Type-C
- 串口控制器:CH340C
- 支持的编程IDE:Arduino IED,Mixly,mblock, Scratch
3、特征 点这里回到目录
- 这是一款兼容乐高编程积木的Arduino开发板,支持安装在乐高科技积木上,MOC积木上。
- 开发板支持乐高电池供电
- 开发板板载两路马达驱动,可通过编程控制正反转和转速,输出功率为 9V/2A ,输出接口兼容乐高马达接口,支持乐高转向电机,马达电源输出有单独开关控制。
- 自带2.54间距的 G V S 排针扩展接口,方便扩展更多传感器设备。
- 搭配 HS-UNO-EXP3 PH MOC 扩展板,可使用PH2.0端子线,一线连接开发板与传感器。
4、电路板尺寸 点这里回到目录
5、开发板解析 点这里回到目录
- ①复位键
按下复位键,重新运行程序。 - ②USB串口芯片
该芯片负责将USB接收到的数据转换为串口数据给主控芯片。 - ③5V/1A供电模组
供电模组负责主板的供电服务,外部接入的6-12V电源稳压至 5V/2A/10W输出,可驱动多组舵机,玩具马达、微型滑台等设备。 - ④PH2.0 4P电源接口(兼容乐高电池盒)
该接口兼容乐高电池盒线序协议,使用配套的电源转接线即可与乐高电池盒进行连接。该接口输出的电压为6-9V,根据你的输入电压决定。 - ⑤USB接口
USB Type-C接口,负责数据下载和USB供电。 - ⑥3.3V电源芯片
为开发板提供3.3V电压输出。 - ⑦外部供电与USB供电自动切换控制器
FDN340P场效应管+LMV358IDGKR放大器组成的外部供电与USB供电自动切换控制系统。开发板默认由USB接口供电,当外部电源接入后控制器会自动断开USB供电并切换至外部电源供电,外部电源断开后再自动切换为USB供电,该功能可保护电脑不受开发板外部供电的电源干扰。 - ⑧自恢复保险丝
当开发板发生错误连接导致短路时,保险丝会自动断开开发板与电脑之间的电路连接,从而保护电脑USB接口不被烧毁或电脑死机。 - ⑨ 数字 G|V|S 扩展接口
板载数字 G|V|S 接口连接传感器或执行器时更加的方便快捷,搭建项目时也不再需要扩展板。G为GND电源负极,V为VCC电源正极,S为IO信号接口,G/V提供5V/2A的输出功率,满足大部分传感器和执行器的供电需求。 - ⑩ 模拟 G|V|S 扩展接口
板载模拟 G|V|S 扩展接口连接模拟传感器时更加方便快捷,新增A6、A7模拟输入接口,可接入更多传感器。 - ⑪ICSP串行数据接口
为开发板写入初始化程序或使用编译器下载程序时连接此接口。 - ⑫ ATMEGA328P主控芯片
ATMEGA328P主控芯片是开发板的大脑,负责程序存储、执行、运算处理、信号输入输出等功能。 - ⑬晶振
为ATMEGA328P主控芯片提供时钟信号。 - ⑭LED指示灯
板载4个LED指示灯,(ON)为电源指示灯,通电既亮,(RX)(TX)为串口信号指示灯,当有串口信号通信时LED灯闪烁,(L)为D13管脚灯,当D13信号为High时,该灯点亮。 - ⑮马达、电机驱动芯片及驱动开关
板载两颗达驱动芯片,输出功率9V |2A, 支持PMW调速 ,驱动芯片的中间设有一个拨动开关,来控制马达驱动是否工作。 - ⑯马达、电机接口
马达接口采用PH2.0 4P端子接口,接口线序兼容乐高马达线序,使用附带的转接线可直接与乐高马达连接。 - ⑰XH2.54电源接口
该接口主要用于连接锂电池供电,输入电压为6-9V。 - ⑱乐高积木安装孔
安装孔直径4.7mm,与乐高积木件完全兼容。
须知
HELLO STEM UNO MOC Driver 具有可复位的多保险丝,可保护计算机的 USB 端口免受短路和过流的影响。如果对 USB 端口施加超过 1A 的电流,保险丝将自动断开连接,直到短路或过载被移除。
6、专用乐高马达、电机接口 点这里回到目录
马达接口采用PH2.0 4P端子接口,接口线序兼容乐高马达线序,使用附带的转接线可直接与乐高马达连接。
7、传感器及扩展配件接口 点这里回到目录
板载数字 G|V|S 接口连接传感器或执行器时更加的方便快捷,搭建项目时也不再需要扩展板。 G/V提供5V/2.5A的输出功率,满足大部分传感器和执行器的供电需求。
8、加装扩展板 点这里回到目录
加装扩展板,你可以利用 PH2.0 端子线,实现一线连接开发板与传感器,简化接线过程,让初学者更加容易上手。
9、驱动下载及安装 点这里回到目录
Windows 7、8、10、11 系统 USB 驱动下载及安装方法:点击查看
Mac OS 系统 USB 驱动下载:CH34X USB串行Mac OS驱动程序下载安装说明
10、示例搭建及示例程序 点这里回到目录
1、板载电机/马达驱动测试
注意:乐高9686电池盒输出为9V,电机驱动电源是直连9686电池盒输入端,电机驱动电压与电池盒电压一致输出也是9V,所以板载驱动只能接兼容乐高电机/马达,非兼容乐高的电机通电工作后可能会烧坏。
因乐高电机的功耗较大,推荐使用南孚电池,其它电池会因电流不够大导致不能正常工作。
Mixly 米思齐测试程序1:点击下载
注意:1、该程序适合测试转向电机和电机,因为没有加刹车程序,测试电机时电机的转动惯性会影响转动准确度。
2、遇到开发板不稳定的情况,通常是因为电池供电不足,请把速度值设小一点,例如(200)或(-200)
Arduino IDE 测试程序1(复制下方代码粘贴到IDE编辑器中上传)
注意:1、该程序只适合测试M号电机和转向电机,因为没有加刹车程序,测试电机时电机的转动惯性会影响转动准确度。
2、遇到开发板不稳定的情况,通常是因为电池供电不足,请把速度值设小一点,例如(200)或(-200)
//该程序测试电机的正反转和转向舵机左右转向,双电机输出,正转2秒,停两秒,反转两秒,停两秒
//电机速度设置:255为正转,-255为反转,0为停止。如果你认为方向不对,那你就把参数反向修改一下。
//转向电机速度设置:255为向A方向旋转,-255为向B方向旋转,0为回正,延时代表转向停留时间
//电机调速:正转调速(0)-(255),让电机转起来数值最少要100以上,数值255为最快
//电机调速:反转调速(0)-(-255),让电机转起来数值最少要-100以上,数值-255为最快
void setMotor8833(int speedpin, int dirpin, int speed) {
if (speed == 0) {
digitalWrite(dirpin, LOW);
analogWrite(speedpin, 0);
} else if (speed > 0) {
digitalWrite(dirpin, LOW);
analogWrite(speedpin, speed);
} else {
digitalWrite(dirpin, HIGH);
analogWrite(speedpin, 255 + speed);
}
}
void setup(){
pinMode(5, OUTPUT);
pinMode(4, OUTPUT);
digitalWrite(5, LOW);
digitalWrite(4, LOW);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
}
void loop(){
setMotor8833(5, 4, 255);
setMotor8833(6, 7, 255);
delay(2000);
setMotor8833(6, 7, 0);
setMotor8833(5, 4, 0);
delay(2000);
setMotor8833(5, 4, -255);
setMotor8833(6, 7, -255);
delay(2000);
setMotor8833(5, 4, 0);
setMotor8833(6, 7, 0);
delay(2000);
}
Mixly 米思齐测试程序2:点击下载
注意:1、该程序专用于测试电机,适用与M、L、XL电机测试,测试时请根据实际情况来调整刹车时间
2、遇到开发板不稳定的情况,通常是因为电池供电不足,请把速度值设小一点,例如(200)或(-200)
Arduino IDE 测试程序2(复制下方代码粘贴到IDE编辑器中上传)
注意:1、该程序专用于测试电机,适用与M、L、XL电机测试,测试时请根据实际情况来调整刹车时间
2、遇到开发板不稳定的情况,通常是因为电池供电不足,请把速度值设小一点,例如(200)或(-200)
void setMotor8833(int speedpin, int dirpin, int speed) {
if (speed == 0) {
digitalWrite(dirpin, LOW);
analogWrite(speedpin, 0);
} else if (speed > 0) {
digitalWrite(dirpin, LOW);
analogWrite(speedpin, speed);
} else {
digitalWrite(dirpin, HIGH);
analogWrite(speedpin, 255 + speed);
}
}
void setup(){
pinMode(5, OUTPUT);
pinMode(4, OUTPUT);
digitalWrite(5, LOW);
digitalWrite(4, LOW);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
}
void loop(){
setMotor8833(5, 4, 255);
setMotor8833(6, 7, 255);
delay(2000);
setMotor8833(5, 4, -255);
setMotor8833(6, 7, -255);
delay(60); //刹车时间
setMotor8833(6, 7, 0);
setMotor8833(5, 4, 0);
delay(2000);
setMotor8833(5, 4, -255);
setMotor8833(6, 7, -255);
delay(2000);
setMotor8833(5, 4, 255);
setMotor8833(6, 7, 255);
delay(60); //刹车时间
setMotor8833(5, 4, 0);
setMotor8833(6, 7, 0);
delay(2000);
}