Arduino en Matlab: laat ze praten met behulp van seriële communicatie! (3 / 4 stap)

Stap 3: Matlab: laten we temmen het beest!

Ik neem hier aan dat u bekend met de Matlab-milieu, ten minste met de basis bent. Als mijn veronderstelling niet klopt, geen paniek, en neem een kijkje hier: Matlab voor beginners!
Ik zal de aanpak van de Matlab-kant op de volgende manier: Ik zal een enkel script .m bestand maken dat bevat alle functies die we gaan gebruiken. Op deze manier, zodra je de greep krijgt op is elke sectie van het script (MainScript), alles wat je hoeft te doen starten door het schrijven van zijn naam in de werkruimte, en plotseling zul je Arduino en uw PC keurig en gemakkelijk gegevens uit te wisselen! Zorg ervoor dat u alle drie documenten die ik hier heb bijgevoegd binnen dezelfde map die moet worden geselecteerd als de huidige map in het venster van de "Huidige map" in de hoofdweergave van Matlab opslaan! Als algemene regel die u niet vergeten moet dat Matlab heeft gemakkelijk toegang tot de functie die u zijn aanhalend binnen het hoofdscript, anders krijgt u een fout signaal van een functie die niet verklaard!
Wij zullen het script beginnen bij het opslaan van de naam van de seriële poort in de variabele beantwoorden. Zoals ik u eerder verteld, zorg ervoor dat u weet de exacte naam van de Arduino is aangesloten op poort. Met de nieuwe sectie zorgen wij voor de seriële communicatie-initialisatie. We gaan om te schrijven een functie-bestand met de naam setupSerial, die accepteren als input van de kop van de seriële poort, en geeft terug de seriële object arduino en de waarde van de "serialFlag" die ons vertelt dat de seriële-object is gemaakt.
handige tip: als je wat hulp met de syntaxis van de functie of met elke andere Matlab-opdracht nodig, aarzel niet om vragen van Matlab! U hoeft enkel te typen in het opdrachtvenster Matab, "help" gevolgd door het onderwerp dat u meer weten wilt over. Als het onderwerp bestaat, Matlab krijgt u een kort antwoord direct in de opdracht weduwe, anders kunt u de "help"-browser navigeren door te typen "doc" in de werkruimte en klik op invoeren.
Laten we doorgaan! Ik zal eind zal analyseren van de MainScript voordat de rekening houdend met de andere functies.
Het komt het hoofdstuk gewijd aan de grafische weergave van de gegevens: een figuur h is gemaakt, en een systeem van een x- en y-as en een lijn, die zal helpen ons visualiseren van de gegevens die wij van de sensor krijgen., zijn zo goed houden rekening mee dat elke keer dat u een object maken, ongeacht het type wellicht (seriële objecten een figuur, een GUI bezwaar... ecc) u maakt ook een aantal eigenschappen die zijn gekoppeld aan het. U kunt deze eigenschappen gebruiken Belfuncties of voorwaarde for-lussen maken (terwijl,... want, indien ecc). De "if(~exist('h','var'))..."-opdracht maakt meer zin nu?? NO? Luister: we willen om te controleren of de eigenschap var van de object- h gelijk aan nul! Als het het geval dat we moeten maken van het object van de figuur, sinds een 0 in de var -eigenschap, betekent dat de figuur nog niet bestaat!

Nu laten we komen bij de laatste sectie van het script. Hier heb je een paar regels die als de kern van het hele programma fungeren: met de lus "terwijl" gaan we naar Arduino verzenden met de opdracht van de "R", die staat voor "Hey u, lees de temperatuur voor mij en zenden mij het resultaat van uw lezing terug!". U zult merken dat we hebben een nieuwe functie binnen de while lus dat is readTemp, kort, het zorgt voor de bureaucratie die achter de seriële communicatie vanuit het oogpunt van Matlab ligt. Ik zal terugkomen op het toen ik de twee functies van het script zal analyseren. Een stukje informatie ontbreekt: de samplefrequentie, waartegen wij zouden willen krijgen temperatuur lezingen. Het wordt uitgedrukt door de opdracht "pause" aan het einde van de while lus! Als u een temperatuur waarde kiezen elk uur wilt, u moet schrijven pause(3600) (opdracht pause accepteren de parameter in seconden).
OK, nu laten we analyseren de twee functies:
setupSerial: dit maakt het seriële object Arduino aangesloten op de seriële poort beantwoorden. De opdracht om de seriële object te maken is gewoon naam-van-de-object serieel (naam-van-de-port) =. Zo simpel als dat! Merk op dat, als één van de eigenschap van de seriële object, wij stellen (met de opdracht set , gevolgd door de eigenschap waarvan de waarde we willen instellen) de baudrate van 9600 gelijk aan het instellen op de Arduino.

