- Būtini komponentai
- Grandinės schema
- Nuoseklus bendravimas naudojant MATLAB komandų langą
- Nuoseklus bendravimas naudojant MATLAB GUI
MATLAB yra universali programinė įranga, kuri gali būti naudojama įvairioms programoms. Ankstesnėse MATLAB pamokose mes paaiškinome, kaip naudoti MATLAB norint valdyti nuolatinės srovės variklį, servovariklį ir buitinius prietaisus. Čia, šioje pamokoje, sužinosime, kaip naudoti MATLAB nuosekliam bendravimui. Norėdami gauti nuoseklųjį ryšį, mes čia naudojame „Arduino“.
Yra du būdai, kaip nustatyti nuoseklųjį ryšį tarp MATLAB ir „Arduino“: vienas naudoja komandų langą, kitas - MATLAB GUI. Abiejų metodų „Arduino“ kodas išliks tas pats. Jei esate naujas MATLAB vartotojas, rekomenduojame pradėti naudoti paprastą šviesos diodų mirksėjimo programą su MATLAB ir išmokti pagrindinę MATLAB naudojamą terminologiją.
Būtini komponentai
- MATLAB įdiegtas nešiojamas kompiuteris (Pirmenybė: R2016a arba naujesnės versijos)
- „Arduino UNO“
- LED (bet kokios spalvos)
- Rezistorius (330 omų)
Grandinės schema
Pirmiau nurodyta grandinės schema išliks ta pati abiem būdais, kaip užmegzti nuoseklų ryšį tarp MATLAB ir „Arduino“.
Nuoseklus bendravimas naudojant MATLAB komandų langą
Tai yra paprastas būdas nustatyti nuoseklųjį ryšį tarp „Arduino“ ir „MATLAB“. Čia mes tiesiog nusiųsime duomenis iš MATLAB į „Arduino“ nuosekliai naudodami komandų langą, o tada „Arduino“ perskaitys gaunamus serijinius duomenis. Tada šie nuosekliai perduodami duomenys gali būti naudojami valdant viską, kas prijungta prie „Arduino“. Čia mes prijungėme LED prie „Arduino“, kuris bus įjungtas ir išjungtas pagal „Arduino“ nuosekliai gautus duomenis.
Pirmiausia įkelkite nurodytą „Arduino“ kodą į „Arduino UNO“ ir pradėkite koduoti „MATLAB“ redaktoriaus lange. Norėdami atidaryti naują redaktoriaus scenarijų, spustelėkite „ Naujas scenarijus“, kaip parodyta žemiau esančiame paveikslėlyje:
Tada nukopijuokite ir įklijuokite žemiau pateiktą visą MATLAB kodą redaktoriaus lange, kad nuosekliai bendrautumėte tarp MATLAB ir „Arduino“.
% „MATLAB“ serijinio ryšio tarp „Arduino“ ir „MATLAB“ kodas x = nuoseklus („COM18“, „BAUD“, 9600); fopenas (x); eiti = tiesa; o eikite a = įvestis ('Paspauskite 1, kad įjungtumėte šviesos diodą, ir 0, kad išjungtumėte:'); fprintf (x, a); if (a == 2) go = false; pabaigos pabaiga
Nurodytame kode žemiau esanti komanda naudojama nuosekliam ryšiui MATLAB apibrėžti. Įsitikinkite, kad „com“ prievado numeris yra prievado numeris, prie kurio prijungtas „Arduino“, ir duomenų perdavimo greitis turėtų būti nustatytas tiek „ Arduino“, tiek „MATLAB“ koduose.
x = serijinis („COM18“, „BAUD“, 9600);
Norėdami atidaryti nuoseklųjį prievadą, naudokite toliau pateiktą komandą, fopenas (x);
Žemiau komanda naudojama duomenims siųsti iš MATLAB į „Arduino“ nuosekliai, kur x skirtas skambinti nuosekliai, o a yra vartotojo įvesta vertė.
fprintf (x, a);
Rasta naudojimą , o funkcija sukurti begalinį ciklą ir kai vartotojas įvesties skaičius "2" kilpa bus pertrauka.
o eikite a = įvestis ('Paspauskite 1, kad įjungtumėte šviesos diodą, ir 0, kad išjungtumėte:'); fprintf (x, a); if (a == 2) go = false; pabaigos pabaiga
Baigęs kodavimo MATLAB redaktorius scenarijų spustelėkite " RUN " paleisti savo programą, kaip parodyta žemiau paveikslėlio,
MATLAB užtrunka kelias sekundes, kol apdoroja kodą ir pradeda nuoseklųjį ryšį, palaukite, kol MATLAB apatiniame kairiajame programinės įrangos ekrano kampe parodys pranešimą „UŽIMTAS“, kaip parodyta žemiau esančiame paveikslėlyje.
Dabar pamatysite vartotojo lango komandų langą, mes nustatėme numatytąjį pranešimą, "Paspauskite 1, kad įjungtumėte LED, ir 0, kad išjungtumėte:"
Siųskite „1“, kad įjungtumėte šviesos diodą, „0“, kad išjungtumėte šviesos diodą, ir „2“, jei norite nutraukti operaciją. Bet kuriai užduočiai galite nustatyti bet kokį skaičių, tereikia atitinkamai pakeisti „Arduino“ kodą. Pabaigoje pateikiamas pilnas „Arduino“ kodas.
Norėdami sužinoti visą nuoseklių duomenų siuntimo iš MATLAB į „Arduino“ procesą naudodami komandų langą, galite patikrinti toliau pateiktą vaizdo įrašą.
Nuoseklus bendravimas naudojant MATLAB GUI
Norėdami parodyti nuoseklųjį ryšį naudodami MATLAB GUI, sukursime du grafinius mygtukus naudodami MATLAB, kad įjungtumėte ir išjungtumėte LED, prijungtą prie „Arduino“. Duomenys bus nuosekliai siunčiami iš MATLAB į „Arduino“, spustelėjus šiuos mygtukus, kad įjungtumėte ir išjungtumėte šviesos diodą. „Arduino“ bus kodas, skirtas gauti serijinius duomenis iš MATLAB ir valdyti šviesos diodą pagal gautus serijinius duomenis. „Arduino“ kodas išliks toks pat, kaip ir ankstesnis, skirtumas tik tas, kad anksčiau mes per MATLAB komandų langą siuntėme nuoseklius duomenis „1“ ir „0“, o dabar tie patys duomenys bus siunčiami, kai klibės du grafiniai mygtukai.
Norėdami paleisti GUI, komandų lange įveskite žemiau esančią komandą
vadovas
Bus atidarytas iššokantis langas, tada pasirinkite naują tuščią GUI, kaip parodyta žemiau esančiame paveikslėlyje,
Dabar pasirinkite du mygtukus, kaip įjungti ir išjungti LED, kaip parodyta žemiau,
Norėdami pakeisti mygtukų formą arba pakeisti jų formą, tiesiog spustelėkite jį ir galėsite vilkti mygtuko kampus. Dukart spustelėjus mygtuką, galite pakeisti konkretaus mygtuko spalvą, eilutę ir žymą. Mes pritaikėme du mygtukus, kaip parodyta žemiau esančiame paveikslėlyje.
Mygtukus galite pritaikyti pagal savo pasirinkimą. Dabar, kai tai išsaugosite, kodas bus sugeneruotas MATLAB redaktoriaus lange . Redaguokite šį kodą pagal užduotį, kurią norite atlikti savo „Arduino“ naudodami MATLAB GUI. Taigi žemiau mes redagavome MATLAB kodą. Sužinokite daugiau apie komandų langą, redaktoriaus langą ir pan. Pradedant naudoti MATLAB mokymo programą.
Pilnas MATLAB kodas, skirtas nuosekliam ryšiui tarp MATLAB ir „Arduino“ užmegzti, pateiktas šio projekto pabaigoje. Čia taip pat įtraukiame GUI failą (.fig) ir kodo failą (.m), kad galėtumėte atsisiųsti (dešiniuoju pelės mygtuku spustelėkite nuorodą, tada pasirinkite „Išsaugoti nuorodą kaip…“), naudodami kuriuos galite tinkinti mygtukus pagal savo reikalavimus. Žemiau yra keletas patobulinimų, kuriuos atlikome valdydami LED, prijungtą prie „Arduino“.
Nukopijuokite ir įklijuokite žemiau esantį kodą eilutėje Nr. 74, norėdami nustatyti nuoseklųjį prievadą ir duomenų perdavimo greitį.
Išvalyti viską; visuotinis x; x = serijinis („COM18“, „BAUD“, 9600); % Įsitikinkite, kad duomenų perdavimo sparta ir COM prievadas yra tokie patys kaip „Arduino IDE fopen“ (x);
kur „ fopen“ (x) naudojamas atidaryti nuoseklųjį prievadą nuosekliam ryšiui.
Slinkdami žemyn pamatysite, kad GUI abiem mygtukams yra sukurtos dvi funkcijos. Dabar įrašykite kodą į abi funkcijas pagal užduotį, kurią norite atlikti spustelėję.
Vykdydami LED-ON mygtuką, nukopijuokite ir įklijuokite žemiau esantį kodą prieš pat funkcijos pabaigą, kad įjungtumėte LED. Kaip matote žemiau pateiktame kode, fprintf (x, 1) naudojamas nuosekliems duomenims siųsti iš MATLAB į „Arduino“ seriją. Čia mes siunčiame „1“ į „Arduino“ seriją. Jei patikrinsite „Arduino“ kodą, pamatysite, kad „Arduino“ šviečia šviesos diodą padarydamas 13 -ąjį kaištį AUKŠTAS, kai gaus nuoseklųjį prievadą „1“.
visuotinis x; fprintf (x, 1);
Vykdydami LED-OFF mygtuką, nukopijuokite ir įklijuokite žemiau esantį kodą prieš pat funkcijos pabaigą, kad išjungtumėte LED. Kaip matote žemiau esančiame kode, fprintf (x, 0) naudojamas nuosekliems duomenims siųsti iš MATLAB į „Arduino“ seriją. Šioje dalyje siunčiame „0“ į „Arduino“ seriją ir, jei patikrinsite „Arduino“ kodą, pamatysite, kad „Arduino“ išjungs šviesos diodą padarydamas 13 -ąjį kaištį LOW, kai gaus nuoseklųjį prievadą „0“..
visuotinis x; fprintf (x, 0);
Baigę MATLAB GUI kodavimą ir nustatydami aparatūrą pagal grandinės schemą, tiesiog spustelėkite paleidimo mygtuką, kad paleistumėte redaguotą kodą.m faile.
Gali praeiti kelios sekundės, kol MATLAB atsakys, nespustelėkite jokio GUI mygtuko, kol MATLAB parodys užimta indikaciją, kurią galite pamatyti kairiajame apatiniame ekrano kampe, kaip parodyta žemiau,
Kai viskas bus paruošta, spustelėkite mygtuką „LED-ON“ ir „LED-OFF“, kad įjungtumėte ir išjungtumėte šviesos diodą. Paspaudus „ LED-ON“ mygtuką , 13 -asis „Arduino“ kaištis tampa HIGH, o prie šio PIN prijungtas LED pradeda šviesti, o paspaudus „ LED-OFF“ mygtuką , 13 -asis „Arduino“ kaištis eina LOW, kuris priverčia LED išsijungti.
Galite sužinoti toliau pateiktą vaizdo įrašą, kad suprastumėte visą nuoseklių duomenų siuntimo iš MATLAB į „Arduino“ procesą naudojant MATLAB GUI.