最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

立創(chuàng)梁山派-21年電賽F題-智能送藥小車(chē)-賽題分析

2023-07-12 16:59 作者:立創(chuàng)開(kāi)發(fā)板  | 我要投稿

送藥小車(chē)立創(chuàng)開(kāi)源平臺(tái)資料:https://oshwhub.com/li-chuang-kai-fa-ban/21-dian-sai-f-ti-zhi-neng-song-yao-xiao-che

送藥小車(chē)代碼倉(cāng)庫(kù):https://gitee.com/lcsc/medical_car

結(jié)構(gòu)相關(guān)

  1. 小車(chē)長(zhǎng)×寬×高不大于?25cm×20cm×25cm,只能使用普通車(chē)輪。在轉(zhuǎn)彎時(shí)不能碰到走廊邊緣,所以小車(chē)要盡可能小,越小越不容易碰到走廊邊緣。

  2. 藥品重約 200g。

硬件相關(guān)

  1. 兩個(gè)小車(chē)均由電池供電。

  2. 兩車(chē)之間要能無(wú)線通訊。

  3. 外界不能有任何附加電路與控制裝置。

  4. 要有一個(gè) RGB 燈(通過(guò)不同的 PWM 值控制來(lái)切換顏色)或者直接三個(gè)紅,黃,綠燈。

  5. 作品應(yīng)能適應(yīng)無(wú)陽(yáng)光直射的自然光照明及頂置多燈照明環(huán)境,測(cè)試時(shí)不得有特殊照明條件要求。

軟件相關(guān)

  1. 每次測(cè)試開(kāi)始時(shí),只允許按一次復(fù)位鍵,裝載藥品后即刻啟動(dòng)運(yùn)送時(shí)間記時(shí),卸載藥品后即刻啟動(dòng)返回時(shí)間記時(shí)。不能人工干預(yù),測(cè)試項(xiàng)目只能測(cè)試一次。

  2. 在藥房處識(shí)別病房號(hào)的時(shí)間不超過(guò) 20s,發(fā)揮部分 1 中自選暫停點(diǎn)處的小車(chē) 2 與小車(chē) 1 的車(chē)頭投影外沿中心點(diǎn)的紅實(shí)線距離不小于 70cm。

  3. 有任何一個(gè)指示燈處于點(diǎn)亮狀態(tài)的小車(chē)必須處于停止?fàn)顟B(tài),運(yùn)送過(guò)程中不允許在同一走廊上錯(cuò)車(chē)或超車(chē)。

功能(得分)相關(guān)

  1. 近端病房號(hào)位置固定不變,中部病房和遠(yuǎn)端病房號(hào)(3-8 號(hào))在測(cè)試時(shí)隨機(jī)設(shè)定。

  2. 檢測(cè)到藥品裝載完成后就開(kāi)始自動(dòng)運(yùn)送。

  3. 單個(gè)小車(chē)運(yùn)送藥品到指定的近端病房并返回到藥房,運(yùn)送時(shí)間和返回時(shí)間均小于 20s,超時(shí)扣分。

基本要求

  1. 根據(jù)走廊上的標(biāo)識(shí)信息自動(dòng)識(shí)別,尋徑將藥品送到指定病房,投影要在門(mén)口區(qū)域內(nèi),

  2. 到了指定病房后,點(diǎn)亮紅色指示燈,等待卸載藥品。

  3. 人工卸掉藥品后,小車(chē)自動(dòng)熄滅紅色指示燈,開(kāi)始返回。

  4. 自動(dòng)返回藥房,點(diǎn)亮綠色指示燈

地圖如上所示

發(fā)揮部分

  1. 兩個(gè)小車(chē)協(xié)同運(yùn)送到同一指定的中部病房,小車(chē) 1 到達(dá)病房后等待卸載藥品,小車(chē) 2 識(shí)別病房房號(hào)裝載藥品后啟動(dòng)運(yùn)送,到達(dá)自選暫停點(diǎn)后暫停,點(diǎn)亮黃色指示燈,等待小車(chē) 1 卸載;小車(chē) 1 卸載藥品后開(kāi)始返回,同時(shí)控制小車(chē) 2 熄滅黃色指示燈,繼續(xù)運(yùn)送。(從小車(chē) 2 啟動(dòng)運(yùn)送開(kāi)始,到小車(chē) 1 返回藥房且小車(chē) 2 到達(dá)病房的總時(shí)間越短越好,不計(jì)算小車(chē) 2 黃燈亮?xí)r的暫停時(shí)間,不超過(guò) 60s)

  2. 兩個(gè)小車(chē)協(xié)同運(yùn)送到不同的遠(yuǎn)端病房送、取藥品,小車(chē) 1 送藥,小車(chē) 2 取藥。小車(chē) 1 識(shí)別病房號(hào)裝載藥品后開(kāi)始運(yùn)送,小車(chē) 2 在藥房處識(shí)別病房號(hào)等待小車(chē) 1 的取藥開(kāi)始指令;小車(chē) 1 到達(dá)病房后卸載藥品,開(kāi)始返回,同時(shí)向小車(chē) 2 發(fā)送啟動(dòng)取藥指令;小車(chē) 2 收到取藥指令后開(kāi)始啟動(dòng),到達(dá)病房后停止,亮紅色指示燈(從小車(chē) 1 返回開(kāi)始,到小車(chē) 1 返回到藥房且小車(chē) 2 到達(dá)取藥病房的總時(shí)間越短越好,不超過(guò) 60s)

  3. 其他

