加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

《來實(shí)戰(zhàn)》第1期:多功能智能小車開源項(xiàng)目

2021/03/08
3985
服務(wù)支持:
技術(shù)交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
方塊圖(6)
相關(guān)方案
  • 方案介紹
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

此處最終顯示為電路方案的作者信息(僅在“來實(shí)戰(zhàn)”模板下生效)

廣大的工程師及電子愛好者朋友們,大家好!

在我們“來實(shí)戰(zhàn)”欄目上線后度過了第一個周末,相信經(jīng)過這幾天,大家更加關(guān)注我們進(jìn)度。別急,我們這是一個比較基礎(chǔ)的開源項(xiàng)目,所以我們前期準(zhǔn)備了大量的工作,爭取讓大家都搞懂。無論是沒有基礎(chǔ)的朋友還是老手,希望看了以后都有所幫助。

關(guān)于本次開源項(xiàng)目,我們計(jì)劃這樣來操作:

  1.對標(biāo)摩爾吧中的相關(guān)主題智能小車項(xiàng)目(基于恩智浦平臺智能汽車),我們這次用基于意法半導(dǎo)體的STM32平臺來打造多功能智能小車,最終實(shí)物性能如何?基于意法半導(dǎo)體平臺的智能小車PK恩智浦智能小車,誰更勝一籌?電路城開源項(xiàng)目組現(xiàn)在開始就通過逐步實(shí)操并最終打造出來,最后實(shí)物演示操作對比。

  2.項(xiàng)目更新進(jìn)度:每兩天在《來實(shí)戰(zhàn)》欄目上更新設(shè)計(jì)進(jìn)度內(nèi)容,在工程沒有實(shí)質(zhì)性進(jìn)度的時候也可以在論壇發(fā)帖分享進(jìn)行實(shí)施困難點(diǎn)、設(shè)計(jì)技術(shù)難點(diǎn)和原理講解及器件分析等。

  3.建立對應(yīng)項(xiàng)目討論群。利用現(xiàn)有已建立的技術(shù)Q群資源,我們在做每一個不同主題方向的項(xiàng)目時,為方便討論同時活躍Q群用戶,歡迎更多志同道合的小伙伴加進(jìn)來參加開源項(xiàng)目討論或給我們提供建議。

  4.采購設(shè)計(jì)工具

  (1)工具:電焊臺(刀頭、尖頭)、焊錫絲、吸錫器、助焊膏、烙鐵架子帶夾子、松香、熱熔膠槍、螺絲刀、萬用表、剪鉗、鑷子、鉗子、海綿、美工刀、元器件收納盒、手持鉆孔機(jī)等等,以后可以慢慢完善。示波器以及信號源、多功能電源。

 ?。?)元器件及材料:采購電子元器件以及打板。

  5.我們會定期舉辦開源項(xiàng)目直播交流,或制作一些項(xiàng)目設(shè)計(jì)過程中的小視頻,在項(xiàng)目交流群中與大家分享,感興趣的小伙伴馬上加入我們吧。

  6.建立開源項(xiàng)目貢獻(xiàn)者名單榮譽(yù)榜,不定期在本開源項(xiàng)目頁面更新。項(xiàng)目結(jié)束后,對該開源項(xiàng)目貢獻(xiàn)突出的小伙伴,我們評選出“開源之星”給予神秘大獎獎勵。開源項(xiàng)目貢獻(xiàn)者名單會被注明在最終的開源項(xiàng)目方案中。

  7.期待更多的志同道合的技術(shù)大咖加入我們“開源項(xiàng)目智囊團(tuán)”,出謀劃策,為開源貢獻(xiàn)自己應(yīng)有的力量。

      PS:這是一個開源項(xiàng)目,項(xiàng)目已經(jīng)被全部分享本項(xiàng)目的下載資料,供大家免費(fèi)下載。

步驟1:設(shè)計(jì)的要求及技術(shù)指標(biāo)

在該環(huán)節(jié),我們將根據(jù)項(xiàng)目的流程,從以下四個方面來闡述我們對應(yīng)的要求和指標(biāo):

1. 硬件系統(tǒng)(確定硬件設(shè)計(jì)思路,完成主要器件選型及相關(guān)資料查找);

