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

来源:http://www.cnblogs.com/wolfray/archive/2017/11/13/7828904.html
-Advertisement-
Play Games

今年電賽我們隊伍選擇的是B題,滾球控制系統。最後我們得到了省特和國一,也算是了結了我大一時的心愿吧。下麵對這次比賽進行一下總結,以後回憶起來的時候也有個念想。 滾球控制系統是一個多變數、非線性控制對象,是球桿系統的二維擴展。本系統以Arduino Due為核心控制板,通過攝像頭採集到球的位置信息,經 ...


今年電賽我們隊伍選擇的是B題,滾球控制系統。最後我們得到了省特和國一,也算是了結了我大一時的心愿吧。下麵對這次比賽進行一下總結,以後回憶起來的時候也有個念想。

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

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

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

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

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

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

等機械結構做好之後,還剩一天的時間來寫程式,簡直奔潰,感覺比賽的大部分時間全部都在設計機械結構。但是這是非常必要的,因為機械結構如果不好,你的程式優化的再好,也是不會穩定的,尤其是這麼巨大的一個裝置。

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

(待續。。。)
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • [20171113]修改表結構刪除列相關問題4.txt--//連續寫了3篇修改表結構刪除列的相關問題,鏈接如下:http://blog.itpub.net/267265/viewspace-2147158/http://blog.itpub.net/267265/viewspace-2147163/ ...
  • VMware14版本安裝Ubuntu16.04 LTS的詳細安裝過程 ...
  • postfix是Wietse Venema在IBM的GPL協議之下開發的MTA(郵件傳輸代理)軟體。postfix是Wietse Venema想要為使用最廣泛的sendmail提供替代品的一個嘗試。在Internet世界中,大部分的電子郵件都是通過sendmail來投遞的,大約有100萬用戶使用se ...
  • 1.1 安裝系統的方法 l 光碟(ISO文件,光碟的鏡像文件) >>每一臺物理機都得給一個光碟機,如果用外置光碟機的話,是不是每台機器都需要插一下 l U盤:ISO鏡像刻錄到U盤==>>需要每台機器都需要插一下 l 並行安裝==>>網路安裝 l 自動化安裝 1.2 linux下批量安裝系統 kickst ...
  • 詳情: 1. tar 創建一個新的tar文件 解壓tar文件 查看tar文件 2. grep 在文件中查找字元串(不區分大小寫) 輸出成功匹配的行,以及該行之後的三行 在一個文件夾中遞歸查詢包含指定字元串的文件 3. find 查找指定文件名的文件(不區分大小寫) 對找到的文件執行某個命令 查找ho ...
  • 1.基本命令 創建目錄pathA:mkdir pathA 進入目錄pathA:cd pathA 查看目錄內容:ls 查看目錄下文件的詳細信息:ls -l,也可以是:ll(l是小寫的L,別看錯了) 拷貝文件fileA到目錄pathA(同層目錄前提):cp fileA pathB 拷貝目錄pathA(包 ...
  • #!/bin/bash #按日切割nginx日誌並壓縮,加入crontab每天0:00切割 #作者:fafu_li #時間:2015.08.15 source /etc/profile #載入系統環境變數 source ~/.bash_profile #載入用戶環境變數 set -o nounset... ...
  • #!/bin/bash #全備方式,一般在從機上執行,適用於小中型mysql資料庫 #刪除15天以前備份 #作者:fafu_li #時間:2015.08.10 source /etc/profile #載入系統環境變數 source ~/.bash_profile #載入用戶環境變數 set -o ... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...