Erfolgreich

Wednesday April 23rd 2014

Arduino Brutmaschine

Ein Huhn aus der Zucht

Ein Huhn aus der Zucht

Projekt Beschreibung

Für meine Arbeit im Bereich der Hühnerzucht brauchte ich eine professionelle, vollautomatische Brutmaschine die zum Einen kostengünstig und zum Anderen so ausfallsicher wie möglich sein sollte. Die im Handel angebotenen Maschinen waren teuer, minderwertig und verfügten über keinerlei Erweiterungsmöglichkeiten.

Ein kurzzeitiger Ausfall in den Wintermonaten kann einen Totalverlust bedeuten. Rein rechnerisch gesehen könnte ein kurzer Ausfall einen Verlust von bis zu 80% nach sich ziehen.

Kurze Einweisung

Damit verstanden werden kann wie überhaupt erst eine Brutmaschine funktioniert, sollte kurz darüber informiert werden. Hühnereier erfordern einige bestimmte Umgebungsbedingungen, welche nicht so ohne Weiteres reproduzierbar sind. Im Grunde genommen muss man den Brutprozess einer Henne nachahmen. Eine korrekte Brut vom Ei bis zum Küken dauert i.d.R. 21 Tage, und erfordern:

  • eine Temperatur von mindestens 37,2 °C bis maximal 37,8°C

  • eine Luftfeuchtigkeit von mindestens 55% bis maximal 75%

  • vom 3. bis 18. Tag eine 2-5 x tägliche Wendung der Eier

Sofern man sich im Toleranzbereich befindet kann man bei befruchteten Eier mit einer Erfolgsquote von 95-99% rechnen. Nach dem Schlüpfen der Küken muss weiterhin für eine geregelte Umgebung gesorgt werden, welche eine Umgebungstemperatur von 31°C nicht unterschreiten darf. In dieser zweiten Phase gibt es nach dem Schlüpfen hier die größten Verluste. Soweit zu dem eigentlichen Brutvorgang.

System- und Sicherheitskonzept

Die Maschine sollte in der Lage sein eine bestmögliche Genauigkeit und Energieeffizienz vorzuweisen. Das Konzept kann wie folgt unterteilt werden:

Energiezufuhr

Es gibt insgesamt 3 (4) Energiequellen aus denen das System seine Leistung entnimmt:

  • 145W Solarzelle(n)

  • 12V / 8 Ah Ladegerät

  • 12V / 120 Ah LKW Batterie

  • 200W PC Netzteil als manuelle Backup-Stromzufuhr (Pin 14/15 zur Aktivierung überbrückt)

Die Backup-Stromzufuhr findet nur dann Verwendung, wenn aus sonstigen oder aus Wartungsgründen kein Batteriepuffer vorhanden ist. Im normalen Betrieb wird der Strom der Pufferbatterie entnommen, die im Falle eines Stromausfalls mit Hilfe der Solarzelle das System auch in Wintermonaten für bis zu 15 Stunden überbrücken kann. Die Pufferbatterie wird mit Hilfe der Netzspannung auf maximal 13,1 V (+/- 0,1V) geladen. Unter sonnigen Bedingungen wird der Strom der Solarzelle direkt eingespeist, da diese mit Hilfe eines Stepdown-Wandlers auf 13,7V reguliert wird. Dadurch kann überschüssige Sonnenenergie direkt verbraucht werden.

Die native Systemspannung ist 12V (Gleichstrom) bei einem Toleranzbereich von 11-15V.

Energieeffizienz

Bei dem Aufheizen und Abkühlen des inneren Klimas wird zusätzlich die Außentemperatur mit in die Steuerung der Umgebung einbezogen. So gibt es grob gesehen 3 Szenarien die auftreten können (einfach ausgedrückt):

  • Die Außentemperatur liegt über der aktuellen Innentemperatur, aber unter der Zieltemperatur (~37°C) – hierbei wird der Lüftungsschacht mit dem Lüfter für den Einlass von Frischluft geöffnet und aktiviert.

  • Die Systemtemperatur lässt sich trotz abgeschalteter Heizung nicht auf die Zieltemperatur herabsenken. In dieem Fall wird gezielt warme Luft abgelassen.

  • Das dritte Szenario kann täglich ausgeführt werden und dient der Systemlüftung,

  • welche zum Einen förderlich für den Brutprozess ist und zum Anderen die Bildung von Schimmelpilzen etc. reduziert.

