Asuro Roboter

Ich habe einen etwas betagten Asuro Roboter erworben.
Das Gerät wird über einen schwachbrüstigen AT Mega 8 gesteuert.

Ich überlege, was am besten wäre:
a) den AT Mega 8 ganz rausschmeißen und seine Ein-Ausgänge durch einen Arduino Mega übernehmen lassen. Das wäre sicherlich das einfachste.

b)⌡den AT Mega 8 drin lassen und ihm nur die hardwarenahe funktionnen, wie die Drehzahl der beiden Räder sicherstellen, und die Ein/Ausgänge durchführen lassen und die höherwertigere Steuerung einem ESP32 zu übertragen, der seriell mit dem AT Mega 8 kommuniziert.

Hat jemand schon so etwas gemacht?

Hier Asuro + Arduino - Roboternetz-Forum scheint das schon mal jemand versucht zu haben. (Google 1. Seite)
Allerdings hören sich die Antworten nicht so gut an

Nachtrag: Allerdings gibt es hier ein Video wo anscheinend genau das gemacht wurde (Erweiterung)
Evtl mal den Ersteller des Videos anschreiben?

Ich überlege, was am besten wäre:
a) den AT Mega 8 ganz rausschmeißen und seine Ein-Ausgänge durch einen Arduino Mega übernehmen lassen. Das wäre sicherlich das einfachste.

b)⌡den AT Mega 8 drin lassen und ihm nur die hardwarenahe funktionnen, wie die Drehzahl der beiden Räder sicherstellen, und die Ein/Ausgänge durchführen lassen und die höherwertigere Steuerung einem ESP32 zu übertragen, der seriell mit dem AT Mega 8 kommuniziert.

Kenne den Roboter überhaupt nicht.
Aber meine Idee wäre: Möglichkeit C) ?

Den ATMega8 durch einen ATMega328P ersetzen. Sollte Pin Kompatible sein.
Damit ist schon mal eine Vervielfachung des Speichers erreicht.
Einen Arduino Mega dann per I2C anbinden.

Oder sowas , sollte mit einem Stückchen Flachbandkabel in den Sockel passen.
Gibt noch ein paar ähnliche Erweiterungen

combie:
Kenne den Roboter überhaupt nicht.
Aber meine Idee wäre: Möglichkeit C) ?

Den ATMega8 durch einen ATMega328P ersetzen. Sollte Pin Kompatible sein.
Damit ist schon mal eine Vervielfachung des Speichers erreicht.
Einen Arduino Mega dann per I2C anbinden.

ja, sicher.

Die Überlegung, war ob es einfacher ist, alle Funktionen des Roboters von einem Arduino erledigen lassen und nur die Ein/Ausgänge zum Roboter verdrahten, oder ob es nicht doch besser wäre, die Geschwindigkeitsregulierung der Räder (mit Odometrie interruptgesteuert über Fotozellen) dem ATMega8 bzw.328P zu überlassen, und die höheren Steuerungsfunktionen von einem zweiten Arduino (bzw einen ESP32, der auch funken kann) erledigen zu lassen.
Die Asurino Bibliothek vereinnahmt sich zwei Timers, das ist nich so doll für die weitere Programmierung.

P.S. die Kommunikation über I2C klingt sexy aber ich hatte gesehen, dass es nich so einfach ist, den Arduino als I2C client zu programmieren...

nich so einfach, den Arduino als I2C client zu programmieren...

Ja, denn bei I2C gibt es gar keine clients, sondern Master und Slave. (Der Master bestimmt, wann etwas gemacht wird, und hat damit ungefähr die Rolle eines Client in einem Client-Server System)

Arduino auf atmega328-Basis kann bequem beide I2C Rollen übernehmen.

Funk/WLAN wäre ein anderes Thema: Da bietet sich ein separater Umsetzer WLAN - I2C an. Inwieweit der sinnvoll "höhere" Steuerungsfunktionen übernehmen kann, wäre zu überlegen...

aber ich hatte gesehen, dass es nich so einfach ist, den Arduino als I2C client zu programmieren...

Diese Erfahrung teile ich nicht.
Ganz im Gegenteil.

michael_x:
Funk/WLAN wäre ein anderes Thema: Da bietet sich ein separater Umsetzer WLAN - I2C an. Inwieweit der sinnvoll "höhere" Steuerungsfunktionen übernehmen kann, wäre zu überlegen...

Da würde ich übergeordnet einen ESP32 nehmen.
Ob jetzt über i2c oder seriell kommuniziert wird, wäre erstmals sekundär.
Man darf aber nich vergessen, dass die Asurino Bibliothek Timer 1&2 für sich braucht, die stehen dann für die I2C Bibliothek (als Slave) nicht mehr zur Verfügung.

Man darf aber nich vergessen, dass die Asurino Bibliothek Timer 1&2 für sich braucht, die stehen dann für die I2C Bibliothek (als Slave) nicht mehr zur Verfügung.

Wie kommt man auf so lustige Ideen?

Die Wire Library, also I2C/TWI, benötigt keine Timer

combie:
Wie kommt man auf so lustige Ideen?

Die Wire Library, also I2C/TWI, benötigt keine Timer

Die Master Library nicht, weil die Hardware diese Aufgabe übernimmt, aber doch die OWI Library als emulierten Slave?
Oder irre ich?

RIN67630:
Die Master Library nicht, weil die Hardware diese Aufgabe übernimmt, aber doch die OWI Library als emulierten Slave?
Oder irre ich?

OWI Library ?

United States Office of War Information

? ? ?


Die kann soviele Timer brauchen, wie es gibt...
Das hat auf I2C (eigentlich) keinen Einfluss.

combie:
OWI Library ?

DAS war mein Denkfehler! Danke.
Ja über TWI geht es, ich hatte OWI (One Wire Interface) im Kopf.