- Tarvittavat komponentit
- Piirikaavio
- Sarjaliikenne MATLAB-komentoikkunalla
- Sarjaviestintä MATLAB-käyttöliittymän avulla
MATLAB on monipuolinen ohjelmisto, jota voidaan käyttää monenlaisiin sovelluksiin. Aikaisemmissa MATLAB-oppaissa olemme selittäneet, kuinka MATLABia käytetään DC-moottorin, servomoottorin ja kodinkoneiden ohjaamiseen. Tässä tässä opetusohjelmassa opimme käyttämään MATLABia sarjaliikenteessä. Sarjaliikenteen vastaanottopäätä varten käytämme täällä Arduinoa.
Sarjaliikenteen määrittäminen MATLABin ja Arduinon välillä on kaksi tapaa, toinen käyttää komentoikkunaa ja toinen MATLAB-käyttöliittymää. Molempien menetelmien Arduino-koodi pysyy samana. Jos olet uusi MATLAB-käyttäjä, on suositeltavaa aloittaa yksinkertainen LED-vilkkuohjelma MATLAB: n kanssa ja oppia MATLABissa käytettävät perustermit.
Tarvittavat komponentit
- MATLAB: n asentama kannettava tietokone (etusija: R2016a tai uudemmat versiot)
- Arduino UNO
- LED (mikä tahansa väri)
- Vastus (330 ohmia)
Piirikaavio
Yllä oleva piirikaavio pysyy samana molemmilla tavoilla muodostaa sarjaliikenne MATLABin ja Arduinon välillä.
Sarjaliikenne MATLAB-komentoikkunalla
Tämä on yksinkertainen tapa asettaa sarjaliikenne Arduinon ja MATLAB: n välille. Täällä me yksinkertaisesti lähetämme tiedot MATLAB: sta Arduinoon sarjaan komentoikkunalla ja sitten Arduino lukee saapuvat sarjatiedot. Sitten tätä sarjaan lähetettyä dataa voidaan käyttää hallitsemaan mitä tahansa Arduinoon liitettyä. Tässä olemme liittäneet Arduinoon LEDin, joka kytketään päälle ja pois päältä Arduinon sarjatuotannon mukaan.
Lataa ensin annettu Arduino-koodi Arduino UNO: hon ja aloita koodaus sitten MATLAB Editor -ikkunassa. Voit avata uuden editorin komentosarjan napsauttamalla Uusi komento alla olevan kuvan mukaisesti:
Kopioi ja liitä sitten alla oleva täydellinen MATLAB-koodi muokkausikkunaan MATLABin ja Arduinon välistä sarjaliikennettä varten.
% MATLAB-koodi sarjaliikenteelle Arduinon ja MATLABin välillä x = sarja ('COM18', 'BAUD', 9600); fopen (x); go = tosi; kun menee a = tulo ('Paina 1 kytkeäksesi LED-valon päälle ja 0 sammuttaaksesi POIS:'); fprintf (x, a); jos (a == 2) go = false; end end
Annetussa koodissa alla olevaa komentoa käytetään määrittämään sarjaliikenne MATLAB: ssä. Varmista, että com-porttinumero on porttinumero, johon Arduino on kytketty, ja siirtonopeuden tulisi olla sama sekä Arduinon että MATLABin koodeissa.
x = sarja ('COM18', 'BAUD', 9600);
Voit avata sarjaportin käyttämällä seuraavaa komentoa, fopen (x);
Alla olevaa komentoa käytetään tietojen lähettämiseen MATLAB: sta Arduinoon sarjaan, missä x on sarjakutsut ja a on käyttäjän syöttämä arvo.
fprintf (x, a);
Meillä on käyttöä , kun toiminto luoda päättymättömään silmukkaan, ja kun käyttäjä syöttää numeron '2' silmukka murtuu.
kun menee a = tulo ('Paina 1 kytkeäksesi LED-valon päälle ja 0 sammuttaaksesi POIS:'); fprintf (x, a); jos (a == 2) go = false; end end
Kun olet koodannut MATLAB-editoriohjelman, napsauta ' RUN ' suorittaaksesi ohjelman kuvan alla olevan kuvan mukaisesti,
MATLAB vie muutaman sekunnin koodin käsittelyyn ja aloittaa sarjaliikenteen, odota, kunnes MATLAB näyttää "BUSY" -viestin ohjelmistonäytön vasemmassa alakulmassa, kuten alla olevassa kuvassa näkyy.
Nyt näet komentoikkunan käyttäjän syötteen lähettämistä varten, olemme asettaneet oletusviestin, 'Kytke LED päälle painamalla 1 ja sammuttamaan 0:'
Lähetä '1' kytkeäksesi LED-valon päälle, '0' sammuttaaksesi ledin ja '2' katkaistaksesi toiminnon. Voit asettaa minkä tahansa numeron mille tahansa tehtävälle, sinun tarvitsee vain muuttaa Arduino-koodi vastaavasti. Täydellinen Arduino-koodi annetaan lopussa.
Voit tarkistaa alla olevan videon ymmärtääksesi koko prosessin, kun sarjatiedot lähetetään MATLAB: sta Arduinoon komentoikkunan avulla.
Sarjaviestintä MATLAB-käyttöliittymän avulla
Sarjaviestinnän osoittamiseksi MATLAB-käyttöliittymällä luomme kaksi graafista painiketta MATLAB-toiminnolla Arduinoon kytketyn LEDin kytkemiseksi päälle ja pois päältä. Tiedot lähetetään sarjana MATLAB: sta Arduinoon napsauttamalla näitä painikkeita kytkeäksesi LED: n päälle ja pois päältä. Arduino sisältää koodin sarjatietojen vastaanottamiseksi MATLAB: lta ja LEDin ohjaamiseen vastaanotettujen sarjatietojen mukaan. Arduino-koodi pysyy samana kuin edellinen, ainoa ero on, että aiemmin lähetimme sarjatietoja '1' ja '0' MATLAB-komentoikkunan kautta, ja nyt samat tiedot lähetetään, kun kahta graafista painiketta painetaan.
Käynnistä GUI kirjoittamalla alla oleva komento komentoikkunaan
opas
Ponnahdusikkuna avautuu ja valitse sitten uusi tyhjä käyttöliittymä kuvan alla olevan kuvan mukaisesti,
Valitse nyt kaksi painiketta LEDin kytkemiseksi päälle ja pois päältä alla olevan kuvan mukaisesti,
Jos haluat muuttaa painikkeiden kokoa tai muuttaa niiden muotoa, napsauta sitä ja voit vetää painikkeen kulmia. Kaksoisnapsauttamalla painiketta, voit muuttaa kyseisen painikkeen väriä, merkkijonoa ja tagia. Olemme räätälöineet kaksi painiketta alla olevan kuvan mukaisesti.
Voit mukauttaa painikkeita valintasi mukaan. Nyt kun tallennat tämän, koodi luodaan MATLAB: n Editor-ikkunaan . Muokkaa tätä koodia sen tehtävän mukaan, jonka haluat suorittaa Arduinolla MATLAB-käyttöliittymän avulla. Joten alla olemme muokanneet MATLAB-koodia. Voit oppia lisää komentoikkunasta, muokkausikkunasta jne. MATLAB-opetusohjelman käytön aloittamisesta.
Täydellinen MATLAB-koodi MATLAB: n ja Arduinon välisen sarjaliikenteen luomiseksi annetaan tämän projektin lopussa. Lisäksi sisällytämme GUI-tiedoston (.fig) ja kooditiedoston (.m) ladattavaksi (napsauta hiiren kakkospainikkeella linkkiä ja valitse sitten Tallenna linkki nimellä…), joiden avulla voit muokata painikkeita vaatimuksesi mukaan. Alla on joitain parannuksia, jotka teimme Arduinoon liitetyn LEDin ohjaamiseksi.
Kopioi ja liitä alla oleva koodi riville nro. 74 sarjaportin ja siirtonopeuden määrittämiseen.
Tyhjennä; globaali x; x = sarja ('COM18', 'BAUD', 9600); % Varmista, että tiedonsiirtonopeus ja COM-portti ovat % samat kuin Arduino IDE fopenissa (x);
missä, fopen (x) käytetään avaamaan sarjaportti sarjaliikennettä varten.
Kun vierität alaspäin, huomaat, että GUI: n molemmille painikkeille on luotu kaksi toimintoa. Kirjoita nyt koodi molempiin toimintoihin sen tehtävän mukaan, jonka haluat suorittaa napsautuksella.
In LED-ON painikkeen toimintoa, kopioi ja liitä alla koodi juuri ennen loppua toiminto kääntää LED. Kuten alla olevasta koodista näet, fprintf (x, 1) käytetään sarjatietojen lähettämiseen MATLABista Arduino sarjaan. Täällä lähetämme '1' Arduino-sarjalle, ja jos tarkistat Arduino-koodin, huomaat, että Arduino hehkuttaa LED-valoa tekemällä 13. nastansa KORKEAA, kun se vastaanottaa '1' sarjaporttiinsa.
globaali x; fprintf (x, 1);
In LED-OFF painikkeen toimintoa, kopioi ja liitä alla koodi juuri ennen loppua toiminto sammuttaa LED. Kuten alla olevasta koodista näet, fprintf (x, 0) käytetään sarjatietojen lähettämiseen MATLABista Arduino sarjaan. Tässä osassa lähetämme '0' Arduino-sarjalle, ja jos tarkistat Arduino-koodin, huomaat, että Arduino sammuttaa LED-valon tekemällä 13. nastansa LOW, kun se saa '0' sarjaporttiinsa.
globaali x; fprintf (x, 0);
Kun olet suorittanut MATLAB-käyttöliittymäkoodauksen ja asettanut laitteiston piirikaavion mukaan, suorita muokattu koodi.m-tiedostossa napsauttamalla juoksupainiketta.
MATLAB voi viedä vastauksen muutaman sekunnin ajan, älä napsauta mitään käyttöliittymäpainiketta, ennen kuin MATLAB näyttää BUSY-ilmoituksen, jonka näet näytön vasemmassa alakulmassa alla olevan kuvan mukaisesti,
Kun kaikki on valmis, napsauta LED-ON ja LED-OFF -painikkeita kytkeäksesi LED: n päälle ja pois päältä. Kun painat LED-ON-painiketta , 13 th pin Arduino menee HIGH ja LED kytketty PIN alkaa hehkuva, ja kun painat LED-OFF-painiketta , 13 th pin Työläs menee vähän joka tekee merkkivalon sammua.
Voit tarkistaa alla olevan videon ymmärtääksesi koko prosessin, joka koskee sarjatietojen lähettämistä MATLABista Arduinoon MATLAB-käyttöliittymän avulla.