Python/Arduino seriële regelaar: Zelfgemaakte hoogoven (5 / 8 stap)

Stap 5: Interfacing en gegevensverzameling


* Let op dat hier de softwarebestanden zijn opgesplitst in afzonderlijke secties.

De interface is een laag van python code die boven het seriële control protocol fungeert. De seriële controle toegestaan door de eerste laag serieel protocolsoftware en de firmware is veel flexibeler dan een voor dit project zou vereisen: ik begon met het schrijven van de python-code zodat een programma wilt uitvoeren op de PC, met de IT-middelen van een CPU, om te communiceren met de buitenwereld. Met de code zoals vermeld in stap 1, kan de PC controle van alle de digitale pennen, PWM via de opdracht van de analogWrite(), en nemen analoge gegevens af A0 (of een analoge pinnen met wijziging van de firmware). Bovendien kan de firmware worden bijgewerkt, zodat elk segment van Arduino C code uitgevoerd door eenvoudige toe te voegen een extra geval/break-blok aan het blok van de hoofdschakelaar. Daarom, is het mogelijk om te wijzigen de structuur van de I/O op de vlieg (via de toevoeging van een blok van de zaak/break met een verklaring van de pinMode()), of een aantal handige functies toevoegen. Ik koos om te houden van de firmware voor dit project relatief eenvoudig, alleen ter ondersteuning van de basis commando's, omdat ik wist dat ik zou niet nodig dat voor toegang tot een hogere functies tijdens oven loopt.

Anderzijds de hogere laag-codering om leesbaarder te maken, ik heb toegevoegd een aantal functies waarmee ingekapseld alle I/O functies specifiek voor dit project, zoals fanOn() en fanOff() voor de fan besturingselementen, aan de GUI code kan worden uitgevoerd zonder direct te roepen de seriële controle programma's toestaan. Hierdoor onafhankelijke tests van de inkapseling codes (dat wil zeggen kon ik het testen van fanOff(), en zodra het werkte, ik hoefde niet te zorgen over coördinatie problemen wanneer ik het van de GUI-software noemde).

Het verzamelen van de gegevens van de thermokoppel verschilt niet van de controlemechanismen: het gebruikt een inkapseling-functie analogRead() gegevens verzamelen en opslaan van de gegevens (voor latere analyse en on-the-fly grafische weergave). De opnamefunctie van de thermokoppel-gegevens ook kapselt de data collectie functies, zodat gegevens worden opgenomen en de run record wordt bijgewerkt telkens wanneer die een meting is genomen.

De GUI-functie is ingeschakeld door de Zelle grafisch pakket, een makkelijk te gebruiken, lage macht grafisch pakket voor de python. Ik koos de Zelle pakket over meer geavanceerde python grafische opties voor het gemak van gebruik en relatief lage systeemvereisten van de middelen. De GUI is ingesteld als een lus van de master while(), waar is het venster periodiek ondervraagden met checkMouse(), waardoor het programma autonome acties (zoals het lezen van de thermokoppel elke zo vaak) uit te voeren tijdens het wachten voor de invoer van de gebruiker. Het venster geeft ook de volledige looppas als-tijdgrafiek van thermokoppel gegevens, die telkens bijgewerkt wordt wanneer een nieuwe lezing wordt genomen.

Aan het einde van een run, wordt de record voor de run opgeslagen in een tekstbestand met een eenvoudige python file.write procedure. Gedurende de termijn, telkens als een meting wordt genomen, de statistische gegevens voor die bepaalde tijd: de tijd waarop de opname is gemaakt, de thermokoppel lezen, ventilator staat zuurstof levering staat en aantal brandstof toevoegingen, worden toegevoegd aan een lijst. Wanneer de gegevens opslaan functie wordt aangeroepen, staat deze lijst naar een tekstbestand zodat het punt kan verder naderhand worden geanalyseerd.

Gerelateerde Artikelen

Pyduino, Interfacing Arduino met Python via seriële communicatie

Pyduino, Interfacing Arduino met Python via seriële communicatie

Leer hoe arduino via seriële communicatie interface met python met behulp van de pyduino-bibliotheek. Er zijn weinig andere tutorials die er op instructables over hoe arduino met python interface maar ze niet laten zien hoe je alles, waar hopelijk de
Raspberry Pi - Arduino seriële communicatie

Raspberry Pi - Arduino seriële communicatie

In dit project, zullen wij een mededeling tussen de Arduino en Raspberry Pi, waarbij essentiële informatie wordt overgedragen door het sturen van gegevens één bit tegelijk maken.Seriële communicatie is essentieel voor elke Micro-controllers voor de c
Intel Edison Arduino seriële naar Host proces seriële communicatie

