UnihikerExpansionBoard

简介

这是一款深度适配行空板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套装实现完全脱机。

软件准备

样例一 数字输入输出

额外硬件准备
Gravity: 数字LED发光模块 * 1
Gravity: 数字大按钮模块 * 1
硬件连接
UnihikerExpansionBoard

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)

效果
UnihikerExpansionBoard

样例二 模拟输入

硬件连接
UnihikerExpansionBoard

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))

效果
UnihikerExpansionBoard

样例三 舵机驱动

额外硬件准备
DFRobot DF9GMS 180° 微型舵机 * 1
DFRobot DF9GMS 360°微型舵机 * 1

硬件连接
180°舵机连接到S0,360°舵机连接到S1
UnihikerExpansionBoard

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)

效果
UnihikerExpansionBoard

样例四 板载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)

效果
UnihikerExpansionBoard

样例五 红外收发

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

硬件连接
UnihikerExpansionBoard

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)

效果
UnihikerExpansionBoard

样例七 电池电量检测

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()

效果
UnihikerExpansionBoard

样例八 温湿度传感器检测

额外硬件准备
Gravity DHT11温湿度传感器 * 1
Gravity DHT22 温湿度传感器 * 1
硬件连接
UnihikerExpansionBoard

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()

效果
UnihikerExpansionBoard

样例九 DS18B20温度传感器

额外硬件准备
Gravity DS18B20 数字温度传感器 * 1

硬件连接
UnihikerExpansionBoard

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("℃")))

效果
UnihikerExpansionBoard

样例十 超声波传感器

额外硬件准备
TRIG-ECHO超声波(需要TRIG/ECHO引脚分开)* 1

硬件接线
UnihikerExpansionBoard
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:
    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()

效果
UnihikerExpansionBoard

更多资料

DFshopping_car1.png DFRobot商城链接