如何基于梁山派制作一個(gè)送藥小車(chē)

從上面的題目我們可以分析出,完成題目的基礎(chǔ)要求有這些:

主控

  1. 主控當(dāng)然是用?立創(chuàng)·梁山派開(kāi)發(fā)板?了,他用的芯片是?GD32F470ZGT6,主頻 240、內(nèi)部 SDRAM 512K。

  2. 對(duì)于智能車(chē)比賽來(lái)說(shuō)是足夠用了。

  • 板載 4 個(gè) led,可以用來(lái)做狀態(tài)指示。

  • 核心板上有兩個(gè)按鍵可以用來(lái)設(shè)置參數(shù)。

  • 一路 SDIO-TF 卡槽,如果需要記錄調(diào)試數(shù)據(jù),可以移植文件系統(tǒng),把要記錄的數(shù)據(jù)以 CSV 格式寫(xiě)入 sd 卡中,需要查看調(diào)試數(shù)據(jù)時(shí)把 sd 卡中的文件拷入到電腦里,用 EXCEl 或者 Python 做數(shù)據(jù)分析

  • 一路 SPI Flash,可以用來(lái)存儲(chǔ)需要掉電保存的數(shù)據(jù)以及各種關(guān)鍵數(shù)據(jù)。

  • SWD+串口調(diào)試接口,可以通過(guò)這個(gè)接口直接燒錄調(diào)試,并且?guī)б粋€(gè)串口方便調(diào)試。

更多信息可以去立創(chuàng)開(kāi)發(fā)板官網(wǎng)查看

航模電池需要給小車(chē)核心板供電,但用的航模 3S 電池是不能直接供給開(kāi)發(fā)版的,開(kāi)發(fā)版需要的電壓是 5V,所以需要一個(gè)降壓芯片。常用的降壓模塊可就多了去了,比如 MP1584EN,LM2596,TPS5430 等。這里我們?yōu)榱巳珖?guó)產(chǎn)化就選用國(guó)產(chǎn) SGMICRO(圣邦微)的 SGM6132,最大電流 3A,輸入范圍 4.5V-28.5V。

驅(qū)動(dòng)小車(chē)前進(jìn)和轉(zhuǎn)彎的動(dòng)力裝置(只能用普通車(chē)輪)

  1. 驅(qū)動(dòng)方式選擇

    1. 后驅(qū)+前置舵機(jī)轉(zhuǎn)向方式(就是平常路上開(kāi)的那種小轎車(chē)的結(jié)構(gòu),適用于路線直角轉(zhuǎn)彎比較少的地方,相信大家也知道汽車(chē)過(guò)直角彎有多麻煩,這種對(duì)轉(zhuǎn)彎半徑要求較高,并且還需要考慮后兩輪差速問(wèn)題)

    2. 四輪驅(qū)動(dòng)+差速轉(zhuǎn)彎(比如最近比亞迪新出的仰望 U8,他的輪子由四個(gè)電機(jī)獨(dú)立控制,每一個(gè)電機(jī)可以單獨(dú)控制輪子實(shí)現(xiàn)正轉(zhuǎn)和反轉(zhuǎn),當(dāng)左側(cè)兩個(gè)輪子和右側(cè)兩個(gè)輪子以相反的方向轉(zhuǎn)動(dòng)時(shí),就可以實(shí)現(xiàn)原地轉(zhuǎn)向)

    3. 兩輪驅(qū)動(dòng)+萬(wàn)向輪||牛眼輪(對(duì)于這個(gè)比賽我認(rèn)為用兩個(gè)輪子+一個(gè)或兩個(gè)從動(dòng)輪就夠用了,而且輪子電機(jī)少,做出來(lái)的小車(chē)尺寸也更小,不容易壓到題目中說(shuō)的走廊邊緣。這個(gè)的轉(zhuǎn)彎就是給兩個(gè)電機(jī)不同的轉(zhuǎn)動(dòng)方向就行了)

  • 直流減速有刷電機(jī)

    • 優(yōu)點(diǎn)

      • 轉(zhuǎn)速范圍廣,轉(zhuǎn)速高,扭矩大。

      • 控制簡(jiǎn)單,使用方便。

      • 價(jià)格低廉。

    • 缺點(diǎn)

      • 需要外接減速器,體積較大。

      • 轉(zhuǎn)速波動(dòng)較大,精度不高。

      • 不適合高精度運(yùn)動(dòng)控制。

  • 步進(jìn)電機(jī)

    • 優(yōu)點(diǎn)

      • 轉(zhuǎn)動(dòng)精度高,不需要編碼器。

      • 可以實(shí)現(xiàn)高精度定位和運(yùn)動(dòng)控制。

      • 適合低速高精度運(yùn)動(dòng)。

    • 缺點(diǎn)

      • 轉(zhuǎn)矩小,轉(zhuǎn)速慢。

      • 需要驅(qū)動(dòng)器,控制復(fù)雜。

      • 價(jià)格相對(duì)較高。

  • FOC無(wú)刷電機(jī)

    • 優(yōu)點(diǎn)

      • 轉(zhuǎn)速范圍廣,轉(zhuǎn)速高,扭矩大。

      • 轉(zhuǎn)速精度高,控制精度高。

      • 能夠?qū)崿F(xiàn)高效能、低噪音的運(yùn)行。

    • 缺點(diǎn)

      • 硬件成本相對(duì)較高。

      • 控制復(fù)雜,需要配合專門(mén)的控制器使用。

      • 對(duì)控制算法的要求較高。

