- Componente necesare
- Diagrama circuitului
- Comunicare în serie utilizând fereastra de comandă MATLAB
- Comunicare în serie utilizând MATLAB GUI
MATLAB este un software versatil care poate fi utilizat pentru o mare varietate de aplicații. În tutoriale anterioare ale MATLAB, am explicat cum să utilizați MATLAB pentru a controla motorul continuu, motorul servo și electrocasnicele. Aici, în acest tutorial, vom învăța cum să folosim MATLAB pentru comunicarea în serie. Pentru finalul recepționării comunicării seriale, suntem aici folosind Arduino.
Există două moduri de configurare a comunicării seriale între MATLAB și Arduino, unul utilizează fereastra de comandă și altul utilizează MATLAB GUI. Codul Arduino pentru ambele metode va rămâne același. Dacă sunteți nou în MATLAB, atunci vă recomandăm să începeți cu un program simplu de clipire LED cu MATLAB și să învățați terminologia de bază utilizată în MATLAB.
Componente necesare
- Laptop instalat de MATLAB (preferință: versiunile R2016a sau mai sus)
- Arduino UNO
- LED (orice culoare)
- Rezistor (330 ohm)
Diagrama circuitului
Diagrama de circuit de mai sus va rămâne aceeași pentru ambele moduri de a stabili comunicarea serială între MATLAB și Arduino.
Comunicare în serie utilizând fereastra de comandă MATLAB
Aceasta este metoda simplă de configurare a comunicării seriale între Arduino și MATLAB. Aici vom trimite datele de la MATLAB către Arduino în serie folosind fereastra de comandă și apoi Arduino va citi datele seriale primite. Apoi, aceste date transmise în serie pot fi utilizate pentru a controla orice este conectat la Arduino. Aici am conectat un LED la Arduino, care va fi pornit și oprit în conformitate cu datele primite în serie de către Arduino.
Mai întâi, încărcați codul Arduino dat în Arduino UNO și apoi începeți codarea în fereastra Editor MATLAB. Pentru a deschide un nou script de editor, faceți clic pe „ Script nou”, așa cum se arată în imaginea de mai jos:
Apoi, copiați și lipiți codul MATLAB complet de mai jos în fereastra editorului pentru comunicarea în serie între MATLAB și Arduino.
% Cod MATLAB pentru comunicarea în serie între Arduino și MATLAB x = serial („COM18”, „BAUD”, 9600); fopen (x); go = adevărat; în timp ce go a = input ('Apăsați 1 pentru a aprinde LED-ul & 0 pentru a opri:'); fprintf (x, a); if (a == 2) go = false; sfârșit sfârșit
În codul dat, comanda de mai jos este utilizată pentru definirea comunicării seriale în MATLAB. Asigurați-vă că numărul portului com este numărul portului la care este conectat Arduino și rata de transmisie ar trebui să fie setată la fel în ambele coduri ale Arduino și MATLAB.
x = serial („COM18”, „BAUD”, 9600);
Pentru a deschide portul serial utilizați comanda de mai jos, fopen (x);
Comanda de mai jos este utilizată pentru a trimite date de la MATLAB la Arduino în serie, unde x este pentru apelarea serialului și a este valoarea introdusă de utilizator.
fprintf (x, a);
Utilizăm funcția while pentru a crea o buclă infinită și ori de câte ori utilizatorul introduce numărul „2”, bucla se va rupe.
în timp ce go a = input ('Apăsați 1 pentru a aprinde LED-ul & 0 pentru a opri:'); fprintf (x, a); if (a == 2) go = false; sfârșit sfârșit
După finalizarea codificării scriptului editor MATLAB, faceți clic pe „ RUN ” pentru a rula programul, așa cum se arată în imaginea de mai jos,
MATLAB durează câteva secunde pentru procesarea codului și pornește comunicarea în serie, așteptați până când MATLAB afișează mesajul „BUSY” în colțul din stânga jos al ecranului software, așa cum se arată în imaginea de mai jos.
Acum, veți vedea fereastra de comandă pentru trimiterea intrării utilizatorului, am setat mesajul implicit, "Apăsați 1 pentru a porni LED-ul și 0 pentru a opri:"
Trimiteți „1” pentru a aprinde LED-ul, „0” pentru a opri LED-ul și „2” pentru a întrerupe operația. Puteți seta orice număr pentru orice sarcină, tot ce trebuie să faceți este să schimbați codul Arduino în consecință. Codul Arduino complet este dat la sfârșit.
Puteți consulta videoclipul de mai jos pentru a înțelege procesul complet de trimitere a datelor seriale de la MATLAB la Arduino utilizând fereastra de comandă.
Comunicare în serie utilizând MATLAB GUI
Pentru a demonstra comunicarea în serie utilizând MATLAB GUI, vom crea două butoane grafice folosind MATLAB pentru a porni și opri LED-ul conectat la Arduino. Datele vor fi trimise în serie de la MATLAB la Arduino făcând clic pe aceste butoane pentru a porni și opri LED-ul. Arduino va conține codul pentru primirea datelor seriale de la MATLAB și controlul LED-ului în funcție de datele seriale primite. Codul Arduino va rămâne același ca și cel anterior, singura diferență este că, anterior, trimiteam date seriale „1” și „0” prin fereastra de comandă a MATLAB, iar acum aceleași date vor fi trimise la clinking pe două butoane grafice.
Pentru a lansa interfața grafică, tastați comanda de mai jos în fereastra de comandă
ghid
Se va deschide o fereastră pop-up, apoi selectați o nouă interfață grafică goală așa cum se arată în imaginea de mai jos,
Acum alegeți două butoane pentru pornirea și oprirea LED-ului, așa cum se arată mai jos,
Pentru a redimensiona sau a schimba forma butoanelor, trebuie doar să faceți clic pe acesta și veți putea trage colțurile butonului. Dând dublu clic pe buton, puteți schimba culoarea, șirul și eticheta acelui buton. Am personalizat două butoane așa cum se arată în imaginea de mai jos.
Puteți personaliza butoanele după alegerea dvs. Acum, când salvați acest lucru, se va genera un cod în fereastra Editor a MATLAB. Editați acest cod în funcție de sarcina pe care doriți să o efectuați de către Arduino utilizând interfața grafică MATLAB. Deci, mai jos am editat codul MATLAB. Puteți afla mai multe despre fereastra de comandă, fereastra editorului, etc., în Tutorialul Noțiuni introductive despre MATLAB.
Codul complet MATLAB, pentru stabilirea comunicării seriale între MATLAB și Arduino este dat la sfârșitul acestui proiect. Mai departe, includem fișierul GUI (.fig) și fișierul de cod (.m) aici pentru descărcare (faceți clic dreapta pe link, apoi selectați „Salvați linkul ca…”), folosind care puteți personaliza butoanele conform cerințelor dvs. Mai jos sunt câteva modificări pe care le-am făcut pentru controlul LED-ului conectat cu Arduino.
Copiați și lipiți codul de mai jos pe linia nr. 74 pentru a configura portul serial și rata de transmisie.
curata tot; x global; x = serial („COM18”, „BAUD”, 9600); % Asigurați-vă că rata de transmisie și portul COM sunt % la fel ca în Arduino IDE fopen (x);
unde, fopen (x) este utilizat pentru a deschide portul serial pentru comunicații seriale.
Când derulați în jos, veți vedea că există două funcții create pentru ambele Butoane din GUI. Acum scrieți codul în ambele funcții în funcție de sarcina pe care doriți să o efectuați pe clic.
În funcția butonului LED-ON , copiați și lipiți codul de mai jos chiar înainte de sfârșitul funcției pentru a porni LED-ul. După cum vedeți în codul de mai jos, fprintf (x, 1) este utilizat pentru trimiterea datelor seriale de la MATLAB la seria Arduino. Aici trimitem „1” către serialul Arduino și, dacă verificați codul Arduino, veți descoperi că Arduino va aprinde LED-ul făcându-i al 13- lea pin HIGH, când primește „1” pe portul său serial.
x global; fprintf (x, 1);
În funcția butonului LED-OFF , copiați și lipiți codul de mai jos chiar înainte de sfârșitul funcției pentru a opri LED-ul. După cum vedeți în codul de mai jos, fprintf (x, 0) este utilizat pentru trimiterea datelor seriale de la MATLAB la seria Arduino. În această parte, trimitem „0” către seria Arduino și, dacă verificați codul Arduino, veți descoperi că Arduino va opri LED-ul făcând al 13- lea pin LOW, când primește „0” pe portul său serial..
x global; fprintf (x, 0);
După ce ați terminat cu codificarea GUI MATLAB și ați configurat hardware-ul conform schemei de circuit, trebuie doar să faceți clic pe butonul Run pentru a rula codul editat în fișierul.m.
MATLAB poate dura câteva secunde pentru a răspunde, nu faceți clic pe niciun buton GUI până când MATLAB nu afișează indicația BUSY, pe care o puteți vedea în colțul din stânga jos al ecranului, așa cum se arată mai jos,
Când totul este gata, faceți clic pe butonul LED-ON și LED-OFF pentru a porni și opri LED-ul. Când apăsați butonul LED-ON , al 13- lea pin al Arduino devine HIGH și LED-ul conectat la acest PIN începe să aprindă, iar când apăsați butonul LED-OFF , al 13- lea pin al Arduino devine LOW ceea ce face ca LED-ul să se stingă.
Puteți consulta videoclipul de mai jos pentru a înțelege procesul complet de trimitere a datelor seriale de la MATLAB la Arduino utilizând MATLAB GUI.