1)硬件設(shè)計(jì)思路:我們初步定下來是使用意法半導(dǎo)體的STM32F103系列??赡苡械呐笥褧柫?,就做個小車子還用什么STM32,51單片機(jī)就能做好了,或者是向我們推薦更好的主控芯片。我們思考了很久,覺得51單片機(jī)還是太基礎(chǔ)了,市場上應(yīng)用的太少了,所以選擇比較合適的STM32單片機(jī)。

2)主要器件的選擇及性能要求

(1)內(nèi)核:ARM 32位的Cortex-M3 CPU

(2)存儲器:64K或128K的閃存程序存儲器

(3)時鐘、復(fù)位和電源管理

(4)低功耗

(5)2個12位模數(shù)轉(zhuǎn)換器

(6)DMA直接存儲器

(7)快速I/O口

(8)7個定時器

(9)9個通信接口

2. 軟件系統(tǒng)

        我們的程序編寫是一個什么樣的框架?這個也是動手寫程序之前的一個很好的問題,只有先確定框架,程序才會有條理。我們這個小車要實(shí)現(xiàn)循跡、避障、語音識別、通信、電機(jī)驅(qū)動,后面還有圖像處理等等。

        我們的遙控板和主控板不同的是重要的還有ADC的采集和數(shù)據(jù)的處理,這也是非常重要的一個知識點(diǎn)。所以程序在我們確定好硬件使用資源后,就可以制定框架進(jìn)行程序編寫了。

3.設(shè)計(jì)方案的模塊選擇

       我們的小車設(shè)計(jì)已經(jīng)到了實(shí)際階段,基本完成了初步設(shè)計(jì),今天我們就來討論一下我們的具體方案。我們選擇的是履帶式坦克小車,原因很簡單,相比四輪小車感覺要酷一點(diǎn)。另外一點(diǎn)呢對地形要求低,可玩性大大提高。電機(jī)采用的是CGM-25-370直流減速電機(jī)。電池我們采用大容量鋰聚合物電池,INPUT:DC-12.6V,OUTPUT:10.8-12.6V.容量是3000mAh,小車的續(xù)航能力有了保證。主控板的電源管理上,我們采用了德州儀器的TPS54531。

       我們根據(jù)官方資料以及網(wǎng)友提供的設(shè)計(jì)資料,設(shè)計(jì)了DC-DC斬波電路LDO降壓模塊LDO降壓采用了AMS1117-3.3這款常見的線性穩(wěn)壓LDO。大家可能對TPS54531不太熟悉,沒關(guān)系,不是一定要使用TPS54531,電路城還有很多DC-DC斬波電路。我們的電機(jī)驅(qū)動采用的是A4950,為什么采用A4950呢?它的優(yōu)點(diǎn)如下,主要是比L298N電機(jī)驅(qū)動起來要簡單。我們通信采用大家熟悉的NRF24L01,nRF24L01是由NORDIC生產(chǎn)的工作在2.4GHz~2.5GHz的ISM 頻段的單片無線收發(fā)器芯片。我們采用的是E01-ML01S模塊。

       整個設(shè)計(jì)過程中其實(shí)就是在思考著幾點(diǎn):第一點(diǎn)追求性價比,哪個參數(shù)好、便宜;第二點(diǎn)哪個應(yīng)用簡單,降低設(shè)計(jì)開發(fā)難度;第三點(diǎn)哪種方案更方便大家接受,最好是資料充足的,利于自行學(xué)習(xí)。最后給大家看一下我們組裝的車體,主控板也會盡快和大家見面喲!

 

步驟2:硬件系統(tǒng)設(shè)計(jì)

硬件系統(tǒng)各模塊功能介紹

