欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3013|回復: 0
打印 上一主題 下一主題
收起左側

基于STM32F407的平衡車制作,本帖特點在于系統性,一站式服務

[復制鏈接]
跳轉到指定樓層
樓主
ID:209158 發表于 2020-3-24 10:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
才開始寫帖子,大家多多包涵。 Balance.7z (393.91 KB, 下載次數: 25)

STM32F407平衡車.zip (7.24 MB, 下載次數: 48)


本帖子采用以STM32F407為控制器的平衡小車。我是因為想學32,然后F4比較強大,所以就沒采用F1或者stm8之類的單片機。
先從硬件準備開始:
1.編碼電機兩個,電機驅動器l298n一塊(我用了他上面的5v電,所以沒加穩壓模塊,正規的話應該加上)
2.MPU6050模塊一個
3.藍牙模塊
4.IIC協議的oled屏幕一塊(32當然也可以用其他協議的,換一下相應文件就好)
5.stm32f407最小系統板一塊
6.無源蜂鳴器來一個用來放音樂不錯
7.導線、洞洞板、排針、接頭自己備一些,我是自己焊的拓展板 ,也可以直接畫pcb
8.3s的18650電池和充電器
9.支架的話我為了省事買了電機加底板支架,看視頻里大家要是有鉆,螺絲,銅柱的話整兩個電機支架一塊亞克力可輕松搞定,而且整潔美觀,布局也方便

再就到了硬件連接,我這里就不詳細說那個了  l298n上面有in1~4四個引腳,分別接到單片機對應的引腳,   1,2一組,控制motor1方向;3,4一組,控制motor2方向。同時電機驅動模塊上還有兩根enable和5v引腳,剛買的一般是通過兩根跳線帽將兩個enable與兩個5v分別短接,我們需要將兩根短接帽拔掉,給每個enable接一路pwm,才能夠實現我們所需要的直流電機速度控制。編碼電機連接時注意區分動力線和編碼器信號線,動力線兩條不做區分,接上后續如果電機方向不正確可以改in1,2的高低電平即可;編碼器有其電源線5v和gnd,不可接反,另外兩根即編碼器信號輸出,用來記脈沖就好。本小車中各引腳定義及相應定時器在文末統一描述。到這,電機及其驅動均已連接完成。

接下來是mpu6050,我對這個模塊的認識其實也只存在于使用階段,我采用的直接是原子哥開發板例程里的.c文件和.h文件,我們在使用時只需要注意兩個文件中關于引腳的定義即可,其余均不用改動,包括iic地址,其默認就為0x68,除非一組IIC上掛載多個設備,才存在不同地址訪問問題,正常使用可不關心。我在這里提一個我自己的認識,揭開了iic的面紗,其本身在了解了其通信協議之后,根本就不會在意其是不是單片機上標的特定的某個或某對引腳,尤其是使用開發板的朋友,一定注意這個問題,這么說,單片機上任何兩個可以控制高低電平切換的引腳都可以被你用來進行iic通信,當你的iic設備用了別人的程序后沒反應,首先第一步先把你的iic設備斷開,在不該動現有iic配置的前提下,通過對scl和sda兩個引腳單獨置高和置低用以檢測你的配置是否有問題以及你的引腳本身是否有問題,排除這兩個問題后你的設備要是還沒反應你再考慮換程序試,記住先硬件后軟件的原則。本帖中設計的oled和mpu6050兩款iic設備我使用了兩對scl,sda,這樣做的一個巨大好處就是移植性非常強,很方便使用者修改。oled驅動時注意一下這個模塊僅接上vcc和gnd是毫無反應的,這不用慌,只有寫上相應代碼才能有所顯示,本帖中的oled程序是我找了好久且試了沒問題的,其中對于iic引腳配置的過程很有思想,只需要在.h文件里面修改,其余均可不用改變。大家若在其他32設備上使用時可參考,其避免了很多問題。

藍牙模塊的話,我個人建議大家還是采用usb轉ttl模塊將藍牙模塊與電腦相連進行設置,切記,接法就是rx與tx相接,與正常使用時一樣,連接好后按住藍牙模塊上的按鍵再插到電腦上上電,這樣就會進入初始化模式,此時串口波特率應調到38400,停止位為1,校驗位為無,隨后按照hc-05的AT指令集進行設置即可。設置完成后先不急著裝在設備上,而是直接拔掉電源,此次不按小按鍵,直接上電,用串口助手,將波特率、停止位、校驗位等調至你的設定值,打開串口,并用手機藍牙串口app進行測試,試著互發數據,測試無誤后再上設備,這樣在使用時僅需將單片機的串口設置好即可直接使用藍牙。熟悉之后,加上對于AT指令的理解,可以在程序中加上藍牙模塊的初始化程序,這樣會更加正規一些。

OLED在說陀螺儀的時候就說過了,對于本帖發的工程中的相關文件具有很好地移植性,僅修改scl,sda引腳,其余不動即可。大家可能會有疑問,為什么不用改iic地址,這其實也是我對oled的IIC地址的一個知識誤區,尤其是32當中。我買的oled屏幕官方給的地址是0x3c,但在程序中我楞是沒找到相關的語句與設置,大家要是有深刻理解了這部分的朋友麻煩回我一些,謝謝。我在arduino上使用這款oled時他會有很明確的iic地址設置。而在32中,大家買到的oled應該是和我的頭文件是匹配的,所以就使用而言可忽略地址設置。

引腳定義:
in1(AIN1)》PA3
in2(AIN2)》PA2
in3(BIN1)》PA1
in3(BIN1)》PA0
PWMA   TIM13->CCR1  PF8
PWMB   TIM14->CCR1  PF9

編碼器1    PA6 PA7 TIM3
編碼器2    PB6 PB7 TIM4

MPU6050 IIC
SCL PD5
SDA PD6

OLED IIC
SCL PD1
SDA PD2

uart1     連接電腦的串口
RX PA10
TX PA9

uart3     連接藍牙模塊的串口
RX PB11
TX PB10

1.https://wenku.baidu.com/view/b46da6ee26d3240c844769eae009581b6bd9bdf5?ivk_sa=1023194j這是個stm32各個定時器通道與引腳的關系,很重要,在這個基礎上引腳可以按需要自己隨意設置
2.有任何本帖相關內容可聯系1562231483,大家相互交流學習,尤其是沒黑幣的新朋友,我可以直接把文件發你們

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

無效樓層,該帖已經被刪除
無效樓層,該帖已經被刪除
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表