那我就選擇普通的直流減速有刷電機(jī)了,要自帶編碼器,因?yàn)榫幋a器可以提供電機(jī)轉(zhuǎn)速和位置信息,這些信息對(duì)于小車(chē)的控制非常重要??梢詭椭悄苘?chē)更加精確地控制電機(jī)的旋轉(zhuǎn)速度和位置,可以提供反饋,提高小車(chē)的可靠性和穩(wěn)定性。
用步進(jìn)電機(jī)也是不錯(cuò)的選擇,適合中低速,只要電流足夠并且扭矩不超過(guò)額定值,設(shè)置好細(xì)分,你給一個(gè)脈沖他就轉(zhuǎn)一定的角度,甚至可以不用編碼器就可以穩(wěn)定轉(zhuǎn)速,相對(duì)來(lái)說(shuō)步進(jìn)電機(jī)的驅(qū)動(dòng)器一般都比較大,要注意布局。
用 FOC 電機(jī)就更好了,高中低速都適合,但是對(duì)控制算法要求很高,對(duì)驅(qū)動(dòng)電路要求也高,大佬可以用。

針對(duì)直流電機(jī)的選型,要注意轉(zhuǎn)速和額定電壓。可以確定了輪子直徑后再來(lái)確定電機(jī)的轉(zhuǎn)速。
輪胎直徑為6.5cm,周長(zhǎng)=0.065*3.14=0.2041米,走1米的距離需要轉(zhuǎn)4.90圈,也就是如果每秒轉(zhuǎn)4.90圈,全速1m/s需要 300轉(zhuǎn)/分鐘,全速2m/s需要 600轉(zhuǎn)/分鐘,全速3m/s需要 900轉(zhuǎn)/分鐘
輪胎直徑為8.5cm,周長(zhǎng)=0.085*3.14=0.2669米,走1米的距離需要轉(zhuǎn)3.75圈,也就是如果每秒轉(zhuǎn)3.75圈,全速1m/s需要 225轉(zhuǎn)/分鐘,全速2m/s需要 450轉(zhuǎn)/分鐘,全速3m/s需要 675轉(zhuǎn)/分鐘

