- Szükséges alkatrészek
- Kördiagramm
- Soros kommunikáció a MATLAB parancsablak használatával
- Soros kommunikáció a MATLAB GUI használatával
A MATLAB sokoldalú szoftver, amely sokféle alkalmazáshoz használható. A MATLAB korábbi oktatóanyagaiban elmagyaráztuk, hogyan lehet a MATLAB-ot használni az egyenáramú motor, a szervomotor és a háztartási gépek vezérléséhez. Itt ebben az oktatóanyagban megtanuljuk, hogyan kell használni a MATLAB-ot a soros kommunikációhoz. A soros kommunikáció fogadó végéhez itt vagyunk az Arduino segítségével.
Kétféle módon lehet beállítani a soros kommunikációt a MATLAB és az Arduino között: az egyik a parancsablakot használja, a másik pedig a MATLAB GUI-t. Mindkét módszer Arduino-kódja ugyanaz marad. Ha még nem ismeri a MATLAB alkalmazást, akkor javasoljuk, hogy kezdje el az egyszerű LED-es villogás programot a MATLAB-tal, és ismerje meg a MATLAB-ban használt alapvető terminológiát.
Szükséges alkatrészek
- A MATLAB telepítette a laptopot (előnyben részesítve: R2016a vagy újabb verziók)
- Arduino UNO
- LED (bármilyen színű)
- Ellenállás (330 ohm)
Kördiagramm
A fenti kapcsolási rajz ugyanaz marad a MATLAB és az Arduino közötti soros kommunikáció létrehozásának módjaiban.
Soros kommunikáció a MATLAB parancsablak használatával
Ez az egyszerű módszer az Arduino és a MATLAB közötti soros kommunikáció beállítására. Itt egyszerűen elküldjük az adatokat a MATLAB-ból az Arduino-nak sorban a parancsablak segítségével, majd az Arduino beolvassa a beérkező soros adatokat. Ezután ezeket a sorozatosan továbbított adatokat felhasználhatjuk az Arduino-hoz csatlakoztatott elemek vezérlésére. Itt csatlakoztattunk egy LED-et az Arduino-hoz, amelyet az Arduino sorozatosan kapott adatok szerint fog be- és kikapcsolni.
Először töltse fel a megadott Arduino kódot az Arduino UNO-ba, majd kezdje el a kódolást a MATLAB Editor ablakban. Új szerkesztő szkript megnyitásához kattintson az ' Új szkript' elemre, az alábbi képen látható módon:
Ezután másolja és illessze be az alábbi teljes MATLAB kódot a szerkesztő ablakba a MATLAB és az Arduino közötti soros kommunikációhoz.
% MATLAB kód az Arduino és a MATLAB közötti soros kommunikációhoz x = soros ('COM18', 'BAUD', 9600); fopen (x); megy = igaz; míg megy a = bemenet ('Nyomja meg az 1 gombot a LED bekapcsolásához és a 0 gombot a kikapcsoláshoz:'); fprintf (x, a); if (a == 2) go = hamis; end end
A megadott kódban az alábbi paranccsal definiálhatjuk a soros kommunikációt a MATLAB-ban. Győződjön meg arról, hogy a com portszám az a portszám, amelyre az Arduino csatlakozik, és az átviteli sebességet ugyanúgy kell beállítani az Arduino és a MATLAB kódjaiban is.
x = soros ('COM18', 'BAUD', 9600);
A soros port megnyitásához használja az alábbi parancsot, fopen (x);
Az alábbi parancs segítségével adatokat küldünk a MATLAB-ból az Arduino sorba, ahol az x a soros hívást jelenti, az pedig a felhasználó által beírt érték.
fprintf (x, a);
A while funkcióval végtelen hurkot hozhatunk létre, és amikor a felhasználó beírja a „2” számot, a hurok megszakad.
míg megy a = bemenet ('Nyomja meg az 1 gombot a LED bekapcsolásához és a 0 gombot a kikapcsoláshoz:'); fprintf (x, a); if (a == 2) go = hamis; end end
A MATLAB szerkesztő szkript kódolásának befejezése után kattintson a " FUTÁS " gombra a program futtatásához, az alábbi képen látható módon,
A MATLAB néhány másodpercet vesz igénybe a kód feldolgozásához és a soros kommunikáció megkezdéséhez, várja meg, amíg a MATLAB megjeleníti a "BUSY" üzenetet a szoftver képernyőjének bal alsó sarkában, az alábbi képen látható módon.
Most látni fogja a felhasználói ablak elküldéséhez szükséges parancsablakot, beállítottuk az alapértelmezett üzenetet, 'Nyomja meg az 1 gombot a LED bekapcsolásához és a 0 gombot a kikapcsoláshoz:'
Küldje el az „1” -t a LED bekapcsolásához, a „0” -t a LED kikapcsolásához és a „2” -t a működés megszakításához. Bármely feladathoz tetszőleges számot állíthat be, csak annyit kell tennie, hogy ennek megfelelően csak megváltoztatja az Arduino kódot. A teljes Arduino kódot a végén adjuk meg.
Megnézheti az alábbi videót, hogy megértse a soros adatok MATLAB-ból az Arduino felé történő elküldésének teljes folyamatát a Parancsablak segítségével.
Soros kommunikáció a MATLAB GUI használatával
A soros kommunikáció bemutatásához a MATLAB GUI segítségével két grafikus gombot hozunk létre a MATLAB segítségével az Arduino-hoz csatlakoztatott LED be- és kikapcsolásához. Az adatokat sorban küldjük a MATLAB-ból az Arduino-nak, amikor ezekre a gombokra kattintunk a LED be- és kikapcsolásához. Az Arduino tartalmazza a kódot a soros adatok fogadásához a MATLAB-tól és a LED vezérléséhez a kapott soros adatok szerint. Az Arduino kód ugyanaz marad, mint az előző, csak annyi a különbség, hogy korábban az '1' és '0' soros adatokat küldtük a MATLAB parancsablakán keresztül, és most ugyanazok az adatok lesznek elküldve két grafikus gomb csattanásakor.
A GUI indításához írja be az alábbi parancsot a parancsablakba
útmutató
Megnyílik egy felugró ablak, majd válassza ki az új üres GUI- t az alábbi képen látható módon,
Most válasszon két nyomógombot a LED be- és kikapcsolásához, az alábbiak szerint:
A gombok átméretezéséhez vagy alakjának megváltoztatásához kattintson rá, és húzhatja a gomb sarkát. A nyomógombra duplán kattintva megváltoztathatja az adott gomb színét, karakterláncát és címkéjét. Két gombot testreszabtunk az alábbi képen látható módon.
Testreszabhatja a gombokat a választása szerint. Most, amikor ezt elmenti, egy kód generálódik a MATLAB Szerkesztő ablakában . Szerkessze ezt a kódot az Arduino által végrehajtani kívánt feladatnak megfelelően a MATLAB GUI segítségével. Tehát alább szerkesztettük a MATLAB kódot. A Parancsablakról, a szerkesztőablakról stb. Többet megtudhat a MATLAB oktatóanyag kezdő lépéseiről.
A MATLAB teljes kódja a MATLAB és az Arduino közötti soros kommunikáció létrehozásához a projekt végén található. Ezenkívül a GUI fájlt (.fig) és a kódfájlt (.m) ide kattintva letölthetjük (jobb gombbal kattintson a linkre, majd válassza a 'Link mentése másként…' lehetőséget), amelyek segítségével testre szabhatja a gombokat az Ön igényei szerint. Az alábbiakban néhány változtatást tettünk az Arduino-val összekapcsolt LED vezérléséhez.
Másolja és illessze be az alábbi kódot a 2. sorba. 74 a soros port és az adatátviteli sebesség beállításához.
mindent kitöröl; globális x; x = soros ('COM18', 'BAUD', 9600); % Győződjön meg arról, hogy az adatátviteli sebesség és a COM port % -a megegyezik az Arduino IDE fopen (x) értékével ;
ahol a fopen (x) a soros port megnyitására szolgál a soros kommunikációhoz.
Amikor lefelé görget, látni fogja, hogy a GUI mindkét gombja számára két funkció van létrehozva. Most írja be a kódot mindkét függvénybe a kattintással végrehajtani kívánt feladatnak megfelelően.
A LED-ON gomb funkciójában másolja és illessze be az alábbi kódot közvetlenül a funkció vége előtt a LED bekapcsolásához. Amint az alábbi kódban látható, az fprintf (x, 1) soros adatok küldésére szolgál a MATLAB-ból az Arduino sorosba. Itt küldünk „1” az Arduino soros és ha megnézed az Arduino kódot, azt találjuk, hogy Arduino fog világítani a LED azáltal, hogy a 13 th pin HIGH, amikor megkapja az „1” a soros portján.
globális x; fprintf (x, 1);
A LED-OFF gomb funkciójában másolja és illessze be az alábbi kódot közvetlenül a funkció vége előtt a LED kikapcsolásához. Amint az alábbi kódban látható, az fprintf (x, 0) soros adatok küldésére szolgál a MATLAB-ból az Arduino sorosba. Ebben a részben küldjük „0” az Arduino soros és ha megnézed az Arduino kódot, azt találjuk, hogy Arduino kikapcsolja a LED azáltal, hogy a 13 th pin LOW, amikor megkapja a „0” a soros portján.
globális x; fprintf (x, 0);
Miután befejezte a MATLAB GUI kódolást és beállította a hardvert az áramköri ábra szerint, csak kattintson a Futtatás gombra a szerkesztett kód futtatásához.m fájlban.
A MATLAB reagálása néhány másodpercet vehet igénybe, ne kattintson semmilyen GUI gombra, amíg a MATLAB nem jeleníti meg a BUSY jelzést, amelyet a képernyő bal alsó sarkában láthat az alábbiak szerint:
Ha minden készen áll, kattintson a LED-ON és a LED-OFF gombra a LED be- és kikapcsolásához. Ha megnyomja a LED-ON gomb , 13 -én csap Arduino megy magas, és vezetett ehhez kapcsolódó PIN kezd izzó, vagy ha megnyomja a LED-OFF gomb , 13 -én csap Arduino megy LOW ami a LED kikapcsol.
Az alábbi videót megnézheti, hogy megértse a soros adatok MATLAB-ból az Arduino-nak történő elküldésének teljes folyamatát a MATLAB GUI segítségével.