Speziell in warmen Regionen wie z.B. Griechenland kann oft mehr als 30% Energie eingespart werden.

Selbstdiagnose bei Systemfehlern

1602 Display

1602 Display

Wie fast alle Mikrocontroller verfügt auch der ATMega 2560 über einen Watchdog-Timer von dem hier auch Gebraucht gemacht wird. Für den Fall, dass die Anwendung (aus welchen Gründen auch immer) „abstürzt“, wird das System automatisch neu gestartet. Zusätzlich verfügt das System über eine einfache Selbstdiagnose, welche bei Erreichen der optimalen Umgebung einen Flag setzt, welcher den funktionsbereiten Zustand des Systems markiert. Für den Fall, dass die Luftfeuchtigkeit oder Temperatur nach Systemstart unter eine bestimmte Grenze fällt, wird ein Alarm-Buzzer ausgelöst, welcher akustisch darüber informiert, dass ein Fehler vorliegt. Mögliche Ursachen könnten hier sein:

  • Ein Leck in der Wärmeabdichtung

  • Nicht korrekt verschlossener „Deckel“

  • Übergelaufenes Wasser (wird durch die hohe Umluftgeschwindigkeit innerhalb kürzester Zeit in die Luft übertragen. Dadurch wird ein Grenzwert überschritten, den der Feuchtigkeitssensor registriert)

  • Kein oder nicht genug Wasser im Wasservorratsbehälter (dieser wird elektronisch gesteuert)

  • Zu hohe oder zu niedrige Temperatur

  • Ausfall des Heizelements (unwahrscheinlich aber möglich)

  • Ausfall der Regelung für die Luftfeuchtigkeit (unwahrscheinlich aber möglich)

  • Nicht ausreichend Energie

Die Selbstdiagnose wird im Folgenden noch erweitert durch eine drahtlose Kommunikationseinheit.

Kabellose Kommunikation und Diagnose*

Da eine abgeschaltete oder fehlerhafte Maschine schlecht über ihren Fehler berichten kann, wird eine Selbstdiagnose nach dem „PING“-Prinzip verwendet. Mit Hilfe eines 2,4 Ghz / NRF24L01+ Transceivers wird in regelmäßigen Abständen auf einer Distanz von max. 100m eine andere Kontrolleinheit (ATMega 328P) über den aktuellen Zustand informiert. Besonders für den Fall, dass die Maschine sich nicht mehr als anwesend meldet, wird ein Alarm ausgelöst.

Diese Funktion ist besonders dann interessant, wenn mehrere dieser Modelle in einem Array verwendet werden sollen und eine persönliche Kontrolle nicht möglich ist. Optional kann man dieses System dann an das Internet anbinden oder auch statistische Daten über einen Remote-Computer auswerten.

* Zum aktuellen Zeitpunkt noch nicht im vollen Umfang implementiert.

Simulation der Umgebung

Wie oben schon angedeutet, muss für eine Kunstbrut die Umgebung so gut es geht nachgeahmt werden. Die drei maßgeblichen Eigenschaften sind hier:

  1. Temperatur

  2. Luftfeuchtigkeit

  3. Wenden der Eier

  4. Regelung der Außentemperatur für geschlüpfte Küken

Zu 1: Temperaturregelung

In kostengünstigen Brutmaschinen werden in der Regel einfache Thermoschalter verwendet. Thermoschalter haben von Hause aus sehr weit ausgelegte Schaltzeitpunkte von bis zu 7°C (je nach Modell) – diese sind für unseren Verwendungszweck ungeeignet (dennoch werden diese in günstigen Brutmaschinen verwendet).

Ich habe für dieses Problem eine sehr gute und konstante Lösung gefunden. Anstelle eines Thermoschalters oder eines Relais (so wie ich es in den Anfängen versucht hatte) wurde von Mosfets gebrauch gemacht. Mosfets sind mit entsprechender Kühlung in der Lage mit Hilfe einer Puls Wellen Modulation (PWM) eine Art digitalen Dimmer mit höchstmöglicher Effizienz zu simulieren. Der ATMega 2560 unterstützt dieses Verfahren von Hause aus, was die Umsetzung erheblich erleichtert.

Man kann mit der PWM-Steuerung die Leistung in 255 Stufen unterteilen. Die Leistungsregelung des Heizelements funktioniert nach einem Flip/Flop-artigen Algorithmus der wie folgt (einfach dargestellt) funktioniert:

function loop()

{

if ( temp < TARGET_TEMP ) pwm_power++;

if ( temp > TARGET_TEMP ) pwm_power–;

delay(10000); // 10 sek.

}

Mit Hilfe dessen gibt es nur minimale Temperaturschwankungen.

Zu 2: Regelung der Luftfeuchtigkeit

Handelsübliche Brutmaschinen (selbst hochwertige und professionelle) verfügen alle über keine automatische Regelung der Luftfeuchtigkeit. Die Luftfeuchtigkeit muss manuell von dem Benutzer kontrolliert und angepasst werden.

Ich hatte mir ein sehr ausgeklügeltes und präzises System ausgedacht, welches in der Lage ist, mithilfe des Mikroprozessors die Ziel-Luftfeuchtigkeit auf +/- 1% relativer Luftfeuchtigkeit zu halten. Diese Regelung hat den entscheidenden Vorteil, dass unabhängig von der Wassermenge eine konstante Umgebung erhalten bleibt. Einfach dargestellt funktioniert die Regelung wie folgt:

Nach dem gleichen Algorithmus der o.g. Temperaturregelung wird auch hier die Luftfeuchtigkeit geregelt. Als Wärmequelle dient eine H4 Glühbirne. Diese wird mit einem Servo mit höchstmöglicher Präzision angesteuert. Zeitverzögert wird diese in einen Wasserbehälter mit einem Servomotor getaucht. Durch die Temperaturdifferenz der beiden Elemente wird das Wasser erhitzt und erzeugt unmittelbar an der Wärmequelle Wassserdampf, welcher mithilfe des Umluftsystems sofort im ganzen Raum gleichmäßig verteilt wird (und dementsprechend die Luftfeuchtigkeit ansteigt). Je nach Anforderung (und Wasserstand) taucht die Wärmequelle mehr oder weniger in den Wasserbehälter ein.

Natürlich könnte man auch ganz auf das Servo verzichten, da ja bereits eine Wärmequelle existiert. In Wintermonaten (bei intensiver Kälte) oder bei Ausfall der primären Wärmequelle soll das System dennoch in der Lage sein die Temperatur halten zu können.

Für diesen Zweck wird die Glühbirne je nach Anforderung programmtechnisch aus dem Wasser gefahren. Sie wird dann automatisch zu einer reinen Wärmequelle umfunktioniert.

Zu 3: Automatisches Wenden

Wendung der Eier

Wendung der Eier

Das Wenden der Eier läuft im Moment mit einem ULN2003 Schrittmotortreiber. Pro Treiber können bis zu 2 Schrittmotoren angeschlossen werden. Dadurch, dass die Treiber durch eine externe Stromquelle versorgt werden, kann man das digitale Signal des ATMega-Chips parallel schalten und beliebig vielen Schrittmotoren- / Treiber installieren.

Eine Wendung dauert bei voller Leistung 4 Minuten. Aktuell wird alle 1507 Millisekunden ein Schritt im Wendeprozess vollzogen, was auf den Tag gerechnet 4-5 Wendungen entspricht.

Zu 4: Regelung der Außentemperatur

Wie oben schon kurz angedeutet, müssen die Küken auch nach Verlassen der Brutmaschine sich in einer geregelten Umgebung befinden. In den ersten Tagen sollte die Umgebungstemperatur bei 30-32°C liegen. Üblicherweise wird diese Umgebung mit einer einfachen Wärmelampe (Rotlicht etc.) erzeugt.

Je nach Umgebungstemperatur können mit einer nicht geregelte Wärmequelle schnell hohe Verluste entstehen. Für Laien ist dies oft eine sehr große Herausforderung.