直流電機(jī)電機(jī)驅(qū)動(dòng)選擇
用直流減速電機(jī)的話電機(jī)驅(qū)動(dòng)就比較簡(jiǎn)單了,常用的直流電機(jī)驅(qū)動(dòng)有以下這些:

  1. L298N,經(jīng)久不衰,相信每一個(gè)剛開(kāi)始接觸智能車(chē)比賽或者循跡小車(chē)的人都知道。它可以 5V 和 12V 供電,是一個(gè)雙 H 橋電機(jī)驅(qū)動(dòng),可以控制兩個(gè)直流電機(jī)或者一個(gè)步進(jìn)電機(jī)。他有一個(gè)非常大的散熱片,當(dāng) 12V 供電時(shí),他還可以對(duì)外輸出 5V 給外部設(shè)備供電。

  2. 自己搭建 H 橋驅(qū)動(dòng)電路,一般都是要驅(qū)動(dòng)的電機(jī)功率很高以及制作者水平很高。對(duì)于這個(gè)送藥小車(chē)比賽來(lái)說(shuō),用成品的電機(jī)驅(qū)動(dòng)芯片就夠了

  3. TB6612,體積小巧,市面上有很多基于這個(gè)芯片的模塊,用的人多,不容易出問(wèn)題

  4. RZ7899,國(guó)產(chǎn)電機(jī)驅(qū)動(dòng),主要用在玩具,閥門(mén)電機(jī)驅(qū)動(dòng),電磁門(mén)鎖驅(qū)動(dòng)等。在網(wǎng)上搜索相關(guān)資料時(shí)發(fā)現(xiàn)有些帖子說(shuō)在使用過(guò)程中會(huì)出現(xiàn)芯片燒毀的現(xiàn)象,有可能是其內(nèi)部沒(méi)有做死區(qū)控制引起的。而且查詢其 datasheet 也沒(méi)有發(fā)現(xiàn)對(duì)輸入 PWM 頻率的限制和說(shuō)明,網(wǎng)友一般都建議在 1khz 以下。

  5. AT8870,這款的 datasheet 已說(shuō)明有死區(qū)控制,網(wǎng)上評(píng)價(jià)比較高,且其最大 PWM 輸入頻率可以高達(dá) 100Khz,這就意味著電機(jī)控制會(huì)很順滑,不會(huì)出現(xiàn)異常的噪音。對(duì)于一般的電機(jī)控制速度來(lái)說(shuō),PWM 信號(hào)最少也得來(lái)個(gè) 1Khz 以上吧。

輪子選擇
盡量選擇輪子的外部材料為軟質(zhì)橡膠,接觸面積越大越不容易打滑,在小車(chē)啟動(dòng)和停止的時(shí)候更不容偏移。不過(guò)考慮到小車(chē)尺寸?25cm×20cm×25cm?的要求,在滿足抓地力的情況下小車(chē)輪子與地面接觸面越小越不容易壓到走廊黑線。輪子的直徑越小對(duì)電機(jī)扭矩的要求就越小。在選擇的時(shí)候自由取舍。

檢測(cè)地圖中紅線以及檢測(cè)門(mén)口區(qū)域(黑色)

  1. 視覺(jué)識(shí)別

    1. Openmv(現(xiàn)在最火的嵌入式機(jī)器視覺(jué)模塊,使用 MicroPython 驅(qū)動(dòng),可以把它當(dāng)成一個(gè)可編程攝像頭)

    2. K210(是國(guó)內(nèi)廠家勘智研發(fā)的一款采用 RISC-V 處理器架構(gòu),典型設(shè)備功耗 1w,算力1TOPS 的 AI 芯片,自帶 SRAM,可以在本地完成數(shù)據(jù)的處理和存儲(chǔ),國(guó)內(nèi)廠家也根據(jù) openmv 的 IDE 重新制作了 Canmv IDE 和 Maixpy IDE)

    3. 樹(shù)莓派,卡片個(gè)人電腦,可以在上面直接運(yùn)行 OpenCV,進(jìn)行循跡和數(shù)字識(shí)別,性能比上面兩個(gè)都強(qiáng)得多,但是開(kāi)發(fā)難度也是最大的,它可以用很高清的攝像頭,用它來(lái)參賽簡(jiǎn)直可以說(shuō)是降維打擊。

    4. 這幾個(gè)都可以使用 Python 編程,前兩個(gè)上手比較容易,這第一個(gè)和第二個(gè)文檔資料比較豐富。

    5. 針對(duì)巡線,一般來(lái)說(shuō)就是要找到圖像區(qū)域中想要的色塊,不管是灰度閾值還是 LAB 閾值,都需要提前獲取你想要找到的對(duì)應(yīng)顏色的閾值,盡量選取能和比賽時(shí)環(huán)境差多不的情況下的閾值。這個(gè)閾值的調(diào)節(jié)可以參考他們對(duì)應(yīng) IDE 里面的機(jī)器視覺(jué)中的閾值編輯器,可以很方便的更改閾值。

    6. 初學(xué)的話可以先運(yùn)行一下他們各自的找色塊例程,熟悉一下如何使用,然后學(xué)習(xí)怎么劃分 ROI,感興趣區(qū),讓處理器只在你要求的區(qū)域?qū)ふ疑珘K。

    7. 這里我們就選擇國(guó)產(chǎn)的 K210 了,他在性能上比 openmv 強(qiáng),但是他的軟件庫(kù)要比 openmv 落后不少,有些能在 openmv 上執(zhí)行的語(yǔ)句在 K210 上是執(zhí)行不了的,不對(duì)對(duì)于找色塊對(duì)它來(lái)說(shuō)就是小菜一碟。了解了如何獲取到色塊中心坐標(biāo)后,就再運(yùn)行一下他提供的串口例程然后修改它讓他可以傳輸色塊的中心坐標(biāo),可以用串口助手在電腦上收到 k210 發(fā)送過(guò)來(lái)的色塊坐標(biāo)信息后基本就可以了。

  2. 光電二極管灰度傳感器(主要是利用光電二極管對(duì)光線的敏感性,通過(guò)測(cè)量物體表面反射的光線強(qiáng)度來(lái)確定物體表面的灰度值,探測(cè)到不同顏色地面時(shí)會(huì)產(chǎn)生不同的電壓值,電壓值會(huì)隨被測(cè)面的顏色變化而變化,所以理論上可以識(shí)別任意顏色)

    1. 模擬式(模擬式需要單片機(jī)自帶 AD 采集(模擬量采集),采集到的信息更準(zhǔn)確,需要在單片機(jī)端自己設(shè)置閾值來(lái)進(jìn)行判斷當(dāng)前識(shí)別的顏色)

    2. 數(shù)字式(他就是基于模擬式,一般會(huì)自帶一個(gè)處理芯片或者比較器,通過(guò)手動(dòng)調(diào)整電路板上的旋轉(zhuǎn)電阻器來(lái)設(shè)置靈敏度,針腳直接輸出的就是高低電平)

  3. 紅外反射傳感器(只適用于黑線識(shí)別,調(diào)整非常麻煩,基本上是不能用,雖然他簡(jiǎn)單,不易受光線影響,但是他是無(wú)法區(qū)分白和紅的,而本次題目中是紅線)

  4. 線性CCD,可以說(shuō)他是只有一個(gè)像素的攝像頭,是一個(gè)一維的攝像頭,他可以很容易識(shí)別紅色與白色。


