【Arduino】2017年電子設計大賽B題 滾球控制系統|板球系統

今年電賽咱們隊伍選擇的是B題,滾球控制系統。最後咱們獲得了省特和國一,也算是告終了我大一時的心願吧。下面對此次比賽進行一下總結,之後回憶起來的時候也有個念想。算法

滾球控制系統是一個多變量、非線性控制對象,是球杆系統的二維擴展。本系統以Arduino Due爲核心控制板,經過攝像頭採集到球的位置信息,通過PID的控制算法來控制舵機的運行,從而控制小球的運動。其目的是讓一個自由滾動的小球可以平衡在平板上特定的位置,或者沿必定的軌跡滾動。經測試,系統可以實現題目要求的各項功能,實測指標均達到或超過題設要求。
關鍵詞:滾球控制系統;Arduino Due;位置檢測;PID控制markdown

當時網傳已經有板球系統這道題了,雖說內心沒當一回事,可是仍是默默地查起了一些資料。
板球系統、板球系統,最關鍵的就是須要檢測到球的位置,而後經過板的機械運動將球保持在指定的位置上。
怎麼檢查球的位置呢?有兩種不錯的方法:一種方法是利用電阻屏,還有一種是利用攝像頭。這兩種方法比賽以前我都試過,電阻屏的話市場上有賣的通常就是7寸-17寸的四線、五線電阻屏,它獲取小球位置比較靈敏,並且精度高、延遲低,對小球的材質、顏色沒有要求,可是要求小球具有必定的重量,要否則檢測不到球呀。至於攝像頭檢測小球的位置的話,一種方法是檢測圓形,另外一種方法是顏色檢測,通常顏色檢測的速度會快一些。若是使用攝像頭檢測小球位置的話,那麼對處理器的運算速度要求較高,並且對光線的要求也較大,可是也可使用開源攝像頭(如OpenMV,pixy等),直接把小球位置信息等經過I2C、USART傳輸回單片機上。咱們最後使用的就是Pixy。性能

最後賽題出來的時候,咱們就傻眼了,竟然和網傳的消息那麼像,可是尺寸卻那麼巨大。原本寫好的電阻屏的程序是用不到了,只能用攝像頭檢測小球位置這種方法了。測試

固然咱們想,小的咱們都作好了,大的豈不是直接把原來的結構放大一些就是啦。可是後來發現咱們想多了,尺寸變大許多致使的結果就是,機械結構須要從新設計。以前小板球系統的穩定性超級好,根本不會出現板子的抖動問題。可是等系統變大許多,板子變得很大很重,攝像頭須要架設的很高,就帶來了許多問題了。優化

攝像頭是距離板子1m多的位置,這帶來的後果就是,可能攝像頭找不到那麼小的球的位置了。ui

在比賽的那幾天中,咱們的機械結構換了4套。感受一直都是在作木工活。第一套結構是純木質的,各個部位所有用膠粘死。第二套是板子用的泡沫板,其餘部分仍是木質的。第三套是板子用的黑色噴漆鐵板,支架是鐵的,底板是木的,整套結構超級重、並且也不能拆卸。第四套結構的話,咱們板子選擇的是60*60*1cm的雪弗板,這個比較輕、並且也比較平,底板是PVC版,畫原理圖而後切割,支持部分是鋁架,全部部分都可拆卸。設計

等機械結構作好以後,還剩一天的時間來寫程序,簡直奔潰,感受比賽的大部分時間所有都在設計機械結構。可是這是很是必要的,由於機械結構若是很差,你的程序優化的再好,也是不會穩定的,尤爲是這麼巨大的一個裝置。對象

前面說了一堆廢話,下面說一點有用的:
①咱們選用的控制器是Arduino Due。由於使用它開發簡單方便快速,並且時鐘頻率大84Mhz,相比於普通的stm32f1一點也不遜色。原本想直接用樹莓派了,可是想到用樹莓派可能有違規的可能,因此仍是算了。
②攝像頭選擇的是pixy。利用Pixy圖像識別傳感器檢測小球位置座標。Pixy支持多物體、多色彩的顏色識別,同時也支持多種通訊方式,它搭載的圖像傳感器配合強大的硬件,能夠將小球的位置座標信息快速地發送給微控制器。注意!!!這但是直接把小球的座標發到單片機裏唉,因此你用性能差一點的單片機也沒有關係了,這大大的簡化了程序的複雜性,省去了本身寫圖像處理部分的事,節省了許多時間。
③舵機的話咱們試了好多舵機,貴的、便宜的,最後仍是選擇了MG996R。具體緣由我很少說,你們能夠買來試試。圖片

(待續。。。)
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述開發

相關文章
相關標籤/搜索