Willkommen!

Herzlich willkommen auf meinem Blog. Hier schreibe ich Neuigkeiten zu meinen Projekten und Erfahrungen in verschiedenen technischen Bereichen. Dies werden hauptsächlich Hobbysachen sein, können aber auch kritische Texte zu aktuellen Ereignissen in meinem Leben sein.

P.S. Spam-Kommentare werden nicht veröffentlicht, versucht es erst gar nicht ;)

Leave a comment

Reinkarnation

Es scheint, als wenn sich alles wieder zum Guten wendet. Nach dem letzten Sommer wurde das Kugelrechner-Projekt lange Zeit eingemottet. Im Winter begann ich mit der Reparatur der gebrutzelten LED-Platinchen. Anfang des neuen Jahres hatte ich dann alle Leds getauscht, Heißluft konnte da wahre Wunder bewirken :)

Und mit diesem erfolgreichen Test hatte ich auch wieder Freue an der Entwicklung. Als Konsequenz daraus habe ich beschlossen, dass die Treiberplatinen komplett neu gebaut werden, diesmal aber mit mehreren Sicherheitsfeatures:

  • Polyswitches zur Strombegrenzung (PTC-Widerstand)
  • Z-Dioden zum Schutz vor Überspannung (würden durch den resultierenden Überstrom die Polyswitches auslösen)
  • Lötstopplack, um Brücken zwischen kritischen Bereichen zu verhindern

Das ganze soll ebenfalls überwiegend mit SMT-Bauteilen aufgebaut werden, um den Formfaktor zu verkleinern. Für Experimente verwende ich weiterhin die konventionell bestückten Platinen … womit ich zu dem neusten Erfolgserlebnis komme:

letztes Jahr hatte ich eine sehr komplexe und aufwendige MODBUS-Version für Arduino verwendet, um die Platinen miteinander per RS485 zu vernetzen. Da ich mit diesem (für Einsteiger komplexen) System nicht vertraut war, machte die Arbeit daran nicht wirklich Spaß. Vor ein paar Tagen hatte ich per Zufall ein einfacheres System gefunden, die “Arduino Inter-Chip Serial Communication” Bibliothek. Das Teil hat wenige, einzustellende Parameter für den Endanwender, den Rest übernimmt ein Protokoll im Hintergrund (sogar mit Checksumme). Der Kontakt mit dem Autor verlief sehr positiv, denn nun entwickelt er ein paar neue Features, die z.B. ein Broadcast für alle Teilnehmer im Bus ermöglichen :D
Ursprünglich war eine Platine gedacht, die eine direkte Verbindung des PCs mit dem Bus herstellen sollte:

Aus Mangel an Basismaterial für Platinen habe ich erstmal eine kleinere Variante auf Lochraster aufgebaut:

Man kann die Stecker direkt z.b. an einen Arduino Uno stecken und los geht’s. Einziger Nachteil ist im Moment, dass die verwendete Bibliothek derzeit nur serielle Hardwareschnittstellen mag, Softwarelösungen sind so nicht möglich. Das erschwert etwas die Kommunikation mit dem PC, aber bald gibt es ja das gerenderte Platinchen oben, dann gehört das der Vergangenheit an ;)

Leave a comment

Neue (alte) Projekte

Nach dem Desaster mit dem Kugelrechner habe ich beschlossen, dass erstmal ein paar kleinere Projekte laufen werden. Derzeit läuft im Labor wieder die Diskussion über Stromsparmaßnahmen. In diesem Rahmen werde ich ein stillgelegtes Projekt reaktivieren: die elektronische Steuerung der Rollos (OpenBlind). In diesem Zusammenhang werde ich die Steuerung vom Kugelrechner etwas umstricken und für die Motorsteuerung einsetzen. Weitere Infos folgen noch.

Desweiteren arbeite ich mich aktuell wieder in Java ein. Mein Ziel ist langfristig die Fertigstellung meines Mods “PortIO” für Minecraft, um die gegenseitige Steuerung von Blöcken und Elektronik (Arduino?) zu ermöglichen. Eine nicht veröffentlichte Demo gibt es ja schon, die ist aber auf dem Stand der Beta 1.7.3 von Minecraft – nicht sehr zeitgemäß. Dazu kommen auch noch mehr Informationen in den kommenden Wochen.

Leave a comment

Rise and fall …

Hi,

