91精品人妻系列动画无码 - 国产精品夜间视频香蕉 - 91丝袜人妻一区二区三区 - 久久伊伊香蕉精品网站

信盈達(dá)—您身邊的嵌入式&人工智能專家
全國免費(fèi)咨詢熱線:400-8788-909

基于51單片機(jī)控制的藍(lán)牙小車遇到的問題總結(jié)

時(shí)間:2019-01-06 00:00:00 來源:信盈達(dá) 作者:信盈達(dá)

最近做了個(gè)基于51單片機(jī)控制的藍(lán)牙小車,今天在這里總結(jié)下項(xiàng)目開發(fā)過程中遇到的問題。


利用手機(jī)給藍(lán)牙HC05發(fā)送消息,如果不是switch中的幾個(gè)case的話,那么LED燈會(huì)明暗變化,但是剛開始的測試卻始終不如意。而后仔細(xì)查看了代碼,并沒有發(fā)現(xiàn)什么錯(cuò)誤,后來懷疑是波特率的問題,因?yàn)槲业木д袷?Mhz的,藍(lán)牙模塊的波特率是9600. 我手動(dòng)計(jì)算了一下:


將兩個(gè)L298N模塊與單片機(jī)的P2口直接相連(小車4輪驅(qū)動(dòng),每個(gè)電機(jī)需要兩個(gè)輸入引腳,以及一個(gè)使能引腳,那就是12個(gè)引腳,我剛開始并不想支持調(diào)速的功能,因此使能引腳直接高電平了,就連接了8個(gè)I/O口)。注意L298N的GND引腳一定要和單片機(jī)的GND共地。

關(guān)于L298N: 它的EN引腳用于使能,EN為高電平,才使能另外兩個(gè)輸入引腳IN1,IN2根據(jù)電平的組合變化會(huì)有4種情況(00,10,01,11),電機(jī)相應(yīng)的在00和11停止(這個(gè)停止是帶電的,類似于鎖死的感覺),在10正轉(zhuǎn),01反轉(zhuǎn)。可以直接使用單片機(jī)的VCC和GND連接L298N的IN1和IN2,同時(shí)將EN端接VCC,看電機(jī)轉(zhuǎn)不轉(zhuǎn)就可以測試L298N模塊了。

編寫程序,控制輪子的正轉(zhuǎn),翻轉(zhuǎn),停止等?;旧暇褪且韵碌倪@種代碼

問題1: 剛開始L298N直接連接P0口,死活不轉(zhuǎn),而直接引出高低電平到某一個(gè)電機(jī)的IN1,IN2口,電機(jī)正常運(yùn)轉(zhuǎn)。于是猜測是I/O有問題,使用萬用表測量,發(fā)現(xiàn)P0的I/O在輸出高電平的時(shí)候,根本不是高電平,而后發(fā)了帖子,詢問了一下才知道P0口在高電平是呈現(xiàn)高阻態(tài)的,需要外部焊接電路加上拉電阻才可工作。我不想焊接過多的電路,就將其I/O換到P2口,可以正常工作

問題2: 我使用的是路由器的9v直流電源,使用其帶動(dòng)兩個(gè)L298N,同時(shí)將L298N的輸出的一個(gè)5V高電平接到單片機(jī)上給單片機(jī)供電,啟動(dòng)4輪驅(qū)動(dòng),電機(jī)只會(huì)翁的一聲,然后啥也沒有,二輪驅(qū)動(dòng)也不轉(zhuǎn)。 上網(wǎng)查看了不少資料,基本上都是電源功率過低,需要將單片機(jī)與L298N分別供電才可以。 于是使用筆記本的usb口給單片機(jī)供電,使用9v直流電源給電機(jī)供電,比剛才好了一些,兩輪可以轉(zhuǎn),但是4個(gè)輪子還是轉(zhuǎn)不了。沒辦法,想到自己有一個(gè)小的卡片相機(jī),有鎳氫電池8節(jié),然后上網(wǎng)買了一個(gè)電池盒,裝上去,電機(jī)轉(zhuǎn)的吼吼叫,同時(shí)L298N給單片機(jī)供電也沒問題。

關(guān)于L298N同時(shí)給單片機(jī)供電的問題,大家可以在啟動(dòng)輪子轉(zhuǎn)動(dòng)的時(shí)候量一量單片機(jī)的電源電壓,會(huì)發(fā)現(xiàn)在電機(jī)啟動(dòng)的一剎那,單片機(jī)的電壓有一個(gè)瞬時(shí)的拉低,這樣單片機(jī)就會(huì)復(fù)位了。

第一步:部署小車,L298N,鎳氫電池盒,藍(lán)牙模塊組裝到一起

第二步:編寫代碼,本來可以使用EN口進(jìn)行調(diào)速控制的,但是考慮到還需要使用額外的I/O口,就先不打算做了。

小車當(dāng)前狀態(tài)的獲取(用于后期給小車增加其他模塊的時(shí)候,例如溫度模塊,就可以讀取溫度了)

再加入串口接收中斷,收到不同命令,設(shè)置方向變量

思路1:一個(gè)棘手的問題想實(shí)現(xiàn)這樣的功能: 用戶按鍵,小車才走,用戶松開按鍵,小車停止。

