作品封箱,電賽終於結束了。
組委會公布題目之後,本來打算做電源的我們,全體懵逼,a題強制性要求用ti公司晶元做控制器,而我們最常用的是stc公司的32系列處理器。c題和d題也與我們前期培訓和除錯的電路有點關係,但關係不大,題目也挺難,經過討論,我們在8.7上午確定了比賽題目,h題,電磁炮。確定完題目之後,抓緊找相應模組,搭電路。作為隊長,主調由我負責,包括編寫**。下面我以比賽日期,來講述我的參賽歷程。
8.7上午確定題目之後,隊友負責電磁炮的電路搭建和**距離的測試。我負責硬軟體除錯。我打算用兩個五相步進電機搭雲台,因為實驗室本來買的雲台是用兩個小舵機搭成的,且不考慮它的轉角精度問題,也考慮到後期還要在雲台上面裝炮筒,openmv,超聲波等等,承重一定要達標。所以我用市場上普遍的倆個五相步進電機作為x軸和y軸。沒有uln2003電機驅動模組,下午趕緊託人去買。根據題目要求,在200cm-300cm,有靶子在一d值,很明顯d值是讓自己測得,並手動輸入距離,實現電磁炮的精準打擊。第一想法就是用超聲波,在8.7下午6點的時候,超聲波已經調好了,用了stm32f103ze最小系統板,加個oled屏實時顯示檢測到的距離,在程式裡我呼叫的屏函式,可以顯示到小數點後三位,在200cm-300cm檢測,資料很準確,完全ok!下面我又抓緊除錯電機,在用ze核心板實現對兩個電機的驅動,uln2003驅動模組需要12v的電壓單獨供電,所有要準備一套自己的輔助電源,確保有12v,5v,3.3v的電源供電口,因為我們前期已經準備,所以直接拿來用。在電機驅動電路搭完以後,在程式的主函式while迴圈裡寫下控制電機1和電機2正反轉4個函式,測試電機和驅動模組,輔助電源系統是否能夠正常使用。事實證明,都沒有問題,當這些都測試完,已經是8.7晚上九點,接著寫人機互動-鍵盤程式 ,題目要求用按鍵輸入距離和角度,電磁炮可以自動改變方向和距離,說白了不就是用按鍵控制電機轉嗎?簡單!但是考慮到,對兩個變數實現控制,所以需要兩個按鍵實現加減,距離單位是厘公尺,所以是三位數,角度根據題目要求,在x軸對電機控制兩位數的轉向就可以,所以開始想到的就是按鍵個數問題。距離三位數,三個按鍵,個十百,角度兩位數,個十位,加減還需兩個鍵,還要有確認鍵,加一起,光鍵盤至少就得8個,不行,太多了。到8.7晚上12點有了新的想法,用兩個標誌位即可,flag和flap,flag是距離的標誌位,flap是角度的標誌位。當flag0&&flap0,按鍵鎖死,當flag1&&flap0,加減鍵控制距離的個位,當flag2&&flap0,加減鍵控制距離的十位………….以此類推,角度也是這樣寫。
到8.8夜裡兩點扛不住了,睡到8.8早上六點多,在八點多的時候,按鍵+雲台+oled,已經可以用按鍵控制雲台的轉向和輸入距離,實現了h題基本要求第二三問。8.8下午隊友那邊在用openmv識別紅色靶心,因為openmv使用phython語言控制的,之前沒接觸過,通過官網現學,晚上隊友已經識別到了紅色,要把這個資料傳送給我的控制器,就涉及到串列埠通訊,我在編寫串列埠部分**時,將stm32的uart1設定成在上位機顯示用的串列埠1,將uart2設定成與openmv實時通訊的串列埠2,前期除錯表明已經接收到資料座標,是16進製制數,返回到電腦上位機是3h,8a之類的。
8.9凌晨兩點睡了,六點多起來繼續調攝像頭,現在想一想,特別後悔沒有和隊友一起調電磁炮的基本電路,因為我在做的是發揮部分的題目,如果電磁炮射不出來,基礎部分的題目都拿不到分,談什麼發揮部分?到了8.9中午的時候,攝像頭的十進位制座標終於成功顯示在oled上,通過模擬8.13號比賽測試場地,測得幾十組攝像頭在識別紅色靶心座標,算得平均數,即座標為(80,49), x,y軸座標誤差,即errorx=16,errory=16,考慮到發揮部分最後一問是在x軸轉動,x為-30°到30°迴圈轉動,尋找靶心,即在control_key函式裡if(key==6&&sba(x_a-a)<=errorx)
程式全部寫完之後,就趕緊搭硬體除錯,後來在除錯硬體遇到好多問題,上一分鐘的程式,下一秒就不好使,全部癱瘓,沒有辦法,**調的太多了,不知道哪個是哪個了,無奈,重新寫了一遍。
到了8.10凌晨2點,睡到凌晨6點。隊友在通宵焊電磁炮的驅動電路,8.10下午總體測試,我擔心的事情還是發生了,炮打不出去,趕緊排查各個器件,有沒有短路,有沒有燒。檢查2104驅動電路,zvs公升壓電路。後來把電路重新焊接一遍,乙個電磁炮的發射電路調到8.11凌晨3點,終於可以發**。再過5小時就要封箱了,抓緊測試資料,手動發炮,充電1秒,測得儲能電容電壓174v,鋼珠的射程為250cm,測試幾次之後,除錯自動發炮。我在定時器3對繼電器拉低400ms,key6按下,gpioa推挽輸出,即繼電器的使能端。接入電路,測得0.4秒電容儲能150多v,射程200多厘公尺,到了凌晨7點多,整體電路全部搭完,攝像頭openmv放置在最上面,當天測試的時候可以改變位置。整體上電之後,一堆問題來了!按鍵不能用,調整不了角度和距離,攝像頭採集的座標顯示在oled上,但是並沒有實時重新整理,電機也一直在發燙,第一反應就是檢查程式有沒有改錯,程式沒錯之後,電路檢查,發現y軸的電機接反了,可能是太睏了,看錯接線端子了,哎。上電之後,5v輔助電源冒煙了,初步判斷負載太多。改來改去,8.11早上8點10分,我這四天四夜除錯的全部**終於能夠在我們的作品上面成功執行!按鍵調整模式,在oled上輸入距離,角度,電機自動調整位置,攝像頭採集紅色靶心座標,實時顯示在oled上面,動態重新整理。確認全部功能無誤之後,轉頭對後面兩個隊友說:封箱!
四天四夜,睡了14小時,最後的一天一夜沒吃一口飯,沒喝水。電賽,讓我的能力提公升了不止乙個檔次,感謝電賽,更感謝自己!
2009美國數學建模競賽四天四夜感受o o
2009美國數學建模競賽四天四夜感受 比賽期限是四天四夜 終於熬到了第四天了,現在是凌晨2點半,重要接近了尾聲了,太累了,英語老師在翻譯了,大三了,最後一次了,大學一年級朦朦朧朧的跟高年級的學長們一起學校數學建模,第一次院賽 學院舉行的比賽 不知道怎麼寫,不知道怎麼到電腦上查資料,不知道怎麼和隊友分...
安卓第四夜 概念漫遊(下)
在安卓第三夜 概念漫遊 上 中,我介紹了安卓最基本的功能單元和intent的連線方式。在這個骨架之上,我們可以進一步增加一些與開發密切相關的重要概念。activity是乙個螢幕介面。介面上總是有各種各樣的檢視元素,比如乙個按鈕,一行文字和乙個輸入欄。每一種檢視元素在安卓中表示為乙個view類,比如b...
電賽經歷 記難忘的四天三夜
乙個很菜很菜的菜雞的電賽經歷,但對於本人卻意義深刻,對別人或許有啟發,大佬勿噴 從大一起還沒有參加過乙個需要連續熬夜的比賽,記得第一次了解到電子設計大賽時,了解到他需要熬過四天三夜之後做出乙個電子作品,當時就覺得這項比賽的難度和意義不一般,因為當時也是乙個剛學會點燈的辣雞,翻著知乎看各種大佬的回答,...