in den letzten Wochen ist so unglaublich viel schönes und trauriges passiert in Sachen Kugelrechner, dass ich erstmal die Kurzfassung schreibe: Die Elektronik wurde beinahe fertig, ist aber bei der Generalprobe fast völlig zerstört worden. Wie das geht? Dazu komme ich später noch. Hier erstmal die Ereignisse in Text, Bild und Video …

 

Kurz vor Beginn meines Urlaubs Ende Juli hatte ich alle Pläne ausgearbeitet für die einzelnen Komponenten des Kugelrechners. So begann ich mit den Platinen für die ganzen Leuchtdioden (144 für die Außenbeleuchtung). Aufgrund der schieren Masse an Arbeit hatte ich diesen Schritt an den Anfang gesetzt. Wie sich zeigte, war diese Entscheidung wohl gewählt, denn die komplette Dauer der Montage betrug fast 2 Wochen (incl. Redesign der ersten Platinenversion, ätzen, bohren, schleifen, Kabel verzinnen, löten, und chrimpen).

Erste Version der DycoLed Platine

Wurde so nur 8 mal aufgebaut und wird zum testen von neuen Animationen und Effekten verwendet.

Alles verlötet und angeschlossen

Die Flachbandkabel sind eine gute Idee gewesen. Nicht zu steif und nicht zu weich ;)

Video: Testlauf der Testplatinen für die DycoLeds

Video: Und nochmal die Testplatinen im Kreis angeordnet. Getestet bei Tageslicht!

 

Damit war ich schon sehr zufrieden. Diese Konstruktion erlaubt es die Leds flexibel im Gehäuse von Innen zu montieren und das Licht nach Außen strahlen zu lassen. Aber es gibt ein entscheidendes Problem: Was, wenn eine – im schlimmsten Falle die erste – Led ausfällt? Damit wären viele Leds funktionslos! Dazu muss ich sagen, dass die Leds die Daten vom Controller von einer Led zu Nächsten weiterreichen (serielle Übertragung, ähnlich SPI). Im schlimmsten Fall würden so durch eine defekte Led oder einen Kabelbruch bis zu 24 Leds ausfallen, und die Reparatur würde sich als sehr schwierig erweisen (komplette Demontage des Strangs). Daher kam ich zu dem Entschluss, allen 144 Led-Platinen einen Stecker und eine Stiftleiste zu verpassen. Durch diese modulare Bauweise könnte man im Fehlerfall zügig die defekte Platine tauschen.
Also ran ans Werk und neue Platinen entwerfen und herstellen. Hier die Baufortschritte in einer Bilderfolge:

Led-Platinen V1.1

Es wurden immer gleich 5 * 7 Platinen auf einer Leiterplatte erstellt.

Led-Platinen V1.1 vor dem Bohren

Die Ruhe vor dem Bohr- und Lötsturm. Eine Sichkontrolle erleichtert das spätere Aussondern von nicht korrekt geätzten Platinen.

schöne Perspektive

Scheinbar endlose Arbeit wartet.

Bohren der ersten Löcher

Bei dieser Arbeit haben sich die teuren Spezialbohrer bewährt. NIE WIEDER OHNE!

Bohren der zweiten Bohrungsdurchmesser

Wo vorher die 0,8mm für die Litzen der Flachbandkabel reichten, mussten die Löcher für die Pfostenstecker auf 1mm aufgebohrt werden.

Neu beschaffte Säge

Mit der neuen Säge ging das Trennen der gebohrten Platinen deutlich schneller!

hier schon geschliffen und grob gereinigt

Bohren, trennen, entgraten und reinigen. Alles an einem langen Abend *ächz*

Der Lötarbeitsplatz

Hier habe ich die meiste Zeit des Urlaubs verbracht und vor mich hin gelötet.

Led fixiert und bereit zum weiterlöten

Die Platzierung der Leds auf den Platinen erfolgte manuell. Das Löten im Reflowofen brachte keine befriedigenden Ergebnisse.

 

Irgendwann nach schier endlosen Tagen waren dann die ersten 72 Leds, später die übrigen Leds verlötet, mit Steckern und Kabeln versehen und warteten auf ihren ersten Testlauf. Aber eine Sache fehlte noch, die Treiberplatinen, die die Leds mit den benötigten Daten und Spannung versorgen sollten. Innerhalb von ein paar Tagen wurde der Schaltplan und das Platinenlayout gefertigt. Folgende Aufgaben haben diese Treiber:

  • Led-Spannung (5V) ein- und ausschalten
  • Daten von anderen Treibern/Platinen erhalten und verarbeiten
  • Animationen und Farbübergänge berechnen
  • je 24 Leds mit Daten versorgen
