- Komponente potrebne
- Kružni dijagram
- Serijska komunikacija pomoću naredbenog prozora MATLAB
- Serijska komunikacija pomoću MATLAB GUI
MATLAB je svestran softver koji se može koristiti za široku paletu aplikacija. U prethodnim lekcijama MATLAB-a objasnili smo kako se MATLAB koristi za upravljanje istosmjernim motorom, servo motorom i kućanskim aparatima. Ovdje ćemo u ovom tutorialu naučiti kako koristiti MATLAB za serijsku komunikaciju. Za primanje kraja serijske komunikacije, ovdje koristimo Arduino.
Postoje dva načina za postavljanje serijske komunikacije između MATLAB-a i Arduina, jedan koristi naredbeni prozor, a drugi MATLAB GUI. Arduino kôd za obje metode ostat će isti. Ako ste novi u MATLAB-u, preporučuje se da započnete s jednostavnim LED programom za treptanje s MATLAB-om i naučite osnovnu terminologiju koja se koristi u MATLAB-u.
Komponente potrebne
- MATLAB instaliran prijenosnik (Preference: R2016a ili novije verzije)
- Arduino UNO
- LED (bilo koja boja)
- Otpornik (330 ohma)
Kružni dijagram


Gornji dijagram sklopa ostat će isti za oba načina uspostavljanja serijske komunikacije između MATLAB-a i Arduina.
Serijska komunikacija pomoću naredbenog prozora MATLAB
Ovo je jednostavna metoda za postavljanje serijske komunikacije između Arduina i MATLAB-a. Ovdje ćemo jednostavno poslati podatke iz MATLAB-a u Arduino serijski pomoću naredbenog prozora, a zatim Arduino pročitati dolazne serijske podatke. Tada se ovi serijski preneseni podaci mogu koristiti za kontrolu bilo čega što je povezano s Arduinom. Ovdje smo na Arduino spojili LED, koja će se paliti i gasiti prema serijski primljenim podacima od strane Arduina.
Prvo prenesite zadani Arduino kôd u Arduino UNO, a zatim započnite s kodiranjem u prozoru MATLAB Editor. Da biste otvorili novu skriptu uređivača, kliknite na ' Nova skripta' kao što je prikazano na donjoj slici:

Zatim kopirajte i zalijepite donji cjeloviti MATLAB kôd u prozor uređivača za serijsku komunikaciju između MATLAB-a i Arduina.
% MATLAB kod za serijsku komunikaciju između Arduina i MATLAB x = serijski ('COM18', 'BAUD', 9600); fopen (x); ići = točno; dok idite a = input ('Pritisnite 1 za uključivanje LED diode i 0 za isključivanje:'); fprintf (x, a); if (a == 2) go = false; kraj kraj

U danom kodu naredba ispod koristi se za definiranje serijske komunikacije u MATLAB-u. Provjerite je li broj COM ulaza broj porta na koji je povezan Arduino i da brzina prijenosa mora biti postavljena u oba koda Arduina i MATLAB-a.
x = serijski ('COM18', 'BAUD', 9600);
Da biste otvorili serijski port, upotrijebite donju naredbu, fopen (x);
Ispod se koristi naredba za serijsko slanje podataka iz MATLAB-a u Arduino, gdje je x za pozivanje serijskog, a a vrijednost koju je korisnik unio.
fprintf (x, a);
Funkciju while koristimo za stvaranje beskonačne petlje i kad god korisnik unese broj '2' petlja će se prekinuti.
dok idite a = input ('Pritisnite 1 za uključivanje LED diode i 0 za isključivanje:'); fprintf (x, a); if (a == 2) go = false; kraj kraj
Nakon završetka kodiranja skripte uređivača MATLAB kliknite na ' RUN ' da biste pokrenuli svoj program kao što je prikazano na donjoj slici,

MATLAB-u treba nekoliko sekundi za obradu koda i započinjanje serijske komunikacije, pričekajte dok MATLAB u donjem lijevom kutu zaslona softvera ne prikaže poruku "Zauzet", kao što je prikazano na donjoj slici.

Sada ćete vidjeti naredbeni prozor za slanje korisničkog unosa, postavili smo zadanu poruku, 'Pritisnite 1 za uključivanje LED diode i 0 za isključivanje:'

Pošaljite "1" za uključivanje LED diode, "0" za isključivanje LED diode i "2" za prekid rada. Možete postaviti bilo koji broj za bilo koji zadatak, samo trebate samo promijeniti Arduino kôd u skladu s tim. Kompletni Arduino kôd dat je na kraju.

