Arduino och Matlab: Låt dem prata med seriell kommunikation! (3 / 4 steg)

Steg 3: Matlab: Låt oss tämja odjuret!

Här antar jag att du är bekant med Matlab miljön, åtminstone med grunden. Om mitt antagande är fel, inte panik, och ta en titt här: Matlab för nybörjare!
Jag ska ta itu med Matlab sida på följande sätt: Jag kommer att skapa en enda .m skriptfil som kommer att innehålla alla funktioner vi kommer att använda. På detta sätt, när du får grepp på är varje avsnitt av skriptet (MainScript), allt du behöver göra starta den genom att skriva sitt namn i arbetsytan, och plötsligt har du Arduino och din dator utbyta data fint och enkelt! Se till att du sparar alla tre dokument jag har bifogat här inne i samma mapp som skall väljas som den aktuella mappen i fönstret "Nuvarande mapp" i huvudvyn för Matlab! Som regel måste du komma ihåg att Matlab har tillgång enkelt funktionen du citerar inuti huvudsakliga skriptet, annars får du ett fel signal på en funktion som inte deklareras!
Skriptet startar vi med att spara serieport namnet i den variabla comPort. Som jag sa innan, se till att du vet det exakta namnet på den port Arduino är ansluten till. Med det nya avsnittet hand vi tar om seriell kommunikation initieringen. Vi kommer att skriva en funktion fil med namnet setupSerial, som accepterar som indata rubriken seriell port, och ger tillbaka seriella objekt arduino och värdet "serialFlag" som berättar att det seriella objektet har skapats.
nyttig spets: om du behöver lite hjälp med funktionen syntax eller med något annat kommando för Matlab, tveka inte att be Matlab! Du behöver bara skriva in i kommandofönstret Gerda, "hjälp" följt av det ämne du vill veta mer om. Om ämnet finns, Matlab ger dig ett kort svar direkt i kommandot änka, annars kan du navigera "hjälp webbläsaren" genom att skriva "doc" i arbetsytan och klicka på Ange.
Låt oss gå vidare! Jag kommer slutar analysera MainScript innan du tar i beaktande de andra funktionerna.
När det gäller avsnittet ägnas åt grafisk visualisering av data: en siffra h skapas, och ett system med en x- och y-axeln och en linje, som kommer att hjälpa oss att visualisera data vi får från sensor., skapas också hålla i minnet att varje gång du skapar ett objekt, oavsett dess typ kan vara (seriella objekt en figur, en GUI objekt... ecc) du skapar också ett antal egenskaper som är associerade till den. Du kan använda dessa egenskaper att anropa funktioner eller skapa villkor för loopar (medan, för om... ecc). Kommandot "... if(~exist('h','var'))" mer meningsfullt nu?? Nej? Lyssna: vi vill kontrollera om egenskapen var av objektet h är lika med noll! om det är så vi måste skapa objektet figur, sedan 0 i egenskapen var , betyder att siffran inte finns ännu!

Nu låt oss kommer till den sista delen av skriptet. Här har du några rader som fungerar som kärnan i hela programmet: med "medan" loop vi ska skicka till Arduino kommandot "R", som står för "Hej du, läsa temperaturen för mig och skicka mig tillbaka resultatet av din läsning!". Du kommer att märka att vi har en ny funktion inuti while loop som är readTemp, kort, det kommer att ta hand om den byråkrati som ligger bakom den seriell kommunikationen från Matlab synvinkel. Jag kommer att återkomma till det när jag ska analysera de två funktionerna i skriptet. En bit av information saknas: samplingsfrekvens, som vi skulle vilja få temperaturavläsningar. Det uttrycks av kommandot "paus" i slutet av while loop! Om du vill välja en temperaturvärde varje timme, du måste skriva pause(3600) (paus kommandot accepterar parametern i sekunder).
OK, nu Låt oss analysera de två funktionerna:
setupSerial: detta skapar objektet seriell comPort Arduino ansluten till den seriella porten. Kommandot för att skapa det seriella objektet är helt enkelt namn-av-den-objekt = följetong (namn-av-den-port). Så enkelt är det! Observera att, som en av egenskapen för det seriella objektet, vi sätter (med kommandot set , följt av egenskapen vars värde vi vill ange) vilket baudvärde för 9600 lika med som anges på Arduino.

