- Nepieciešamās sastāvdaļas
- Ķēdes shēma
- Sērijas komunikācija, izmantojot MATLAB komandu logu
- Seriālā komunikācija, izmantojot MATLAB GUI
MATLAB ir daudzpusīga programmatūra, kuru var izmantot visdažādākajām lietojumprogrammām. Iepriekšējās MATLAB apmācībās mēs esam paskaidrojuši, kā izmantot MATLAB, lai kontrolētu līdzstrāvas motoru, servomotoru un sadzīves tehniku. Šajā apmācībā mēs uzzināsim, kā izmantot MATLAB seriālajai saziņai. Lai saņemtu sērijveida sakarus, mēs šeit izmantojam Arduino.
Ir divi veidi, kā iestatīt sērijveida saziņu starp MATLAB un Arduino. Viens izmanto komandu logu, bet otrs MATLAB GUI. Arduino kods abām metodēm paliks nemainīgs. Ja esat jauns MATLAB lietotājs, ieteicams sākt ar vienkāršu LED mirgošanas programmu ar MATLAB un apgūt MATLAB lietoto pamatterminoloģiju.
Nepieciešamās sastāvdaļas
- MATLAB instalēts klēpjdators (priekšroka: R2016a vai jaunākas versijas)
- Arduino UNO
- LED (jebkura krāsa)
- Rezistors (330 omi)
Ķēdes shēma
Iepriekš minētā shēma paliks nemainīga abos veidos, kā izveidot sērijas sakarus starp MATLAB un Arduino.
Sērijas komunikācija, izmantojot MATLAB komandu logu
Šī ir vienkārša metode, kā iestatīt sērijveida saziņu starp Arduino un MATLAB. Šeit mēs vienkārši nosūtīsim datus no MATLAB uz Arduino sērijveidā, izmantojot komandu logu, un pēc tam Arduino nolasīs ienākošos sērijas datus. Tad šos sērijveidā pārsūtītos datus var izmantot, lai kontrolētu jebko, kas saistīts ar Arduino. Šeit mēs esam savienojuši LED ar Arduino, kas tiks ieslēgts un izslēgts atbilstoši Arduino sērijveidā saņemtajiem datiem.
Vispirms augšupielādējiet norādīto Arduino kodu Arduino UNO un pēc tam sāciet kodēšanu MATLAB redaktora logā. Lai atvērtu jaunu redaktora skriptu, noklikšķiniet uz ' Jauns skripts', kā parādīts zemāk esošajā attēlā:
Pēc tam kopējiet un ielīmējiet zemāk redzamo pilnīgo MATLAB kodu redaktora logā, lai veiktu sērijveida saziņu starp MATLAB un Arduino.
% MATLAB kods sērijveida saziņai starp Arduino un MATLAB x = sērijveida ('COM18', 'BAUD', 9600); fopen (x); iet = patiess; kamēr iet a = ievade ('Nospiediet 1, lai ieslēgtu LED un 0, lai izslēgtu:'); fprintf (x, a); if (a == 2) go = false; beigu beigas
Norādītajā kodā zemāk esošo komandu izmanto, lai definētu sērijveida saziņu MATLAB. Pārliecinieties, ka com porta numurs ir porta numurs, uz kuru ir pievienots Arduino, un datu pārraides ātrumam jābūt vienādam gan Arduino, gan MATLAB kodos.
x = sērijveida ('COM18', 'BAUD', 9600);
Lai atvērtu seriālo portu, izmantojiet zemāk esošo komandu, fopen (x);
Zemāk esošo komandu izmanto, lai datus no MATLAB nosūtītu uz Arduino sērijveidā, kur x ir paredzēts sērijas izsaukšanai un a ir lietotāja ievadītā vērtība.
fprintf (x, a);
Mums ir izmantot , bet funkcija, lai izveidotu bezgalīgu cilpu, un katru reizi, kad lietotājs ievadi skaitli "2", cilpa būs pārtraukums.
kamēr iet a = ievade ('Nospiediet 1, lai ieslēgtu LED un 0, lai izslēgtu:'); fprintf (x, a); if (a == 2) go = false; beigu beigas
Pēc MATLAB redaktora skripta kodēšanas pabeigšanas noklikšķiniet uz ' RUN ', lai palaistu programmu, kā parādīts zemāk esošajā attēlā,
MATLAB aizņem dažas sekundes koda apstrādei un sērijveida sakaru sākšanai, pagaidiet, līdz MATLAB programmatūras ekrāna apakšējā kreisajā stūrī parāda ziņojumu “BUSY”, kā parādīts zemāk esošajā attēlā.
Tagad jūs redzēsiet komandu logu lietotāja ievades nosūtīšanai, mēs esam iestatījuši noklusējuma ziņojumu, "Nospiediet 1, lai ieslēgtu LED, un 0, lai izslēgtu:"
Nosūtiet “1”, lai ieslēgtu LED, “0”, lai izslēgtu LED, un “2”, lai pārtrauktu darbību. Jebkuram uzdevumam varat iestatīt jebkuru numuru, viss, kas jums jādara, ir tikai attiecīgi jāmaina Arduino kods. Pilnīgs Arduino kods ir norādīts beigās.
Jūs varat apskatīt zemāk redzamo videoklipu, lai saprastu pilnīgu sērijveida datu sūtīšanas procesu no MATLAB uz Arduino, izmantojot komandu logu.
Seriālā komunikācija, izmantojot MATLAB GUI
Seriālās komunikācijas demonstrēšanai, izmantojot MATLAB GUI, mēs izveidosim divas grafiskās pogas, izmantojot MATLAB, lai ieslēgtu un izslēgtu Arduino pievienoto LED. Dati tiks sērijveidā nosūtīti no MATLAB uz Arduino, noklikšķinot uz šīm pogām, lai ieslēgtu un izslēgtu LED. Arduino satur kodu sērijas datu saņemšanai no MATLAB un LED vadībai atbilstoši saņemtajiem sērijas datiem. Arduino kods paliks tāds pats kā iepriekšējais, atšķirība ir tikai tā, ka iepriekš mēs caur MATLAB komandu logu sūtījām sērijas datus “1” un “0”, un tagad tie paši dati tiks nosūtīti, noklikšķinot uz divām grafiskām pogām.
Lai palaistu GUI, komandu logā ierakstiet zemāk esošo komandu
vadīt
Tiks atvērts uznirstošais logs, pēc tam atlasiet jaunu tukšu GUI, kā parādīts zemāk esošajā attēlā,
Tagad izvēlieties divas pogas LED ieslēgšanai un izslēgšanai, kā parādīts zemāk,
Lai mainītu izmēru vai mainītu pogu formu, vienkārši noklikšķiniet uz tā, un jūs varēsiet vilkt pogas stūrus. Veicot dubultklikšķi uz spiedpogas, jūs varat mainīt konkrētās pogas krāsu, virkni un tagu. Mēs esam pielāgojuši divas pogas, kā parādīts zemāk esošajā attēlā.
Pogas varat pielāgot pēc savas izvēles. Tagad, kad to saglabājat, kods tiks ģenerēts MATLAB redaktora logā . Rediģējiet šo kodu atbilstoši uzdevumam, kuru vēlaties veikt savā Arduino, izmantojot MATLAB GUI. Tātad zemāk mēs esam rediģējuši MATLAB kodu. Jūs varat uzzināt vairāk par komandu logu, redaktora logu utt. Darba sākšana ar MATLAB apmācību.
Pilnīgs MATLAB kods, lai izveidotu sērijveida komunikāciju starp MATLAB un Arduino, ir dots šī projekta beigās. Tālāk mēs lejupielādei pievienojam GUI failu (.fig) un koda failu (.m) (ar peles labo pogu noklikšķiniet uz saites, pēc tam atlasiet Saglabāt saiti kā…), izmantojot kuru jūs varat pielāgot pogas atbilstoši savām prasībām. Zemāk ir daži uzlabojumi, kurus mēs izdarījām, lai kontrolētu LED, kas savienots ar Arduino.
Nokopējiet un ielīmējiet zemāk esošo kodu rindā Nr. 74, lai iestatītu sērijas portu un datu pārraides ātrumu.
nodzēst visu; globālais x; x = sērijveida ('COM18', 'BAUD', 9600); % Pārliecinieties, ka datu pārraides ātrums un COM ports ir % tāds pats kā Arduino IDE fopen (x);
kur, fopen (x) izmanto, lai atvērtu seriālo portu seriālai saziņai.
Ritinot uz leju, jūs redzēsiet, ka GUI abām pogām ir izveidotas divas funkcijas. Tagad ierakstiet kodu abās funkcijās atbilstoši uzdevumam, kuru vēlaties veikt ar klikšķi.
Ar LED-on poga funkcijai, nokopējiet un ielīmējiet tālāk kodu tieši pirms beigām funkciju, lai ieslēgtu LED. Kā redzat zemāk esošajā kodā, fprintf (x, 1) tiek izmantots, lai nosūtītu sērijas datus no MATLAB uz Arduino sēriju. Šeit mēs nosūtām "1" uz Arduino sērijas, un, ja jūs pārbaudīt Arduino kodu, jūs atradīsiet, ka Arduino iedegsies LED, padarot tās 13 th pin augsts, ja tas saņem "1" savā seriālo portu.
globālais x; fprintf (x, 1);
Ar LED-off poga funkcijai, nokopējiet un ielīmējiet tālāk kodu tieši pirms beigām funkciju, lai izslēgtu LED. Kā redzat zemāk esošajā kodā, fprintf (x, 0) tiek izmantots sērijveida datu sūtīšanai no MATLAB uz Arduino serial. Šajā daļā mēs sūtīšanu '0', lai Arduino sērijas, un, ja jūs pārbaudīt Arduino kodu, jūs atradīsiet, ka Arduino izslēgsies LED, padarot savu 13 th pin zems, ja tas saņem "0", tās seriālo portu.
globālais x; fprintf (x, 0);
Pēc MATLAB GUI kodēšanas pabeigšanas un aparatūras iestatīšanas atbilstoši ķēdes shēmai vienkārši noklikšķiniet uz palaist pogas, lai palaistu rediģēto kodu.m failā.
MATLAB var paiet dažas sekundes, lai atbildētu, neklikšķiniet uz nevienas GUI pogas, kamēr MATLAB neparādās indikācija BUSY, kuru varat redzēt ekrāna kreisajā apakšējā stūrī, kā parādīts zemāk,
Kad viss ir gatavs, noklikšķiniet uz LED-ON un LED-OFF pogas, lai ieslēgtu un izslēgtu LED. Kad jūs nospiediet LED-ON poga , 13 th pin no Arduino iet augsts un LED saistīta ar šo PIN sākas mirdzoša, un, kad jūs nospiežat LED-OFF poga , 13 th pin no Arduino iet zemu, kas padara LED izslēgt.
Jūs varat apskatīt zemāk esošo videoklipu, lai saprastu pilnīgu sērijveida datu sūtīšanas procesu no MATLAB uz Arduino, izmantojot MATLAB GUI.