機器人絕對是當前的一個熱門話題之一。從實驗室機器人到各種創新玩具機器人,越來越多的技術愛好者從關注到實踐,紛紛投身機器人開發的懷抱。
工欲善其事,必先利其器。
MATLAB/Simulink算法開發平臺作為汽車、軍工等行業進行控制算法設計的必備工具,基于Simulink模型的建模、仿真、測試驗證以及代碼生成的設計理念(MBD)也正在替代傳統的手寫C代碼的開發流程,成為算法開發的主流與未來的趨勢。
這對于開發機器人意味著什么呢?
你不僅可以擺脫繁復的C代碼編程,還可以借助MATLAB強大的工具箱系列,通過仿真來幫助你測試算法、優化參數等等。如果用戶購買了代碼生成工具箱,還可以提取所生成的嵌入式 C/C++算法函數,集成到自己外部的工程項目中去,這也是商業產品開發的主流選擇。
MATLAB/Simulink Support Package
MATLAB/Simulink Support Package為一系列所支持的板卡提供了基本的驅動模塊,只需要在軟件界面上進行簡單的配置,就可以將實現框圖式的算法模型一鍵下載到硬件板卡上去,有助于我們快速實現早期創意,縮短原型開發周期。
通過它,我們可以很容易實現與這些硬件通訊,讀取數據到MATLAB環境進行分析和處理,輕松下載Simulink這種框圖式的算法來實現各種有創意的應用。
從模型到實現
使用MATLAB/Simulink Support Package相當于鋪平了從Simulink到硬件實現的路,使得不擅長寫C代碼的人可以徹底擺脫代碼實現的困擾,借助Simulink平臺也能輕易的開發出更多有趣的應用來。
案例介紹
硬件:Arduino MEGA 2560
Step 1:硬件連線
利用光敏電阻與固定電阻串聯形成分壓電路,并將分壓電壓讀入Arduino,然后用這個值來輸出控制發光二極管的明暗。將分壓電壓值讀入Arduino的A1引腳;將發光二極管的正極連接PWM的第二個引腳,如下圖所示。
硬件連接圖
Step 2:軟件準備
通過MATLAB主界面上的Add-Ons的Get Hardware Support Packages向導,選擇所需要安裝的支持包。
安裝包下載入口
選擇 Arduino,根據向導提示下載或安裝支持包。
下載安裝向導
安裝完成后,打開Simulink Library Browser中的Simulink Support Package for Arduino Hardware庫,如下圖。我們可以看到為Arduino提供的一系列驅動模塊,從模塊的示意圖以及端口的符號,我們可以大概推測它的作用:從各種類型的板卡接口讀取或輸出信號。
另外從左側樹狀圖可以看到,還提供了 Ethernet Shield 與 Wifi Shield 的驅動模塊。
Arduino支持庫
Step 3:建模
Simulink建模可以簡單描述為模塊的拖拽與連線的過程。
我們需要從A1端口(分壓線接入)讀取分壓信號,所以從庫里拖入一個Analog Input模塊,并雙擊設置端口號為1,設置采樣時間為0.01 S。另外還需要輸出到 PWM的第二個引腳( LED連接處),所以拖入一個PWM模塊,并雙擊設置端口號為2。
為了簡化整個下載過程,我們這里對信號不做任何算法處理,直接將兩個模塊連接起來,如下圖。這也就意味著LED的亮度與光敏電阻狀態直接相關。
模型截圖
Step 4:編譯下載
Simulink Support Package for Arduino Hardware支持幾乎所有的Arduino型號。在點擊紅色方框的按鈕編譯下載之前,需要通過配置頁面來指定當前所使用的Arduino板卡類型。
設置Arduino板卡
確保Arduino與電腦相連,點擊上圖模型截圖中紅色方框的編譯按鈕,框圖將會自動生成C/C++代碼,并后臺自動調用Arduino IDE進行編譯下載到Arduino板卡上去。此時,你用手捂住光敏電阻,便會看到LED燈亮度的變化。
Step 5:在線調試
對于Arduino MEGA 2560等型號,還支持在線調試。在配置頁面,除了選擇型號外,如下圖設置為 “External model"。
設置在線調試運行
點擊綠色按鈕開始仿真。
此時,框圖同樣被生成代碼并編譯下載到Arduino上運行,同時Simulink模型運行,雙擊打開示波器Scope模塊實時看到當前所讀取的傳感器信號。這個數據也可以保存下載,做后期傳感器標定與分析。
信號波形
傳感器標定,也就是經常都需要將原始值進行線性或非線性縮放以及平移,得到有物理含義的數值,比如自定義的光照強度等級。如下圖,中間接入一個簡單的查表模塊進行線性縮放。
支持一鍵下載的硬件除了舉例的Arduino之還有很多,算法的設計也可以非常復雜。實際上,越是復雜的算法,才越能體現框圖式算法設計方法的優勢。
下載安裝對應的硬件支持包之后,幫助文檔里都會提供由淺入深的應用案例。如下圖是一個LEGO解魔方算法的一個案例。
LEGO解魔方算法模型
打開這個模型,點擊編譯,就可以把這個算法完整下載到 LEGO 機器人上去了,有興趣的可以自己親自動手試一試。
-
傳感器
+關注
關注
2552文章
51366瀏覽量
755725 -
示波器
+關注
關注
113文章
6279瀏覽量
185623 -
機器人
+關注
關注
211文章
28627瀏覽量
207951
發布評論請先 登錄
相關推薦
評論