紅外避障模塊主要有一對紅外對管以及電壓比較器LM393構(gòu)成,原理如上圖所示。

     (1)紅外模塊:該傳感器模塊對環(huán)境光線適應(yīng)能力強(qiáng),其具有一對紅外線發(fā)射與接收管,發(fā)射管發(fā)射出一定頻率的紅外線,當(dāng)檢測方向遇到障礙物(反射面)時,紅外線反射回來被接收管接收,經(jīng)過比較器電路處理之后,綠色指示燈會亮起,同時信號輸出接口輸出數(shù)字信號(一個低電平信號),可通過電位器旋鈕調(diào)節(jié)檢測距離,有效距離范圍 2~30cm,工作電壓為 3.3V-5V。該傳感器的探測距離可以通過電位器調(diào)節(jié)、具有干擾小、便于裝配、使用方便等特點(diǎn),可以廣泛應(yīng)用于機(jī)器人避障、避障小車、流水線計(jì)數(shù)及黑白線循跡等眾多場合。

       我們給它上電,電源指示燈亮起,進(jìn)入正常工作狀態(tài)。當(dāng)出現(xiàn)障礙物時,輸出指示燈亮起,說明輸出信號電平已經(jīng)被拉低。這里測試一定要用白色障礙物,黑色探測距離最小,白色最大。如果是黑色障礙物,基本上是檢測不到障礙物的存在,所以根據(jù)這個我們也可以使用該模塊進(jìn)行循跡操作。當(dāng)模塊對準(zhǔn)黑線時,輸出電平?jīng)]有被拉低。當(dāng)模塊偏離黑線的時候,輸出指示燈亮,電平被拉低。由此我們可以驗(yàn)證該模塊應(yīng)用于循跡是可以的。但是單模塊還是沒有辦法很好的執(zhí)行循跡,容易偏離丟失,推薦使用兩個或者多個模塊共同用于循跡。假設(shè)兩對紅外對管放在車頭,對管A檢測到是黑線,電平不改變;對管B檢測到非黑線,電平被拉低,這個時候車輛便要往A方向單位移動,這樣就可以較好的實(shí)現(xiàn)循跡。使用四路的話呢,有兩路可以用來防碰撞、防跌落或者避障。

       這種紅外對管模塊用來避障有一個缺點(diǎn),那便是距離太短,有效距離范圍 2~30cm。后面會給大家介紹到超聲波模塊,探測距離會長一點(diǎn),可用于避障也可用于測距。

     (2)語音模塊:LD3320芯片是一款“語音識別”專用芯片,基于ICRoute公司設(shè)計(jì)生產(chǎn)。該芯片集成了語音識別處理器和部分外設(shè)電路,包括麥克風(fēng)接口、AD、DA轉(zhuǎn)換器、聲音輸出接口等。本芯片高效與節(jié)能,不需要外接任何如Flash、RAM等的存儲芯片,直接集成在功能所需的器件即可以實(shí)現(xiàn)語音識別/聲控/人機(jī)對話功能。另外,可以任意動態(tài)編輯識別的關(guān)鍵詞語列表。首先我們根據(jù)資料掌握該模塊串口接收使用功能,這里設(shè)置要傳輸?shù)淖止?jié),比如我們發(fā)送AA BB CC DD。這里總共是13個字節(jié),其中可用字節(jié)是10個,后面必須有FF FF FF做結(jié)束標(biāo)志。通過語音觸發(fā)以后,就開始向串口發(fā)送相關(guān)信息。使用USB轉(zhuǎn)TTL模塊連接電腦,打開串口調(diào)試器,做出相應(yīng)語音控制,便能將對應(yīng)的數(shù)據(jù)通過串口發(fā)送至串口調(diào)試工具。我們可以看到,電腦串口調(diào)試工具成功接收到了語音識別模塊發(fā)送的數(shù)據(jù)。如果該模塊連接的是小車主控板,那么就可以通過串口將所要傳輸?shù)淖止?jié)發(fā)送給主控板,主控板會經(jīng)過處理作出相應(yīng)動作。所以該模塊用于簡單語音控制是非常便利的,我們可以通過語音來控制小車的簡單動作,比如:前進(jìn)、后退、轉(zhuǎn)圈以及轉(zhuǎn)彎。

        那么,同理,在我們小車實(shí)現(xiàn)某些動作后也可以將定義好的數(shù)據(jù)通過串口傳輸至語音處理模塊,播放相應(yīng)提示詞。所以由于這個模塊的使用大大方便了我們控制,但是這個并算不上真正意義上的語音控制,沒有學(xué)習(xí)功能,沒有數(shù)據(jù)庫,我想這只能算作人工制杖了。

 

步驟3:軟件系統(tǒng)設(shè)計(jì)