Intel Edison Arduino seriële naar Host proces seriële communicatie

De Intel Edison Arduino breakout is een linux gebaseerde mini computer die kan worden geprogrammeerd met behulp van de Arduino IDE en kader. Het kan ook worden geprogrammeerd als elke andere linuxsysteem in C/C++, Python, node.js en vele andere talen
Accordeon Master - een python/arduino muziek synthesizer

Accordeon Master - een python/arduino muziek synthesizer

Dit project is gemaakt door een team van drie studenten van de Universiteit van Pennsylvania in MHacks 2014 Detroit (een weekend Hackathon). Het doel van dit project is het creëren van een muziek-synthesizer die tonen op basis van gebaren van de gebr
Python + Arduino, CarControl v.03

Python + Arduino, CarControl v.03

heb je ooit kocht iets alleen maar om het uit elkaar te halen? Ik kocht deze afstandsbediening auto willen rijden vanaf mijn computer. Ik gebruikte een Arduino board, Python en ongeveer 300 lijnen van code. Kostte me een paar uur werk het om samen te
Spraakherkenning gemakkelijk gemaakt - spreken met uw Arduino seriële kabel

Spraakherkenning gemakkelijk gemaakt - spreken met uw Arduino seriële kabel

Waarom hebben met behulp van stem erkenning shield terwijl u deze functie vanaf uw smartphone (Android). In deze tutorial weet u hoe gebruiksvriendelijk spraakherkenning te verzenden spraakopdrachten aan uw Arduino met behulp van de BlueAct app.Mogel
Kleur sensoren en Arduino seriële communicatie voor beginners

Kleur sensoren en Arduino seriële communicatie voor beginners

Hallo allemaal, ik ga om te praten over kleur sensoren: hoe te bouwen en een kalibreren en hoe het te gebruiken met seriële communicatie via een Arduino board.De laatste stap wordt uitgelegd hoe ik gebruikte dit project voor een Gimp (staat voor "GNU
Ondersteuning gebruiken de ARDUINO seriële MONITOR

Ondersteuning gebruiken de ARDUINO seriële MONITOR

De Arduino IDE heeft een functie die kan een grote hulp bij de foutopsporing schetsen of Arduino vanuit het toetsenbord van de computer bestuurt.The Serial Monitor is een apart pop-upvenster dat fungeert als een aparte terminal die communiceert ontva
Terminal met een 2.2" TFT Arduino seriële UART schuiven weer

Terminal met een 2.2" TFT Arduino seriële UART schuiven weer

Ik heb het maken van projecten gebaseerd rond een 2.2" TFT display die gebruik maakt van de ILI9341 driver chip, dit display kan worden aangesloten op en gecontroleerd door een Arduino UNO. Als een beetje achtergrond lezen van u kan vinden mijn instr
Arduino seriële Terminal Oled met bibliotheek van Adafruit SSD1306

Arduino seriële Terminal Oled met bibliotheek van Adafruit SSD1306

Ik gebruikte de bibliotheek en de afbeeldingen Adafruit_GFX Adafruit_SSD1306 ik het platform van de Arduino gebruikt als seriële terminal maakteen de tekens ontvangen atravez een mini OLED-scherm, dit is alleen het eerste deel van een iets meer compl
Eenvoudige Arduino seriële communicatie.

Eenvoudige Arduino seriële communicatie.

ik heb wilde maken van een draadloze robot voor een tijdje met behulp van x bijen of andere soorten draadloze communicatie. Dit is niet een complete i'ble over de vraag waar ik je laten zien hoe maak je een robot dit is meer van een sjabloon. Ik zal
Maken van Arduino seriële poort met visual basic

Maken van Arduino seriële poort met visual basic

Zullen we de programma-interface aansluiten op de seriële poort met Visual Studio.Laten we eens kijken naar de details van het programma.Hulpmiddelen dat zullen we ons formulier gebruiken:3 stuks knop2 nummer ComboBox3 stuk labelseriële poortStap 1:
Arduino aan MySQL met behulp van Python interface

Arduino aan MySQL met behulp van Python interface

hier is een korte tutorial die moet je opstaan en lopen interfacing van uw Adruino met een MySQL-database. Omwille van deze tutorial veronderstel ik dat u weet hoe u kunt instellen en gebruiken van MySQL. Deze tutorial niet veel Python ervaring verei
Seriële communicatie tussen android en arduino via laptop bluetooth

Seriële communicatie tussen android en arduino via laptop bluetooth

Over:Dit instructable is over seriële communicatie tussen android en arduino via laptop ingebouwde Bluetooth. Ik heb geen aparte Bluetooth module. dus ik besloten heb om mijn laptop ingebouwde te gebruiken Bluetooth voor seriële communicatie.Stap 1: