<-- zurück

Wie bereits im Abschnitt 'Elektronik' beschrieben, basiert die Steuerung auf einem ATmega 1284p, der mit 20 MHz getaktet wird. Der Prozessor besitzt 128k Flash-Speicher und 16k RAM. Damit sollte es zunächst einmal nicht mehr notwendig sein, auf optimierten Code zu achten.

Nicht alle Software-Komponenten habe ich selbst entwickelt. Die meisten basieren auf mehr oder weniger modifizierten, im Netz erhältliche Bibliotheken.

Dies ist eine Beschreibung des aktuellen Stands. Es sind noch einige ToDo's offen, weil noch nicht alle Komponenten optimal aufeinander abgestimmt (z.B. die Bewegungs- und Motor-Steuerung) oder implementiert sind (z.B. Berücksichtigung des Spindelspiels). Auch die elektrische Anbindung der Hardware-Komponenten kann so nicht bleiben. Es werden zu viele Pins benötigt. Aktuell fehlen mindestens noch Anschlüsse für Endschalter und für die Drehzahlkontrolle. Aber es funktioniert erst einmal. Ich scheue die Mühe, nach jeder geschlossenen Baustelle die Dokumentation zu ergänzen. Deshalb gibts es noch keinen öffentlich verfügbaren Code.

LCD: Die Steuerung basiert auf der "HD44780U LCD library" von Peter Fleury <pfleury@gmx.ch>. Es wurde einige Display-Optionen gestrichen um den Code ein wenig übersichtlicher zu machen. Einige Routinen wurden den Bedürfnissen angepasst (z.B.: kein Weiterschreiben in die nächste Zeile, Umlaut-Konvertierung) oder ergänzt (z.B.: Zeilenlöschen). Zur Vereinfachung wurde 'printf()' implementiert (wie gesagt, Code-Größe spielt keine Rolle).

USART: Eine minimalistische USART-Schnittstelle zur Textausgabe ebenfalls mit 'printf()'-Implementierung erlaubt es, auf komfortable Weise den Programmfluss zu protokollieren. Dies erleichtert das Debuggen wesentlich.

SD-Card: Die Zugriffe auf die SD-Card erfolgen über die Library von Roland Riegel. Einige Routinen mussten überarbeitet werden. Es gab u.a. eine Endlosschleife, die entfernt werden musste. Des weiteren wurden die Returncodes ein wenig gesprächiger gestaltet.

G-Code: Der G-Code-Paser basiert auf den Programmen von Simen Svale Skogsrud, eine für den Arduino geschriebener 'CNC milling controller'. Auch hier waren Anpassungen notwendig.

Motion: Die Bewegungssteuerung habe ich nur zu einem kleinen Teil aus der o.g. Bibliothek übernehmen können. Hier waren große Anpassungen notwendig. Insbesondere die Kreisfunktionen waren recht unbrauchbar.

Motor: Die Motorsteuerung ist eigentlich unproblematisch, aber aktuell noch nicht wirklich brauchbar (s.o.).

UI: Die Bedienung des Systems erfolgt ähnlich der des NXT.  'Links-Rechts' über den Encoder, ansonsten Tasten für OK, ESC und AUX.


<-- zurück