-
-
Hallo Freunde der computergesteuerten Grashalmschnittmaschinen ...
Die erste AVR-Version eines autarken AutoMower Steuersystems läuft momentan im Testbetrieb. Detailinformationen folgen an Vogon, seibot und Harald_nds. Hier in der Kürze die Highlights:
Das System läuft in dem hier vorgestellten Hardware-Testaufbau (mit neuem Regensensor - Danke an seibot für die Information, der Sensor ist deutlich besser!)
Die aktuelle Version bietet folgenden Funktionsumfang:
- - Zeitsteuerung für die AutoMower-Fahrten/Mähzeiten. Es sind mehrere Pläne möglich:
- 2 Fahrtzeiten für die Wochentage (Mo-Fr, für alle Tage gleich)
- 2 Fahrtzeiten für die Wochenend-Tage (Sa-So, für beide Tage gleich)
- Auswahl der einzelnen Tage (Mo-So)
- Heimfahrt bei Regen (wenn der Regensensor Feuchtigkeit meldet) bzw. erneute Ausfahrt wenn der Regen vorbei ist
- Wechsel (per Tastendruck, Start und Stop separat) in einen manuellen Modus, unabhängig von der Zeitsteuerung und unabhängig vom Regensensor. Der manuelle Modus bleibt aktiv bis per Tastendruck eine Rückkehr zum Auto-Modus gewählt wird
- Menuesteuerung (4 x 20 Zeichen LCD)
- Komplette Steuerung über die 5 Taster auf dem RN-Control Board. Es ist keine alphanumerische Eingabe erforderlich, alle Änderungen werden mit Tasten für +/- Funktionen vorgenommen. Entsprechende Bereiche für komfortable Einstellungen sind definiert.
Konzeptionelle Details- - Optimierte Funk-Kommunikation mit dem AM: Es werden nur Befehle gesendet, wenn dies wirklich notwendig ist (Status-Management). EEPROM verträgt nur eine begrenzte Zahl Schreibzyklen (100.000?), und wenn wir ständig alle paar Sekunden blind Flags setzen ... nein, sowas macht das Programm nicht.
- Prüfung ob ein gesendeter Befehl vom AM quittiert wird
- Optimierter Programmablauf, Prüfungen in sinnvollen Intervallen
- Quellcode funktional strukturiert für Anpassungen (z.B. zentrale Fuktion für die Tastenerkennung) und Erweiterungen
- Bedingungsabhängige Kompilierung, sodass Versionen mit oder ohne externe Real Time Clock (DS1307 Chip) erstellt werden können.
Die Timer-Einstellung entspricht grundsätzlich dem AutoMower-Timer. Natürlich ist noch mehr denkbar - bis zur Grenze des verfügbaren Speichers. Momentan belegt das kompilierte Programm 55% Flash RAM.
Noch nicht implementiert
Die folgenden Funktionen erfordern weitere Analysen, Tests und Diskussionen
- - Latenzzeit (möglichst konfigurierbar) für eine "Pause" nach dem Regen. Der AM soll nicht sofort wieder rausfahen, wenn der Regen vorbei ist.
- LAN-Schnittstelle für Einstellungen und Abfragen von einem PC-Netzwerk aus
- (AVR) Stromsparmodus während der Nacht
- Evtl. Ergänzung um einen Temperatursensor
- Optimierung der Mähzeiten durch Berücksichtigung von Wetterbedingungen (Regen, Temperatur, Jahreszeit und vom AM gesammelte Werte)
- Datensammlung, d.h. Abfrage des AM, z.B. in der Nacht bei Ruhepause
- Steuerung durch ein weiteres externes Ereignis (wie von seibot beschrieben
-
Da wäre sicher noch viel machbar - theoretisch zumindest. Alles wird nicht möglich sein, da ist die Grenze des verfügbaren Speichers zu eng. Evtl. müßte man einen anderen AVR einsetzen, z.B. den 2560 (256 KB Flash, 8 KB RAM, 4 KB EEPROM, 4 TTL UARTS !), wobei dann eine gute Basisplatine, möglichst für die anderen Bauteile, notwendig wird. Das ist ein Thema für später, vielleicht nächstes Jahr.
Alleine ca. 20% des Flash-Speichers beansprucht die Bedienerführung. Wenn - zu einem späteren Zeitpunkt - eine PC-LAN Anbindung realisiert ist, könnte man die Bedienerführung wieder reduzieren und Einstellungen über einen PC vornehmen.
Zur LAN-Anbindung gibt es noch keine endgültigen Pläne. Dazu in ein paar Tagen noch einige Gedanken für die weitere Diskussion. Ich war am Wochenende auf der Suche und muß die Ergebnisse noch ordnen.
Programmiersprache ist AVR-BASCOM. Der Compiler generiert kompakten Code, der Quellcode ist fast wie Pseudo-Code zu lesen. Es gibt unschöne Einschränkungen, z.B. wandelt der Editor den ersten Buchstaben einer Definition, Variablen etc. in einen Großbuchstaben, alles andere ist klein geschrieben (wer hat diesen Unfug erfunden!!!???). Einschränkungen habe ich auch in der Programmstruktur: Was ich als geschachtelte Funktionen gewohnt bin, muss hier oft in Einzelschritte aufgelöst werden.
Irgendwann sehe ich mir "C" für AVR Systeme an, dann könnte sicher noch einiges optimiert werden.
Grüße aus München, Klaus
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen