基于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

相关推荐
枯无穷肉42 分钟前
stm32制作CAN适配器4--WinUsb的使用
stm32·单片机·嵌入式硬件
不过四级不改名6771 小时前
基于HAL库的stm32的can收发实验
stm32·单片机·嵌入式硬件
嵌入式科普1 小时前
十一、从0开始卷出一个新项目之瑞萨RA6M5串口DTC接收不定长
c语言·stm32·cubeide·e2studio·ra6m5·dma接收不定长
嵌入式大圣1 小时前
单片机UDP数据透传
单片机·嵌入式硬件·udp
云山工作室2 小时前
基于单片机的视力保护及身姿矫正器设计(论文+源码)
stm32·单片机·嵌入式硬件·毕业设计·毕设
嵌入式-老费2 小时前
基于海思soc的智能产品开发(mcu读保护的设置)
单片机·嵌入式硬件
qq_397562314 小时前
MPU6050 , 设置内部低通滤波器,对于输出数据的影响。(简单实验)
单片机
艺术家天选4 小时前
STM32点亮LED灯
stm32·单片机·嵌入式硬件
委员5 小时前
基于NodeMCU的物联网空调控制系统设计
单片机·mcu·物联网·智能家居