- Components necessaris
- Esquema de connexions
- Comunicació Bluetooth mitjançant la finestra d’ordres de MATLAB
- Comunicació Bluetooth mitjançant MATLAB GUI
El Bluetooth és el protocol més senzill i popular per a la comunicació sense fils de curt abast en sistemes incrustats. El Bluetooth no només s’utilitza per transferir les dades d’un dispositiu a un altre, sinó que també s’utilitza per controlar els dispositius sense fils. Actualment, gairebé tots els aparells electrònics tenen compatibilitat amb Bluetooth, de manera que és aconsellable tenir l'opció de control de Bluetooth a l'aplicació incrustada.
Aquí, en aquest tutorial, aprendrem a utilitzar Bluetooth a MATLAB per comunicar-nos sense fils. Utilitzarem el Bluetooth integrat de l’ordinador amb MATLAB a un costat i HC-05 amb Arduino a l’altre costat. Hi ha dues maneres de configurar la comunicació entre MATLAB i Arduino mitjançant Bluetooth, una utilitza la finestra d’ordres i l’altra utilitza MATLAB GUI. El codi Arduino per als dos mètodes seguirà sent el mateix. Si no coneixeu MATLAB, es recomana començar amb un senzill programa de parpelleig LED amb MATLAB i aprendre la terminologia bàsica utilitzada a MATLAB. Podeu explorar més projectes MATLAB:
- Comunicació en sèrie entre MATLAB i Arduino
- Control del motor de corrent continu mitjançant MATLAB i Arduino
- Control del pas a pas mitjançant MATLAB i Arduino
- Introducció al processament d’imatges mitjançant MATLAB
Components necessaris
- Portàtil instal·lat per MATLAB (preferència: R2016a o versions superiors)
- Arduino UNO
- Mòdul Bluetooth (HC-05)
- LED (qualsevol color)
- Resistència (330 ohm)
- Jumper Wires
Per obtenir més informació sobre HC-05 i la seva interfície amb Arduino, consulteu els articles següents.
- Servomotor controlat per Bluetooth mitjançant Arduino
- LED controlats per veu mitjançant Arduino i Bluetooth
- CA controlada per telèfon mòbil mitjançant Arduino i Bluetooth
Esquema de connexions
A continuació es mostren els esquemes per a la comunicació Bluetooth entre MATLAB i Arduino :

