3 Star 9 Fork 4

NEUQ upybot / Micropython pyboard-controller-robot PYB差速主控底盘

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

PYB差速主控底盘开源工程

项目介绍

这是一个基于PYB作为单片机的两轮差速小车或机器人底盘。

本系统可以很好地适用于两轮差速控制系统的控制需求,本系统已经集成了里程计、IMU等传感器,同时开发了和ROS上位机节点的串口通信功能,适用于作为ROS机器人的下位机系统。

维护人:

  • 高鸿志
  • 李佳洛
  • 郭浩

版本记录

pyb-controller-v3.4 2021/4/25

  • 大幅优化代码,增加参数注释,方便分辨可调和系统默认参数。
  • 集成mpu9250模块到driver_flag中执行,只在单片机中读取9轴imu数值,但默认不发送到上位机。
  • 将默认编码器设置为光电编码器,如需更换,需要修改main.py中的PID参数以及encoder.py中的机器人和编码器参数即可。

pyb-controller-v3.3 2021/4/15

  • 增加Micropython和匿名工作站的通信协议,实现和匿名工作站的通信任务,可以实现电机参数的实时绘图和PID调参
  • 优化代码,提高了代码的执行效率,删除了不必要的外设OLED的使用(可自行增加)

pyb-controller-v3.2 2021/3/24

  • 优化ROS上下位机通信控制

pyb-controller-v3.1 2021/3/1

  • 增加USB串口,将USB口设置为USB_VCP模式,使得单片机可以直接通过USB口和上位机实现串口收发功能

pyb-controller-v3.0 2021/2/20

  • 增加电机PID闭环后线性校正代码,因为未较好的调整参数,故使用该方法

项目架构

代码结构

  • main.py
  • motor.py
  • encoder.py
  • pid.py
  • oled.py
  • ps2.py
  • serial.py
  • imu.py
  • mpu9250.py

硬件器材

  1. PYB(STM32F405)* 1

  2. 带编码器电机的机器人底盘(编码器电机 * 2 + L298N * 1) * 1

  3. PS2手柄 * 1

  4. 两轮编码器电机驱动模块 * 1

  5. 整体电源模块 * 1

  6. mpu9250(9轴)传感器模块 * 1

引脚图

输入图片说明

外接引脚 PYB左侧引脚 PYB右侧引脚 外接引脚
encoderMA_A Y1(TIM8 CH1)
encoderMA_B Y2(TIM8 CH2)
PWMA Y3(TIM4 CH3)
PWMB Y4(TIM4 CH4)
AIN1 Y5 Y12 \
AIN2 Y6 Y11 \
\ Y7 (IIC2 SDA)Y10 SDA(OLED)
\ Y8 (IIC2 SCL)Y19 SCL(OLED)
SCL(mpu9250) X9(IIC1 SCL) X8 \
SDL(mpu9250) X10(IIC1 SDA) X7 \
BIN1 X11 X6 \
BIN2 X12 X5 \
(UART2 RX)X4 TX(USB-TTL)
(UART2 TX)X3 RX(USB-TTL)
X2 encoderMB_B(TIM5 CH2)
X1 encoderMB_A(TIM5 CH1)
--- --- --- --- --- --- --- ---
X18 X19 X20 X21 X22
DAT(PS2) CMD(PS2) CS(PS2) CLK(PS2) \

附录

  1. STM32拥有编码器功能的定时有:1、2、3、4、5、8,这几个定时器的的CH1、CH2可用于编码器AB相测速,CH1N等带N的通道不能用于编码器测速。定时器6、7为基本定期,仅用作定时和计数功能,无如PWM等其他特殊功能。
  2. 板载加速度计为MMA7660,该器件是NXP的3-Axis Orientation/Motion Detection Sensor(三轴加速度传感器,不包含三轴陀螺仪,如需要陀螺仪,可使用mpu6050六轴传感器模块,即三轴加速度+三轴陀螺仪),该加速度计的测量范围±1.5g,采用I2C通信接口,当使用板载加速度计时就不能再使用X9和X10引脚,否则会造成加速度计无法正常工作,反之亦然。
  3. 本单片机引脚较少,不适合用作四轮的底盘控制,需要购买增加更多普通IO口的PLUS版。
  4. 上下位机通信协议采用元组作为通信的基本格式,发送和接收端只需进行编码和解码操作即可直接使用,方便快捷。

空文件

简介

基于PYB作为单片机的两轮差速小车或机器人底盘 展开 收起
Python
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/neuq-intelligent-desert-robot/pyb-controller_robot.git
git@gitee.com:neuq-intelligent-desert-robot/pyb-controller_robot.git
neuq-intelligent-desert-robot
pyb-controller_robot
Micropython pyboard-controller-robot PYB差速主控底盘
pyb-controller-v3.4

搜索帮助