readTemp: aantal dingen moet u nu: Vergeet niet de opdrachten die wij op Arduino gebruikt om te schrijven naar en te lezen uit de seriële buffer, Serial.println en Serial.read? Hier zijn respectievelijk vervangen door fprintf en fscanf . Thats it. De syntaxis is gemakkelijk en u kunt het inchecken van Matlab help browser. fprintf objecten nodig hebt, als het eerste item, de seriële die we naar wilt schrijven, en als het tweede stuk van informatie het karakter wij zou willen verzenden (in ons geval "R", wat betekent dat voor ons "Lees"). fscanf wil het seriële object zo goed, en de indeling die wij willen de gegevens die moeten worden gevisualiseerd, in ons geval een floating point nummer aangegeven met de Zeppelin "%f" (DHT 22 temperatuur waarden worden herleid tot een tiende graad celsius).

Merk op dat het bedrag van de lezingen die zullen worden opgeslagen gelijk aan de waarde van de variabele "buf_len zullen" (de standaardwaarde in het script is 30, het op uw eigen gril veranderen!). Na de 30e lezing, worden nieuwe overschreven tijdens de eerste lezing in de reeks "tcdata", die alle waarden van de temperatuur in een chronologische volgorde bevat opgeslagen.

Gerelateerde Artikelen

Arduino aangedreven door uw SmartPhone (met behulp van seriële) - deel 1 - geluid en trillingen acties

Arduino aangedreven door uw SmartPhone (met behulp van seriële) - deel 1 - geluid en trillingen acties

Welkom bij het eerste deel van deze serie. In deze nemen serie die zullen we proberen zo veel als we kunnen uit je smartphone (android momenteel) aan uw microcontroller met seriële kabel (OTG kabel).In dit deel zullen we uitleggen hoe je kan spelen e
Arduino/Android - BLUETOOTH Home control + APP - met behulp van de HC-06

Arduino/Android - BLUETOOTH Home control + APP - met behulp van de HC-06

Hello wereld! Vandaag maakte ik een Android APP wilt besturen 8 relais met arduino met behulp van de HC-06 Bluetooth-module.De video toont enkel 2, maar ik veranderde de app!U kunt 2 lampjes mee. ik heb de APP en de beschikbare open source voor een k
Seriële Servo Controller w/Arduino - controle tot 12 Servos tegelijk met behulp van de Arduino en een USB-verbinding

Seriële Servo Controller w/Arduino - controle tot 12 Servos tegelijk met behulp van de Arduino en een USB-verbinding

ik ga u laten zien hoe je Arduino gebruik maximaal 12 servo's tegelijk met minimale jitter control.  Met behulp van een eenvoudige seriële interface kunt u de positie van maximaal 12 servo kanalen.  Maximaal 10 momentopname posities kan worden opgesl
Arduino aangedreven 7 seg LED display met behulp van Shift registreert - ik maakte het op TechShop

Arduino aangedreven 7 seg LED display met behulp van Shift registreert - ik maakte het op TechShop

zeven gesegmenteerde displays zijn groot. Ze zijn vrij eenvoudig, niet veel macht, en hebben een heleboel flexibiliteit als het gaat om het weergeven van nummers. Maar afgezien van 14 pinnen net om het te draaien is zo'n pijn. Als slechts er een mani
Arduino "Knipperen praten" met behulp van Charlieplexing

Arduino "Knipperen praten" met behulp van Charlieplexing