小車(chē)底板和固定藥品裝置,固定攝像頭機(jī)構(gòu),供電電池,緊急開(kāi)關(guān)

  1. 小車(chē)底板一般常用的板材有

    1. 亞克力板

    2. 碳纖板

    3. 玻纖板

    4. 電木板

    5. 鋁合金板

    6. 我們普通的電路板都是 FR-4 玻纖板,1.6mm 板厚對(duì)于做這種小車(chē)來(lái)說(shuō)強(qiáng)度是足夠的,而且加工也挺方便的,畫(huà)個(gè)電路板板框,里面再加一些孔位和一些導(dǎo)線,直接發(fā)到嘉立創(chuàng)等收貨就行了,如果想用亞克力板的話也可以用嘉立創(chuàng) EDA 專業(yè)版畫(huà)面板,然后去立創(chuàng)商城下單,把面板當(dāng)成小車(chē)底板用。在設(shè)計(jì)的時(shí)候可以多打一些孔,方便后面調(diào)整各個(gè)部件的位置。如果你的預(yù)算充足的話,也可以用鋁合金板,現(xiàn)在三維猴可以接 CNC 訂單。

  2. 固定藥品裝置

    1. 題目中要求是一次性裝置約 200g 藥品,但沒(méi)有要求測(cè)量藥品重量,所以只要能檢測(cè)到藥品有沒(méi)有裝上就行了。可以使用接近開(kāi)關(guān)傳感器或者直接用輕觸開(kāi)關(guān),不怕麻煩的話也可以直接用稱重傳感器。

    2. 既然選了用砝碼來(lái)替代藥品,就得設(shè)計(jì)一個(gè)裝載砝碼的打印結(jié)構(gòu),防止小車(chē)運(yùn)動(dòng)時(shí)造成砝碼脫落。設(shè)計(jì)時(shí)要注意 3D 文件的壁厚不要太薄,強(qiáng)度不夠容易破裂,畫(huà)完后導(dǎo)出 STL 文件后直接到三維猴下單就行了,一般這種不長(zhǎng)時(shí)間在太陽(yáng)下使用的結(jié)構(gòu)件,直接選最便宜的樹(shù)脂材料就行。

  3. 固定攝像頭裝置

    1. 這個(gè)一般也是用 3D 打印來(lái)制作,考慮到遠(yuǎn)端病房有四個(gè)數(shù)字并排放置的情況,如果攝像頭不動(dòng)的話很有可能是識(shí)別不全的。所以還需要加一個(gè)舵機(jī)使得攝像頭可以左右偏轉(zhuǎn)。為了小車(chē)運(yùn)行的穩(wěn)定,小車(chē)的重心應(yīng)該盡量靠近兩個(gè)驅(qū)動(dòng)輪中間,所以 k210 主板和攝像頭是分開(kāi)的,攝像頭架子上就是一個(gè)單獨(dú)的 OV2640 攝像頭和 FPC 延長(zhǎng)板。對(duì)于這個(gè)重量,用 5V 供電的塑料齒銀燕舵機(jī) ES08A II 也就夠了。

    2. 因?yàn)樘崆耙膊磺宄z像頭哪個(gè)角度跟合適,所以需要這個(gè)固定攝像頭的裝置也可以上下手動(dòng)調(diào)節(jié),一般我們可以在 3d 模型上開(kāi)出圓弧形狀的槽或者圓弧陣列防止的螺絲孔。這個(gè)對(duì)于精準(zhǔn)角度的要求不高,但是固定好確定好角度之后就應(yīng)該是不變的,方便后續(xù)數(shù)字識(shí)別的采集和選線。

  4. 供電電池:考慮到要驅(qū)動(dòng)直流減速電機(jī),所以除了要考慮容量也要考慮放電倍率,一般選用航模電池就足夠了,一般常用的電機(jī)都是 12v 驅(qū)動(dòng),所以這里可以選擇一個(gè) 3s 航模鋰電池。

  5. 緊急開(kāi)關(guān):為了防止調(diào)試小車(chē)時(shí)出現(xiàn)參數(shù)設(shè)置錯(cuò)誤導(dǎo)致失控從而造成傷車(chē)傷人,可以加一個(gè)急停開(kāi)關(guān),出現(xiàn)異常的情況時(shí)拍一下急停開(kāi)關(guān)讓小車(chē)斷電。

