Mikrocomputer Lab 2.0

alles was sich auf den ganzen Kasten oder eine Kastenserie bezieht

Moderator: suntri

Antworten
Benutzeravatar
JeanLuc7
Fast schon Admin
Fast schon Admin
Beiträge: 632
Registriert: 09.02.2011, 16:07
Wohnort: Berlin
Kontaktdaten:

Mikrocomputer Lab 2.0

Beitrag von JeanLuc7 »

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
Dateianhänge
Totale von vorn.JPG
Totale von vorn.JPG (198.47 KiB) 5442 mal betrachtet
Totale von vorn.JPG
Totale von vorn.JPG (198.47 KiB) 5442 mal betrachtet
Frontansicht.jpg
Frontansicht.jpg (171.64 KiB) 5442 mal betrachtet
Frontansicht.jpg
Frontansicht.jpg (171.64 KiB) 5442 mal betrachtet
Hauptplatine gedimmt.jpg
Hauptplatine gedimmt.jpg (239.47 KiB) 5442 mal betrachtet
Hauptplatine gedimmt.jpg
Hauptplatine gedimmt.jpg (239.47 KiB) 5442 mal betrachtet
IMG_5357.JPG
IMG_5357.JPG (172.19 KiB) 5442 mal betrachtet
IMG_5357.JPG
IMG_5357.JPG (172.19 KiB) 5442 mal betrachtet

Benutzeravatar
JeanLuc7
Fast schon Admin
Fast schon Admin
Beiträge: 632
Registriert: 09.02.2011, 16:07
Wohnort: Berlin
Kontaktdaten:

Re: Mikrocomputer Lab 2.0

Beitrag von JeanLuc7 »

Und noch ein paar Bilder von den Funktionen...
Dateianhänge
Modus 1.png
Modus 1.png (852 KiB) 5441 mal betrachtet
Modus 1.png
Modus 1.png (852 KiB) 5441 mal betrachtet
Modus 2.png
Modus 2.png (907.29 KiB) 5441 mal betrachtet
Modus 2.png
Modus 2.png (907.29 KiB) 5441 mal betrachtet
Modus 3.png
Modus 3.png (887.53 KiB) 5441 mal betrachtet
Modus 3.png
Modus 3.png (887.53 KiB) 5441 mal betrachtet

Benutzeravatar
Ingo63
Fast schon Admin
Fast schon Admin
Beiträge: 615
Registriert: 25.12.2012, 19:05
Wohnort: Kaltenkirchen SH

Re: Mikrocomputer Lab 2.0

Beitrag von Ingo63 »

Hallo Frank,
ich bin begeistert, werde dieses Projekt intensive verfolgen auch wenn ich den Überblick bald verliere. Habe viel zu viele Baustellen offen. Und jetzt habe ich auch noch einen Raspberry geschenkt bekommen, muss wohl warten.
Freue mich auf deine Beiträge in der WIKI.
MfG
Ingo
_____________________________________________________________________________
Und werft nie ein Q wenn ihr die Folgen nicht abschätzen könnt ( frei nach Douglas Adams ).

wolfgang
Fast schon Admin
Fast schon Admin
Beiträge: 768
Registriert: 26.03.2009, 09:48
Wohnort: Karlsruhe

Re: Mikrocomputer Lab 2.0

Beitrag von wolfgang »

Hallo JeanLuc,

immer wieder klasse deine Projekte. Auf die Idee mit den virtuellen LEDs muss man erst mal kommen.

Sag mal, wo nimmst Du die Zeit her für solche aufwändigen Arbeiten? Ich schaffe noch nicht mal meinen Bargraph zusammen zu löten.

Gruß
Wolfgang

Benutzeravatar
JeanLuc7
Fast schon Admin
Fast schon Admin
Beiträge: 632
Registriert: 09.02.2011, 16:07
Wohnort: Berlin
Kontaktdaten:

Re: Mikrocomputer Lab 2.0

Beitrag von JeanLuc7 »

Salut Wolfgang, Ingo,

das mit der Zeit ist natürlich so eine Sache... Dieses Projekt reifte hier seit mehreren Monaten, wobei immer mal wieder einzelne Komponenten bereits ausprobiert wurden. Und immer, wenn ich nicht weiterkam, habe ich es ruhen lassen, weil ich eine runde Lösung für ein Experimentierboard haben wollte. Mal abgesehen, dass dieses Teil höchstwahrscheinlich ewig ein Prototyp und Einzelstück bleiben wird - es wäre wirklich eine gute Möglichkeit, den heutigen Nachwuchs an aktuelle Elektronik heranzuführen. Gerade im Bereich der Industrielektronik sind diese Kenntnisse aus der Halbwelt zwischen Elektronik und Computer sehr gefragt.

Ansonsten: Wir sind beide berufstätig, haben aber keine Kinder - von daher kann ich in dieses Hobby ein gutes Stück meiner Freizeit investieren. Und ich habe zudem auch das Glück, keine kritischen Blicke zu ernten, wenn mal wieder ein Paket von ebay (Experimentierkasten) oder Reichelt (Einzelteile) hier eintrifft. Es ist halt von Vorteil, wenn beide ein Hobby mit gewissem Zeitbedarf haben - diese Hobbys aber im selben Raum stattfinden können.

Die Dokumentation im Wiki ist übrigens weitgehend fertig, bloß am Schaltplan arbeite ich noch.

Grüße, JL7

Benutzeravatar
JeanLuc7
Fast schon Admin
Fast schon Admin
Beiträge: 632
Registriert: 09.02.2011, 16:07
Wohnort: Berlin
Kontaktdaten:

Webserver für Mikrocontroller-Lab

Beitrag von JeanLuc7 »

Nachdem ich das gute Stück nun ein paar Wochen im Betrieb hatte, habe ich begonnen, ein paar Zusatzmodule zu entwickeln. Eins davon erlaubt den Anschluss des Labs an das lokale Ethernet-Netzwerk. Die Grundlagen dazu stammen von Ulrich Radig, dessen Projekt AVR Net-IO inzwischen in einem eigenen Forum von vielen Entwicklern weitergeführt wird. Die Hardware stammt ursprünglich von Pollin, wurde durch das Forum inzwischen aber auch bereits modifiziert.

Bereits mein erster Versuch, der AVRNet, enthielt eine Ethernet-Schnittstelle, die aber aus unterschiedlichen Gründen immer abgeschaltet blieb. Mit dem neuen Lab habe ich eine Art Bus eingeführt, der die nötigen Verbindungen über eine einfache 10-polige Steckverbindung nach außen liegt. Damit sollten sich alle Komponenten ansteuern lassen, die das SPI-Interface des AVR nutzen. Beispiele dafür sind auch elektronische Potentiometer, D/A-Wandler und Displays.

Hier soll aber zunächst die Erweiterung "Webserver" beschrieben werden. Kurzgefasst versteht man darunter die Möglichkeit, Schaltvorgänge nicht bloß lokal am Gerät zu steuern, sondern auch über das Netzwerk (TCP/IP) auf einem beliebigen Computer über dessen Internet-Browser. Die Platine besteht hauptsächlich aus dem SPI-fähigen Baustein ENC28J60, der mit 3,3V betrieben wird und ansonsten mit sehr wenig Umbeschaltung auskommt. Die Betriebsspannung wird nicht - wie ursprünglich vorgesehen und an den drei Löchern auf der Plaine noch zu erkennen - von einem eigenen Spannungswandler geliefert, sondern stammt direkt vom im Lab verbauten Spannungswandler. Der zunächst verbaute Wandler vom Typ 3940 erzeugte eine unsaubere Gleichspannung, weshalb der Webserver längere Zeit nicht funktionieren wollte. Mit einem Oszilloskop konnte der Fehler schließlich eliminiert werden.

Die Software ist bis jetzt noch die Originalversion aus dem Net-IO-Forum; bisher habe ich nur die serielle Übertragungsrate angepasst - Standard waren 9600 bit/s, hier sind es 19.200 bit/s. Die Software erlaubt das Schalten von vier Eingängen - die LEDs im Bild unten verlöschen, wenn man das zugehörige Kreuz auf der Webseite entfernt. Außerdem können vier analoge Ausgänge A0-A3 ausgelesen werden - an A0 hängt bei mir der LDR. Wenn man ihn abdunkelt, zeigt die Webseite das an. Außerdem kann die Software bereits die Uhrzeit von einem NTP-Server (Uhrzeitserver) im Internet auslesen - daher stammt die DATE-Angabe auf dem Bildschirm.

Damit ist es jetzt also möglich, Messvorgänge über das Netzwerk zu kontrollieren und Elemente ein- bzw. auszuschalten. Die nächste Aufgabe wird daher sein, die Software den Möglichkeiten des Lab anzupassen - mehr Grafik, mehr Bedienung.

Es grüßt herzlich und wünscht ein schönes Badewochenende

JL7


P.S. So langsam entwickelt sich das ganze tatsächlich zu einer ganzen Baukastenserie - mit dem SPI-Bus lässt sich aber auch recht viel machen. Weitere Projekte, wenn es wieder kühler wird: SD-Kartenslot (zum Nachladen von Programmen), MP3-Player (Musik von SD), elektronische Regler (Potentiometer, D/A-Wandler) und natürlich die Ansteuerung von Sensoren.
Dateianhänge
IMG_5492.JPG
IMG_5492.JPG (176.33 KiB) 5209 mal betrachtet
IMG_5492.JPG
IMG_5492.JPG (176.33 KiB) 5209 mal betrachtet
IMG_5495.JPG
IMG_5495.JPG (218.02 KiB) 5209 mal betrachtet
IMG_5495.JPG
IMG_5495.JPG (218.02 KiB) 5209 mal betrachtet
IMG_5497.JPG
IMG_5497.JPG (305.49 KiB) 5209 mal betrachtet
IMG_5497.JPG
IMG_5497.JPG (305.49 KiB) 5209 mal betrachtet
IMG_5505.JPG
IMG_5505.JPG (213.67 KiB) 5209 mal betrachtet
IMG_5505.JPG
IMG_5505.JPG (213.67 KiB) 5209 mal betrachtet

Antworten

Zurück zu „Systeme, Prospekte, Kästen, Restaurationen“