DiLi-Tech

Speedy

Translate from German into English (some links may be mistranslated, then turn back to the original site): 

Dieses war mein erstes Microcontroller-Projekt (learning by doing): ein "Bordcomputer" für den Motorroller meines Sohnes. Das war ein lang gehegter Wunsch von ihm. Als Einstiegsprojekt ganz schön ambitioniert - wie sich erst im Rahmen der Entwicklung herausstellte...

Hier die ersten Überlegungen: Timer/Counter2 (8 bit) wird als RTC (RealTimeClock) geschaltet: über einen ext. 32,768 kHz-Uhrenquarz wird so ein genauer Zeitmesser geschaffen; für den Rechentakt wird der interne RC-Generator bemüht (es gibt hier keine Anforderungen an Genauigkeit; der läuft bis 8MHz). Dieser Timer2 wird alle 500ms einen Interrupt erzeugen, mit dem der Timer/Counter0 (auch 8 bit) ausgelesen wird - der zählt nämlich direkt die Zündimpulse - ext. getriggert. Die Tacho-Funktion: Messung der Zeit für 1 Umdrehung mittels Timer/Counter1 (über eine Pufferstufe direkt vom 32,768 kHz-Quarz angesteuert). Es wird die Input-Capture-Funktion verwendet. Beim Eintreffen eines Impulses vom Radsensor wird der Zählerstand festgehalten. Dann lässt sich die Geschwindigkeit errechnen über die zeitlichen Abstände (es gibt wunderschöne Gleitkomma-Arithmetik im BASCOM Befehlsvorrat). Die Radumläufe werden aufaddiert - zum Kilometerzähler - und Tageskilometerzähler. Bei Powerdown müssen diese Werte im internen EEPROM gespeichert werden für den nächsten Start. Ist gedanklich schon fast fertig. Aber der Teufel steckt oft im Detail. Später also mehr.

Einige Tage später...

Inzwischen habe ich mich etwas weiter in die Materie eingearbeitet. Das Konzept steht, die Basisfunktionen gehen schon: Echtzeituhr, Messung des Motordrehzahl und Messung der Zeit für 1 Radumlauf mit anschl. Umrechnung. Hier der erweiterte Aufbau:

Fig. 1: Es läuft schon 'mal was...

Fig. 2: Hier eine (Test-) Ausgabe.
Die Anzeige wird später etwas anders aussehen - ist ja nur ein erster Test. Evtl. ist die Display-Größe auch zu gering und es finden dann große LEDs Verwendung - nur für U/Min + Km/h

Noch ein paar Tage später: die Software ist fertig ;-) - die 8 KByte Speicher des MegaAT8 sind zu 97 % voll! Leider passte die "Dragster"-Funktion (Messung von Zeit u. Strecke bis zum Erreichen einer eingestellten Geschwindigkeit) nicht mehr hinein. Da muss ich wohl auf einen größeren Controller umsteigen - ideal wäre der Mega168. Die Hardware ist vom Konzept fertig: hier das Schaltbild. Da fehlen noch die Schaltungen für die Pickup-Signalformung und die Verstärkung des Radsensorsignales. Daran habe ich bis jetzt noch keinen Gedanken verschwendet - bisher lief alles nur auf dem Labortisch: von Funktionsgeneratoren angetrieben. Nicht wundern über die Funktion von T1 - er soll nach Erkennen der abnehmenden Spannung (nach Ausschalten der Zündung) für ein sauberes Herunterfahren sorgen durch Kurzschließen der Restspannung nach vorherigem Abspeichern der letzten Daten ins Chip-interne EEPROM.

Fig. 3: Letzter Stand des Versuchsaufbaus: ziemlicher "Drahtverhau"

Es gibt schon weitere Visionen: wie wäre es z.B. mit einer GPS-Funktion? Die erhältlichen GPS-"Mäuse" liefern alles schon fix und fertig. Lediglich die Anzeige fehlt noch. Damit könnte neben der Position die Geschwindigkeit, die Bewegungsrichtung, die Höhe über dem Meeresspiegel und die genaue Uhrzeit angezeigt werden...

Nachsatz: inzwischen haben sich die Interessen meines Sohnes geändert. Er zeigt keinerlei Neigung, sich mit dem Thema weiter beschäftigen zu wollen. Somit ist dieses Projekt erst einmal gestoppt...

nach ganz oben

     Kommentieren Sie hier!