ROS使用STM32F407ZGT6作为底盘控制器

很久没有更新博客了,主要是最近这段时间在编写之前说自己做的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输出部分:(主要用于舵机控制)8路。

GPS模块接口部分:(目前使用的是串口通信)1路。

OLED显示接口部分:可以直接在板子上插或者外接线。

ADC检测部分:4路AD采集,可以检测电池电压。

硬件含有的功能就有以上部分:

下面介绍一下软件部分:

1、本文采用的是库函数进行程序的编写,因为感觉看着思路比较清晰。

2、本文采用的语言是C/C++混合编程,提高代码的复用性。

3、本文使用和ROS的通信方式依旧还是rosserial的方式,这种方式让STM32可以像Arduino一样的和ROS进行通信。

下面上图看一下代码的风格:

关于ROS下使用rosserial和STM32(ST库)进行通信也是参考网上的进行学习,想了解的可以看我的上一篇博客(ros下使用rosserial和STM32F1/STM32F4系列进行通信(MDK5工程)),里面有相关资料的连接。

使用STM32F4它的资源丰富,而且主频168M也足够我们使用了,后期是打算制作一辆麦克奈姆轮的室内自动导航小车,后期可能会把自己做好和配置好的ubuntu制作成镜像。这次博客就先到这里,后期会持续更新,希望大家可以多多关注、多多交流,相互学习,想讨论的可以给我留言哦。

猜你喜欢

转载自blog.csdn.net/qq_36349536/article/details/83543590