Das RobiTobi
Projekt
Das Projekt entstand aus einer Begegnung mit
einem Automower von Husquarna und unserem Anspruch: Das versuchen wir auch
mal - nur deutlich preiswerter. Das war im Sommer 2008. Mittlerweile hat
sich RobiTobi gut entwickelt. Erwachsen ist zwar noch nicht, aber auf
gutem Weg dahin.
Der Werdegang des Projektes ist in der History zu finden.
In der Galerie
gibts fortlaufend Bilder und Videos zum
RobiTobi (wird ständig erweitert).
Alle Schaltpläne,
Baupläne und der Quellcode sind in den
Downloads zu finden.
Inhalt
Gerätespezifikation
RobiTobi Strategie
LCD Anzeige
Gerätespezifikation
Prozessor:
Sensorik:
Begrenzung
Arbeitsbereich:
Mähwerk:
Mähmotor:
Antrieb:
Stromversorgung:
Laufzeit
Mähen:
Ladezeit (1,3A):
Gewicht:
Maße:
|
Atmega32A
3 Taster vorn 2 Schleifensensoren
(vorn und hinten) Odometrie je Antrieb
(Hallsensoren) Spannungsüberwachung
Induktionsschleife (8
Hz, 19V)
Mähteller mit 3 Messern, Durchmesser 18cm,
Mähbreite 21cm ca. 7° Neigung nach vorn
alt: Johnson 1060441, ca 2500 U/min,
max. 5 Watt neu: Bühler 1.13.044.266, ca 2500
U/min, max 43W, (Abmessung: ca.51x92 mm)
2 x RB35 1:100
Getriebe mit Igarashi SP-3650-66 12V Motor, Raddurchmesser 15
cm
NiMH Akku 12V, 3600mAh
ca. 2:00h
ca. 3h
(über integrierten Ladecontroller, mit ext. Schaltnetzteil (19V,
3,5A)
6,2 kg (inkl. Akku)
65 x 43 x 26 cm (LxBxH)
|
RobiTobi Strategie
Allgemeines
-
Robi wechselt in festen Abständen zwischen
kleinen und großen Winkeln
-
Robi wechselt in festen Abständen zwischen
drehen nach links und drehen nach rechts
-
Normalerweise fährt Robi immer gerade
aus
-
Trifft Robi auf ein Hindernis, dass durch
einenTaster oder das Verlassen der Schleife erkannt wird, fährt er ein
Stück zurückund dreht dann in einem Zufallswinkel. Anschließend geht es
wieder gerade aus
-
Tritt ein offensichtlicher Fehler auf, so
reagiert er darauf mit rückwärts fahren, vorwärts fahren oder
drehen
Ablauf 1. Bestimmung der
auszuführenden Aktion 2. Prüfen, ob ein Fehler aufgetreten ist 3.
Bestimmung des nächsten Modus des Robi
Bestimmung der auszuführenden
Aktion
Es werden die Status:
- IsSleepingTime
- IsBatterieLow
- IsInPowerStation
- HaveSeenIR
- IsCharged
ermittelt und abhängig davon ermittelt, was Robi tun
soll:
- Standardverhalten
- der Schleife bis zur Ladestation folgen
- Einparken
- Aufladen oder Warten
- Ausparken
Prüfen, ob ein Fehler aufgetreten
ist
Fehler |
Reaktion |
3-mal hintereinander
Tastensignal ausgelöst |
Auf Modus „Rückwärts“ schalten |
Im Schleifenfolgemodus außerhalb der
Schleife gelandet |
Auf Modus „Nach rechts drehen“
schalten |
Im Vorwärtsmodus fahren nicht beide Räder
gleichmäßig |
Auf Modus „Rückwärts“ schalten |
Im Rückwärtsmodus fahren nicht beide Räder
gleichmäßig |
Auf Modus „Vorwärts“ schalten |
Mit vorderem Sensor außerhalb der Schleife
-> rückwärts fahren, bis 6 Odometriesignale gekommen sind |
Auf Modus „Rückwärts“
schalten |
Bestimmung des nächsten Modus des
Robi
Keine Taste ausgelöst und innerhalb der Schleife
oder es ist ein Fehler aufgetreten
- Modus = „Vorwärts“
- Vorwärts fahren
- Status LED grün
- Modus = „Rückwärts“
- Linker Odometriewert < 6 (entspricht 1,5 Radumdrehungen):
- Sonst:
- Anhalten
- Status LED gelb
- Odometrie zurücksetzen
- Drehwinkel ermitteln Winkel ermitteln
- Auf Modus „Drehen nach rechts“ schalten
- Modus „Drehen nach rechts“
- Wenn weniger als 10 mal nacheinander nach rechts gedreht wurde und
seit Auslösen der Drehung weniger als 1,5 Radumdrehungen des linken
Rades zurückgelegt wurden (6 Odometriewerte)
- (Weiter) nach rechts drehen
- Wenn mehr als 10 mal nacheinander nach rechts gedreht wurde und
seit Auslösen der Drehung weniger als 1,5 Radumdrehungen des rechten
Rades zurückgelegt wurden (6 Odometriewerte)
- (Weiter) nach links drehen
- Sonst (Drehung abgeschlossen)
- Odometrie zurücksetzen
- Auf „Vorwärts“ Modus schalten
- Drehzähler erhöhen
- Drehzähler zurücksetzen, wenn mehr als 20 Drehungen erfolgt sind
(also nächste Drehung wieder nach rechts)
- Sonst:
- Fehler!
- Anhalten
- Mähmotor ausschalten
- Status LED rot
Schleifensensor vorn ausgelöst (Schleife
verlassen)
- Anhalten
- Status LED gelb
- Odometrie zurücksetzen
- Auf „Rückwärts“ Modus schalten
Taste vorn ausgelöst
(angeeckt)
- Anhalten
- Status LED gelb
- Odometrie zurücksetzen
- Auf „Rückwärts“ Modus schalten
Winkel ermitteln
Robi wechselt zwischen kleinen und großen Winkeln alle 500
Programmdurchläufe. Die Anzahl der Programmdurchläufe wird nach 1000
Durchläufen zurückgesetzt. Der Drehwinkel wird mittels Zufallszahl im
unten angegebenen Bereich ermittelt.
Da nicht klar ist, wie weit das Rad vom nächsten
Odometriesensor entfernt ist, bedeuten
kleine Winkel eine Drehung zwischen 0 Grad und 60 Grad
große Winkel eine Drehung zwischen 40 Grad und 100 Grad.
LCD Anzeige Die LCD
Anzeige schaltet zwischen fünf Zeilen um. Es werden jeweils 2 der 5 Zeilen
im LCD Display angezeigt. Alle 20 Programmdurchläufe wird eine Zeile
weitergeschaltet.
Zeile 1
Anzeige der Historie der letzten 10
Programmdurchläufe und der Anzahl Programmdurchläufe (Cycles).
Beispiel:
TRRRRDDDDV C256
Wert |
Bedeutung |
V |
Vorwärts |
R |
Rückwärts |
D |
Drehen |
A |
Außerhalb der Schleife |
T |
Taste ausgelöst |
F |
Fehler |
Zeile 2
Anzeige des Batteriestatus, der
Odometrie links und der Odometrie rechts
Beispiel: B:916,L:6,R6
Zeile 3
Anzeige der Uhrzeit
Beispiel: 12:34:00
Zeile 4
Anzeige des aktuellen Modus
Beispiel: Standard
Modus |
Auslöser |
Standard |
IsSleepingTime=0 + IsBatterieLow=0 + IsInPowerStation=0 |
Schleife folgenB |
IsSleepingTime=0 + IsBatterieLow=1 + IsInPowerStation=0 +
HaveSeenIR=0 |
Schleife folgenS |
IsSleepingTime=1 + IsInPowerStation=0 + HaveSeenIR=0 |
Einparken B |
IsSleepingTime=0 + IsBatterieLow=1 + IsInPowerStation=0 +
HaveSeenIR=1 + Aktion=1 oder 2 (nach Hause fahren oder
einparken) |
Einparken S |
IsSleepingTime=1 + IsInPowerStation=0 + HaveSeenIR=1 + Aktion=1
oder 2 (nach Hause fahren oder einparken) |
Laden/Warten FE |
IsSleepingTime=0 + IsBatterieLow=0 + IsInPowerStation=1 +
IsCharged=0 |
Laden/Warten BL |
IsSleepingTime=0 + IsBatterieLow=1 + IsInPowerStation=1 |
Laden/Warten SL |
IsSleepingTime=1 + IsInPowerStation=1 |
Ausparken |
IsSleepingTime=0 + IsBatterieLow=0 + IsInPowerStation=1 +
IsCharged=1 |
Zeile 5
Anzeige der ausgelösten PINs Beispiel:
T1,S0,P0,C0,I0
PIN |
Bedeutung |
T |
Taster |
S |
Schleife |
P |
Ladestation |
C |
Aufgeladen |
I |
Infrarotsignal für
Einparken | |