全国一等奖,F题:智能送药小车。
大家好,我是張巧龍,今天給大家繼續(xù)帶來電賽F題的分享:智能送藥小車。
今天這個車也獲得了全國一等獎,這次獲獎隊伍和上次獲獎隊伍,都是我賽前指導的學生做的。
上次的文章鏈接:做個全國一等獎的小車,其實不難(F題:智能送藥小車方案分享)
賽前我?guī)Я吮容^多學生專門做控制題,我?guī)У膶W生還有2組獲得了全國二等獎,由于獲獎規(guī)則的名額限制,每個學校最多2個國一,2個國二。
我們學校今年在F題取得了滿額指標,其實我覺得2個國二獲獎隊伍也可以拿國一,奈何規(guī)則限制。
當然,組委會定的規(guī)則非常合理,必須讓更多學校參與并獲獎。
閑話不多說,先看展示視頻:
01?
?方案設計
通過分析賽題可知,單個智能送藥小車首先在藥房處識別病房號,等待裝載藥品后,開始自動運送。
在運送過程中,通過識別地面上的紅實線和病房號,實現(xiàn)自動尋徑,將藥品送到指定病房,并能夠自動返回到藥房。兩車協(xié)同送藥需要兩車相互配合完成運送。
經(jīng)過上述分析,將系統(tǒng)分為4個基本部分,包括單片機、攝像頭處理模塊、載物檢測模塊和無線通信模塊,系統(tǒng)總體設計框圖如圖所示。
STM32F103RCT6單片來做控制,OpenMV來做巡線,K210用來識別數(shù)字,選擇ZigBee模塊做雙車通信。
圖1? 整體設計結構圖
02?
?理論分析與計算
2.1? 數(shù)字識別算法
數(shù)字識別算法通過K210的模型訓練來實現(xiàn),模型訓練過程如圖3-1所示。準備好需要訓練的數(shù)據(jù)集后,只需上傳到Maixhub即可快速訓練出模型。
本作品采用目標檢測方法和Mx-yolov3模型訓練,首先使用K210采集數(shù)字照片,按照數(shù)字“1”到“8”進行數(shù)據(jù)集標注和打包后,上傳數(shù)據(jù)集并創(chuàng)建訓練任務。
訓練結束后,將訓練結果文件拷貝至SD卡,插入開發(fā)板后上電即可運行。
K210識別數(shù)字卡片的結果通過串口發(fā)送給單片機,單片機接收并執(zhí)行相應操作。
圖2?模型訓練過程
2.2? 自動尋徑算法
自動尋徑算法通過OpenMV的像素顏色統(tǒng)計來實現(xiàn),尋徑示意圖如圖2所示。
首先從OpenMV的視野中劃分出七個相連的矩形區(qū)域,然后在這七個區(qū)域內(nèi)依次進行顏色統(tǒng)計,如果某個區(qū)域內(nèi)的顏色閾值在紅色閾值范圍內(nèi),則認為該區(qū)域內(nèi)包含紅實線。
將包含紅實線的區(qū)域標記為“1”,其余標記為“0”,以二進制數(shù)的方式記錄數(shù)值并通過串口發(fā)送給單片機。
單片機通過標記信息判斷小車相對于紅實線的偏移程度,并利用PID算法精確控制小車的轉向角,及時調(diào)整小車的前進方向,即可完成自動尋徑。
圖2? ?尋徑示意圖(OpenMV視野)
單片機通過紅實線的標記信息對小車的轉向進行調(diào)整的具體操作如下:
(1)若第一個區(qū)域標記了“1”,則控制小車左轉0.5度;
(2)若第二個區(qū)域標記了“1”,則控制小車左轉0.4度;
(3)若第三個區(qū)域標記了“1”,則控制小車左轉0.3度;
(4)若第五個區(qū)域標記了“1”,則控制小車右轉0.3度;
(5)若第六個區(qū)域標記了“1”,則控制小車右轉0.4度;
(6)若第七個區(qū)域標記了“1”,則控制小車右轉0.5度。
(7)若第二、第五兩個區(qū)域,或第二、第六兩個區(qū)域,或第三、第五兩個區(qū)域,或第三、第六兩個區(qū)域同時標記了“1”,則認為小車到達十字路口,控制小車左轉或右轉90度。
2.3? PID算法
小車的速度和轉向控制采用PID算法。PID算法是按照系統(tǒng)偏差的比例(P)、積分(I)和微分(D)進行控制的一種閉環(huán)控制算法,它具有原理簡單,易于實現(xiàn)和適用面廣等優(yōu)點。PID算法原理如圖3所示。
圖3? ?PID算法框圖
在實際的軟件控制中,使用的是離散化的PID算法表達式:
在不同的運用場景中,只需對式(1)選擇相應的組合并對、和三個系數(shù)進行調(diào)節(jié)即可實現(xiàn)相應的PID控制。
在智能送藥小車系統(tǒng)的PID控制中:
(1)小車的速度控制使用PI控制,其入口參數(shù)為電機編碼器脈沖數(shù)測量值和電機編碼器脈沖數(shù)理論值;
(2)小車的轉向角控制使用PD控制,其入口參數(shù)為小車轉向角測量值和小車轉向角理論值。
03?
?電路與程序設計
3.1 電路方案設計
根據(jù)題目要求,設計了系統(tǒng)控制板,主要包括STM32F103RCT6單片機、電源、降壓模塊、ZigBee、OLED、MPU6050模塊、紅外傳感器、電機驅動、編碼器、舵機、OpenMV、K210等模塊的接線端口。
實現(xiàn)了用STM32F103RCT6單片機控制各個模塊運行的功能,電路方案設計框圖如圖4所示。
圖4?電路結構圖
3.2 程序設計
小車1需完成單個小車運送藥品和兩車協(xié)同運送藥品的任務,程序設計流程圖見:
圖5? 小車1程序設計流程圖
4.2? 小車2的程序設計
小車2需完成兩車協(xié)同運送藥品中送藥到同一中部病房和去不同遠端病房取藥的任務,程序設計流程圖見:
圖6? 小車2程序設計流程圖
05?
?最后
由于篇幅有限,過多的細節(jié)在此不放了,本篇F題的設計報告以及代碼,都已經(jīng)放到知識星球了,星球的朋友們可以直接獲取下載鏈接。
未加入星球的同學也可以獲取部分代碼和設計報告,可以添加微信:
還沒加入星球的同學可以加入,第一期開放100人,現(xiàn)在已經(jīng)有50人加入。
順帶著推薦下知識星球,之前發(fā)了朋友圈想做個付費平臺,至于為什么要做?
1. 答疑。
很多朋友都在微信上給我留言咨詢一些問題,一般我都會回復,但看到一些朋友提問表達的方式:
我想學單片機該從哪里下手?
我想?yún)⒓颖荣?#xff0c;該如何學習?
我想轉行硬件,但軟件也不想丟,該咋辦?
這些問題太大了,真的無法回答。
其次,很多都是重復性的問題,反復回答,真的累死人。
大家可能不知道我微信總共加了多少人,三個微信號,共1.7w人。可想而知,光回答問題我每天的工作量都很大了。
這也就導致為什么很多消息回復不及時,我也有自己的工作,不可能時時刻刻守著微信給大家回消息。
也正因為回復消息不及時,許多朋友會覺得我不禮貌,直接就刪除好友,我也哭笑不得。
這就可以引出第二點:沉淀知識。
2. 知識星球是什么?
知識星球是一個付費加入的社群,可以直接用小程序查看,也可以下載APP,有問答、打卡、作業(yè)、文件、圖片等功能。容易用來做知識沉淀,
3. 為什么不做微信群,QQ群?
微信群的缺點大家都知道,信息容易遺漏、分享的文件容易失效,無法積累。知識星球則彌補了這些缺點。而且微信群、QQ群加入的人形形色色,發(fā)廣告的,閑聊的,亂七八糟的一大堆。
知識星球對比微信社群的好處是,它更像一個社區(qū),每天更新的內(nèi)容更容易沉淀且搜索,且價值度更高。
。。。。。。
4. 搭建一個圈子。
想做一個電子相關的圈子,付費加入的朋友,肯定都是想來提升自己,付費之后肯定會更珍惜,并且更注重知識方便的學習。
希望能在圈子里讓更多的球友建立聯(lián)系,內(nèi)推、招聘、工作經(jīng)驗分享,對于學生,學校保研、比賽、等等。
同時也會邀請一些大廠的工程師、高校老師、優(yōu)秀的學長學姐加入星球。
。。。
星球剛上線,現(xiàn)在價格199元/年,未畢業(yè)的學生,提供學信網(wǎng)截圖,99元/年,因為精力有限,可以維護的人數(shù)也是有限的,所以不會開放太多人。
價格貴?也就一兩毛一天。
不貴?也需要199塊錢。
第一期開放100人,現(xiàn)在已經(jīng)有50人加入。
就看大家如何去看待。
5. 知識星球介紹
想要加入的同學,可以加微信:great_xiaolong,私聊,備注【知識星球】
總結
以上是生活随笔為你收集整理的全国一等奖,F题:智能送药小车。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL 连接查询语法及使用(server
- 下一篇: 危!央视315晚会曝光:景区高空项目安全