- Komponenter krävs
- Kretsschema
- Bluetooth-kommunikation med MATLAB-kommandofönster
- Bluetooth-kommunikation med MATLAB GUI
Bluetooth är det enklaste och mest populära protokollet för trådlös kommunikation med kort räckvidd i inbyggda system. Bluetooth används inte bara för att överföra data från en enhet till en annan utan också för att styra enheterna trådlöst. Nästan alla elektroniska apparater har Bluetooth-stöd nu dagar så det är klokt att ha Bluetooth-kontrollalternativ i din inbäddade applikation.
Här i den här handledningen lär vi oss hur man använder Bluetooth i MATLAB för att kommunicera trådlöst. Vi använder datorns inbyggda Bluetooth med MATLAB på ena sidan och HC-05 med Arduino på andra sidan. Det finns två sätt att konfigurera kommunikation mellan MATLAB och Arduino via Bluetooth, det ena använder kommandofönstret och det andra använder MATLAB GUI. Arduino-koden för båda metoderna förblir densamma. Om du är ny på MATLAB rekommenderas det att komma igång med ett enkelt LED-blinkningsprogram med MATLAB och lära dig den grundläggande terminologi som används i MATLAB. Du kan vidare utforska fler MATLAB-projekt:
- Seriekommunikation mellan MATLAB och Arduino
- DC-motorstyrning med MATLAB och Arduino
- Stegmotorstyrning med MATLAB och Arduino
- Komma igång med bildbehandling med MATLAB
Komponenter krävs
- MATLAB installerad bärbar dator (preferens: R2016a eller högre versioner)
- Arduino UNO
- Bluetooth-modul (HC-05)
- LED (vilken färg som helst)
- Motstånd (330 ohm)
- Bygeltrådar
För att lära dig mer om HC-05 och dess gränssnitt med Arduino, se följande artiklar.
- Bluetooth-styrd servomotor med Arduino
- Röststyrda lysdioder med Arduino och Bluetooth
- Mobiltelefonstyrd växelström med Arduino och Bluetooth
Kretsschema
Scheman för Bluetooth-kommunikation mellan MATLAB och Arduino ges nedan:
Bluetooth-kommunikation med MATLAB-kommandofönster
Detta är den enkla metoden för att ställa in Bluetooth-kommunikation mellan Arduino och MATLAB. Här använder MATLAB den bärbara datorns Bluetooth för att ansluta HC-05 ansluten till Arduino. Först måste vi koda Arduino för att läsa de seriella inkommande data som kommer från MATLAB (med hjälp av Laptop Bluetooth).
Sedan kan denna Bluetooth-överförda data från MATLAB användas för att styra allt som är anslutet till Arduino. Här har vi anslutit en LED till Arduino som kan styras från LAPTOP med MATLAB.
Ladda först upp den givna Arduino-koden i Arduino UNO och börja sedan koda i MATLAB-kommandofönstret.
#omfatta
Kopiera sedan och klistra in MATLAB-koden nedan i kommandofönstret för Bluetooth-kommunikation mellan MATLAB och Arduino.
instrhwinfo ('Bluetooth', 'HC-05'); bt = Bluetooth ('HC-05', 1); fopen (bt);
I nedanstående kod används kommando fprintf (bt, '0') för att stänga av LED-lampan genom att skicka '0' till Arduino. Nu, om du vill sätta på lysdioden, skicka bara '1' istället för '0' med kommandot nedan.
fprintf (bt, '1');
Använd kommandot nedan för att kontrollera informationen om tillgänglig hårdvara
instrhwinfo ('type', 'Device name');
För att öppna Bluetooth-porten, under kommandot används
fopen (bt);
Kontrollera videon nedan för att förstå hela processen för att skicka data från MATLAB till Arduino med Bluetooth.
Bluetooth-kommunikation med MATLAB GUI
För att demonstrera Bluetooth-kommunikation med MATLAB GUI skapar vi tre grafiska knappar i MATLAB för att slå på, stänga av och blinka LED-lampan som är ansluten till Arduino. Data kommer att skickas via Bluetooth från MATLAB till HC-05 när du klickar på de grafiska knapparna. Arduino innehåller koden för att ta emot Bluetooth-överförda data från MATLAB till HC-05 och styra lysdioden enligt mottagna data. Arduino-koden kommer att förbli densamma som den tidigare, enda skillnad är att vi tidigare skickade data '1' och '0' genom MATLABs kommandofönster, och nu skickas samma data genom att klicka på tre grafiska knappar.
För att starta GUI, skriv kommandot nedan i kommandofönstret
guide
Ett popup-fönster öppnas och välj sedan nytt tomt GUI som visas i bilden nedan.
Nu väljer tre tryckknappar för att slå på, av och Blink LED, som visas nedan,
För att ändra storlek eller ändra formen på tryckknapparna, klicka bara på den så kommer du att kunna dra hörnen på knappen. Genom att dubbelklicka på tryckknappen kan du ändra färg, sträng och tagg för just den knappen. Vi har anpassat tre tryckknappar enligt bilden nedan.
Du kan anpassa knapparna enligt ditt val. Nu när du sparar detta kommer en kod att genereras i Editor-fönstret på MATLAB. Redigera den här koden enligt den uppgift du vill utföra av din Arduino när du tar emot Bluetooth-data med hjälp av MATLAB GUI. Så nedan har vi redigerat MATLAB-koden. Du kan lära dig mer om kommandofönster, redigeringsfönster etc i Komma igång med MATLAB-handledning.
Komplett MATLAB-kod för styrning av LED från MATLAB via Bluetooth ges i slutet av detta projekt. Vidare inkluderar vi GUI-filen (.fig) och kodfilen (.m) här för nedladdning, med vilken du kan anpassa knapparna enligt dina behov. Nedan följer några justeringar vi gjorde för att styra lysdioden ansluten till Arduino.
Kopiera och klistra in koden nedan på rad nr. 74 för att ställa in eller ansluta MATLAB till den bärbara datorns Bluetooth.
Rensa alla; global bt; instrhwinfo ('Bluetooth', 'HC-05'); bt = Bluetooth ('HC-05', 1); fopen (bt);
där, fopen (bt) används för att öppna Bluetooth-porten för överföring av data.
När du bläddrar ner ser du att det finns tre funktioner skapade för tre tryckknappar i GUI. Skriv nu koden i funktionerna enligt den uppgift du vill utföra med klick.
I funktionen LED PÅ- knappen kopierar och klistrar du in koden nedan strax före slutet av funktionen för att sätta PÅ lysdioden. I nedanstående kod används fprintf (bt, '1') för att skicka '1' från MATLAB till HC-05 via bärbar Bluetooth. Arduino kommer att ta emot dessa data '1' genom HC-05 och lysa lysdioden genom att göra sin 11: e stift HÖG.
global bt; fprintf (bt, '1');
I LED OFF- knappens funktion kopierar och klistrar du in koden nedan strax före slutet av funktionen för att stänga av LED-lampan. I nedanstående kod används fprintf (bt, '0') för att skicka '0' från MATLAB till HC-05 med bärbar Bluetooth. Arduino får '0' genom HC-05 och stänger av lysdioden genom att göra sin 11: e stift LÅG.
global bt; fprintf (bt, '0');
I BLINK- knappens funktion använder du koden nedan för att blinka lysdioden. En för loop används för att blinka lysdioden 10 gånger.
global bt; för i = 1:10 fprintf (bt, '1'); paus (0,5); fprintf (bt, '0'); paus (0,5); slutet
Efter att ha slutfört med MATLAB GUI-kodning och konfigurerat hårdvaran enligt kretsschemat, klicka bara på kör-knappen för att köra den redigerade koden i.m-filen.
MATLAB kan ta några sekunder att svara, klicka inte på någon GUI-knapp förrän MATLAB visar BUSY-indikering, vilket du kan se längst ned till vänster på skärmen som visas nedan,
När allt är klart klickar du på LED-ON, LED OFF och BLINK-knappen för att slå på ON, OFF och blinka LED-lampan. Alla kodfiler för detta projekt kan laddas ner härifrån eller så kan du använda koden nedan.
Kontrollera videon nedan för att förstå den fullständiga processen för att skicka data från MATLAB till Arduino via Bluetooth med hjälp av MATLAB GUI.