20浏览
查看: 20|回复: 1

K10+Microbit Wiki驱动舵机与电机

[复制链接]
本帖最后由 meiyao 于 2026-1-20 13:53 编辑

使用行空板K10通过Microbit Wiki驱动舵机与电机,实现方式是使用PCA9685芯片扩展舵机接口、HR8833芯片驱动直流电机。

一、舵机驱动方案
PCA9685芯片扩展方案
硬件连接:行空板K10通过I²C总线与PCA9685芯片通信,该芯片可同时控制16路舵机。SCL引脚接K10的I²C时钟引脚,SDA接数据引脚,VCC接3.3V电源。

功能实现:
通过I²C写入寄存器配置PWM频率,修改OFF寄存器值实现0°-180°角度控制。
结合按键中断触发舵机动作,舵机旋转至180°。

二、电机驱动方案
HR8833芯片扩展方案
硬件连接:使用Microbit电机驱动扩展板是兼容行空板K10,扩展板集成HR8833电机驱动芯片,提供4路直流电机驱动通道也可复用为2路步进电机和8路舵机接口。

功能实现:
通过I²C通信协议控制电机正反转、调速,每路电机驱动配备正反转指示灯。

三、代码
  1. /*!
  2. •        MindPlus
  3. •        DFRobot, 行空板 K10
  4. */
  5. #include "unihiker_k10.h"
  6. #include <Microbit_Motor.h>
  7. // 创建对象
  8. UNIHIKER_K10 k10;
  9. uint8_t screen_dir=2;
  10. Microbit_Motor motorbit;
  11. // 主程序开始
  12. void setup() {
  13.     k10.begin();
  14.     k10.initScreen(screen_dir);
  15.     k10.creatCanvas();
  16. }
  17. void loop() {
  18.     k10.setScreenBackground(0xFFFFFF);
  19.     k10.canvas->canvasText("行空板电机驱动", 1, 0x0000FF);
  20.     Serial1.begin(9600, SERIAL_8N1, P0, P1);
  21.     k10.canvas->updateCanvas();
  22.     delay(5000);
  23.     motorbit.motorRun(M1, CCW, 200);
  24.     k10.canvas->canvasText("M1电机反转", 2, 0x0000FF);
  25.     k10.canvas->canvasText("蓝灯亮", 3, 0xFF0000);
  26.     k10.rgb->write(0, 0x0000FF);
  27.     k10.canvas->canvasClear(4);
  28.     k10.canvas->canvasClear(5);
  29.     k10.canvas->updateCanvas();
  30.     delay(5000);
  31.     motorbit.servo(S1, 180);
  32.     motorbit.motorStop(M1);
  33.     k10.rgb->write(0, 0x000000);
  34.     delay(5000);
  35.     k10.rgb->write(0, 0xFFFF00);
  36.     motorbit.motorRun(M1, CW, 200);
  37.     k10.canvas->canvasClear(2);
  38.     k10.canvas->canvasClear(3);
  39.     k10.canvas->canvasText("M1电机正转", 4, 0x0000FF);
  40.     k10.canvas->canvasText("亮黄灯", 5, 0xFFFF00);
  41.     delay(5000);
  42.     motorbit.motorStop(M1);
  43.     delay(5000);
  44. }
复制代码


四、时间与软件硬件工作图:
时间轴 (秒):  0     5    10    15    20   25
             ├─────┼─────┼─────┼─────┼─────┤
阶段:        启动   反转   舵机   正转   停止   重启
电机M1:      停止   反转   停止   正转   停止   停止
舵机S1:     -     -     180°  -     -     -
LED颜色:      -     蓝     灭     黄     -     -
屏幕显示:    标题   M1反转  -    M1正转  -    标题

硬件工作图
┌─────────────────────────────┐
│           行空板K10主控                                       │
├─────────┬─────────┬─────────┤
│ 屏幕显示│ 电机控制│ RGB LED │ 串口通信    │
│ 驱动    │ 驱动    │ 驱动    │ 接口                       │
├─────────┼─────────┼─────────┤
│ 画布管理│ M1/S1   │ 引脚0   │ P0(TX)             │
│ 文本渲染│ 电机控制│ 颜色控制│ P1(RX)         │
│ 背景设置│ 舵机控制│ 亮度控制│ 9600bps       │
└─────────┴─────────┴─────────┘

main.ino
├── 全局对象声明
│   ├──UNIHIKER_K10 k10
│   ├──uint8_t screen_dir=2
│   └──Microbit_Motor motorbit
├── setup()函数
│   ├──k10.begin()
│   ├──k10.initScreen(screen_dir)
│   └──k10.creatCanvas()
└── loop()函数
    ├── 阶段1: 显示初始化 (5秒)
    │   ├── 屏幕设置
    │   ├── 串口初始化
    │   └── 标题显示
    │
    ├── 阶段2: 反转控制 (5秒)
    │   ├── 电机CCW运行
    │   ├── 屏幕文本更新
    │   └── LED控制
    │
    ├── 阶段3: 舵机控制 (5秒)
    │   ├── 舵机转动
    │   ├── 电机停止
    │   └── LED关闭
    │
    ├── 阶段4: 正转控制 (5秒)
    │   ├── LED控制
    │   ├── 电机CW运行
    │   └── 屏幕更新
    │
    └── 阶段5: 停止状态 (5秒)
        └── 电机停止

五、转动效果图
K10+Microbit Wiki驱动舵机与电机图1

电机转动K10+Microbit Wiki驱动舵机与电机图2K10+Microbit Wiki驱动舵机与电机图3


木子哦  管理员

发表于 昨天 13:42

梅工更新啦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail