Python/Arduino seriella styrenheten: Hemlagad masugn (5 / 8 steg)

Steg 5: Gränssnitt och datainsamling



* Observera att programvarufiler här kan delas i enskilda avsnitt.

Gränssnittet är ett lager av python kod som fungerar över seriell kontrollprotokollet. Den seriella kontroll tillåts av den första lagret Serial protocol programmet och firmware är mycket mer flexibla än en skulle kräva för detta projekt: Jag började skriva python kod för att tillåta ett program att köra på PC, använda datorresurser av en CPU, interagera med omvärlden. Med koden som anges i steg 1, kan PC styra alla digitala stiften, PWM via kommandot analogWrite() och ta analoga data bort av A0 (eller några analoga stift med modifiering av firmware). Dessutom kan firmware uppdateras för att köra något segment av Arduino C kod genom enkel att lägga till ett ytterligare fall/bryta block med huvudströmbrytare block. Följaktligen är det möjligt att ändra I/O struktur i farten (via tillägg av ett fall/bryta block innehåller en pinMode() redogörelse), eller lägga till valfritt antal användbara funktioner. Jag valde att hålla firmware relativt enkelt för detta projekt, bara stödja de grundläggande kommandona, eftersom jag visste att jag inte skulle behöva få tillgång till någon högre funktioner under ugnen körs.

Dessutom göra den högre nivåer kodning mer lättläst, La jag en uppsättning funktioner som inkapslade alla I/O funktioner specifikt för detta projekt, som fanOn() och fanOff() för fläkt kontroller, för att låta GUI koden att köra utan att direkt behöva kalla de seriella program. Detta tillåtet oberoende tester av inkapsling koder (dvs. jag kunde testa fanOff(), och när det fungerade, jag slapp oroa samordning frågor när jag ringde det från GUI programvaran).

Insamling av termoelement data skiljer sig inte från kontrollmekanismer: det använder en inkapsling funktion att samla in analogRead() uppgifter och spara data (för senare analys och on-the-fly grafisk display). Termoelement data capture funktionen även sammanfattar data samling funktioner, så att data registreras och köra posten uppdateras varje gång en Mätningstidpunkten.

GUI funktionaliteten aktiveras av Zelle grafik paketet, en enkel att använda, låg grafik kraftpaket för python. Jag valde Zelle paketet över mer sofistikerade python grafikalternativ för det är enkel och relativt låga systemkraven resurser. GUI är setup som en master while() loop, där fönstret avsöks regelbundet med checkMouse(), så att programmet ska utföra självständiga åtgärder (som att läsa termoelementet varje så ofta) medan du väntar på indata från användaren. I fönstret visas också den hela körningen som-tidskurvan termoelement data som uppdateras varje gång en ny behandling tas.

I slutet av en körning sparas posten för körningen i en textfil genom en enkel python file.write förfarande. Under hela körningen, varje gång en mätning görs, statistik för en viss tidpunkt: den tidpunkt vid vilken inspelningen görs, termoelement Läs, fan staten, syre tillförsel tillståndet och antal bränsle tillägg, läggs till en lista. När data spara funktion anropas, är denna lista skriven till en textfil så att körningen kan analyseras vidare senare.

Se Steg
Relaterade Ämnen

Pyduino, gränssnitt Arduino med Python via seriell kommunikation

Lär dig hur gränssnittet arduino via seriell kommunikation med python med hjälp av pyduino biblioteket. Det finns några andra tutorials ute på instructables om hur gränssnittet arduino med python men de Visa inte dig hur man gör allt, där förhoppning...

Dragspel Master - en python/arduino musik synt

Detta projekt skapades av ett team av tre studenter från University of Pennsylvania på MHacks 2014 Detroit (en helg Hackathon). Målet med detta projekt är att skapa en musik-synt som genererar signaler baserat på användarens gester. Så om du någonsin...

Raspberry Pi - Arduino seriell kommunikation

I detta projekt, kommer vi att göra en kommunikation mellan Arduino och Raspberry Pi som överföra viktig information genom att skicka en databit i taget.Seriell kommunikation är avgörande för varje mikro-kontrollanter att kommunicera mellan mikro-dom...

Python + Arduino, CarControl v.03

har du någonsin köpt något bara för att ta isär? Jag köpte denna fjärrkontroll bil hoppas att köra den från min dator. Jag använde Python, en Arduino ombord och ca 300 rader kod. Tog mig ett par timmar att få ihop och ett annat par att tolerera denna...