Treiberplatinen für je 24 Leds

Erste Version des Treibers (2 Platinen für je 24 Leds). Wieder wie die Led-Platinen gebohrt und verlötet.

Version 1.0 des Led-Treibers.

Um spätere Reparaturen zu vereinfachen wurden (bis auf den AVR) alle Teile in bedrahteter Ausführung verbaut. Hier ist die Welt noch in Ordnung ... (siehe weiter unten)

Alle 6 Led-Treiber bestückt

Geschafft! Knapp eine Woche dauerte es von der Planung bis zur Fertigstellung der Treiber.

Video: Erster Testlauf der Leds.

Video: Premiere der Leds, noch ohne Treiber (und alle Stränge parallel mit Daten versorgt).

 

Soweit verliefen die Bauarbeiten gut vorran. Knapp die Hälfte des Urlaubs war vorbei und ich hatte bereits alle Leds und Treiber fertig. Zu diesem Zeitpunkt hatte ich aber schon einen SEHR SCHWERWIEGENDEN Fehler gemacht. Um ein Netzteil zu sparen hatte ich die Klemmen der Leds und der Spannungsregler für die Controller GEBRÜCKT… So musste ich nur ein Netzteil mit 5V anklemmen, die 12V für die Spannungsregler konnte ich mir so sparen. Hätte ich zu diesem Zeitpunkt gewusst, was diese Entscheidung anrichten würde!
Auf jeden Fall wurde erstmal eifrig weitergebaut und programmiert. Das Endergebnis da dann so aus:

Alle Treiber und Leds laufen

Mitte August waren alle Leds und Treiber bereit zum Einbau.

Video: Alle Treiber und Leds im Testbetrieb.

 

Ich war stolz wie Oscar und machte mit dieser bewährten Methode weiter. Als nächstes nahm ich das Problem mit den Servomotoren in Angriff. Hier wurde wie bei den Led-Treibern eine Platine entworfen und verbaut:

Version 1.0 des Servo-Treibers

Es wurden, wie bei den Led-Treibern, 2 Platinen auf eine Leiterkarte gebracht. Da ich aber dieses Mal nur eine Platine benötigte, habe ich die schönere verbaut ;)

Servo-Treiber fertig verlötet

In der Mitte links kann man eine Drahtbrücke sehen. Diese und eine weitere Brücke, die später folge, sorgten für das folgenreiche Chaos.

Fertiger Servo-Treiber

Fertige Treiberkarte für alle Servos. Die orangenen Leitungen sind die Taktleitungen für die Motorenstecker. Das Layout der Platine wurde vom Led-Treiber abgeleitet.

Fertig montierter "Servokraken"

Hat doch was, so ein Kraken aus Elektronik und Motoren ;)

Video: Erster Lauf des Servotreibers mit allen Motoren (Stresstest).

Video: Alle Servos in Reihenfolge geklebt und seperat angesteuert.

 

Mit den Motoren und den Leds hatte ich nun fast alles zusammen, um den Rechner komplett zu montieren. Ich fing noch eine Hauptplatine an, die aber im Urlaub nicht mehr fertig gestellt wurde, denn …

es kam der 15. August.

Ich stand unter Zeitdruck und wollte an diesem Tag die komplette Elektronik mit der neuen Firmware testen,  die die Busfunktion der Controller aktiviert und so die Kommunikation über RS-485 erlaubt. Also habe ich alle Netzteile (5 und 12V!), alle Busleitungen und Platinen miteinander verbunden. Ich schaltete die Netzteile ein und es passierte … nicht viel, aber schnell bemerkte ich, dass etwas nicht stimmen kann.
Alle Leds liefen sofort auf voller Helligkeit, zumindestens für einen kurzen Moment. Schnell wurden ein paar Leds farbig, aber völlig ungeplant. Die Servos zucken unkontrolliert umher. Noch ahnungslos über die Ursache schaltete ich alles ab und prüfte die Spannungen der Netzteile. Die 12V sorgen eigentlich nur für die Betriebsspannung der Controller, aber da waren ja noch diese verflixten Drahtbrücken unter den Platinen, die ich inzwischen völlig vergessen hatte. Also wieder 12V angeschaltet und gestaunt: Alle Leds leuchteten nur noch rot, was aber nicht dürfte, da die Leds ausschließlich vom anderen 5V-Netzteil versorgt werden sollten. Also wieder aus und den Fehler (immer noch ahnungslos, aber besorgt) weiter gesucht. Auch das 5V-Netzteil lieferte seine gewünschte Spannung, aber die Leds und Servos zeigten immer noch keine Besserung.