Comunicació Bluetooth mitjançant la finestra d’ordres de MATLAB
Aquest és el mètode senzill per configurar la comunicació Bluetooth entre Arduino i MATLAB. Aquí, el MATLAB utilitza el bluetooth del portàtil per connectar HC-05 connectat amb Arduino. Primer hem de codificar l'Arduino per llegir les dades d'entrada que provenen del MATLAB (mitjançant el Bluetooth de l'ordinador portàtil).
A continuació, aquestes dades transmeses per Bluetooth des de MATLAB es poden utilitzar per controlar qualsevol cosa connectada a l'Arduino. Aquí hem connectat un LED a Arduino que es pot controlar des del PORTÀTIL mitjançant MATLAB.
Primer, carregueu el codi Arduino donat a Arduino UNO i després comenceu a codificar a la finestra d’ordres de MATLAB.
#incloure
A continuació, copieu i enganxeu el següent codi MATLAB a la finestra d'ordres per a la comunicació Bluetooth entre MATLAB i Arduino.
instrhwinfo ('Bluetooth', 'HC-05'); bt = Bluetooth ("HC-05", 1); fopen (bt);

Al codi següent, es fa servir l' ordre fprintf (bt, '0') per apagar el LED enviant '0' a l'Arduino. Ara, si voleu engegar el LED, només cal que envieu '1' en lloc de '0' mitjançant l'ordre següent.
fprintf (bt, '1');

Per comprovar la informació sobre el maquinari disponible, utilitzeu l'ordre següent
instrhwinfo ("tipus", "Nom del dispositiu");
Per obrir el port Bluetooth, a continuació, utilitzeu l'ordre
fopen (bt);
Consulteu el vídeo següent per entendre el procés complet d’ enviament de dades des de MATLAB a Arduino mitjançant Bluetooth.
Comunicació Bluetooth mitjançant MATLAB GUI
Per demostrar la comunicació Bluetooth mitjançant MATLAB GUI, crearem tres botons gràfics a MATLAB per encendre, apagar i parpellejar el LED connectat a l'Arduino. Les dades s’enviaran mitjançant bluetooth des de MATLAB a HC-05 fent clic sobre aquests botons gràfics. Arduino conté el codi per rebre les dades transmeses per Bluetooth de MATLAB a HC-05 i controlar el LED segons les dades rebudes. El codi Arduino seguirà sent el mateix que l'anterior, l'única diferència és que, anteriorment, enviavem dades '1' i '0' a través de la finestra d'ordres de MATLAB, i ara s'enviaran les mateixes dades fent clic a tres botons gràfics.
Per iniciar la GUI, escriviu l'ordre següent a la finestra d'ordres
guia
S'obrirà una finestra emergent i, a continuació, seleccioneu una nova interfície gràfica en blanc com es mostra a la imatge següent.

Ara trieu tres polsadors per encendre, apagar i parpellejar el LED, tal com es mostra a continuació,

Per canviar la mida o canviar la forma dels botons, només cal que hi feu clic i podreu arrossegar les cantonades del botó. Fent doble clic al botó, podeu canviar el color, la cadena i l’etiqueta d’aquest botó en particular. Hem personalitzat tres polsadors com es mostra a la imatge següent.


Podeu personalitzar els botons segons la vostra elecció. Ara, quan el deseu, es generarà un codi a la finestra Editor de MATLAB. Editeu aquest codi segons la tasca que vulgueu fer amb el vostre Arduino en rebre dades Bluetooth mitjançant la GUI MATLAB. Per tant, a continuació hem editat el codi MATLAB. Podeu obtenir més informació sobre la finestra d'ordres, la finestra de l'editor, etc. a Introducció al tutorial MATLAB.
Al final d’aquest projecte, es dóna un codi complet MATLAB, per controlar el LED des de MATLAB mitjançant Bluetooth. A més, incloem el fitxer GUI (.fig) i el fitxer de codi (.m) aquí per descarregar, amb el qual podeu personalitzar els botons segons el vostre requisit. A continuació es mostren alguns ajustaments que vam fer per controlar el LED connectat amb Arduino.
Copieu i enganxeu el codi següent a la línia núm. 74 per configurar o connectar el MATLAB al Bluetooth del portàtil.
esborra-ho tot; BT global; instrhwinfo ('Bluetooth', 'HC-05'); bt = Bluetooth ("HC-05", 1); fopen (bt);

on, fopen (bt) s’utilitza per obrir el port Bluetooth per transmetre dades.
Ara, quan desplaceu-vos cap avall, veureu que hi ha tres funcions creades per a tres botons de la GUI. Ara escriviu el codi a les funcions segons la tasca que vulgueu fer en fer clic.
A la funció del botó LED ON , copieu i enganxeu el codi següent just abans de finalitzar la funció per encendre el LED. Al codi següent, fprintf (bt, '1') s'utilitza per enviar '1' des de MATLAB a HC-05 mitjançant el Bluetooth del portàtil. Arduino rebrà aquestes dades '1' a través de l'HC-05 i encendrà el LED fent que el seu onzè pin sigui HIGH.
BT global; fprintf (bt, '1');

A la funció del botó LED OFF , copieu i enganxeu el codi següent just abans de finalitzar la funció per apagar el LED. Al codi següent, fprintf (bt, '0') s'utilitza per enviar '0' des de MATLAB a HC-05 mitjançant el Bluetooth del portàtil. Arduino rebrà el '0' a través de l'HC-05 i apagarà el LED fent que el seu onzè pin sigui BAIX.
BT global; fprintf (bt, '0');

A la funció del botó BLINK , utilitzeu el codi següent per parpellejar el LED. Es fa servir un bucle for per parpellejar el LED 10 vegades.
BT global; per a i = 1:10 fprintf (bt, '1'); pausa (0,5); fprintf (bt, '0'); pausa (0,5); final

Després de completar amb la codificació GUI MATLAB i configurar el maquinari segons el diagrama de circuits, només cal que feu clic al botó d'execució per executar el codi editat al fitxer.m.

MATLAB pot trigar uns quants segons a respondre, no feu clic a cap botó GUI fins que MATLAB mostri la indicació BUSY, que podeu veure a l'extrem inferior esquerre de la pantalla, tal com es mostra a continuació.

Quan tot estigui a punt, feu clic al botó LED-ON, LED OFF i BLINK per activar, apagar i parpellejar el LED respectivament. Tots els fitxers de codi d’aquest projecte es poden descarregar des d’aquí o podeu utilitzar el codi que es mostra a continuació.
Consulteu el vídeo següent per entendre el procés complet d’ enviament de dades des de MATLAB a Arduino mitjançant Bluetooth mitjançant MATLAB GUI.