用來(lái)識(shí)別任務(wù)目標(biāo)房號(hào)和走廊上房號(hào)的數(shù)字識(shí)別模塊

因?yàn)轭}中是確定的印刷體,所以比較簡(jiǎn)單的方法是模板匹配,他是將采集到的數(shù)字與模板的像素點(diǎn)做對(duì)比運(yùn)算來(lái)計(jì)算相似率的。

我們上面已經(jīng)選取了 K210 來(lái)做巡線,它自帶 KPU(通用的神經(jīng)網(wǎng)絡(luò)處理器),也非常適合用來(lái)作數(shù)字識(shí)別。我使用的 IDE 是 MaixPy,要采集的數(shù)據(jù)集圖像尺寸為 224*224(這是目前最常用的網(wǎng)絡(luò)數(shù)據(jù)大小),為了讓結(jié)果更準(zhǔn)確,所以要訓(xùn)練的數(shù)據(jù)集要盡可能多,每種數(shù)字的數(shù)據(jù)量盡可能相等。但 k210 的算力也是有限的,他所能運(yùn)行的模型也是有限的,對(duì)于 k210:運(yùn)行 c 代碼時(shí)最大可以加載 6MB 左右的模型,運(yùn)行 maixpy 的最小固件時(shí),能加載 3MB 左右的模型,運(yùn)行 maixpy 的最大固件時(shí),能夠加載約 2MB 左右的模型。
1. 采集數(shù)據(jù)集
因?yàn)槲覀冞\(yùn)算是在 K210 本地的,圖像來(lái)源也是 K210 自帶的攝像頭,為了讓結(jié)果更準(zhǔn)確,可以用 python 編寫(xiě)一個(gè) K210 的拍照程序,采集固定的 224*224 圖像并保存到 TF 卡里面。最好是搭好小車(chē)框架后,選好攝像頭的安裝位置和角度,將拍照程序保存到 K210 的運(yùn)行 sd 卡里面。當(dāng)按下按鈕的時(shí)候就進(jìn)行當(dāng)前圖像的保存。
2. 對(duì)數(shù)據(jù)集進(jìn)行標(biāo)注
用讀卡器把 TF 卡里面采集到的訓(xùn)練集保存到電腦上,設(shè)置好標(biāo)簽,在這里標(biāo)簽就是 1,2,3,4,5,6,7,8。用 labellmg 進(jìn)行圖像的標(biāo)注,每種標(biāo)簽最少得來(lái) 100 張。
3. 開(kāi)始訓(xùn)練
1. 訓(xùn)練可以選在線的也可以用本地的,但是如果像是電賽這種時(shí)間很緊張的比賽,為了防止到時(shí)候千軍萬(wàn)馬過(guò)獨(dú)木橋,導(dǎo)致你的訓(xùn)練任務(wù)一直在排隊(duì),最好先設(shè)置好自己的本地環(huán)境。已經(jīng)有一個(gè)開(kāi)源的大佬只做了一個(gè)免安裝環(huán)境的 Mx-yolo,安裝好后,選好**訓(xùn)練圖片文件夾地址**和**訓(xùn)練標(biāo)簽文件夾地址,**設(shè)置訓(xùn)練次數(shù),Alpha,Batch Size,是否開(kāi)啟數(shù)據(jù)增強(qiáng)。
2. 模型訓(xùn)練的次數(shù)需要在保證模型收斂的前提下進(jìn)行合理的選擇。如果訓(xùn)練次數(shù)過(guò)少,可能會(huì)導(dǎo)致模型欠擬合,無(wú)法很好地?cái)M合訓(xùn)練數(shù)據(jù)。如果訓(xùn)練次數(shù)過(guò)多,可能會(huì)導(dǎo)致模型過(guò)擬合,無(wú)法很好地泛化到新的數(shù)據(jù)。因此,需要根據(jù)具體的問(wèn)題和數(shù)據(jù)集進(jìn)行調(diào)整。一般來(lái)說(shuō),可以通過(guò)觀察模型在訓(xùn)練集和驗(yàn)證集上的表現(xiàn)來(lái)確定合適的訓(xùn)練次數(shù)。當(dāng)模型在驗(yàn)證集上的表現(xiàn)不再提升時(shí),可以停止訓(xùn)練,以避免過(guò)擬合。
3. Alpha 主要影響所生成模型的大小,選 0.25 模型大小約 219k,選 0.5 模型大小約 831k,選 0.75 模型大小約 1.85M,選 1.0 模型大小約 3.24M。當(dāng)運(yùn)行 maixpy 的最大固件時(shí),k210 最大只能加載約 2MB 左右的模型,所以選 0.75 就行了。
4. Batch Size 一般選 8 就行了。這個(gè)參數(shù)是指每次迭代訓(xùn)練時(shí),所選取的樣本數(shù)。Batch Size 的大小會(huì)影響模型訓(xùn)練的速度和穩(wěn)定性。較大的 Batch Size 可以加快模型訓(xùn)練的速度,因?yàn)槊看蔚幚淼臉颖緮?shù)量更多。但是,如果 Batch Size 過(guò)大,可能會(huì)導(dǎo)致內(nèi)存不足或顯存不足的問(wèn)題。此外,較大的 Batch Size 還可能導(dǎo)致模型過(guò)度擬合訓(xùn)練數(shù)據(jù)。較小的 Batch Size 可以提高模型訓(xùn)練的穩(wěn)定性,因?yàn)槊看蔚幚淼臉颖緮?shù)量較少,可以更好地避免過(guò)擬合。但是,較小的 Batch Size 也會(huì)導(dǎo)致訓(xùn)練時(shí)間變長(zhǎng),因?yàn)樾枰啻蔚拍芴幚硗晁袠颖尽?br>5. 數(shù)據(jù)增強(qiáng)建議開(kāi)啟,他主要是做了一些隨機(jī)裁剪,隨機(jī)旋轉(zhuǎn),縮放,翻轉(zhuǎn)等。
6. 查看結(jié)果報(bào)告和測(cè)試結(jié)果
7. 訓(xùn)練完之后看一下測(cè)試結(jié)果,測(cè)試樣例是否已經(jīng)被正確識(shí)別了。它還會(huì)給一張測(cè)試報(bào)告,確保模型損失已經(jīng)到了0.1以下。在測(cè)試報(bào)告中,epoch代表訓(xùn)練次數(shù),model loss是模型損失,train代表訓(xùn)練集,是用來(lái)訓(xùn)練模型的數(shù)據(jù)集。valid代表驗(yàn)證集,是用來(lái)評(píng)估模型性能和調(diào)整超參數(shù)的數(shù)據(jù)集。這兩條線越來(lái)越往下就是越來(lái)越好了。
8. 在k210上面運(yùn)行
9. 用mx-yoloV4訓(xùn)練出來(lái)的數(shù)據(jù)會(huì)自動(dòng)轉(zhuǎn)化為K210的Kmodel,也會(huì)給出測(cè)試程序。把boot.py,lables.txt,mx.kmodel一起放到K210的sd卡里,重新上電就可以運(yùn)行了。