readTemp: några saker du behöver nu: kom ihåg de kommandon som vi använde på Arduino att skriva till och läsa från det seriella buffert, Serial.println och Serial.read? Här ersätts av fprintf och fscanf respektive. Det var allt. Syntaxen är lätt och du kan kontrollera det i Matlab Hjälpbläddraren. fprintf kräver, som den första posten, det seriella objekt vi vill skriva till, och som den andra biten av information karaktären vi vill skicka (i vårt fall "R" vilket innebär att vi "Läsa"). fscanf vill följetong objektet också, och det format som vi vill att data ska visualiseras, i vårt fall ett flytande punkt nummer anges med simbol "%f" (DHT 22 temperatur värden matchas till en tiondels grad celsius).

Observera att mängden avläsningar som kommer att sparas kommer att vara lika med värdet av variabeln "buf_len" (Standardvärdet i skriptet är 30, ändra det på egna infall!). Efter 30: e behandlingen den nya som kommer att skrivas över vid den första behandlingen lagras i matrisen "tcdata", som kommer att innehålla alla temperatur värden i kronologisk ordning.

Se Steg
Relaterade Ämnen

Ultrasonic Mapmaker använder Arduino och MatLab

Vision är en av de mest spännande sinnen du kan utrusta på din robot. Förmågan att uppfatta hinder kan en robot att göra ett välgrundat beslut om ytterligare förflyttningar.Det är dock också inte de enklaste sinnena att genomföra några skäl. För det...

Realtid ansikte spårning Robot med Arduino och Matlab

Realtid ansiktsspårning avser uppgiften att lokalisera ansikten i en videoström och spårning hittas eller igenkända ansikten. Numera finns det många verkliga tillämpningar av ansiktsavkänning och andra tekniker för bildbehandling. Det finns många alg...

Arduino och Matlab + DHT11

Arduino UNODHT11BRÖD STYRELSE OCH ANSLUTNING LEDNINGARLCD 2 * 16MATLAB PROG....

8 kanal Relay Control Board med seriell kommunikation

Detta är ett projekt som jag gjorde för en tid sedan under undergrad skolan. Det är lite gammal, men ändå värt att dela.Projektet handlar om en PCB med 8 reläer som kontrolleras av en mikrokontroller, som tar emot kommandon från en dator via seriepor...

Färg sensorer och Arduino seriell kommunikation för nybörjare

