Mikrocomputer Lab 2.0
Verfasst: 26.05.2013, 12:33
Salut Bastelfreunde,
im vergangenen Jahr hatte ich mich an einem "Nachbau" des Mikrocomputer Labs 6400 auf Basis eines Mikrocontrollers gewagt - das war mein Einstieg in die Halbwelt aus Elektronik und Programmieren. Das gute Stück sieht schick aus - aber leider kam es in der Praxis deutlich seltener zum Einsatz als ich mir das vorgestellt hatte. Der Hauptgrund dafür ist einerseits, dass viele Eingänge des Controllers bereits durch interne Eingabe- und Anzeigelemente belegt sind: Tastatur, LEDs, LCD-Anzeige. Zum anderen fängt man bei der Entwicklung irgendwie immer bei Null an - alles muss aufwändig jedesmal neu zusammengesetzt werden.
Also begann ich mit einem kompletten Neudesign eines Mikrocomputer Labs - so, wie ich es heute bauen würde, um möglichst rasch damit experimentieren zu können. Dazu müssen vor allem möglichst alle Anschlüsse verfügbar sein - diese haben oft spezielle Sonderfunktionen (Timer, A/D-Wandler, ...), die man nicht einfach deligieren kann. Das Ergebnis möchte ich Euch hier vorstellen.
Das "Mikrocontroller Lab" basiert auf der Idee einer intelligenten Grafik- und Eingabeeinheit, die mit dem Mikrocontroller über ein serielles Interface kommunizieren. Dieses serielle Interface haben die meisten Mikrocontroller bereits an Bord, und es erfordert nur zwei Drähte, einen für eingehende und einen für ausgehende Kommandos. Die Grundprinzipien hatte ich bereitsan anderer Stelle dargestellt.
Die Grafik kann dafür in verschiedene Modi geschaltet werden: Terminal (reine Textausgabe mit wählbarer Farbe), Messwerterfassung (fortlaufende Messwerte mit frei wählbarer Taktung), freie Grafik (Linien, Punkte, Rechtecke, Text, alles in 256 Farben), LED-Anzeigen wie beim MC6400 (Ampel, 8-LED-Array), Balkenanzeige (bis zu 8 Balken in wählbaren Farben) aber auch Eingabeelemente wie Menüs (bis zu 5 Einträge), Dialogboxen (OK/Abbrechen, Ja/Nein, Zurück/Weiter), Tastaturen (numerisch, alphanumerisch und frei definierbar) zur Eingabe von Werten und Texten sowie Schieberegler zum Festlegen von Werten.
Als Eingabeelemente bleiben nur drei Tasten übrig: Zurück, OK und Weiter. Für alles weitere ist ein Touchscreen an Bord, der mit der Grafik kommuniziert und beispielsweise bereits die richtigen Felder liefert, wenn die Grafik eine Tastatur anzeigt oder Koordinaten, wenn auf dem Bildschirm feinere Elemente dargestellt werden sollen (Zeichnen, Schieberegler).
Auf dem Experimentier-Mikrocontroller bleiben damit fast alle Anschlüsse frei verfügbar. Beim Programmieren hilft eine Bibliothek, die Grafik und Eingabe zusammenbringt (damit beim Berühren von "OK" auch das richtige passiert). Diese stellt dann Funktionen bereit wie "MessageBox", deren Aufruf automatisch eine Dialogbox anzeigt oder "Keyboard", das eine Tastatur zur Anzeige bringt und die eingegebenen Daten zurückliefert. Nur der serielle Anschluss (zwei Pins) und ein weiterer Pin (B4) sind belegt - letzterer soll in den nächsten Tagen einen SD-Karten-Slot ansteuern, der derzeit noch auf dem Weg von China hierher ist. Selbst bauen lohnt bei diesen Komponenten nicht mehr - inklusive Transport kostet die komplette SD-Platine mit Spannungsregler, Slot und allem Drumherum gerade mal 2€... Mit dem SD-Karten-Slot besteht dann die Möglichkeit, einzelne Programme direkt von der SD-Karte auszuführen.
Ich habe beim Aufbau Wert auf möglichst einfache Nachbaubarkeit gelegt. Die Hauptplatine ist einseitig und hauptsächlich mit DIL-Bausteinen bestückt. Die Spannungsversorgung wird durch Fertigbausteine (Step-Down-Konverter) aus China geleistet, die man im Zehnerpack für 1,30€ bekommt - die Einzelteile sind hier schon teurer. Alle Anschlüsse werden mit Steckverbindern hergestellt. Der Bildschirm samt Touchscreen stammt ebenfalls aus China und kostet ungefähr 40€. Ein Stereoverstärker aus Basis des TDA1519 stellt Line-In-Anschlüsse (3,5"-Klinke und auf der Pultoberseite) zur Verfügung und kann über ein Stereopotentiometer geregelt werden.
Das Pult selbst besteht nur aus den zwei Platinen, die links und rechts vom Bildschirm die Bedienelemente tragen. Es sind dies links der Ein/Aus-Schalter, ein freies 10-kOHm-Poti, ein Taster sowie der Reset-Schalter für den Mikrocontroller. Rechts finden sich der Displayumschalter (intern AV, extern AV), das Stereopoti für die Lautstärke und die drei Taster. Auf beiden Seiten ist außerdem ein kleiner 8Ohm/1W-Lautsprecher eingebaut. Bei den Anschlüssen zur Experimentier-Grundplatte habe ich auf Klemmfedern verzichtet und statt dessen komplett auf Schraubklemmen gesetzt. Alles in allem lässt sich der Nachbau für weniger als 100 € umsetzen.
Ich habe dann ein Beispielprogramm geschrieben, um die einzelnen Funktionen zu testen (und jede Menge Fehler zu entfernen). Weiter unten finden sich ein paar Fotos, die die einzelnen Modi und Funktionen zeigen. Zwei Funktionen habe ich im Video festgehalten: Die "Messwerterfassung" zeigt, wie ein angeschlossener Spannungsteiler aus LDR und 10-kOhm-Widerstand auf unterschiedliche Lichtverhältnisse reagiert. Es ist dabei gut die Interferenz zwischen Abtastrate (50ms) und der Licht-Wechselfrequenz der LED-Birne zu erkennen. Das zweite Video zeigt das Zeichen auf dem Bildschirm (das übrigens programmtechnisch keine Kunst ist) und die Auswahl der Farben. Der Grafikspeicher ist groß genug für mehrere Bildschirmseiten, daher wird die Zeichnung beim Aufruf der Farbauswahl nicht zerstört.
Zu den Quellen: Die Grundidee mit der intelligenten Grafik stammt aus dem Mikrocontrollerforum, die Touchscreen-Ansteuerung stellt Atmel selbst zur Verfügung. Der Rest stammt von mir. Ich werde die Beschreibung, Bilder und die Sourcecodes nach und nach im Wiki ergänzen.
Und nun freue ich mich darauf, alten EE200x-Mess-Schaltungen neues Leben einzuhauchen, Sensoren anzusteuern, MP3-Player zu bauen...
Einen schönen Sonntag wünscht
JeanLuc7
im vergangenen Jahr hatte ich mich an einem "Nachbau" des Mikrocomputer Labs 6400 auf Basis eines Mikrocontrollers gewagt - das war mein Einstieg in die Halbwelt aus Elektronik und Programmieren. Das gute Stück sieht schick aus - aber leider kam es in der Praxis deutlich seltener zum Einsatz als ich mir das vorgestellt hatte. Der Hauptgrund dafür ist einerseits, dass viele Eingänge des Controllers bereits durch interne Eingabe- und Anzeigelemente belegt sind: Tastatur, LEDs, LCD-Anzeige. Zum anderen fängt man bei der Entwicklung irgendwie immer bei Null an - alles muss aufwändig jedesmal neu zusammengesetzt werden.
Also begann ich mit einem kompletten Neudesign eines Mikrocomputer Labs - so, wie ich es heute bauen würde, um möglichst rasch damit experimentieren zu können. Dazu müssen vor allem möglichst alle Anschlüsse verfügbar sein - diese haben oft spezielle Sonderfunktionen (Timer, A/D-Wandler, ...), die man nicht einfach deligieren kann. Das Ergebnis möchte ich Euch hier vorstellen.
Das "Mikrocontroller Lab" basiert auf der Idee einer intelligenten Grafik- und Eingabeeinheit, die mit dem Mikrocontroller über ein serielles Interface kommunizieren. Dieses serielle Interface haben die meisten Mikrocontroller bereits an Bord, und es erfordert nur zwei Drähte, einen für eingehende und einen für ausgehende Kommandos. Die Grundprinzipien hatte ich bereitsan anderer Stelle dargestellt.
Die Grafik kann dafür in verschiedene Modi geschaltet werden: Terminal (reine Textausgabe mit wählbarer Farbe), Messwerterfassung (fortlaufende Messwerte mit frei wählbarer Taktung), freie Grafik (Linien, Punkte, Rechtecke, Text, alles in 256 Farben), LED-Anzeigen wie beim MC6400 (Ampel, 8-LED-Array), Balkenanzeige (bis zu 8 Balken in wählbaren Farben) aber auch Eingabeelemente wie Menüs (bis zu 5 Einträge), Dialogboxen (OK/Abbrechen, Ja/Nein, Zurück/Weiter), Tastaturen (numerisch, alphanumerisch und frei definierbar) zur Eingabe von Werten und Texten sowie Schieberegler zum Festlegen von Werten.
Als Eingabeelemente bleiben nur drei Tasten übrig: Zurück, OK und Weiter. Für alles weitere ist ein Touchscreen an Bord, der mit der Grafik kommuniziert und beispielsweise bereits die richtigen Felder liefert, wenn die Grafik eine Tastatur anzeigt oder Koordinaten, wenn auf dem Bildschirm feinere Elemente dargestellt werden sollen (Zeichnen, Schieberegler).
Auf dem Experimentier-Mikrocontroller bleiben damit fast alle Anschlüsse frei verfügbar. Beim Programmieren hilft eine Bibliothek, die Grafik und Eingabe zusammenbringt (damit beim Berühren von "OK" auch das richtige passiert). Diese stellt dann Funktionen bereit wie "MessageBox", deren Aufruf automatisch eine Dialogbox anzeigt oder "Keyboard", das eine Tastatur zur Anzeige bringt und die eingegebenen Daten zurückliefert. Nur der serielle Anschluss (zwei Pins) und ein weiterer Pin (B4) sind belegt - letzterer soll in den nächsten Tagen einen SD-Karten-Slot ansteuern, der derzeit noch auf dem Weg von China hierher ist. Selbst bauen lohnt bei diesen Komponenten nicht mehr - inklusive Transport kostet die komplette SD-Platine mit Spannungsregler, Slot und allem Drumherum gerade mal 2€... Mit dem SD-Karten-Slot besteht dann die Möglichkeit, einzelne Programme direkt von der SD-Karte auszuführen.
Ich habe beim Aufbau Wert auf möglichst einfache Nachbaubarkeit gelegt. Die Hauptplatine ist einseitig und hauptsächlich mit DIL-Bausteinen bestückt. Die Spannungsversorgung wird durch Fertigbausteine (Step-Down-Konverter) aus China geleistet, die man im Zehnerpack für 1,30€ bekommt - die Einzelteile sind hier schon teurer. Alle Anschlüsse werden mit Steckverbindern hergestellt. Der Bildschirm samt Touchscreen stammt ebenfalls aus China und kostet ungefähr 40€. Ein Stereoverstärker aus Basis des TDA1519 stellt Line-In-Anschlüsse (3,5"-Klinke und auf der Pultoberseite) zur Verfügung und kann über ein Stereopotentiometer geregelt werden.
Das Pult selbst besteht nur aus den zwei Platinen, die links und rechts vom Bildschirm die Bedienelemente tragen. Es sind dies links der Ein/Aus-Schalter, ein freies 10-kOHm-Poti, ein Taster sowie der Reset-Schalter für den Mikrocontroller. Rechts finden sich der Displayumschalter (intern AV, extern AV), das Stereopoti für die Lautstärke und die drei Taster. Auf beiden Seiten ist außerdem ein kleiner 8Ohm/1W-Lautsprecher eingebaut. Bei den Anschlüssen zur Experimentier-Grundplatte habe ich auf Klemmfedern verzichtet und statt dessen komplett auf Schraubklemmen gesetzt. Alles in allem lässt sich der Nachbau für weniger als 100 € umsetzen.
Ich habe dann ein Beispielprogramm geschrieben, um die einzelnen Funktionen zu testen (und jede Menge Fehler zu entfernen). Weiter unten finden sich ein paar Fotos, die die einzelnen Modi und Funktionen zeigen. Zwei Funktionen habe ich im Video festgehalten: Die "Messwerterfassung" zeigt, wie ein angeschlossener Spannungsteiler aus LDR und 10-kOhm-Widerstand auf unterschiedliche Lichtverhältnisse reagiert. Es ist dabei gut die Interferenz zwischen Abtastrate (50ms) und der Licht-Wechselfrequenz der LED-Birne zu erkennen. Das zweite Video zeigt das Zeichen auf dem Bildschirm (das übrigens programmtechnisch keine Kunst ist) und die Auswahl der Farben. Der Grafikspeicher ist groß genug für mehrere Bildschirmseiten, daher wird die Zeichnung beim Aufruf der Farbauswahl nicht zerstört.
Zu den Quellen: Die Grundidee mit der intelligenten Grafik stammt aus dem Mikrocontrollerforum, die Touchscreen-Ansteuerung stellt Atmel selbst zur Verfügung. Der Rest stammt von mir. Ich werde die Beschreibung, Bilder und die Sourcecodes nach und nach im Wiki ergänzen.
Und nun freue ich mich darauf, alten EE200x-Mess-Schaltungen neues Leben einzuhauchen, Sensoren anzusteuern, MP3-Player zu bauen...
Einen schönen Sonntag wünscht
JeanLuc7