Update ...
im Anhang noch mal das Grund-Konzept in einer besseren Auflösung.
Beschreibung der Baugruppen (Module) von links nach rechts
Lenk-Modul:
Nano als I2C-Slave
schreiben 1 Byte ' Drehrichtung und Winkel vom Lenkrad
76543210
Rwwwwwww
R = Richtung 1=Rechts / 0=Links
w = Wert als Winkel 0-90°
lesen 4 Byte ' Raum-Koordinate x / y 16Bit 65535 x 65535 cm ( +/- 320m )
Antrieb-Modul
Nano als I2C-Slave
schreiben 2 Byte
76543210 | 76543210
Raaaaaaa | Rbbbbbbb
R = Richtung 0=vorwärts / 1=Rückwärts
a = Motordrehzahl geregelt (linker-Motor) 0-127 / 0-100%
b = Motordrehzahl geregelt (rechter-Motor) 0-127 / 0-100%
bei Motordrehzahl =0 Motor-Brake
Weg-Strecke-Modul
Nano als I2C-Slave
lesen 6 Byte ' Zähler 24 Bit je Motor +/- 8388608 mm (~ +/- 8300m)
76543210 | 76543210 | 76543210 | 76543210 | 76543210 | 76543210
Vaaaaaaa | aaaaaaaa | aaaaaaaa | Vbbbbbbb | bbbbbbbb | bbbbbbbb
V = Vorzeichen 1=Negativ 0=positiv
a = 23 Bit Wert Motor(links)
b = 23 Bit Wert Motor(rechts)
schreiben 4 Byte ' Weg-Vorgabe 16Bit je Motor als Interrupt-Ausgang
76543210 | 76543210 | 76543210 | 76543210
aaaaaaaa | aaaaaaaa | bbbbbbbb | bbbbbbbb
a = 16 Bit Wert Motor(links)
b = 16 Bit Wert Motor(rechts)
Wert = 0 kein Interrupt, ansonsten wird ein Interrupt ausgegeben wenn ein Wert als Differenz erreicht wird
Mähwerk-Modul
Nano als I2C-Slave
Ansteuerung der Burshless-Treiber mit Drehzahlregelung und Sense für Strom
schreiben 1 Byte
76543210
abcwwwww
a = Mähwerk_1 vorn_links 1=an 0=aus
b = Mähwerk_2 vorn_rechts 1=an 0=aus
c = Mähwerk_3 Mitte 1=an 0=aus
w = Wert 0-31 Drehzahl-Vorgabe für alle Motoren
lesen 3 Byte ' je Motor 8Bit Status / Strom
Schleifen-Modul
Nano als I2C-Slave
lesen 8 Byte ' Status und Feldstärke
76543210 | 76543210 | 76543210 | 76543210 | 76543210 | 76543210 | 76543210 | 76543210
xxiiiiii | xxaaaaaa | P1111111 | P2222222 | P3333333 | P4444444 | P5555555 | P6666666
x = nicht verwendet
i = 1= Sensor in der Schleife 0= Sensor nicht in der Schleife
a = 1= Sensor außerhalb der Schleife 0= Sensor nicht außerhalb der Schleife
p = Polarität 0=positiv 1=negativ
1-6 = Wert Feldstärke 0-127 für jeden Sensor
zum einfachen erkennen der Schleife brauchen nur die ersten beiden Byte eingelesen werden
für die exakte Schleifen-Fahrt können noch die weiteren 6 Byte für die Feldstärke der Sensoren eingelesen werden.
Master-Modul
Nano als I2C-Master
Steuert die I2C-Slave_Module und hält die Verbindung zum PC
Führt Remote-Befehle vom PC halbautomatisch aus, bzw. Funktion Zufall-mähen / Schleifen-Rand-Fahrt(mähen) Vollautomatisch aus
jedes I2C-Slave-Modul bekommt ein Interrupt-Ausgang dieser wird einzeln oder als Sammelleitung vom Master abgefragt,
um so schnell auf Events der Slave zu reagieren ohne diese permanent über I2C zu pollen ...
PCF 8574 (I2C)
Zusätzliche Ein / Ausgänge für den Master
Der BOT bekommt als Eingabe ein Schlüssel-Schalter EIN-AUS-Reset und einen NOT-AUS-Botton,
als Ausgabe nur ein paar Status-LEDs und einen Summer(Hupe)
Zusätzliche Funktionen
z.B. Abstandsmessung können durch zusätzliche Module (I2C) problemlos nachgerüstet werden ...
Durch den Aufbau mit I2C-Nano-Modulen, kann ich die Einzelnen Funktionen am PC über einen I2C-Adapter super in Ihrer Funktion testen und fertig programmieren,
es werden auch so Zeitkritische Funktionen voneinander getrennt ...
- - - Aktualisiert - - -
Teil_Bilder Grund-Konzept ...
Lesezeichen