我的想法如下: 小車使用一個(gè)定時(shí)器T0,控制定時(shí)器的延時(shí)時(shí)間為100ms,用戶每發(fā)送一個(gè)前進(jìn)信號,小車會(huì)前進(jìn)100ms,但是這100ms內(nèi)小車還需要能夠響應(yīng)外部的命令。例如如果用戶在t=0ms發(fā)送前進(jìn)命令,然后在t=50ms發(fā)送左轉(zhuǎn)命令,小車能夠立刻左轉(zhuǎn),而不是繼續(xù)前進(jìn)100ms,然后才執(zhí)行左轉(zhuǎn)的命令。基本的代碼思路是用戶的每一個(gè)命令,都會(huì)重置timer0,timer0的超時(shí)中斷函數(shù)會(huì)將小車停止。這樣用戶只要以連續(xù)的小于100ms間隔發(fā)送前進(jìn)命令,小車就會(huì)一直前進(jìn),也就是說timer0的中斷沒有執(zhí)行,如果用戶間隔100ms還沒有發(fā)送命令,那么小車停止。 當(dāng)前我使用的藍(lán)牙串口助手它的按鍵不支持連續(xù)發(fā)送,只能按下松開手,才會(huì)發(fā)送消息,這樣我現(xiàn)在就把時(shí)間間隔設(shè)置為1000ms,用戶只要以小于1000ms的間隔連續(xù)按鍵,小車就會(huì)一直前進(jìn),如果不按鍵,小車會(huì)繼續(xù)前進(jìn)1000ms才會(huì)停止。 后期打算找到藍(lán)牙串口調(diào)試助手的源代碼,修改它的源代碼,設(shè)置成如果用戶按下不丟,小車前進(jìn)命令能夠一直發(fā)送。

思路2: 既然有了手機(jī)藍(lán)牙,那么小車再想展示一些狀態(tài)信息,就沒必要使用像1602,12864之類的東東了,直接定時(shí)發(fā)給手機(jī)藍(lán)牙模塊就OK了。我現(xiàn)在并沒有實(shí)現(xiàn)定時(shí)發(fā)送,不過支持了命令獲取的功能。 當(dāng)用戶發(fā)送命令h到單片機(jī),單片機(jī)會(huì)返回一個(gè)幫助界面,告知如何控制小車,例如”f”控制小車前進(jìn),”b”控制小車后退,當(dāng)用戶發(fā)送命令i到單片機(jī),單片機(jī)會(huì)返回小車的一些狀態(tài)信息,我當(dāng)前只返回了一些簡單的變量狀態(tài)(后面想加入距離,溫度,光敏都是可行的)。

思路3:有了藍(lán)牙,這個(gè)小車就可以被我們隨心所欲的控制了。你既可以推命令到單片機(jī),控制它,你又可以把單片機(jī)內(nèi)部的當(dāng)前狀態(tài)拉出來。單片機(jī)本身又可以定期將它的狀態(tài)向你的手機(jī)進(jìn)行推送。這個(gè)我感覺還是很好玩的,有了這個(gè)代碼的基本框架,后面有可能的話像實(shí)現(xiàn)一個(gè)小車的擴(kuò)展功能,加上紅外對管讓它不撞墻,加上超聲波讓它測距,加上麥克風(fēng)讓它向著聲音跑,加上人體感應(yīng)讓它做一個(gè)跟屁蟲,甚至于加上一個(gè)智能化點(diǎn)的程序,讓它能夠在一個(gè)屋子里隨便的轉(zhuǎn)悠,然后記錄屋里的情況。還想做的是加入一個(gè)wifi模塊,能將它的狀態(tài)信息上傳到路由器里面(手里有一個(gè)壞的路由器華為hg255d,正在修理中,還沒有摸清楚如何修),這樣遠(yuǎn)在千里之外都可以訪問小車上面?zhèn)鞲衅鞯那闆r了。還想加的是一個(gè)攝像頭模塊,不過單片機(jī)的處理能力有限,攝像頭的解碼對它是個(gè)大問題,估計(jì)很難辦到(手頭有優(yōu)龍fs2401開發(fā)板,剛修好它的電源模塊,正在研究中,不過前天它突然bios引導(dǎo)不起來了,也不知道是什么問題,關(guān)于這種arm的東西,還沒有接觸過,完全不懂刷bios,uboot等等的東西,看情況是要重新刷bios了)。


信盈達(dá)-嵌入式培訓(xùn)|物聯(lián)網(wǎng)培訓(xùn)|人工智能python培訓(xùn)|java培訓(xùn)|硬件培訓(xùn)|PCB培訓(xùn)|電子培訓(xùn)機(jī)構(gòu)


信盈達(dá)從事嵌入式教育十多年,積累了豐富的實(shí)戰(zhàn)教學(xué)項(xiàng)目,比如:四軸飛行器、機(jī)械手臂17自由度運(yùn)動(dòng)機(jī)器人、MCU環(huán)境檢測,智能可穿戴智能家居等。此外,信盈達(dá)2018嵌入式課程全面升級,新添加RK3399(A53+A72)教學(xué)平臺(tái)學(xué)習(xí)內(nèi)容,該平臺(tái)廣泛適用于AR設(shè)備、VA設(shè)備、3D設(shè)備、智能機(jī)器人、人臉識別、一體機(jī)、 庭影音、集群服務(wù)器、智能交互、車載設(shè)備、醫(yī)療行業(yè)、電視盒子等。