Plötzlich begriff ich, was geschehen war … die Brücken unter den Platinen hatten die 12V der Spannungsregler auch auf die angeklemmten Leds und Servos gejagt und damit zum Großteil gebraten!!!
Ich konnte nicht glauben, dass ich so eine offensichtliche Stolperfalle übersehen hatte! Die MOSFETs auf den Led-Treibern waren durchgesteuert und hatten so die Masse der Leds mit dem Betriebsnetz verbunden, bang!
Es folgte ein Wutausbruch meinerseits und ein Ragequit des kompletten Projekts. Alle Werkzeuge, Materialien und “Schrottplatinen” wurden eingetütet, ins Auto verfrachtet und nach Hause gefahren. Dort probierte ich am Abend nochmal alle Leds seperat aus mit dem Testboard der Leds. Nur 3 der 144 Leds haben die Aktion irgendwie überstanden, aber waren genauso wenig vertrauenderweckend wie der defekte Rest. Die Servos hatten zum Glück keine größeren Schäden davon getragen, was ein Glück. Bei den Treibern sah es ähnlich aus. Ein AVR ließ sich garnicht mehr programmieren oder auslesen und wurde abgeschrieben. Der Rest konnte noch über den Programmieradapter neu geflasht werden, aber wurden kurze Zeit später komplett ausgetauscht.

Ende vom Lied: Alles doppelt und dreifach prüfen!!! Lieber ein paar Stunden zu spät fertig werden als wochenlang und finanziell Ärger wegen kritischen Fehlern bekommen!
In den kommenden Wochen werde ich neue Treiberplatinen anfertigen, die gegen Überstrom und -spannung gesichert sind. Ebenfalls werden die MOSFETs getauscht und VOR die Leds und auch die Motoren platziert, um erst bei der richtigen Spannung durchzuschalten und im Fehlerfall nichts an die empfindliche Elektronik zu lassen. Es wird also weitergebaut nach dem großen Schreck :)

 

Soweit mein Bericht vom Urlaub 2012 und den gesammelten Erfahrungen. Bei Neuigkeiten folgen wieder Tweets und später auch Updates hier auf dem Blog.

Leave a comment

Fortschritt Kugelrechner

Im Moment läuft alles nach Plan. Habe für alle mechanischen Angelegenheiten jetzt mindestens eine Lösung und kann beginnen den Rechner zu montieren.
Auf YouTube habe ich ein neues Video von der Led-Baustelle hochgeladen:

Auch das Wiki vom Labor hat ein Update erfahren und ist nun wieder auf dem aktuellen Stand. Dort kann man auch nachlesen, wie ich mir die Mechanik vorstelle: https://www.das-labor.org/wiki/Metroid_Hybrid

Leave a comment

Fortschritte in Sachen Kugelrechner & Co

So langsam wird es was mit meinem Riesenprojekt, dem Kugelrechner und Casecon “Metroid Hybrid”. Vorige Tage hat die selbst entwickelte Arduino-Bibliothek für die DycoLeds (spezielle RGB-Leuchtdioden) quasi Beta-Status erreicht. Mit einem beliebigen AVR Mikrocontroller kann man nun einfache Farbmuster darstellen. Ein wichtiger Schritt in Richtung Außenbeleuchtung des Gehäuses.

In den nächsten Tagen werde ich den Code der Bibliothek noch etwas aufräumen und auf Geschwindigkeit optimieren … der Code läuft stabil, aber derzeit wird alles in Echtzeit berechnet- theoretisch. Zufallsfunktionen fressen viel Zeit und die allseits bekannte und so selten gemiedene delay-Funktion nimmt massig Speicher in Beschlag. Die kommenden Versionen sollen ein Refresh-System haben, wo z.B. nur alle 20 Millisekunden der Status der LEDs geändert wird. Dazwischen werden die Farben nur neu berechnet, aber nicht sofort ausgegeben. Das müsste eine bessere Darstellung bewirken. Tests werden zeigen ob diese Überlegung praxistauglich ist.

Als nächster Punkt steht die Kommunikation der Baugruppen über den RS-485 Bus an. Es muss überlegt werden, wie ein geeignetes Protokoll aussehen könnte. Es sollte schnell sein, über Fehlerprüfungen verfügen, darf aber auch nicht zu kompliziert sein. Mehr dazu in ein paar Tagen.

Leave a comment