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製作成鏡像。這次博客就先到這裏,後期會持續更新,希望大家可以多多關注、多多交流,相互學習,想討論的可以給我留言哦。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章