基于STM32F4单片机实现ROS机器人主板

STM32_ROS_V2(9.5更新):

(1)增加4颗ws2812B RGB灯,焊接在背部,PB15_SPI2引脚输入,采用SPI与DMA控制,实现呼吸灯,跑马灯等功能,见附录代码

(2)增加一路ADC电路电阻(分压测量电路,PA4_ADC1采集),测量12V航模电池电压

加上四颗ws2812B后小车灯光效果:

STM32_ROS_V2(9.2更新):

(1)拿到嘉立创PCB后,焊接完毕效果图,测试功能无问题:

(2) STM32程序优化(STM32源程序已更新)

1.Data_transition()函数放进control 5ms控制中断运行

2.利用1ms定时器 引出10ms定时器变量 在主函数while(1)中10ms运行USART3_SEND();发送数据函数

3.经测试在这种控制模式下整个系统没有任何延时

(3)串口调试软件设置(用于模拟ROS端串口数据发送,控制小车运动以及校准里程计)

1.其中发送9帧,右边勾选16进制发送,自动循环发送,1ms(千万不要勾选发送新行,否则结尾发送\r\n,程序无法读出正确数据)

2.发送9帧中,第一帧和最后一帧为帧头帧尾,第8帧为(1-7)帧相加校验位,具体可查看usart3.c文件

STM32F407VET6核心板(8. 2 8更新):

(1)更新STM32F407VET6核心板PCB与原理图,将整个核心板模块化(查看工程文档)

(2)更新STM32_ROS_V2中USART3接口为XH2.54*5PIN形式接口,采用下图的CH340驱动

淘宝链接:6.0微yDVQXMS3wd5微 https://m.tb.cn/h.fYZoODG USB转TTL CH340模块STC单片机下载线刷机板USB转串口 XH-5P接口

STM32_ROS_V2(8.26更新):

(1)为了保持电路整洁性,重新位置PCB布局,让主控板螺丝孔位与jetson nano孔位保持一致

(2)陀螺仪MPU9250-->ICM20602(模拟SPI采集,实现1ms采集不卡顿 见附录代码)

(3)删除 一路舵机接口 一路步进电机接口 红外接口

(4)JTAG下载接口改为JINK OB下载器(该下载器为四线 节省PCB布局位置,使用方法与普通Jlink一致,需安装Jlink驱动)

(5)电容电阻改为0603封装

(6)增加两路串口 一路为UART4连接NRF转串口模块,用于山外上位机发送波形数据调试 第二路为UART5 闲置备用

(7)电路2D模型

STM32_ROS_V1:

(1)打板焊接以后效果图:

(2)编写程序,测试所有外设:

(3)无问题!组装小车,测试蓝牙控制小车移动:

(4)在树莓派上装好带ROS的ubuntu系统,编写程序,测试导航:

(5)整车底板与框架3D建模:

采用Solidworks 2020建模,将底板转为CAD图档,发给淘宝店家亚克力板定制,2块200x300cm(5cm厚度)价格20元左右:

Solidworks建模文件见附件,需平级或高版本打开。

(6)拿到定制亚克力板后,组装整车

(ROS方案已改为Jetson Nano主控,因为树莓派WIFI连接信号较差,且无法使用CVbridge)

整车配置:

1. 供电方式:航模动力电池(12V)

2. 结构形式:全向运动模型(麦克纳姆轮)

3. 控制方式:PC 端上位机控制、蓝牙/手柄控制、无人驾驶模式

4. 行驶电机:直流有刷电机*4,电压 6-24V、带AB双向增量霍尔编码器,额定转矩 3.4N*m

5. 视 觉:Logi C505e USB摄像头 800万像素160度广角摄像头

6. 惯 导:MPU9250 : 9轴姿态:3轴加速度、3轴陀螺仪、3轴磁力计,IIC/SPI 通信协议

7. 激光雷达:思岚RPLIDAR A1,10米测距、配套完整 USB 串口、SDK 开源工具

8. 电源模块:12V->5V 4A DC-DC直流转换模块(Jetson Nano供电)

9. 交互系统:TJC 7英寸HMI电阻式串口屏、2W喇叭

10. 控 制 器:STM32 复合驱动板、Jetson NANO 控制器

(1)STM32复合驱动板参数:

处理器:STM32F407VGT6

控制器特点:2组舵机接口、4路驱动电机接口、2个按钮模块、LED灯、JLINK接口、OLED 显示屏、内置开关、PS2 接口、HC05蓝牙接口、HMI串口屏接口、IMU 接口、TYPEC供电接口

(2)Jetson Nano 控制器参数:

CPU: 四核 ARM Cortex-A57 MPCore处理器

GPU: NVIDIA Maxwell w / 128 NVIDIA CUDA核心

内存: 4 GB 64 位 LPDDR4

显卡: HDMI 和 DisplayPort 输出

USB: 4 个USB 3端口

I / O: I2C,SPI,UART 以及与Raspberry Pi兼容的GPIO接头

11. 通信系统: WIFI 通信、UART TTL、USB 串口、SOCKET、RosMsg

12. 操作系统: Ubuntu 18.04 LTS、ROS-melodic、Windows

13. 编程语言: C/C++/Python3

14. 使用软件: Keil5、Kdevelop、VS2015、Pycharm、Solidworks

15. 匹配环境: OpenCV3.4.12、Pychtorch、Pip3、Rviz、Gazebo

(7)机器人建图导航定位实验

7.1网络控制图传小车(利用键盘控制小车移动,并将图像信息显示于Rviz)

7.2 cartographer算法实现建图

7.3 Dijsktra算法实现的全局路径规划与自主导航

原理图(1 / 3)

PCB

相关推荐
cjy_Somnr40 分钟前
keil5报错显示stm32的SWDIO未连接不能烧录
stm32·单片机·嵌入式硬件
WWZZ20251 小时前
快速上手大模型:深度学习12(目标检测、语义分割、序列模型)
深度学习·算法·目标检测·计算机视觉·机器人·大模型·具身智能
Lay_鑫辰1 小时前
西门子诊断-状态和错误位(“轴”工艺对象 V1...3)
服务器·网络·单片机·嵌入式硬件·自动化
雲烟5 小时前
嵌入式设备EMC安规检测参考
网络·单片机·嵌入式硬件
泽虞6 小时前
《STM32单片机开发》p7
笔记·stm32·单片机·嵌入式硬件
田甲6 小时前
【STM32】 数码管驱动
stm32·单片机·嵌入式硬件
up向上up6 小时前
基于51单片机垃圾箱自动分类加料机快递物流分拣器系统设计
单片机·嵌入式硬件·51单片机
纳祥科技15 小时前
Switch快充方案,内置GaN,集成了多个独立芯片
单片机
喵手16 小时前
AI在自动化与机器人技术中的前沿应用
人工智能·机器人·自动化
单片机日志17 小时前
【单片机毕业设计】【mcugc-mcu826】基于单片机的智能风扇系统设计
stm32·单片机·嵌入式硬件·毕业设计·智能家居·课程设计·电子信息