軟件系統(tǒng)各模塊功能介紹

     (1) PWM輸出測試:在我們硬件通過測試后就要進(jìn)行程序的編寫了,通過定時器來進(jìn)行PWM輸出。前面也有跟大家提到過,STM32F103CBT6有7個定時器。這3個16位的定時器,每個定時器有多達(dá)4個可做PWM輸出的通道,所以最多可以有12路PWM輸出。前面也有跟大家介紹A4950,可以控制1個電機(jī)正反轉(zhuǎn),需要2個PWM引腳。(如果不需要反轉(zhuǎn),只需要1個PWM引腳。)使用比L298簡單的多,程序編寫也比較方便。配置管腳參數(shù),輸出比較通道的初始化,定時器的初始化。時間基數(shù)單位設(shè)置:TIM_TimeBaseStructure.TIM_Period這個是設(shè)置計(jì)數(shù)終止值,假設(shè)是7200-1,則在7200個頻率后產(chǎn)生一個更新和中斷。TIM_TimeBaseStructure.TIM_Prescaler簡單說就是從0開始計(jì)數(shù)。TIM_TimeBaseStructure.TIM_CounterMode簡單說就是設(shè)置計(jì)數(shù)方式,定時器分為向上、向下、中心對齊三種計(jì)數(shù)方式。經(jīng)過我們上述步驟后就能產(chǎn)生pwm輸出了,因?yàn)槲覀円M(jìn)行電機(jī)控制,所以還需要一個pwm輸出控制函數(shù),來調(diào)節(jié)pwm輸出。如:這樣其實(shí)就相當(dāng)電機(jī)控制的接口函數(shù)做出來了,通過我們這個函數(shù)可以實(shí)現(xiàn)完美電機(jī)控制,經(jīng)過測試是可用的。注意,這里我們只使用了TIM2的通道1和通道2;TIM3的通道3和通道4。這個地方有點(diǎn)不明白的同學(xué)可以去看一看A4950的控制方式。

     (2)程序編寫及清單:通過幾天的測試程序編寫,可以實(shí)現(xiàn)對小車的遙控控制。通過NRF24L01實(shí)現(xiàn)遙控控制,可控制前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)。原理就是遙控ADC采集搖桿電位器的電壓通過處理再傳給主控板實(shí)現(xiàn)對兩個電機(jī)的控制。這個控制的難點(diǎn)其實(shí)就是PWM輸出的程序的編寫,因?yàn)锳4950模塊通過脈寬調(diào)制(PWM)控制兩個直流電動機(jī),輸入端通過應(yīng)用外部 PWM 控制信號以控制直流電動機(jī)的速度與方向。內(nèi)部同步整流控制電路用來降低脈寬調(diào)制 (PWM) 操作時的功率消耗。其次呢就是NRF24L01無線通信程序的編寫,但是網(wǎng)上有很多例程,所以相對來說還比較好解決一點(diǎn)。前面那個控制A4950驅(qū)動的程序例程比較少,需要自己摸索。

 

步驟4:實(shí)物測試及項(xiàng)目總結(jié)

1.焊接(待元器件集齊,打板完成,進(jìn)行焊接以及相關(guān)結(jié)構(gòu)制作,模型安裝等);

 2.軟件調(diào)試;

 3.硬件調(diào)試(結(jié)合軟硬件調(diào)試,完成程序修改,確保功能實(shí)現(xiàn),驗(yàn)證硬件部分沒有問題);

 4.設(shè)計(jì)結(jié)果分析(測試功能、驗(yàn)證相關(guān)參數(shù),有什么不足以及改正,對做的不好的地方留時間補(bǔ)救);

    5.測試過程(完整測試的發(fā)表,實(shí)測);

    6.項(xiàng)目總結(jié)

版權(quán)聲明:本文系電路城原創(chuàng)內(nèi)容,未經(jīng)授權(quán)禁止轉(zhuǎn)載,侵權(quán)必究!

  • 原理圖.zip
    描述:電路圖文件
  • VDRC硬件程序.zip
    描述:源碼
  • 項(xiàng)目資料.zip
    描述:完整資料

相關(guān)推薦

電子產(chǎn)業(yè)圖譜