- Componenten vereist
- Schakelschema
- Bluetooth-communicatie met behulp van MATLAB-opdrachtvenster
- Bluetooth-communicatie met behulp van MATLAB GUI
Bluetooth is het eenvoudigste en meest populaire protocol voor draadloze communicatie over korte afstanden in embedded systemen. Bluetooth wordt niet alleen gebruikt om de gegevens van het ene apparaat naar het andere over te brengen, maar ook om de apparaten draadloos te bedienen. Bijna elke elektronische gadget heeft tegenwoordig Bluetooth-ondersteuning, dus het is verstandig om een Bluetooth-besturingsoptie in uw ingebouwde applicatie te hebben.
Hier in deze tutorial zullen we leren hoe we Bluetooth in MATLAB kunnen gebruiken om draadloos te communiceren. We zullen de ingebouwde Bluetooth van de computer gebruiken met MATLAB aan de ene kant en HC-05 met Arduino aan de andere kant. Er zijn twee manieren om de communicatie tussen MATLAB en Arduino via Bluetooth in te stellen, de ene gebruikt het opdrachtvenster en de andere gebruikt de MATLAB GUI. De Arduino-code voor beide methoden blijft hetzelfde. Als MATLAB nieuw voor je is, is het aan te raden om met MATLAB aan de slag te gaan met een eenvoudig LED-knipperprogramma en de basisterminologie te leren die in MATLAB wordt gebruikt. U kunt meer MATLAB-projecten verder verkennen:
- Seriële communicatie tussen MATLAB en Arduino
- DC-motorbesturing met MATLAB en Arduino
- Stappenmotorbesturing met MATLAB en Arduino
- Aan de slag met beeldverwerking met MATLAB
Componenten vereist
- MATLAB geïnstalleerde laptop (voorkeur: R2016a of hogere versies)
- Arduino UNO
- Bluetooth-module (HC-05)
- LED (elke kleur)
- Weerstand (330 ohm)
- Doorverbindingsdraden
Raadpleeg de volgende artikelen voor meer informatie over HC-05 en zijn interface met Arduino.
- Bluetooth-gestuurde servomotor met Arduino
- Spraakgestuurde LED's met Arduino en Bluetooth
- Mobiele telefoongestuurde AC met Arduino en Bluetooth
Schakelschema
Schema's voor Bluetooth-communicatie tussen MATLAB en Arduino worden hieronder gegeven:
Bluetooth-communicatie met behulp van MATLAB-opdrachtvenster
Dit is de eenvoudige methode om Bluetooth-communicatie tussen Arduino en MATLAB in te stellen. Hier gebruikt de MATLAB de bluetooth van de laptop om HC-05 verbonden met Arduino te verbinden. Eerst moeten we de Arduino coderen om de seriële inkomende gegevens van de MATLAB te lezen (met behulp van Laptop's Bluetooth).
Vervolgens kunnen deze via Bluetooth verzonden gegevens van MATLAB worden gebruikt om alles te besturen dat op de Arduino is aangesloten. Hier hebben we een LED aangesloten op Arduino die kan worden bediend vanaf de LAPTOP met MATLAB.
Ten eerste, het uploaden van de gegeven Arduino code in de Arduino UNO en dan beginnen codering in MATLAB Command Window.
# omvatten
Kopieer en plak vervolgens de onderstaande MATLAB-code in het opdrachtvenster voor Bluetooth-communicatie tussen MATLAB en Arduino.
instrhwinfo ('Bluetooth', 'HC-05'); bt = Bluetooth ('HC-05', 1); fopen (bt);
In de onderstaande code wordt het commando fprintf (bt, '0') gebruikt om de LED UIT te schakelen door '0' naar de Arduino te sturen. Als u nu de LED wilt inschakelen, stuurt u gewoon '1' in plaats van '0' met behulp van het onderstaande commando.
fprintf (bt, '1');
Gebruik de onderstaande opdracht om de informatie over de beschikbare hardware te controleren
instrhwinfo ('type', 'Naam van apparaat');
Om de bluetooth-poort te openen, wordt het onderstaande commando gebruikt
fopen (bt);
Bekijk de onderstaande video om het volledige proces van het verzenden van gegevens van MATLAB naar Arduino via Bluetooth te begrijpen.
Bluetooth-communicatie met behulp van MATLAB GUI
Voor het demonstreren van Bluetooth-communicatie met MATLAB GUI, zullen we drie grafische knoppen in MATLAB maken om de LED die op de Arduino is aangesloten in te schakelen, uit te schakelen en te laten knipperen. De gegevens worden via bluetooth van MATLAB naar HC-05 verzonden door op die grafische knoppen te klikken. Arduino bevat de code om de via Bluetooth verzonden gegevens van MATLAB naar HC-05 te ontvangen en de LED te besturen op basis van de ontvangen gegevens. Arduino-code blijft hetzelfde als de vorige, het enige verschil is dat we voorheen gegevens '1' en '0' stuurden via het opdrachtvenster van MATLAB, en nu zullen dezelfde gegevens worden verzonden door op drie grafische knoppen te klikken.
Om de GUI te starten, typt u de onderstaande opdracht in het opdrachtvenster
gids
Er wordt een pop-upvenster geopend en selecteer vervolgens een nieuwe lege GUI zoals weergegeven in de onderstaande afbeelding,
Kies nu drie drukknoppen om de LED AAN, UIT te zetten en te laten knipperen, zoals hieronder weergegeven,
Om het formaat van de drukknoppen te wijzigen of om de vorm van de drukknoppen te wijzigen, klikt u erop en kunt u de hoeken van de knop slepen. Door op de knop te dubbelklikken kunt u de kleur, string en tag van die specifieke knop wijzigen. We hebben drie drukknoppen op maat gemaakt, zoals weergegeven in onderstaande afbeelding.
U kunt de knoppen naar eigen keuze aanpassen. Wanneer u dit nu opslaat, wordt er een code gegenereerd in het editorvenster van MATLAB. Bewerk deze code volgens de taak die u door uw Arduino wilt uitvoeren bij het ontvangen van Bluetooth-gegevens met behulp van de MATLAB GUI. Dus hieronder hebben we de MATLAB-code bewerkt. U kunt meer leren over het opdrachtvenster, het editorvenster, enz. In Aan de slag met MATLAB-zelfstudie.
De volledige MATLAB-code, voor het aansturen van LED vanuit MATLAB via Bluetooth, wordt aan het einde van dit project gegeven. Verder voegen we hier het GUI-bestand (.fig) en het codebestand (.m) toe om te downloaden, waarmee u de knoppen naar wens kunt aanpassen. Hieronder staan enkele aanpassingen die we hebben gedaan voor het besturen van de LED die is verbonden met Arduino.
Kopieer en plak de onderstaande code op regel nr. 74 om de MATLAB in te stellen of te verbinden met de Bluetooth van de laptop.
wis alles; globale bt; instrhwinfo ('Bluetooth', 'HC-05'); bt = Bluetooth ('HC-05', 1); fopen (bt);
waar fopen (bt) wordt gebruikt om de Bluetooth-poort te openen voor het verzenden van gegevens.
Als u nu naar beneden scrolt, ziet u dat er drie functies zijn gemaakt voor drie drukknoppen in de GUI. Schrijf nu de code in de functies volgens de taak die u met een klik wilt uitvoeren.
In LED ON functie knop, kopieer en plak de onderstaande code net voor het einde van de functie die de LED ON te zetten. In onderstaande code wordt fprintf (bt, '1') gebruikt voor het verzenden van '1' van MATLAB naar HC-05 met behulp van Bluetooth van laptop. Arduino zal deze data '1' ontvangen via HC-05 en gloed de LED door het maken van haar 11 ste Pin High.
globale bt; fprintf (bt, '1');
In LED OFF functie knop, kopieer en plak de onderstaande code net voor het einde van de functie die de LED uit te schakelen. In onderstaande code wordt fprintf (bt, '0') gebruikt voor het verzenden van '0' van MATLAB naar HC-05 met behulp van Bluetooth van een laptop. Arduino krijgt '0' via HC-05 en zet de LED door het maken van haar 11 ste pin LOW.
globale bt; fprintf (bt, '0');
In BLINK functieknop's, gebruik dan de onderstaande code om de LED knipperen. Een for- lus wordt gebruikt om de LED 10 keer te laten knipperen.
globale bt; voor i = 1:10 fprintf (bt, '1'); pauze (0,5); fprintf (bt, '0'); pauze (0,5); einde
Nadat u de MATLAB GUI-codering hebt voltooid en de hardware hebt ingesteld volgens het schakelschema, klikt u op de knop Uitvoeren om de bewerkte code in.m-bestand uit te voeren.
Het kan enkele seconden duren voordat MATLAB reageert, klik niet op een GUI-knop totdat MATLAB de indicatie BUSY toont, die u in de linker benedenhoek van het scherm kunt zien, zoals hieronder weergegeven,
Als alles klaar is, klikt u op LED-AAN, LED UIT en KNIPPERLICHT om respectievelijk de LED AAN, UIT en Knipperend in te schakelen. Alle codebestanden voor dit project kunnen vanaf hier worden gedownload of u kunt de onderstaande code gebruiken.
Bekijk de onderstaande video om het volledige proces te begrijpen van het verzenden van gegevens van MATLAB naar Arduino via Bluetooth met behulp van MATLAB GUI.