简介
这是一款深度适配行空板K10的多功能扩展板,同时也支持结合microbit、掌控板等主板使用,解决多功能引脚不足、需外接电源、舵机/电机驱动能力不足等问题。
在为主板增加大量ADC、PWM、单总线、超声波等多功能IO引脚的同时,也保留了主板的原生金手指接口,并且集成了板载RGB灯、红外发射/接收功能。集成 18650 电池座与充放电电路,告别线缆和外接电池,同时板载电量指示灯,实现安全供电、便捷充电、持久续航,项目移动性大幅提升。集成四路直流电机驱动,舵机接口使用独立电源,可同时驱动4路电机和6路舵机。提供1路5V I2C接口,可用于驱动HUSKYLENS等大功率设备。底部M3安装孔孔距兼容乐高积木尺寸,可以结合乐高进行搭建。集成系统电源状态、电机正反转状态、电池电量、充电状态等多种指示灯,方便查看系统工作状态。所有接口都有清晰标注和彩色的接口区分,使用直观。
配合DFRobot强大的Gravity生态,让行空板K10创造更多可能。
产品特点
- 板载4路直流电机驱动
- 板载18650充电电池仓及充电电路,USB-C充电接口
- 板载红外收发模块,RGB灯,增加可玩性
- 协处理器扩展多路GPIO,可外接更多传感器
- 支持5V I2C,外接二哈视图供电更稳定
技术规格
数字输入/输出IO:8个
全功能IO:6个
舵机接口:6个
I2C:4个(内含5V I2C * 1)
电池规格:18650可充电电池
充电输入规格:USB-C 5V
电机接口:4个直流电机
板载外设:RGB灯珠 * 2;红外发射; 红外接收器; TRIG超声波接口
尺寸:65 * 88mm
重量:200g
功能说明
行空板K10使用教程
硬件准备
软件准备
- 使用Mind+
Mind+下载
Mind+用户库:
https://gitee.com/yeezb/ext-unihiker-expansion
[]
将上述URL链接复制到扩展->用户库的搜索框进行搜索导入
- 使用Arduino IDE
Arduino IDE下载(需下载Arduino 1.8.19及以下版本)
Arduino library:
https://gitee.com/dfrobot/DFRobot_UnihikerExpansion
样例一 数字输入输出
额外硬件准备
Gravity: 数字LED发光模块 * 1
Gravity: 数字大按钮模块 * 1
硬件连接
Mind+
Arduino IDE
#include "DFRobot_UnihikerExpansion.h"
DFRobot_UnihikerExpansion_I2C eunihiker(&Wire);
void setup()
{
Serial.begin(115200);
while(!eunihiker.begin()){
Serial.println("NO Deivces !");
delay(1000);
}
Serial.println("Device connected !");
eunihiker.setMode(eC0, eReadGpio);
eunihiker.setMode(eC1, eWriteGpio);
}
void loop()
{
if(eunihiker.getGpioState(eC0) == 1){
eunihiker.setGpioState(eC1, eHIGH);
}
else{
eunihiker.setGpioState(eC1, eLOW);
}
}
样例二 模拟输入
额外硬件准备
Gravity: 模拟角度传感器 * 1
Mind+
Arduino IDE
#include "unihiker_k10.h"
#include "DFRobot_UnihikerExpansion.h"
DFRobot_UnihikerExpansion_I2C eunihiker(&Wire);
UNIHIKER_K10 k10;
uint8_t screen_dir=2;
void setup() {
k10.begin();
while(!eunihiker.begin()){
Serial.println("NO Deivces !");
delay(1000);
} Serial.println("Device connected !");
eunihiker.setMode(eC0, eADC);
k10.initScreen(screen_dir);
k10.creatCanvas();
}
void loop() {
k10.canvas->canvasText((eunihiker.getADCValue(eC0)), 1, 0x0000FF);
k10.canvas->updateCanvas();
}
样例三 舵机驱动
额外硬件准备
DFRobot DF9GMS 180° 微型舵机 * 1
DFRobot DF9GMS 360°微型舵机 * 1
Mind+
Arduino IDE
#include "DFRobot_UnihikerExpansion.h"
DFRobot_UnihikerExpansion_I2C eunihiker(&Wire);
void setup()
{
Serial.begin(115200);
while(!eunihiker.begin()){
Serial.println("NO Deivces !");
delay(1000);
}
Serial.println("Device connected !");
eunihiker.setServo360(eServo0, eForward, 50);
}
void loop()
{
eunihiker.setServoAngle(eServo1, 90);
delay(1000);
eunihiker.setServoAngle(eServo1, 180);
delay(1000);
}
效果
180°舵机变换角度
360°舵机持续旋转
样例四 板载RGB灯
Mind+
Arduino IDE
#include "DFRobot_UnihikerExpansion.h"
DFRobot_UnihikerExpansion_I2C eunihiker(&Wire);
uint32_t led[2] = {0x000000, 0x000000};
void setup()
{
Serial.begin(115200);
while(!eunihiker.begin()){
Serial.println("NO Deivces !");
delay(1000);
}
}
void loop()
{
led[0] = 0x0000FF;
eunihiker.setWS2812((uint32_t*)led, 5*25);
led[1] = 0x0000FF;
eunihiker.setWS2812((uint32_t*)led, 5*25);
delay(1000);
led[0] = 0xFF0000;
eunihiker.setWS2812((uint32_t*)led, 5*25);
led[1] = 0xFF0000;
eunihiker.setWS2812((uint32_t*)led, 5*25);
delay(1000);
led[0] = 0x33CC00;
eunihiker.setWS2812((uint32_t*)led, 5*25);
led[1] = 0x33CC00;
eunihiker.setWS2812((uint32_t*)led, 5*25);
delay(1000);
}
样例五 红外收发
Mind+
Arduino IDE
#include "DFRobot_UnihikerExpansion.h"
#include "unihiker_k10.h"
DFRobot_UnihikerExpansion_I2C eunihiker(&Wire);
UNIHIKER_K10 k10;
uint8_t screen_dir=2;
int times;
void setup()
{
k10.begin();
Serial.begin(115200);
while(!eunihiker.begin()){
Serial.println("NO Deivces !");
delay(1000);
}
k10.initScreen(screen_dir);
k10.creatCanvas();
}
void loop()
{
times = 1;
while (!(times==5)) {
eunihiker.sendIR(12345);
k10.canvas->canvasText(eunihiker.getIRData(), times, 0x0000FF);
k10.canvas->updateCanvas();
times += 1;conglai
delay(1000);
}
delay(1000);
k10.canvas->canvasClear();
}
样例六 电机驱动
额外硬件准备
带接口金属齿轮减速电机 * 1
Mind+
Arduino IDE
#include "DFRobot_UnihikerExpansion.h"
DFRobot_UnihikerExpansion_I2C eunihiker(&Wire);
void setup()
{
Serial.begin(115200);
while(!eunihiker.begin()){
Serial.println("NO Deivces !");
delay(1000);
}
eunihiker.setMotorPeriod(eMotor1_2, 255);
eunihiker.setMotorPeriod(eMotor3_4, 255);
}
void loop()
{
eunihiker.setMotorDuty(eMotor1_A, 200);
eunihiker.setMotorDuty(eMotor1_B, 0);
delay(3000);
eunihiker.setMotorDuty(eMotor1_A, 0);
eunihiker.setMotorDuty(eMotor1_B, 200);
delay(3000);
}
样例七 电池电量检测
Mind+
Arduino IDE
#include "DFRobot_UnihikerExpansion.h"
#include "unihiker_k10.h"
UNIHIKER_K10 k10;
uint8_t screen_dir = 2;
DFRobot_UnihikerExpansion_I2C eunihiker(&Wire);
void setup()
{
k10.begin();
Serial.begin(115200);
while(!eunihiker.begin()){
Serial.println("NO Deivces !");
delay(1000);
}
eunihiker.setMotorPeriod(eMotor1_2, 255);
eunihiker.setMotorPeriod(eMotor3_4, 255);
k10.initScreen(screen_dir);
k10.creatCanvas();
}
void loop()
{
k10.canvas->canvasText("Battery:", 1, 0x0000FF);
k10.canvas->canvasText((String(eunihiker.getBattery()) + String("%")), 2, 0x0000FF);
k10.canvas->updateCanvas();
Serial.println(eunihiker.getBattery());
delay(1000);
}
样例八 温湿度传感器检测
额外硬件准备
Gravity DHT11温湿度传感器 * 1
Gravity DHT22 温湿度传感器 * 1
硬件连接
Mind+
Arduino IDE
#include "DFRobot_UnihikerExpansion.h"
#include "unihiker_k10.h"
UNIHIKER_K10 k10;
uint8_t screen_dir=2;
DFRobot_UnihikerExpansion_I2C eunihiker(&Wire);
void setup()
{
k10.begin();
Serial.begin(115200);
while(!eunihiker.begin()){
Serial.println("NO Deivces !");
delay(1000);
}
eunihiker.setMode(eC0, eDHT11);
eunihiker.setMode(eC1, eDHT22);
k10.initScreen(screen_dir);
k10.creatCanvas();
}
void loop()
{
sDhtData_t dhtData;
dhtData = eunihiker.getDHTValue(eC0);
k10.canvas->canvasText((String((String("DHT11 Tem: ") + String((dhtData.temperature)))) + String("℃")), 1, 0x0000FF);
k10.canvas->canvasText((String((String("DHT11 Hum: ") + String((dhtData.humidity)))) + String("%")), 2, 0x0000FF);
dhtData = eunihiker.getDHTValue(eC1);
k10.canvas->canvasText((String((String("DHT22 Tem: ") + String((dhtData.temperature)))) + String("℃")), 3, 0x0000FF);
k10.canvas->canvasText((String((String("DHT22 Hum: ") + String((dhtData.humidity)))) + String("%")), 4, 0x0000FF);
k10.canvas->updateCanvas();
delay(1000);
}
样例九 DS18B20温度检测
额外硬件准备
Gravity DS18B20 数字温度传感器 * 1
Mind+
Arduino IDE
#include "unihiker_k10.h"
#include "DFRobot_UnihikerExpansion.h"
DFRobot_UnihikerExpansion_I2C eunihiker(&Wire);
UNIHIKER_K10 k10;
uint8_t screen_dir=2;
void setup() {
k10.begin();
while(!eunihiker.begin()){
Serial.println("NO Deivces !");
delay(1000);
} Serial.println("Device connected !");
eunihiker.setMode(eC0, eDS18B20);
k10.initScreen(screen_dir);
k10.creatCanvas();
}
void loop() {
k10.canvas->canvasText("18B20 Temp:", 1, 0x0000FF);
k10.canvas->canvasText((eunihiker.get18b20Value(eC0)), 2, 0x0000FF);
k10.canvas->updateCanvas();
}
样例十 超声波
额外硬件准备
TRIG-ECHO超声波(需要TRIG/ECHO引脚分开)* 1
Arduino IDE
#include "unihiker_k10.h"
#include "DFRobot_UnihikerExpansion.h"
DFRobot_UnihikerExpansion_I2C eunihiker(&Wire) ;
UNIHIKER_K10 k10;
uint8_t screen_dir=2;
void setup() {
k10.begin();
while(!eunihiker.begin()){delay(1000);}
k10.initScreen(screen_dir);
k10.creatCanvas();
}
void loop() {
k10.canvas->canvasText(eunihiker.getSr04Distance(), 1, 0x0000FF);
k10.canvas->updateCanvas();
delay(1000);
}