国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

如何用Matlab連接控制Arduino:GUI界面制作與電機控制

發布時間:2015-7-14 14:18    發布者:designapp
關鍵詞: Arduino , Matlab , GUI界面
MATLAB是用于算法開發、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環境。而Arduino開發板是一種越來越受到歡迎的開源硬件。

一個是什么都能算的軟件,一個是最火爆的開源硬件,兩者結合能碰撞出什么樣的火花呢?筆者以Matlab軟件研究如何控制Arduino,將從Matlab制作Arduino的GUI界面和simulink應用出發,探索如何使用Matlab連接和控制Arduino。

Matlab與Arduino聯合應用——GUI界面

首先介紹如何安裝配置一個基于Matlab的GUI界面,能夠實現對Arduino IO口的操作。

下圖所示為matlab中Arduino相關程序的下載界面





下載后為壓縮文件,解壓縮為Arduino IO的文件夾,打開Matlab(筆者為2012版本),將當前工作目錄至于Arduino IO文件夾下。



打開Matlab的GUIDE



安裝下面方法,拖放兩個按鈕,按鈕的顯示文字可以通過雙擊后,在屬性頁下的“string”一欄下面修改,我們用兩只按鈕分別控制直流電機的轉動



至此,我們已經完成必要的程序的燒寫和界面的初步編寫,下面將繼續介紹如何添加按鈕的響應函數,實現上位機的控制功能。

我們利用Matlab已經初步設計了一個GUI界面,下面將添加必要的響應函數,演示時間的控制功能。

下圖展示如何從GUIDE進入按鈕的編輯界面,在這里我們將添加對Arduino相應的IO口或者串口的操作。



下面是基本的操作函數實例匯總
a = arduino('COM9')
設置引腳為輸入或者輸出
a.pinMode(4,'input');
a.pinMode(13,'output');
讀寫引腳的狀態
a.digitalRead(4)
a.digitalWrite(13,0)
模擬量輸入或者輸出操作
a.analogRead(5)
a.analogWrite(9, 155)
串口操作
a.serial                 % get serial port
a.flush;                 % flushes PC's input buffer
a.roundTrip(42)    % sends 42 to the arduino and back
本例中若使用按鈕“Right-Motor”點擊實現IO口8置為高電平,驅動直流電機全速轉動,則添加
global a;
a=arduino('COM7');
a.pinMode(8,'output');

在按鈕“Right-Motor”的響應函數中添加代碼段
global a;
a.digitalWrite(8,(get(hObject,'Value')))



Arduino端準備

想要arduino端的控制,還需要向Arduino中燒寫已經下載的pde文件,其位置位于加壓縮后的Arduino IO文件夾下的pde文件中。通過usb線纜將Arduino uno與電腦連接,點擊GUI中添加的按鈕,即可實現遠端控制功能。        

我們介紹了,在Matlab中建立一個Arduino GUI的過程。下面將繼續介紹如何在Arduino端進行軟件準備。

軟件調試可以在Arduino連接至電腦端就可以進行。

下面將作者自己在其中遇到或者大家可能會遇到的問題一一總結如下:

(1)已經編寫完成的Matlab程序已經綁定了通信口COM8,執行Matlab程序出現如下提示

Error using arduino (line 83)
Could not open port: COM8
Error in Arduinomatlab>Arduinomatlab_OpeningFcn (line 60)
a=arduino('COM8');

首先保證你的開發板已經連接至PC機,而且通過設備管理器查看端口是否與程序中設置的相同。

(2)在保證上述已經完成的情況下,依然提示出錯

Error using arduino (line 54)
Port COM8 already used by MATLAB

這很可能是你中間斷開了Arduino的連線或者重新編譯了程序,你需要在Matlab中執行
delete(instrfind({'Port'},{'COM8'}))
然后重新連接即可。

(3)Arduino連接至PC端,但是不能燒寫上期Blogger中的pde文件,這時候要排除IDE編譯環境中可能存在的問題

1 下載最新的IDE環境(http://arduino.cc/en/Main/Software#toc2
2 安裝手動方式更新驅動
3 注意更改軟件中TOOLs下面的“Board”和“serial port”選項,按照自己所使用Arduino進行修改。

下面將介紹如何配置硬件外圍電路,來為實驗做最后準備。        

為Arduino UNO開發板連接外圍電路,包括直流電機、led燈等外圍器件。

使用到的元器件



下圖是Arduino與直流電機的接口電路。



我們再分析各部分功能

1 開關
2 直流電機
3 二極管
4 MOSFE管
5 電機驅動電源(9V)

由于Arduino的最大驅動電流是40mA,遠遠小于電機驅動所需的電流。這里我們使用一個MOSFET(當然可以使用三極管代替),來使Arduion的小電流來控制電機的通斷

而電機屬于電感性負載,在啟停階段可能會由于電感存在產生一個很大反向電壓,可能會損害我們的MOSFET,這里使用一個二極管來使電流沿著一個方向流動,從而保證電機對其余電路的影響。

9V電源為電機轉動供電,當我們直接將其連接至直流電機兩側時,會發現電機將會全速轉動。



在實驗中,我們手上只有一個直流電機,所以另外一只的控制我們使用led燈來模擬,注意要接上一只220歐的電阻進行限流。
在完成基本的軟件和硬件的準備工作后,我們現在進入最終的測試階段。

操作順序:
1 將Arduino通過usb 線纜連接至PC
2 打開Matab,將當前文件夾設為我們從matlab官網下載的并解壓縮的Arduino IO
3 雙擊打開Arduinomatlab.fig,彈出控制界面
4 點擊按鈕觀察電機的轉動,如果在Matlab提示出錯信息,請嘗試下面解決方法
5 執行“clear”清除變量;執行“ delete(instrfind({'Port'},{'COM8'}))”,并重新拔掉再插上線纜以創建新的通信連接,重復操作步驟1。
本文地址:http://m.qingdxww.cn/thread-151393-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節省時間和空間
  • Dev Tool Bits——使用DVRT協議查看項目中的數據
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監視
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩综合在线 | 一级韩国aa毛片免费观看 | 99国内精品 | 国产精品一区二区欧美视频 | 日韩欧美中文在线 | 高清精品一区二区三区一区 | 国产精品久久久久毛片真精品 | 毛片女人毛片一级毛片毛片 | 九九热精品视频在线观看 | 日韩精品久久一区二区三区 | 亚洲国产高清在线 | 国产精品欧美一区喷水 | 国产麻豆91欧美一区二区 | 欧美精品亚洲精品日韩 | 在线免费观看一级毛片 | 91亚洲国产成人久久精品网址 | 91资源网站| 天天干天天射天天操 | 思思久久99热这里只有精品66 | 国产精品欧美在线观看 | 日本成人免费网站 | 成年女人在线观看片免费视频 | 99热成人精品国产免国语的 | 巨黑巨粗巨硬巨大的黑吊 | 亚洲欧美大片 | 国产精品欧美一区二区 | 天堂成人影院 | 亚洲一区二区免费在线观看 | 芭乐视频黄 | 国产手机精品视频 | 午夜精品一区二区三区在线观看 | 婷婷亚洲综合五月天小说 | 久久这里只有精品国产99 | 亚洲欧洲日韩国产 | 在线a毛片免费视频观看 | 久久久久国产 | 91preon国产在线观看 | 亚洲欧美另类一区 | 久久国产精品成人免费 | 国产成人精品高清在线观看99 | 成人国产精品一级毛片天堂 |