用來(lái)指示小車(chē)工作狀態(tài)的的 LED 燈

題目中要求能顯示紅,綠,黃燈,那就直接去立創(chuàng)商城找一個(gè) RGY 三色 LED 燈,我找了一個(gè),編號(hào):C2897364。查詢手冊(cè)我們可以知道以下信息:

Reverse Voltage: 5V(最大反向電壓,超過(guò)這個(gè)就會(huì)壞)

Forward Current: (正向電流)

  • R: 25mA

  • G: 25mA

  • Y: 25mA

Forward Voltage: (正向電壓)

  • R: 2.0V

  • G: 3.3V

  • Y: 2.0V

為了讓每種顏色的燈的最高亮度基本保持一致,我們需要確定限流電阻,計(jì)算公式為 R=(供電電壓-正向電壓)/正向電流。

限流電阻用貼片電阻,0402 電阻功率為 1/16W,即 0.0625W,0603 電阻功率為 1/10W,即 0.1W。不能小馬拉大車(chē),容易把馬累死。

計(jì)算之后可以知道要選擇下面這幾個(gè)電阻:

R:電阻值:120Ω,功率 0.075 -貼片電阻 0603 以上-立創(chuàng)商城編號(hào):C22787

G:電阻值:68Ω,功率 0.0425 -貼片電阻 0402 以上-立創(chuàng)商城編號(hào):C25254

