Das Problem ist auch die Datenspeicherung...

Wenn du die Daten in den EEPROM speicherst hast du zwar in der Regel dafür genug Platz (4MB beim Mega12 aber 2 Punkte geben mir zu denken.

Der AVR benögt ca. 9ms für das Schreiben eines Bytes in den EEPROM und ab 100.000 Lösch-Schreibzyklen sinkt dann auch noch die Lebenserwartung deines EEPROMs...

Nehmen wir an du setzt 7 Sensoren ein (1US, 2 Inkrementaldrehscheiben für jede Kette und 4 SHARP-Sensoren).


Um Kartenpunkte festzuhalten musst du dir außerdem ein System überlegen, wie du die Daten so aufbereitest und im EEPROM ablegst dass daraus eine Karte entsteht. Mit bloßen Sensorwerten ist das nicht getan. Das heist, dass ein Wert eines Sensors würde ich tippen 5Bytes einnimmt.

Bei 7 Sensoren sind das 5*7 = 35Bytes, um 35 Bytes zu schreiben brauchst du ca. 310ms Zeit. (eine drittel Sekunde!) In dieser Zeit werden nur die Werte gespeichert! Dein AVR tut derweilen nichts anderes.
Naja, das ist noch nicht so wild...

Viel bemerkenswerter sind die 100.000 Zyklen, die der EEPROM mitmacht bevor nicht mehr gewährleistet ist, dass er tadelos funktioniert.

Um eine einigermaßen brauchbare Kartierung zu erstellen solltest du (je nach Geschwindigkeit des Roboters) alle 2 Sekunden die Sensorwerte festhalten. Das heist alle 2 Sekunden finden 35 Schreibvorgänge statt. In einer Stunde (!!) Betrieb bführt damit der AVR schon über 60.000 Schreibzyklen aus....da kannste ausrechnen wie lang dir der EEPROM das mitmacht...

...im Endeffekt auch nur eine kleine Zahlenspielerei aber auch solche Dinge sollte man berücksichtigen.