Dit project kan worden geclassificeerd als een apparaat van AAC (alternatief en Augmentative communicatie), die worden gebruikt als een communicatiemiddel voor mensen die lijden aan slopende ziekten zoals ALS en dergelijke, die leiden tot volledige v
Met behulp van seriële UART 16 × 2 LCD op arduino

Met behulp van seriële UART 16 × 2 LCD op arduino

Het seriële UART 16 × 2 LCD-scherm kunt u een parallelle gebaseerde LCDvia een één-draads seriële interface. De seriële LCD zorgt voor alle opdrachten van de HD44780 waardoor naadloze integratie met alle micro die via een breed scala van TTL seriële
#9 Arduino en LED 7-segment Displays met behulp van een MAX7219 - deel 1

#9 Arduino en LED 7-segment Displays met behulp van een MAX7219 - deel 1

In feite steeds je Arduino om weer te geven van iets, dat is een eenvoudige, één LED, een LED-matrix of hier een 8-cijferige LED-display kunnen echt bevredigend.De machtige MAX7219 64-LED controller, waarmee wij niet alleen controle een LED 64-LED ma
Met behulp van seriële met Edison

Met behulp van seriële met Edison

Dit is een korte handleiding voor het gebruik van Edison op OS X zonder het gebruik installateurs of terts-verschijnende partij software.Stap 1: Stap 1: Sluit de voeding en de USB-Stap één is de voeding en de USB-kabel aansluiten.Gebruik de ultraperi
TV externe CONTROLEERBAAR COMPUTER MP3 speler met behulp van ARDUINO en PROCESSING

TV externe CONTROLEERBAAR COMPUTER MP3 speler met behulp van ARDUINO en PROCESSING

Hallo iedereen. Hier laat ik mijn project TV externe controleerbaar computer MP3 speler gebruik processing software en arduino board. Dit idee van het project is gebaseerd op het controleren van de computer met behulp van de afstandsbediening van de
Snelheidscontrole van dc motor van laptop met behulp van arduino en het verwerken van

Snelheidscontrole van dc motor van laptop met behulp van arduino en het verwerken van

Hallo iedereenIk ben vignesh raja. ik graag hier delen de toerentalregeling voor dc-motor van de computer met behulp van arduino en processing software. in dit project de processing software uitvoeren van een eenvoudige toepassingsvenster op computer
Beheersing van iRobot maken door met behulp van MSP430fr6989

Beheersing van iRobot maken door met behulp van MSP430fr6989

Dit is onze eerste instructables tutorial bereikt door Mohsine Taarji, Anvesh Loka, Avinash Singh. Ons project is over Controlling iRobot maken met behulp van de MSP430fr6989 Microcontroller. Kortom, iRobot is een opnieuw programmeerbaar apparaat. U
Het wijzigen van de fuse-bits AVR Atmega328p - 8-bit microcontroller met behulp van Arduino

Het wijzigen van de fuse-bits AVR Atmega328p - 8-bit microcontroller met behulp van Arduino

In dit instructable leert u hoe u kunt wijzigen van de fuse-bits van Atmega328p microcontroller. Ik ben met behulp van Arduino mega als programmeur aan programma Atmega328P-PU op breadboard. Het komt met een standaard 1MHz interne gekalibreerd oscill
Programmeren met behulp van de Arduino IDE op uw bord ChipKIT Dp32

Programmeren met behulp van de Arduino IDE op uw bord ChipKIT Dp32

Deze gids toont het instellen van de Arduino IDE, zodat het kan worden gebruikt voor het programmeren van de chipKIT dp32 microcontroller.Stap 1: Downloaden en installeren van de Arduino IDE Deze stap is voor degenen die niet hebben geïnstalleerd de
Slimme telefoon gecontroleerde LED-verlichting met behulp van HC-05 en Arduino UNO

Slimme telefoon gecontroleerde LED-verlichting met behulp van HC-05 en Arduino UNO

Bluetooth Module HC-05 is een van de meest gebruikte stuk van hardware waarmee u kunt snel prototype uw ideeën waarvoor een draadloze controle/connective-element. Dit project is een zeer snelle demonstratie van hoe wij kunnen deze module met een ardu