Hej alla, jag ska prata om färg sensorer: hur man bygger och kalibrera en och hur man använder det med seriell kommunikation genom en Arduino ombord.Det sista steget förklarar hur jag använde detta projekt för en Gimp (står för "GNU Image Manipulatio...

Bänk PSU strömförsörjning från gamla ATX med Arduino och LCD-skärm

Hej alla och Välkommen till min första Instructable.Jag har alltid velat en bänk PSU för enkel åtkomst till en strömkälla, och något som jag kan lita på när du arbetar med olika projekt. Jag ville ha ett NÄTAGG som:• ger 12v och 5v 3.3V utgångar• ger...

D.D.Tap - interaktiva spel plattform med bearbetning, Arduino och Twitter

D.D.Tap är ett spel som kan spelas med hjälp av sensorer kopplade till Arduino och gränssnitt till spelet producerade med bearbetning. Det är en enkel dance dance revolution som spel som ackumuleras punkt när spelaren aktiverar sensorerna eller tryck...

Flytta en Motor med hjälp av Arduino och seriell kommunikation

har du någonsin undrat hur robotar flytta? Har du någonsin velat skriva ett program för att kontrollera en robot? I så fall kommer att denna handledning vara en utmärkt start plats att lära sig elektroniska kontroller med Arduino Microcontroller. Du...

Gör din vägande klättra hacka med arduino och hx711

Jag jobbar på ett program där jag behöver konvertera vikten av en person att beräkna och använda den för andra parameter.Så jag började söka på internet och hittade många tutorials med hjälp av lastcell och arduino.Jag började genom att öppna upp en...

Styra din Tv, Dvd och ljud system med Arduino och Android

Hej alla, detta är min andra instructable och min första på engelska, så, ledsen för misstag.Jag vill dela detta projekt det handlar om hur du kan styra din Tv, DVD och ljudanläggningen med Arduino och en app för Android med app inventor.Om du gillar...

Arduino och Python

för ett projekt (kolla in min blogg för uppdateringar) jag jobbar på jag behövde för att kunna kommunicera med min arduino, lyckligtvis arduino kan kommunicera om följetong. Det visar sig nästan någon programmering språk kan användas för seriell komm...

IoT: Ansluter RPi, Arduino och världen!

(Om du gillar detta Instructable, glöm inte att rösta på det (ovan: högra hörnet flaggan). det konkurrerar om SAKERNAS INTERNET och sensorer tävlingar. Tack så mycket! ;-)I detta projekt kommer vi program en RPi och en Arduino, arbeta tillsammans för...

TV KONTROLLERBAR fjärrdatorn MP3 spelare använder ARDUINO och bearbetning

Hej var och en. här visar jag min projekt TV kontrollerbar fjärrdatorn MP3 spelare med bearbetning programvara och arduino ombord. Denna projektidé är baserad på att kontrollera datorn med TV-fjärrkontrollen. I detta projekt skapade jag egna MP3-spel...

Snabba kontroll av dc-motor från laptop använder arduino och bearbetning

Hej allaJag är Gustaf raja. Jag skulle här vilja dela varvtalsreglering av dc-motor från datorn genom att använda arduino och bearbetning programvara. i detta projekt bearbetning programvara köra ett enkelt programfönster på datorn. baserat på positi...

Stroboscopen (zoetrope) med hjälp av Arduino och trasiga Xbox 360 DVD-enhet

Stroboscopen (AKA zoetrope) är en enhet som skapar en illusion av en rörlig bild som visar en snabb arv av ramar "slutat" för en bråkdel av en sekund persistence of vision (POV) verkställer tack vare. Det är en mycket gammal leksak; zoetropes ha...

Roligt spel med arduino och bearbetning

Denna tutorial ska show dig hur man gör en första person FPS-shooter i bearbetning med hjälp av en arduino. Detta projekt lämnades till oss som en avslutande tentamen i en teknisk specialkurs, (gymnasieskolan).Video av projektet! :) (Svårt att spela...

Hemgjord robotarm med hjälp av standarddelar använder Arduino och en bearbetning GUI

Jag nyligen pensionerad och saker jag lovat mig själv var att när jag slutar jag skulle slutföra alla de projekt som jag hade sprungit runt i mitt huvud sedan jag var tonåring. Det är omkring 50 år eller så av projekt. På den tiden fanns det inga mik...

Prata med en automat MDB med två Arduinos

varuautomat delar alla prata med varandra på en dator buss kallas MDB. Jag har skrivit lite kod som hjälper dig att koppla in och lyssna på deras konversation i realtid. Du behöver fysisk tillgång till automaten.Varför bry sig? Många hackspaces har v...

ITEAD intelligenta Switch fungerar med Arduino och Android

ITEAD nu erbjuda den intelligenta switchs som stöder touch och fjärrkontroll, och det kommer att vara mycket lätt att hacka och få det att fungera med din Arduino och Android telefon. Här visar vi dig en liten demo och mer positivt överraskad att bli...