要不,咱们简单设计个车?(整车及软件框架)
作者:互联网
春节期间把小车又重新装了一下,把底盘调了个方向。原先舵机和马达都朝下,但太靠近地面,拿出去玩儿一把,容易碰到路面。调了方向之后,寻线传感器没地方装了,暂时放在一边。
1 整车效果图
安装完成后的小车效果图如下:
- 45°俯视
- 背面
- 正面
- OLED实时数据
2 小车软件架构
软件除了适配的驱动部分,完全由Simulink完成。
2.1 顶层视图如下,其中红色的块Sample Time是20ms,绿色的块Sample Time是100ms:
从上到下依次是:
- 蓝牙Radio通信,用于接收另一块micro:bit的控制信号
- 超声波传感器,用于探测障碍物,主动刹车
- 左侧驱动轮(马达)的编码器信息,包括计数与方向
- 右侧驱动轮(马达)的编码器信息,包括计数与方向
- 右侧寻线传感器模拟数据,预留
- 左侧寻线传感器模拟数据,预留
2.2 软件架构视图如下:
各子系统说明如下:
- Bluetooth Data,用于解码蓝牙数据,协议比较简单,包括期望的舵机角度,是否按下了头灯,是否按下了刹车,以及是前进还是后退和加速度的大小(PWM占空比)
- Steer System,对输入的舵机角度数据调整到0-180°,增加死区控制
- Highlights System,输出头灯开关信号
- Light System,控制头灯及尾灯开关
- Motor Control System,输出马达控制信号,包括前进、后退、刹车及加速度大小
- Motor System,根据控制信号,调整马达的输入电压及PWM占空比
- Speed System,根据电机编码器的输入,计算当前车速
- Odo System,根据输入的车速,计算小车行驶距离
- Display System,显示小车内部实时数据到OLED上
3 小车控制器软件架构
小车控制器采用另一块micro:bit,模型如下:
其中:
- micro:bit自带的加速度传感器的输出使用了x和z 2个方向的数据,x方向用于控制舵机(使用lookup table映射到-40/40的角度范围,在小车端重新定位中心角度90°),z方向用于控制小车的方向及加速度(映射到-100/100的PWM范围,正负号对应前进或后退)
- micro:bit的按钮A用于控制头灯
- micro:bit的按钮B用于控制刹车
- 数据存到Vector中,通过micro:bit的radio通信发送到小车端。
下篇文章介绍下小车端模型的内容及具体的Pin定义。
标签:舵机,小车,System,micro,马达,整车,软件,个车,bit 来源: https://blog.csdn.net/coroutines/article/details/113829286