標題: 電賽結束,和大家分享一下前段時間的STM32單片機送藥小車項目吧 [打印本頁]
作者: wells0000 時間: 2023-8-17 09:18
標題: 電賽結束,和大家分享一下前段時間的STM32單片機送藥小車項目吧
基于STM32以及CUBEMX的項目分享(一)。
本人從接觸單片機一直到到現在走了不少的彎路,也無人去引導,所以學習的深度仍然不夠深刻,所以這些項目中可能會包含一些錯誤的見解,還請各位佬可以不吝賜教,謝謝大家,下面開始我的分享內容了。
一、關于準備電賽第一步,復刻21年電賽送藥小車
我參加21年電賽時是個菜鳥,當時也沒能幫上學長的忙,因此自己也心存遺憾,于是在備戰23年電賽時我選擇完成當年的遺憾。
對于21年電賽的內容我就不做過多的講解,賽題可以在網上找到的哈,大家可以看看哈,當然要是不想找,我也給出地址供大家查看哈:
下面說一下我對于21年電賽的思路吧,這個思路適合能力一般的同學哈,大佬們的方案更快更穩,但是同時也對于知識的要求更加嚴格,我選擇的是“編碼器定脈沖“的思路,也是就為賽道量身定做一套行駛的函數,因為21年的送藥小車的賽道距離是固定的,那么我們只需要保證我們函數運行距離的準確性即可,其實做到最后也就是調參啦。
那么說完了我們的車該怎么跑,下面說說各個病房要怎么去吧:
1.對于近端病房
近端病房位置是固定的,我們大可不必耗費時間以及攝像頭的算力去進行計算,大可以直接寫死程序,簡單、明了、迅速。對于能力一般的同學來說這就是最優解,那我們來說說怎么做吧,第一步:給攝像頭看1或者2的數字,第二步:直行到第一個十字路口,第三步:是1就左拐是2就右拐,第四步:走到終點后停下。這便是去的思路,回來時啊也是走固定的距離,但是你可以選擇倒車回來也可以選擇原地打轉180度都是可以的,我這里是直接倒車,當然我的隊友選擇MPU6050轉向環直接準確180度回旋,走的結果是一樣的,但是很明顯轉向環更加漂亮。這便是我的思路。
2.對于中、遠端病房
中端和遠端的方法我就放在一起講了,因為前面小車行進的方法已經說的很明白了哈,剩下的就看看攝像頭啦!
先說攝像頭哈,我個人專注C的程序,我的隊友偏向于搞K210這些,當然我用的是OPENMV,兩者可以說是一樣的哈,廢話不說,我直接告訴大家我的數字識別思路,就是模板匹配,多個模板匹配也就是ctrl+c然后ctrl+v哈,給各位看看openmv的模板匹配的代碼。【這里不給大家講這個OPENMV的編程方法了嗷,奉上官方教程更加的權威:book.openmv cc/image/template-match.html】
- template = image.Image("/template.pgm")//下面說一些關鍵的代碼
復制代碼- r = img.find_template(template, 0.70, step=4, search=SEARCH_EX)
復制代碼 也就是說啊,我們只需要錄入模板即可實現數字識別啦,但是啊這個不是特別穩定,最好還是能訓練一下模型去運行這樣識別的精準度會很好,關于如何訓練的問題,網上有很多講解的,但是有一點就是,我更加推薦K210使用訓練的模型,因為它的算力比較高運行起來也更好。在文章的末尾我會給出我的openmv代碼給大家參考的。 3.openmv與stm32的通信
openmv也是STM32啦其實,所以效果是一樣的,我們先來說說openmv該怎么發送數據給STM32吧:
我們定義一個openmv的串口發送函數:
- def sending_data(cx,cy,x_flag,y_flag):
- global uart;
- data = bytearray([0x2C,0x12,cx,cy,x_flag,y_flag,0x5B])#這個函數可以將我們的數據打包成16進制的一幀數據包,也是十分的方便哈
- uart.write(data) #這個函數就是串口發送函數了
復制代碼 那既然openmv發了數據,接下來就看看STM32怎么去接收吧: 1.首先定義一個函數,然后這個函數的特性就是一個字節一個字節的處理
2.進行一些自己定義的規則判斷
串口的處理其實并不困難,大家拿到代碼認真分析即可明白其中的意思,這個代碼我也將放置在文末。
二、總結
我是這樣打算的,我分幾期和大家分享這些內容,這個作為第一期吧,主要分享21年電賽送藥小車的思路以及一些源碼哈,大家等我后面更新吧,大家對于我分享的代碼有疑問的話可以在評論區提出來哈,或者有更好的思路,都可以提出,大家一起進步,志同道合的人總會走到一起的!
不多說,我先奉上我的代碼了【恰點黑幣啦,嘻嘻】。
-
-
openmvtest.7z
2024-10-23 03:53 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
5.16 MB, 下載次數: 2, 下載積分: 黑幣 -5
送藥代碼
-
-
openmv.rar
2023-8-17 09:14 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
1.42 KB, 下載次數: 1, 下載積分: 黑幣 -5
openmv文件
作者: wells0000 時間: 2023-8-17 09:20
r = img.find_template(template, 0.70, step=4, search=SEARCH_EX) #, roi=(10, 0, 60, 60))#這是模板匹配的關鍵代碼,文中老是亂碼哈哈哈也不知道咋解決
作者: 人工置頂員 時間: 2024-10-23 03:57
頂一下
歡迎光臨 (http://m.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
日韩欧美网站
|
日韩在线精品
|
婷婷久久综合
|
999成人网|
一区二区美女
|
久久久久久久91
|
综合网久久
|
欧美久久久久久久
|
韩日在线视频
|
国产免费91|
国产精品欧美激情
|
国产亚洲一区二区三区
|
欧美日韩在线精品
|
狠狠的日
|
韩国av免费|
五月天黄色网址
|
最近中文字幕在线
|
亚洲天堂网在线观看
|
国产成人91
|
午夜视频成人
|
亚洲第一黄色
|
男女插插插视频
|
日韩精品一区二区在线
|
夜夜肉她怀孕h周君彦
|
日韩精品三区
|
欧美一级欧美三级在线观看
|
欧美大片91
|
91午夜精品亚洲一区二区三区
|
av网站导航
|
日韩免费看片
|
黄色在线观看网址
|
男女啪啪免费
|
亚洲欧美一区二区三区四区
|
亚洲国产精|
日韩欧美在线视频观看
|
日韩午夜精品
|
欧美成人小视频
|
天天综合av
|
精品久久久久久久久久久
|
日韩高清在线播放
|
成人精品在线
|