久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 675|回復: 2
打印 上一主題 下一主題
收起左側

電賽結束,和大家分享一下前段時間的STM32單片機送藥小車項目吧

[復制鏈接]
跳轉到指定樓層
樓主
ID:958636 發表于 2023-8-17 09:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
基于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
  1. template = image.Image("/template.pgm")//下面說一些關鍵的代碼
復制代碼
  1. r = img.find_template(template, 0.70, step=4, search=SEARCH_EX)
復制代碼
        也就是說啊,我們只需要錄入模板即可實現數字識別啦,但是啊這個不是特別穩定,最好還是能訓練一下模型去運行這樣識別的精準度會很好,關于如何訓練的問題,網上有很多講解的,但是有一點就是,我更加推薦K210使用訓練的模型,因為它的算力比較高運行起來也更好。在文章的末尾我會給出我的openmv代碼給大家參考的。
  3.openmv與stm32的通信
         openmv也是STM32啦其實,所以效果是一樣的,我們先來說說openmv該怎么發送數據給STM32吧:
          我們定義一個openmv的串口發送函數:
  1. def sending_data(cx,cy,x_flag,y_flag):
  2.      global uart;
  3.      data = bytearray([0x2C,0x12,cx,cy,x_flag,y_flag,0x5B])#這個函數可以將我們的數據打包成16進制的一幀數據包,也是十分的方便哈
  4.      uart.write(data)                                                         #這個函數就是串口發送函數了
復制代碼
          那既然openmv發了數據,接下來就看看STM32怎么去接收吧:
      1.首先定義一個函數,然后這個函數的特性就是一個字節一個字節的處理               
                2.進行一些自己定義的規則判斷

             串口的處理其實并不困難,大家拿到代碼認真分析即可明白其中的意思,這個代碼我也將放置在文末。
二、總結
   我是這樣打算的,我分幾期和大家分享這些內容,這個作為第一期吧,主要分享21年電賽送藥小車的思路以及一些源碼哈,大家等我后面更新吧,大家對于我分享的代碼有疑問的話可以在評論區提出來哈,或者有更好的思路,都可以提出,大家一起進步,志同道合的人總會走到一起的!
   不多說,我先奉上我的代碼了【恰點黑幣啦,嘻嘻】。

openmvtest.7z

5.16 MB, 下載次數: 2, 下載積分: 黑幣 -5

送藥代碼

openmv.rar

1.42 KB, 下載次數: 1, 下載積分: 黑幣 -5

openmv文件

評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:958636 發表于 2023-8-17 09:20 | 只看該作者
  r = img.find_template(template, 0.70, step=4, search=SEARCH_EX) #, roi=(10, 0, 60, 60))#這是模板匹配的關鍵代碼,文中老是亂碼哈哈哈也不知道咋解決
回復

使用道具 舉報

板凳
ID:301191 發表于 2024-10-23 03:57 | 只看該作者
頂一下
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文欧美日韩 | 激情欧美日韩一区二区 | 韩国毛片视频 | 久久精品视频一区二区 | 精品国产乱码久久久久久丨区2区 | 国产91亚洲精品一区二区三区 | 99久久久久久 | 国产精品国产精品国产专区不卡 | 九九亚洲精品 | 国产区在线视频 | 日本在线黄色 | 色999视频| 免费观看一级特黄欧美大片 | 日韩精品| 中文字幕日韩欧美一区二区三区 | 国产激情精品 | 男女视频在线观看 | 亚洲精品亚洲人成人网 | 国产91 在线播放 | 欧美成人视屏 | 免费黄网站在线观看 | 成人在线免费观看 | 精品香蕉一区二区三区 | 国产亚洲精品久久午夜玫瑰园 | av黄色在线播放 | 久久国产欧美一区二区三区精品 | 国产成人精品免费 | 中文字幕一区二区在线观看 | 91毛片在线看 | 日韩有码一区二区三区 | 国产一区二区三区四区五区加勒比 | 高清18麻豆 | 91精品久久久 | 国外成人免费视频 | 国产高清在线 | 精品国产1区2区3区 在线国产视频 | 久久另类 | 久久er99热精品一区二区 | 中文一区二区 | 精品视频一区二区 | 中文字幕成人在线 |