Für diesen Zweck verfügt das System über eine einfache Außentemperaturkontrolle, die mithilfe eines Relais und einem weiteren Sensor die externe Wärmequelle automatisch steuert. Ein unscheinbares, aber dennoch sehr wichtiges Feauture.

Hardware (MCU)

Bei dem hier verwendeten Mikroprozessor-System handelt es sich um einen Arduino Mega 2560 (Entwicklungs-)Board welches wie der Name schon sagt über einen Amtel ATMega 2560 Chip verfügt.

Ardunino Atmega 2560 MCU

Ardunino Atmega 2560 MCU

Die Plattform verfügt über:

  • 54 digitale I/O Pins davon 15 mit nativer PWM Steuerung

  • 16 analoge Eingänge

  • 256 KB Flash Speicher (ausreichend selbst für sehr umfangreiche Anwendungen)

  • 8 KB SRAM

  • 4 KB EEPROM

  • 16 Mhz Quarz / Prozessortakt bei 16 MIPS

Aufgrund der großzügigen Dimensionierung lassen sich mit dieser Entwicklungsplattform noch weitaus größere Projekte bei einem unschlagbaren Preis-/Leistungsverhältnis umsetzen.

Software

Als Entwicklungsumgebung wurde die offizielle Arduino 1.0 IDE verwendet. Sie verfügt von Hause aus über nahezu alle benötigten Bibliotheken sowie eine integrierte serielle Konsole. Mithilfe der seriellen Konsole (ähnlich & kompatibel mit dem „HyperTerminal“) ist man in der Lage eine Art virtuelle Konsole zu verwenden. Dank der großen Open-Source Gemeinde und der einfachen Erweiterungsmöglichkeit gibt es für nahezu alle bekannten

elektronischen Komponenten Open-Source Bibliotheken.

Da der Chip kein Hardwareseitiges Multithreading unterstützt, wurde die Anwendung um eine RTOS (Real Time Operation System) Bibliothek erweitert. Damit ist man in der Lage das Programm wesentlich besser zu strukturieren und Prozesse unabhängig voneinander laufen zu lassen. Die Rechenleistung kann mit Hilfe der Vergabe von Prioritäten ganz einfach auf die parallel laufenden Prozesse verteilt werden.

Nachfolgend ein kurzer Pseudocode im Vergleich um den Unterschied zwischen Single- und Multithreading zu veranschaulichen:

Single-Threading

Multi-Threading

function loop(){

//Programmcode

eineAktion();

if( Beispiel == true)

{

//Erfüllte Beispielbedingung

}

}

function thread2(){

//Programmcode kann

//unabhängig von dem

//loop() ausgeführt werden

}

 

function thread3 () { /* …. */ }

 

function loop()

{

//Programmcode

eineAktion();

if( Beispiel == true)

{

//Erfüllte Beispielbedingung

}

}

In nahezu allen Fällen kommt man bei komplexeren Anwendungen nicht mehr um Multithreading herum. Gerade dann, wenn das System zwei (oder mehr) völlig verschiedene Aufgaben nahezu zeitgleich erledigen muss.

Systemübersicht der Brutmaschine

Systemübersicht der Brutmaschine

Projektfotos

Im Nachfolgenden einige Projektfotos

Fazit

Was gibt es noch abschließendes zu sagen?, das Projekt war ein voller Erfolg. Statistisch gesehen schlüpfen derzeit 8,9 aus 10 Eiern. Es sind bereits weitere Verbesserungen in Planung an denen im Moment gearbeitet wird. Ziel ist es die Schlupfrate weiter zu steigern und die Energieeffizienz durch Hard- und Softwareoptimierungen weiter zu verbessern.


 

Ähnliche Beiträge:

Huhn brutmaschine gebraucht wendemotor für brutmaschine wendemotor brutmaschine selbst gebaut wendemotor brutmaschine eier wenden nrf24l01 temperature arduino arduino temperaturregelung arduino

Leave a Reply

Spam protection by WP Captcha-Free

 | HSP/C, Codemaster 2.11 / 28.11.2010 / MR,128 |  by Athens Management