Arduino seriell UART rullning Visa terminal med en 2.2" TFT

Jag har gjort projekt kring en 2.2" TFT-skärm som använder den ILI9341 förare chipet, denna display kan vara ansluten till och kontrolleras av en Arduino UNO. Som lite av bakgrunden läser du kan hitta min instructable här användbara.Under felsökning...

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...

LittleBits seriella styrenheten

littleBits är roliga lite elektroniska moduler kan du bygga saker. Med lanseringen av en Arduino-modul, kan du nu ansluta littleBits till din dator för att styra program och annat körs på skrivbordet.I en tidigare Instructable talade jag om att få se...

Arduino seriell Terminal Oled med Adafruit SSD1306 bibliotek

Jag använde bibliotek och grafiska Adafruit_GFX Adafruit_SSD1306 jag gjort Arduino plattformen används som seriell terminaloch tecknen fått atravez en mini OLED-skärm, detta är bara den första delen av ett något mer komplext projekt med Arduino och E...

Baserade Arduino seriell servo controller

detta är en enkel serial controller för flera servon bygger på Arduino. (min första instructable alltför :))Mesta av arbetet i detta kom från att få programvaran att prata med arduino och göra ett protokoll för de data som ska skickas. När det gäller...

Enkla Arduino seriell kommunikation.

jag har velat göra en trådlös robot ett tag genom att använda x bin eller andra typer av trådlös kommunikation. Detta är inte en komplett i'ble till där jag visa dig hur man gör en robot detta är mer av en mall. Jag ska visa dig koden gjorde jag och...

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...

Seriell kommunikation mellan android och arduino via laptop bluetooth

Om:Detta instructable handlar om seriell kommunikation mellan android och arduino genom laptop inbyggd Bluetooth. Jag har inte separata Bluetooth-modul. så jag har beslutat att använda min bärbara dator inbyggd Bluetooth för seriell kommunikation.Ste...

Arduino Android USB-seriell kommunikation med OTG kabel

Jag har gjort en Arduino baserade natten lampa med hjälp av foto motstånd och problem med det är ljusnivåer var olika från plats till plats, när jag testar jag har använt ett värde som en tröskel för att slå på ljuset och efter att fastställa det i d...

Tutorial - med HC06 Bluetooth till seriell trådlös UART adaptrar med Arduino

Skicka data mellan en Arduino eller kompatibel styrelse och en Bluetooth-utrustad enhet såsom en Android smartphone eller surfplatta är mycket enkel tack vare de billiga HC-06 Bluetooth-moduler som du kanske har sett på marknaden. De finns också till...

Seriell kommunikation med Arduino

Källa: http://www.theorycircuit.com/serial-communication-with-arduino/Detta projekt visar här hur man kommunicerar med arduino seriell terminal? En ansökan har vi valt fyra lysdioder för att ange riktning.I ett bröd ombord är fyra lysdioder placerade...

Arduino/Android BLUETOOTH seriell Monitor APP för arduino med hjälp av HC-06 och ANDROID

Hej världen! Idag gjorde jag en Android app som bara läser värden eller text som skrivs ut till arduino seriella bluetooth-modulen HC-06/05 eller några andra moduler. Du behöver inte ställa in något i arduino koden. Bara helt enkelt Serial.println();...

Arduino-DHT11 och seriell Plotter V2.0

Hej killar,För att visualisera data, kommer den senaste versionen av Arduino IDE 1.6.6 förinstallerade med en plotter som kallas seriell plottern, där du kan visa dina data beteende i realtid än att bara se siffror på serial monitorn.Arduino seriell...

Android G1 följetong till Arduino Robot

lära sig hur din Android mobiltelefon kan styra en robot med en Arduino ombord. Telefonen tar kommandon via telnet från en annan telefon eller en PC, så kan du fjärrstyra roboten. Detta projekt kommer annars inte ändra G1 så du kan fortsätta använda...

Fisk Feeder Arduino Raspberry Pi länk

"Vad en tråkig svart låda"Ja det är, men:– Det matar mina fiskar när inte jag är där.-Den lever vid en fördefinierad tidpunkt.– Det känner av den mat som ges till fisken– Du kan logga in distans till raspberry pi att se status.– Det kan skicka e...