- Kinakailangan ang Mga Bahagi
- Diagram ng Circuit
- Serial na Komunikasyon gamit ang MATLAB Command Window
- Serial na Komunikasyon gamit ang MATLAB GUI
Ang MATLAB ay maraming nalalaman software na maaaring magamit para sa iba't ibang mga application. Sa nakaraang mga tutorial ng MATLAB, ipinaliwanag namin kung paano gamitin ang MATLAB upang makontrol ang DC motor, Servo motor at mga gamit sa Home. Dito sa tutorial na ito, malalaman natin kung paano gamitin ang MATLAB para sa Serial Communication. Para sa pagtanggap ng pagtatapos ng serial na komunikasyon, narito kami gamit ang Arduino.
Mayroong dalawang paraan upang mag- set ng serial na komunikasyon sa pagitan ng MATLAB at Arduino, ang isa ay gumagamit ng window ng utos at ang iba pa ay gumagamit ng MATLAB GUI. Ang Arduino code para sa parehong pamamaraan ay mananatiling pareho. Kung bago ka sa MATLAB pagkatapos ay inirerekumenda na magsimula sa simpleng programa ng LED blink sa MATLAB at alamin ang pangunahing terminolohiya na ginamit sa MATLAB.
Kinakailangan ang Mga Bahagi
- Naka-install na MATLAB na Laptop (Kagustuhan: R2016a o mas mataas na mga bersyon)
- Arduino UNO
- LED (anumang kulay)
- Resistor (330 ohm)
Diagram ng Circuit
Ang diagram ng circuit sa itaas ay mananatiling pareho para sa parehong mga paraan upang maitaguyod ang serial na komunikasyon sa pagitan ng MATLAB at Arduino.
Serial na Komunikasyon gamit ang MATLAB Command Window
Ito ang simpleng pamamaraan upang mai-set up ang serial na komunikasyon sa pagitan ng Arduino at MATLAB. Dito ipapadala lamang namin ang data mula sa MATLAB sa seryeng Arduino gamit ang command window at pagkatapos basahin ng Arduino ang papasok na serial data. Pagkatapos ay maaaring magamit ang serial transmitted data na ito upang makontrol ang anumang konektado sa Arduino. Dito nakakonekta namin ang isang LED sa Arduino, i-on at i-off ito alinsunod sa serial na natanggap na data ng Arduino.
Una, i-upload ang ibinigay na Arduino code sa Arduino UNO at pagkatapos ay simulan ang pag-coding sa MATLAB Editor Window. Upang buksan ang isang bagong editor ng script na mag-click sa ' Bagong Script' tulad ng ipinakita sa larawan sa ibaba:
Pagkatapos, kopyahin at i-paste ang sa ibaba kumpletong MATLAB code sa window ng editor para sa serial na komunikasyon sa pagitan ng MATLAB at Arduino.
% MATLAB Code para sa Serial Communication sa pagitan ng Arduino at MATLAB x = serial ('COM18', 'BAUD', 9600); fopen (x); pumunta = totoo; habang pumunta sa isang = input ('Pindutin ang 1 upang I-ON ang LED & 0 upang i-OFF:'); fprintf (x, a); kung (a == 2) go = false; pagtatapos ng wakas
Sa ibinigay na code, ang utos sa ibaba ay ginagamit para sa pagtukoy ng serial na komunikasyon sa MATLAB. Siguraduhin na ang numero ng com port ay ang numero ng port kung saan nakakonekta ang Arduino at ang rate ng baud ay dapat na itakda pareho sa parehong mga code ng Arduino at MATLAB.
x = serial ('COM18', 'BAUD', 9600);
Upang buksan ang serial port gamitin ang utos sa ibaba, fopen (x);
Ang utos sa ibaba ay ginagamit upang magpadala ng data mula sa MATLAB patungo sa Arduino nang serial , kung saan ang x ay para sa pagtawag sa serial at a ang halaga na ipinasok ng gumagamit.
fprintf (x, a);
Mayroon kaming paggamit habang nag- andar para sa paglikha ng isang walang katapusan na loop at sa tuwing nai-input ng gumagamit ang bilang na '2' masisira ang loop.
habang pumunta sa isang = input ('Pindutin ang 1 upang I-ON ang LED & 0 upang i-OFF:'); fprintf (x, a); kung (a == 2) go = false; pagtatapos ng wakas
Matapos makumpleto ang pag-coding ng editor ng script ng MATLAB mag-click sa ' RUN ' upang patakbuhin ang iyong programa tulad ng ipinakita sa imahe sa ibaba,
Ang MATLAB ay tumatagal ng ilang segundo para sa pagproseso ng code at simulan ang serial na komunikasyon, maghintay hanggang maipakita ng MATLAB ang 'BUSY' na mensahe sa ibabang kaliwang sulok ng screen ng software, tulad ng ipinakita sa imahe sa ibaba.
Ngayon, makikita mo ang window ng utos para sa pagpapadala ng input ng gumagamit, naitakda namin ang default na mensahe, 'Pindutin ang 1 upang I-ON ang LED at 0 upang i-OFF:'
Ipadala ang '1' upang i-on ang LED, '0' upang i-OFF ang LED at '2' upang masira ang operasyon. Maaari mong itakda ang anumang numero para sa anumang gawain, ang kailangan mo lang gawin ay baguhin lamang ang Arduino code nang naaayon. Ang kumpletong Arduino code ay ibinibigay sa katapusan.
Maaari mong suriin ang video sa ibaba upang maunawaan ang kumpletong proseso ng Pagpapadala ng Serial Data mula sa MATLAB hanggang Arduino gamit ang Command Window.
Serial na Komunikasyon gamit ang MATLAB GUI
Para sa pagpapakita ng Serial Communication gamit ang MATLAB GUI, lilikha kami ng dalawang mga graphic na pindutan gamit ang MATLAB upang i-on at i-off ang LED na konektado sa Arduino. Ipapadala ang data nang serial mula sa MATLAB patungong Arduino sa pag-click sa mga pindutang ito upang i-on at i-off ang LED. Maglalaman ang Arduino ng code para sa pagtanggap ng serial data mula sa MATLAB at pagkontrol sa LED alinsunod sa natanggap na serial data. Ang code ng Arduino ay mananatiling kapareho ng dating isa, ang pagkakaiba lamang ay, dati ay nagpapadala kami ng serial data na '1' at '0' sa pamamagitan ng window ng command ng MATLAB, at ngayon ang parehong data ay ipapadala sa pag-clink sa dalawang mga graphic na pindutan.
Upang ilunsad ang GUI, i-type ang utos sa ibaba sa window ng command
gabay
Magbubukas ang isang popup window, pagkatapos ay pumili ng bagong blangko GUI tulad ng ipinakita sa imaheng nasa ibaba,
Pumili ngayon ng dalawang mga pindutan para sa pag-ON at pag-OFF ng LED, tulad ng ipinakita sa ibaba,
Upang baguhin ang laki o upang baguhin ang hugis ng mga pindutan, mag-click lamang dito at magagawa mong i-drag ang mga sulok ng pindutan. Sa pamamagitan ng pag-double click sa pushbutton maaari mong baguhin ang kulay, string at tag ng partikular na pindutan. Na-customize namin ang dalawang mga pindutan tulad ng ipinakita sa larawan sa ibaba.
Maaari mong ipasadya ang mga pindutan ayon sa iyong pinili. Ngayon kapag na-save mo ito, bubuo ang isang code sa window ng Editor ng MATLAB. I-edit ang code na ito alinsunod sa gawain na nais mong gampanan ng iyong Arduino gamit ang MATLAB GUI. Kaya sa ibaba ay na-edit namin ang MATLAB code. Maaari kang matuto nang higit pa tungkol sa window ng Command, window ng editor atbp sa pagsisimula sa tutorial ng MATLAB.
Kumpletuhin ang MATLAB code, para sa pagtataguyod ng Serial Communication sa pagitan ng MATLAB at Arduino ay ibinibigay sa pagtatapos ng proyektong ito. Dagdag dito ay isinasama namin ang GUI file (.fig) at code file (.m) dito para sa pag-download (pag-right click sa link pagkatapos ay piliin ang 'I-save ang link bilang…'), gamit kung saan maaari mong ipasadya ang mga pindutan ayon sa iyong kinakailangan. Nasa ibaba ang ilang mga pag-aayos na ginawa namin para sa pagkontrol sa LED na konektado sa Arduino.
Kopyahin at i-paste ang code sa ibaba sa linya no. 74 upang mai-setup ang serial port at baud rate.
Alisin lahat; pandaigdigan x; x = serial ('COM18', 'BAUD', 9600); % Siguraduhin na ang rate ng baud at COM port ay % pareho sa Arduino IDE fopen (x);
kung saan, ang fopen (x) ay ginagamit upang buksan ang serial port para sa serial na komunikasyon.
Kapag nag-scroll ka pababa, makikita mo na mayroong dalawang mga pagpapaandar na nilikha para sa parehong mga Pindutan sa GUI. Ngayon isulat ang code sa parehong mga pag-andar ayon sa gawain na nais mong maisagawa sa pag-click.
Sa pagpapaandar ng button na LED-ON , kopyahin at i-paste ang code sa ibaba bago ang pagtatapos ng pagpapaandar upang i-ON ang LED. Tulad ng nakikita mo sa code sa ibaba, ang fprintf (x, 1) ay ginagamit para sa pagpapadala ng serial data mula sa MATLAB patungo sa Arduino serial. Ipinapadala namin ang '1' sa serial ng Arduino at kung susuriin mo ang Arduino code, mahahanap mo na ang Arduino ay magpapakita ng LED sa pamamagitan ng paggawa ng ika- 13 na pin na TAAS, kapag natanggap nito ang '1' sa serial port nito.
pandaigdigan x; fprintf (x, 1);
Sa pagpapaandar ng button na LED-OFF , kopyahin at i-paste ang code sa ibaba bago ang pagtatapos ng pagpapaandar upang i-OFF ang LED. Tulad ng nakikita mo sa code sa ibaba, ang fprintf (x, 0) ay ginagamit para sa pagpapadala ng serial data mula sa MATLAB patungo sa Arduino serial. Sa bahaging ito, nagpapadala kami ng '0' sa serial ng Arduino at kung susuriin mo ang Arduino code, mahahanap mo na papatayin ng Arduino ang LED sa pamamagitan ng paggawa ng ika- 13 na pin na LOW, kapag natanggap nito ang '0' sa serial port nito.
pandaigdigan x; fprintf (x, 0);
Matapos makumpleto ang MATLAB GUI coding at i-setup ang hardware alinsunod sa circuit diagram, i-click lamang sa run button upang patakbuhin ang na-edit na code sa.m file.
Ang MATLAB ay maaaring tumagal ng ilang segundo upang tumugon, huwag mag-click sa anumang pindutan ng GUI hanggang ipakita ang MATLAB na pahiwatig ng BUSY, na maaari mong makita sa kaliwang sulok sa ibaba ng screen tulad ng ipinakita sa ibaba,
Kapag handa na ang lahat, mag-click sa LED-ON at LED-OFF button upang I-ON at I-OFF ang LED. Kapag pinindot mo ang LED-ON button , ika- 13 na pin ng Arduino ay napakataas at ang LED na konektado sa PIN na ito ay nagsisimulang kumikinang, at kapag pinindot mo ang LED-OFF na pindutan , ika- 13 na pin ng Arduino ay napakababa na gumagawa ng LED upang patayin.
Maaari mong suriin ang video sa ibaba upang maunawaan ang kumpletong proseso ng Pagpapadala ng Serial Data mula sa MATLAB hanggang Arduino gamit ang MATLAB GUI.