很久没有更新博客了,主要是最近这段时间在编写之前说自己做的STM32F407的底盘控制器的程序,现在已经编写完了,所以发个博客和大家分享一下,话不多说先上图。
PCB3D预览图,
看完图后我先介绍一下这个开发板具有的功能:
电源部分:6-18V输入,输出有5V,3.3V和5V4A可以直接给树莓派供电。
电源指示灯部分:5个,输入电源指示灯、5V电源指示灯、3.3V电源指示灯、ROS通信串口电源指示灯、RGB用于记录状态显示灯
串口部分:6路串口,其中一路固定用于和ROS进行通信,其余5路可以自由使用。
温湿度传感器部分:使用DHT11或者DHT22.
编码器接口部分:4路
电机接口部分:4路,采用BTS7970B,单路输出30A,供电电压6-24V
CAN接口部分:采用TJA1050芯片
超声波接口部分:3路或者5路可用HC-SR04或者US-100
蜂鸣器部分:1个
按键接口部分:4路
IMU部分:板载MPU9250、或者外接其他IMU模块
PWM输出部分:(主要用于舵机控制)4路。
GPS模块接口部分:(目前使用的是串口通信)1路。
OLED显示接口部分:可以直接在板子上插或者外接线。
ADC检测部分:4路AD采集,可以检测电池电压。
外接I/O:8个I/O
硬件含有的功能就有以上部分:
下面介绍一下软件部分:
1、本文采用的是库函数进行程序的编写,因为感觉看着思路比较清晰。
2、本文采用的语言是C/C++混合编程,提高代码的复用性。
3、本文使用和ROS的通信方式依旧还是rosserial的方式,这种方式让STM32可以像Arduino一样的和ROS进行通信。
下面上图看一下代码的风格:
关于ROS下使用rosserial和STM32(ST库)进行通信也是参考网上的进行学习,想了解的可以看我的上一篇博客(ros下使用rosserial和STM32F1/STM32F4系列进行通信(MDK5工程)),里面有相关资料的连接。
使用STM32F4它的资源丰富,而且主频168M也足够我们使用了,后期是打算制作一辆麦克奈姆轮的室内自动导航小车,后期可能会把自己做好和配置好的ubuntu制作成镜像。这次博客就先到这里,后期会持续更新,希望大家可以多多关注、多多交流,相互学习,想讨论的可以加入ROS DIY交流群:129923584。
进群交流: