简介
这是一款深度适配行空板M10的多功能扩展板,同时也支持结合microbit、掌控板等主板使用,解决多功能引脚不足、需外接电源、舵机/电机驱动能力不足等问题。
在为主板增加大量ADC、PWM、单总线、超声波等多功能IO引脚的同时,也保留了主板的原生金手指接口,并且集成了板载RGB灯、红外发射/接收功能。集成 18650 电池座与充放电电路,告别线缆和外接电池,同时板载电量指示灯,实现安全供电、便捷充电、持久续航,项目移动性大幅提升。集成四路直流电机驱动,舵机接口使用独立电源,可同时驱动4路电机和6路舵机。提供1路5V I2C接口,可用于驱动HUSKYLENS等大功率设备。底部M3安装孔孔距兼容乐高积木尺寸,可以结合乐高进行搭建。集成系统电源状态、电机正反转状态、电池电量、充电状态等多种指示灯,方便查看系统工作状态。所有接口都有清晰标注和彩色的接口区分,使用直观。
配合DFRobot强大的Gravity生态,让行空板创造更多可能。
注:该扩展板也可兼容K10,请参阅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
功能说明
M10使用教程
硬件准备
- 行空板M10 * 1
- 行空板多功能扩展板 * 1
注:多功能扩展板使用时需要单独供电,可通过安装18650电池或从扩展板的USB IN处供电,并需要打开PWR供电开关。
多功能扩展板无法通过金手指为行空板M10供电,行空板M10需要从顶部USB-C处供电。可以借由HY2.0转USB-C线,购买多功能扩展板M10套装实现完全脱机。
软件准备
-
使用Mind+
Mind+下载
Mind+用户库:
https://gitee.com/yeezb/ext-unihiker-expansion
将上述URL链接复制到扩展->用户库的搜索框进行搜索导入
-
使用其他Python编辑器
Python library:
https://gitee.com/dfrobot/DFRobot_UnihikerExpansion
样例一 数字输入输出
额外硬件准备
Gravity: 数字LED发光模块 * 1
Gravity: 数字大按钮模块 * 1
硬件连接
Mind+
Python
from pinpong.board import Board
from dfrobot_unihiker_expansion import UnihikerExpansion, IONum, IOType, GpioState
sys.path.append("/root/mindplus/.lib/thirdExtension/drobot_yeezb-unihikerioexpansion-thirdex")
Board("").begin()
eunihiker = UnihikerExpansion()
eunihiker.set_mode(IONum.C0, IOType.GPIO_IN)
eunihiker.set_mode(IONum.C1, IOType.GPIO_OUT)
while True:
if (eunihiker.get_gpio_state(IONum.C0) == 1):
eunihiker.set_gpio_state(IONum.C1, GpioState.HIGH)
else:
eunihiker.set_gpio_state(IONum.C1, GpioState.LOW)
样例二 模拟输入
Mind+
Python
import sys
sys.path.append("/root/mindplus/.lib/thirdExtension/drobot_yeezb-unihikerioexpansion-thirdex")
from unihiker import GUI
from pinpong.board import Board
from dfrobot_unihiker_expansion import UnihikerExpansion, IONum, IOType
u_gui=GUI()
Board("").begin()
eunihiker = UnihikerExpansion()
eunihiker.set_mode(IONum.C0, IOType.ADC)
ana=u_gui.draw_text(text=eunihiker.get_adc_value(IONum.C0),x=0,y=0,font_size=20, color="#0000FF")
while True:
ana.config(text=eunihiker.get_adc_value(IONum.C0))
样例三 舵机驱动
额外硬件准备
DFRobot DF9GMS 180° 微型舵机 * 1
DFRobot DF9GMS 360°微型舵机 * 1
Mind+
Python
import sys
sys.path.append("/root/mindplus/.lib/thirdExtension/drobot_yeezb-unihikerioexpansion-thirdex")
import time
from pinpong.board import Board
from dfrobot_unihiker_expansion import UnihikerExpansion, ServoNum
from pinpong.board import Board
from dfrobot_unihiker_expansion import UnihikerExpansion, ServoNum, Servo360Direction
Board("").begin()
eunihiker = UnihikerExpansion()
eunihiker.set_servo360(ServoNum.SERVO0, Servo360Direction.FORWARD, 50)
while True:
eunihiker.set_servo_angle(ServoNum.SERVO1,90)
time.sleep(1)
eunihiker.set_servo_angle(ServoNum.SERVO1,180)
time.sleep(1)
样例四 板载RGB灯
Mind+
Python
import sys
sys.path.append("/root/mindplus/.lib/thirdExtension/drobot_yeezb-unihikerioexpansion-thirdex")
import time
from pinpong.board import Board
from dfrobot_unihiker_expansion import UnihikerExpansion, RgbNum
Board("").begin()
eunihiker = UnihikerExpansion()
while True:
eunihiker.set_ws2812(RgbNum.RGB0, 0x0000FF)
eunihiker.set_bright(5*25)
eunihiker.set_ws2812(RgbNum.RGB1, 0x0000FF)
eunihiker.set_bright(5*25)
time.sleep(1)
eunihiker.set_ws2812(RgbNum.RGB0, 0xFF0000)
eunihiker.set_bright(5*25)
eunihiker.set_ws2812(RgbNum.RGB1, 0xFF0000)
eunihiker.set_bright(5*25)
time.sleep(1)
eunihiker.set_ws2812(RgbNum.RGB0, 0x00FF00)
eunihiker.set_bright(5*25)
eunihiker.set_ws2812(RgbNum.RGB1, 0x00FF00)
eunihiker.set_bright(5*25)
time.sleep(1)
样例五 红外收发
Mind+
Python
import sys
sys.path.append("/root/mindplus/.lib/thirdExtension/drobot_yeezb-unihikerioexpansion-thirdex")
import time
from unihiker import GUI
from pinpong.board import Board
from dfrobot_unihiker_expansion import UnihikerExpansion
u_gui=GUI()
Board("").begin()
eunihiker = UnihikerExpansion()
while True:
sec = 1
while not ((sec == 5)):
eunihiker.send_ir(12345)
time.sleep(0.1)
text=u_gui.draw_text(text=eunihiker.get_ir_data(),x=0,y=(sec * 25),font_size=20, color="#0000FF")
sec = (sec + 1)
time.sleep(1)
u_gui.clear()
样例六 电机驱动
额外硬件准备
带接口金属齿轮减速电机 * 1
Mind+
Python
import sys
sys.path.append("/root/mindplus/.lib/thirdExtension/drobot_yeezb-unihikerioexpansion-thirdex")
import time
from pinpong.board import Board
from dfrobot_unihiker_expansion import UnihikerExpansion, MPeriod, MotorNum
Board("").begin()
eunihiker = UnihikerExpansion()
eunihiker.set_motor_period(MPeriod.MOTOR1_2, 255)
eunihiker.set_motor_period(MPeriod.MOTOR3_4, 255)
while True:
eunihiker.set_motor_duty(MotorNum.MOTOR1_A, 200)
eunihiker.set_motor_duty(MotorNum.MOTOR1_B, 0)
time.sleep(3)
eunihiker.set_motor_duty(MotorNum.MOTOR1_A, 0)
eunihiker.set_motor_duty(MotorNum.MOTOR1_B, 200)
time.sleep(3)
样例七 电池电量检测
Mind+
Python
import sys
sys.path.append("/root/mindplus/.lib/thirdExtension/drobot_yeezb-unihikerioexpansion-thirdex")
import time
from unihiker import GUI
from pinpong.board import Board
from dfrobot_unihiker_expansion import UnihikerExpansion
u_gui=GUI()
Board("").begin()
eunihiker = UnihikerExpansion()
while True:
BAT=u_gui.draw_text(text="Battery:",x=0,y=0,font_size=20, color="#0000FF")
bat=u_gui.draw_text(text=(str(eunihiker.get_battery()) + str("%")),x=0,y=25,font_size=20, color="#0000FF")
time.sleep(1)
bat.remove()
样例八 温湿度传感器检测
额外硬件准备
Gravity DHT11温湿度传感器 * 1
Gravity DHT22 温湿度传感器 * 1
硬件连接
Mind+
Python
import sys
sys.path.append("/root/mindplus/.lib/thirdExtension/drobot_yeezb-unihikerioexpansion-thirdex")
import time
from unihiker import GUI
from pinpong.board import Board
from dfrobot_unihiker_expansion import UnihikerExpansion, IONum, IOType
u_gui=GUI()
Board("").begin()
eunihiker = UnihikerExpansion()
eunihiker.set_mode(IONum.C0, IOType.DHT11)
eunihiker.set_mode(IONum.C1, IOType.DHT22)
while True:
T11=u_gui.draw_text(text=(str((str("DHT11 Tem:") + str(eunihiker.get_dht_value(IONum.C0).temperature))) + str("℃")),x=0,y=0,font_size=18, color="#0000FF")
H11=u_gui.draw_text(text=(str((str("DHT11 Hum:") + str(eunihiker.get_dht_value(IONum.C0).humidity))) + str("%")),x=0,y=25,font_size=18, color="#0000FF")
T22=u_gui.draw_text(text=(str((str("DHT22 Tem:") + str(eunihiker.get_dht_value(IONum.C1).temperature))) + str("℃")),x=0,y=50,font_size=18, color="#0000FF")
H22=u_gui.draw_text(text=(str((str("DHT22 Hum:") + str(eunihiker.get_dht_value(IONum.C1).humidity))) + str("%")),x=0,y=75,font_size=18, color="#0000FF")
time.sleep(1)
u_gui.clear()
样例九 DS18B20温度传感器
额外硬件准备
Gravity DS18B20 数字温度传感器 * 1
Mind+
Python
import sys
sys.path.append("/root/mindplus/.lib/thirdExtension/drobot_yeezb-unihikerioexpansion-thirdex")
from unihiker import GUI
from pinpong.board import Board
from dfrobot_unihiker_expansion import UnihikerExpansion, IONum, IOType
u_gui=GUI()
Board("").begin()
eunihiker = UnihikerExpansion()
eunihiker.set_mode(IONum.C0, IOType.DS18B20)
bat=u_gui.draw_text(text=(str(eunihiker.get_18b20_value(IONum.C0)) + str("℃")),x=0,y=0,font_size=20, color="#0000FF")
while True:
bat.config(text=(str(eunihiker.get_18b20_value(IONum.C0)) + str("℃")))
样例十 超声波传感器
额外硬件准备
TRIG-ECHO超声波(需要TRIG/ECHO引脚分开)* 1
Python
import sys
sys.path.append("/root/mindplus/.lib/thirdExtension/drobot_yeezb-unihikerioexpansion-thirdex")
import time
from unihiker import GUI
from pinpong.board import Board
from dfrobot_unihiker_expansion import UnihikerExpansion
u_gui=GUI()
Board("").begin()
eunihiker = UnihikerExpansion()
while True:
us=u_gui.draw_text(text=eunihiker.get_sr04_distance(),x=0,y=0,font_size=20, color="#0000FF")
time.sleep(0.5)
u_gui.clear()