Y:電阻值:120Ω,功率 0.075 -貼片電阻 0603 以上-立創(chuàng)商城編號(hào):C22787

用于雙車(chē)通訊的無(wú)線模塊


常用的無(wú)線通訊模塊有以下幾種:

  1. WiFi 模塊:WiFi 模塊可以實(shí)現(xiàn)高速無(wú)線網(wǎng)絡(luò)連接,但是其功耗較高,不適合低功耗應(yīng)用。

  2. 藍(lán)牙模塊:藍(lán)牙模塊具有低功耗、短距離通信等特點(diǎn),但是其傳輸速率較慢,適用于數(shù)據(jù)量較小的場(chǎng)景。

  3. Zigbee 模塊:Zigbee 模塊具有低功耗、低成本、自組網(wǎng)等特點(diǎn),適用于物聯(lián)網(wǎng)應(yīng)用。

  4. LoRa 模塊:LoRa 模塊具有長(zhǎng)距離、低功耗、低成本等特點(diǎn),適用于物聯(lián)網(wǎng)應(yīng)用。

  5. NB-IoT 模塊:NB-IoT 模塊具有低功耗、廣覆蓋等特點(diǎn),適用于物聯(lián)網(wǎng)應(yīng)用。
    在室內(nèi)使用的話,wifi 和藍(lán)牙都不錯(cuò),而且這個(gè)智能小車(chē)比賽過(guò)程中兩個(gè)小車(chē)的距離也不會(huì)太遠(yuǎn),對(duì)于數(shù)據(jù)量的要求也不高,只需要簡(jiǎn)單傳輸一些數(shù)字識(shí)別結(jié)果和指令就夠了。
    我就選藍(lán)牙模塊了,國(guó)內(nèi)沁恒的藍(lán)牙芯片都挺不錯(cuò)的,CH9143 是一個(gè)主從一體的藍(lán)牙芯片,他支持藍(lán)牙-串口-USB 三通,也就是說(shuō)在連個(gè)小車(chē)上各放一個(gè),他們配對(duì)連接上之后你就把他正常當(dāng)串口用就行了。它的配對(duì)方式也挺方便的,只需要把兩個(gè)芯片同時(shí)上電,他們就可以進(jìn)行配對(duì)了。
    在調(diào)試的時(shí)候也可以把一個(gè)模塊連到電腦上,小車(chē)上那個(gè)可以就可以通過(guò)串口輸出數(shù)據(jù)到電腦上了,遠(yuǎn)程串口挺方便調(diào)試的。

其他附加

  1. 可以加一個(gè)無(wú)源蜂鳴器來(lái)進(jìn)行提示和報(bào)警,當(dāng)電池電壓過(guò)低或者出現(xiàn)錯(cuò)誤時(shí)進(jìn)行蜂鳴器報(bào)警。

  2. 可以加一個(gè)六軸或者九軸的姿態(tài)傳感器,通過(guò)姿態(tài)解算可以得到當(dāng)前航向角,可以讓小車(chē)在一定時(shí)間內(nèi)保持車(chē)頭朝向不變,這樣就算車(chē)輪打滑小車(chē)的車(chē)頭朝向也不會(huì)大變。但是這個(gè)方法對(duì)姿態(tài)傳感器的數(shù)據(jù)要求和算法處理的要求也很高。

  3. 預(yù)留灰度傳感器的接口,別萬(wàn)一識(shí)別巡線效果拉了,硬著頭皮也走不下去就G了,多給自己留條后路。

  4. 加一個(gè) CAN 芯片,如果你想用 can 芯片控制電機(jī)的話就可以用了,大疆的 robomaster 系列電機(jī)和市面上的一些高性能電機(jī)都是可以用 CAN 通訊來(lái)控制的

  5. 加一個(gè) sbus 電路,參加完比賽做個(gè)小遙控車(chē)也不錯(cuò)。



立創(chuàng)梁山派-21年電賽F題-智能送藥小車(chē)-賽題分析的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
新源县| 长乐市| 安宁市| 车致| 从化市| 海丰县| 大城县| 新营市| 栾城县| 奉贤区| 靖州| 南和县| 南宫市| 佛学| 抚宁县| 荔波县| 信阳市| 乌兰浩特市| 明水县| 瓮安县| 钦州市| 武平县| 安化县| 黔西| 岑溪市| 富蕴县| 平和县| 宣化县| 烟台市| 景泰县| 陈巴尔虎旗| 通道| 三明市| 茶陵县| 双流县| 遵义县| 迭部县| 沙雅县| 宜黄县| 肃北| 米脂县|