Možete pogledati video u nastavku kako biste razumjeli cjelovit postupak slanja serijskih podataka s MATLAB-a na Arduino pomoću naredbenog prozora.
Serijska komunikacija pomoću MATLAB GUI
Za demonstraciju serijske komunikacije pomoću MATLAB GUI-a, stvorit ćemo dva grafička gumba pomoću MATLAB-a za uključivanje i isključivanje LED-a spojenog na Arduino. Podaci će se serijski slati iz MATLAB-a u Arduino klikom na ove gumbe za uključivanje i isključivanje LED diode. Arduino će sadržavati kod za primanje serijskih podataka od MATLAB-a i upravljanje LED-om prema primljenim serijskim podacima. Arduino kôd ostat će isti kao i prethodni, jedina razlika je u tome što smo prethodno slali serijske podatke '1' i '0' kroz naredbeni prozor MATLAB-a, a sada će se isti podaci slati i kod klinkanja na dva grafička gumba.
Da biste pokrenuli GUI, upišite naredbu ispod u naredbeni prozor
vodič
Otvorit će se skočni prozor, a zatim odaberite novi prazni GUI kao što je prikazano na donjoj slici,

Sada odaberite dvije tipke za UKLJUČIVANJE I ISKLJUČIVANJE LED diode, kao što je prikazano dolje,

Da biste promijenili veličinu ili promijenili oblik gumba, samo kliknite na njega i moći ćete povući kutove gumba. Dvostrukim klikom na gumb možete promijeniti boju, niz i oznaku određenog gumba. Prilagodili smo dva gumba kako je prikazano na donjoj slici.


Tipke možete prilagoditi prema vašem izboru. Sada kada ovo spremite, kod će se generirati u prozoru uređivača MATLAB-a. Uredite ovaj kôd prema zadatku koji želite izvršiti putem vašeg Arduina pomoću MATLAB GUI. Dakle, u nastavku smo uredili MATLAB kod. Možete saznati više o naredbenom prozoru, prozoru uređivača itd. U odjeljku Početak rada s MATLAB tutorialom.
Kompletni MATLAB kôd za uspostavljanje serijske komunikacije između MATLAB-a i Arduina dat je na kraju ovog projekta. Dalje ovdje uključujemo GUI datoteku (.fig) i datoteku koda (.m) za preuzimanje (desni klik na vezu, a zatim odabir "Spremi vezu kao…"), pomoću koje možete prilagoditi gumbe prema svojim zahtjevima. Ispod su neke izmjene koje smo napravili za kontrolu LED diode povezane s Arduinom.
Kopirajte i zalijepite donji kod u redak br. 74 za podešavanje serijskog porta i brzine prijenosa.
očistiti sve; globalni x; x = serijski ('COM18', 'BAUD', 9600); % Provjerite jesu li brzina prijenosa podataka i COM port % isti kao u Arduino IDE fopen (x);

gdje se fopen (x) koristi za otvaranje serijskog porta za serijsku komunikaciju.
Kad se pomaknete prema dolje, vidjet ćete da postoje dvije funkcije stvorene za oba gumba u GUI-u. Sada napišite kôd u obje funkcije prema zadatku koji želite izvršiti na klik.
U funkciji gumba LED-ON kopirajte i zalijepite donji kod neposredno prije kraja funkcije da biste uključili LED. Kao što vidite u donjem kodu, fprintf (x, 1) koristi se za slanje serijskih podataka s MATLAB-a na Arduino serial. Ovdje šaljemo „1” na Arduino serijala, a ako ste provjerili Arduino kod, naći ćete da će Arduino sjaj LED čineći svojih 13 -og PIN HIGH, kada primi „1” na svojoj serijski port.
globalni x; fprintf (x, 1);

U funkciji gumba LED-OFF , kopirajte i zalijepite donji kod neposredno prije kraja funkcije da biste isključili LED. Kao što vidite u donjem kodu, fprintf (x, 0) koristi se za slanje serijskih podataka s MATLAB-a na serijski Arduino. U ovom dijelu, šaljemo „0” na Arduino serijala, a ako ste provjerili Arduino kod, naći ćete da će Arduino isključiti LED čineći svoj 13 -og pin nizak, kad dobije „0” na svojoj serijski port.
globalni x; fprintf (x, 0);

Nakon završetka s MATLAB GUI kodiranjem i postavljanja hardvera prema shemi sklopa, samo kliknite gumb za pokretanje da biste pokrenuli uređeni kod u.m datoteci.

MATLAB-u će trebati nekoliko sekundi da odgovori, nemojte kliktati nijedan GUI gumb dok MATLAB ne pokaže indikator zauzetosti, što možete vidjeti u lijevom donjem kutu zaslona, kao što je prikazano dolje,

Kada je sve spremno, kliknite na tipke LED-ON i LED-OFF da biste uključili i isključili LED. Kad pritisnete LED-ON gumb , 13 -og igla Arduino ide visoko i LED spojen na ovaj PIN počinje užaren, a kada pritisnete tipku LED-OFF , 13 -og igla Arduino ide LOW što čini LED isključiti.
Možete pogledati video u nastavku kako biste razumjeli cjelovit postupak slanja serijskih podataka iz MATLAB-a u Arduino pomoću MATLAB GUI-a.
