Software
Arduino
Ich habe mit der direkten Programmierung der uC begonnen (Z80, 8032,
8051, 80C166, PIC, AVR) , in C oder Assembler. So hatte ich immer die
volle Kontrolle über die SW. Allerdings mußte ich mir auch
alles erst finden oder selber schreiben. Der Arduino wird oft als nicht
so ernstzunehmendes Spielzeug abgetan. Wenn es um sehr zeit- oder
resourcenkritische Anwendungen geht, ist es auch nicht der ideale Weg.
Und die AVRs sind oft etwas eingeschränkt bei der Peripherie und
den Timern. Für eine schnelle Entwicklung dagegen hat es viele
Vorteile:
- eine IDE, die nicht sehr modern ist, aber alles inkludiert
- meist kein Programmer nötig, USB reicht. Direkt über
ISP geht aber auch über die IDE.
- die Umgebung funktioniert auch für reine uC Lösungen
ohne Arduino HW, serielle oder USB Schnittstelle und mit anderen
Taktraten, solange ein ISP Anschluß vorhanden ist.
- einfaches Framework (setup() loop() ), viele Funktionen in der
Sprache oder als vorinstallierte Bibliotheken
- IOPorts mit generalisierten Namen und einzeln ansprechbar. Das
ist etwas langsamer, aber einfacher und ändert sich nur wenig
über unterschiedliche Prozessoren.
- große Community - es gibt für fast jede HW schon eine
fertige Library
- relativ HW unabhängig. Man kann eine SW, die nicht zu
spezielle Aspekte der HW benötigt oder verwendet, für
unterschiedliche Prozessoren direkt kompilieren, von ATTiny über
AVR(mega) bis zum ARM
- die Entwicklung geht sogar über eine Website ohne eigene
Installation (noch nicht probiert)
- offene HW, damit gibt es sehr viele günstige Nachbauten und
Shields
- einfache Geräte, HW Tests oder Prototypen sind sehr schnell
fertigzustellen. Für eine Zeitschaltuhr braucht man nur Display
und Tasten über Kabel oder als Shield, eine Lib dazu, eine Lib
für Zeithandling und wenige Zeilen Code.
Rotary Encoder
Es gibt zwar einige Codes/Bibliotheken dazu. Die gefielen mir aber
nicht. Mein Code läßt sich für unterschiedliche Pins
benutzen, solange sie mit "PinChangeInterrupt" (muß installiert
sein) als Interrupt zu setzen sind. Weiters kann ich einfach Drehgeber
nutzen, die einen oder zwei Pulswechsel pro Stufe liefern.
Außerdem kann ich den Bereich des Ausgangswertes vorgeben. D.h.
Minwert, Maxwert, Stufen, Überlauf auf beiden Seiten. Damit kann
ich in der Anwendung z.B. sehr einfach ein Menu mit 4 Positionen
behandeln (1->4, Stufe 1, Überlauf oben und unten, Startwert:
gewünschter erster Menupunkt). Diese Einstellung läßt
sich jederzeit neu setzen für das nächste Menu oder einen
Einstellwert (z.B. 0->100 (%), Stufe 5, keine Überläufe,
Startwert: letzter eingestellter Wert). Es ist noch keine formale
Arduino Lib, aber einfach zu nutzen.
Drehgeber Lib und Beispiel
Für die bessere Funktion der Rückfahrkamera im Wohnmobil
dient dieses
Projekt: Rückfahrkameracontroller
ATTiny direkt in C
Für die Ansteuerung der elektrischen Stufe im Wohnmobil habe ich
das entworfen: Trittstufenautomatik.
Links
nach oben