(未完)STM32硬體開發——智慧小車(超聲波避障 紅外循跡 藍芽遙控)

2020-10-11 11:00:03

全文約 1300 字,完全閱讀 約需 3 分鐘
🚗🚗🚗🚗🚗
小夥伴在寫藍芽控制~
程式碼也在偵錯
部落格就當作學習過程中的筆記
之後再更新~
要努力變強💪


前言(BB Time)

疫情假期的時候開始學習 STM32 ,因為在家所以瘋狂划水,進度落下了很多,所以非常感謝返校後學長還有組內其他小夥伴的協助。
小車自然是嵌入式學習過程中的第一個「大專案」。從看「正點原子」的樣例程式碼,實現相近功能,到自己動手做一輛小車車 著實是不小的跨步。
@萬里羊@nidie508 兩位學長的部落格對我提供了非常大的幫助(哈哈哈,面向 CSDN 程式設計),也是看了他們的部落格讓我下定決心認真寫部落格,記錄自己所學,畢竟要對得起資料裡的「5年碼齡」😂。


👇BB 結束,正片開始👇

硬體

一、選型

1、開發板

小板子
實驗室提供的 Mini STM32

開發板圖片

暫存器版本
學長說庫函數可能相對比較簡單(我並沒有這麼覺得 微笑.jpg),而且後期的話一些功能使用庫函數不方便(小聲BB,我可能前期就被現實錘爆了根本沒有後期 哈哈哈

2、其他元件

底盤和小車輪
不知名的髒兮兮底盤和兩個可愛的小電機

底盤圖片

電機驅動模組
TB6612,噗嗤小夥伴焊的時候焊反了,但記住 IO 口就行了,問題不大👌

TB6612 圖片

超聲波模組
HC-SR04

HC-SR04 圖片

紅外模組
FC-03

FC-03 圖片

藍芽模組
唔,我找不到了哈哈哈🤦‍♂️

二、原理

1、電機

通過 TB6612FNG 來驅動電機,因為該模組是雙驅動,所以只需一個即可驅動一對電機

  • VM:連線 12V 以內電源
  • VCC:連線 5V 以內電源
  • GND:連線電源負極
  • STBY:該口清零則兩組電機全部停轉,置1後通過 AIN、BIN 控制正反轉
  • AIN、BIN:
介面停止正轉反轉
AIN1001
AIN2010
介面停止正轉反轉
BIN1001
BIN2010

2、超聲波

  • VCC:連線 5V 以內電源
  • GND:連線電源負極
  • TRLG:連線開發板上控制超聲波發射的 IO 口
  • ECHO:連線開發板上處理超聲波接收訊號的 IO 口

3、紅外

紅外發射端發射光線到地面,紅外光線遇到白色被反射,接收端檢測到反射光線後輸出低電平;遇到黑色被吸收,接收端未檢測到反射光線,輸出高電平

顏色電平
白色0
黑色1

4、藍芽


功能(未完)

我和小夥伴合作的小車主要有三個功能,不同的功能通過 STM32 開發板上的按鍵進行切換。

一、車輪滾滾

1、原理

  • 直行:左輪和右輪同時正轉
  • 後退:左輪和右輪同時反轉
  • 停止:左輪和右輪同時停止
  • 左轉:左輪反轉,右輪正轉
  • 右轉:左輪正轉,右輪反轉

2、程式碼

二、通過三路超聲波實現避障

1、原理

2、程式碼

三、通過兩個紅外模組實現黑線循跡

1、原理

紅外模組安裝位置

如圖,在小車正前方並排安裝兩個紅外模組,確保黑線位於兩個紅外模組之間,若左側檢測到黑線,說明車身偏右,即執行左轉操作;若右側檢測到黑線,說明車身偏左,即執行右轉操作

2、程式碼

inred.h

#ifndef __INRED_H
#define __INRED_H

#endif

inred.c

四、通過手機藍芽遙控車輛

1、原理

2、程式碼


總結