thinkJDs Blog WhooHoo es blinkt!!!

20Jun/110

Das ist ein Tisch Teil 2

In diesem Post habe ich schon einmal den super awesome Größenänderungstisch gezeigt. Jetzt ist mir, viele Monate später, ein Plexiglasmodell von dem Teil über den Weg gelaufen. Ich habe das Video schon mehrmals geschaut und bin immer noch von dem Mechanismus begeistert.

httpvh://www.youtube.com/watch?v=mF-YUgZTVSk&feature=related

Es scheint zwar alles sehr gut verarbeitet zu sein, trotzdem hätte ich immer Angst, dass sich der Tisch verklemmt. Ohne gute mechanische Kenntnisse wird es denke ich scher den Tisch wieder gangbar zu machen.

thinkJD

7Jun/111

“Manufacturing your design” by Mitch Altman

Ihr habt ein Projekt und wollt es zur Marktreife bringen, habt aber keine Ahnung wie? Dann informiert euch doch einfach mal bei jemandem der Ahnung von so etwas hat. Zum Beispiel bei Mitch Altman.

(via)

Kennt ihr nicht? Das ist der Typ, der die geniale TV-B-Gone entwickelt und vermarktet hat. Zu dem Thema gibt es noch den spannenden Vortrag "Make cool things with microcontrollers" den er auf dem 24C3 gehalten hat.

Naja auf jeden Fall weiß der mann wovon er redet und ich kann euch seinen Artikel "Manufacturing your design" nur wärmstens  empfehlen :-)

Viel Spaß beim lesen

thinkJD

30Mai/110

Etwas Antriebstechnik gefällig?

Ich habe ein tolles Stück Antriebstechnik gefunden, das ich euch nicht vorenthalten möchte.

Der jonglierende Automat Juggler:

(via)

Er wurde an der Technischen Universität Prag entwickelt. Juggler besteht hauptsächlich aus zwei (sehr performanten) Linearantrieben. Auf jedem Linearantrieb ist ein Servo mit einem kleinen Arm montiert. Diese Konstruktion jongliert scheinbar mühelos fünf Billardkugeln.

Man muss sich dabei vor Augen halten, dass der verwendete Servo etwa 2Kg wiegt. Diese Masse muss man erst einmal so schnell bewegen, alleine das dürfte schon eine schwer zu lösende Aufgabe gewesen sein.

Hinzu kommt dann noch die Positionierung der Arme, dafür ist eine Hochgeschwindigkeitskamera nebst Bildverarbeitung verantwortlich. Die Kommunikation zwischen Bildverarbeitung und Anlagensteuerung erfolgt via TCP/IP, was ich auch sehr erstaunlich finde, große Latenzen kann sich das System nämlich nicht erlauben. In der Beschreibung steht, sie würden damit frontal auf den Automaten schauen. Ich frage mich wie sie die Position der Kugel genau bestimmen. Ob das nur über den Kugelumfang funktioniert? Keine Ahnung...

Faszinierend ist das Gerät allemal!

thinkJD

 

 

26Mai/115

MoodPxl facts Teil 1

"Bomb the facts bitch!"

Dieser Aufforderung komme ich gerne nach! Hier also ein paar Fakten über die technische Umsetzung von MoodPxl:

Die Hardware ist nicht all zu spannend und besteht hauptsächlich aus:

Die Komponenten werden dann fachgerecht zusammengefrickelt um schnell mit dem spassigen Teil des Projekts zu beginnen, der Firmware. Diese hat folgende Aufgaben  zu erfüllen:

  • Erzeugen der PWM, in diesem Fall vier Kanäle mit je 10bit Auflösung.
  • Kommunikation mit dem Funkmodul RFM12.
  • Temperaturmessung und Steuerung des Lüfters.
  • Gammakorrektur für jeden Farbkanal.
  • Ein Fader für schöne Farbübergänge in variabler Zeit.
  • Ne kleine Scriptengine um mehrere Befehle nacheinander ausführen zu können.
  • Ein bissel rechnen um HSV-Farbwerte in RGB umzurechnen.

Erstes Problem, die Gammakorrektur:

Die PWM-Au?ösung von 10bit entspricht theoretisch 1024 Helligkeitsstufen. Nach den ersten Versuchen die Stufen von 0 bis 1024 zu durchlaufen, fällt auf, dass die Helligkeit anfänglich sehr stark zunimmt und später nur noch leicht steigt. Der Grund liegt in der Kennlinie des Auges. Das Helligkeitsemp?ndenist so ausgelegt, dass wir bei sehr wenig Helligkeit (Straßenbeleuchtung) und bei extrem großer Helligkeit (Sommertag) gut sehen können, es ist also nicht linear. Um dem Auge einen linearen Farbverlauf vorzugaukeln, muss die Helligkeit angepasst werden. Dazu berechnet man für jeden Helligkeitswert den entsprechenden Korrekturwert. Am Ende erhält man die folgende Kennlinie:

 

Von der ehemaligen 10 bit Auflösung bleiben so noch 8 bit übrig. Die Werte sind alle vorberechnet und in einer Tabelle im Programm abgelegt. Das belegt etwas mehr Speicher, spart aber teure Rechenzeit.

Zweites Problem, das Funkprotokoll:

Daten via Funk zu übertragen ist nicht unbedingt trivial, vor allem dann nicht, wenn man versucht das widerspenstige RFM12 Funkmodul mit einem völlig anderen Funkchip (CC1100 von TI) zum Kommunizieren zu überreden. Von dem grundsätzlichen Problem wie der Frequenzauswahl und so weiter mal abgesehen, benötigt man vor ein stabiles Funkprotokoll.

Auf der folgenden Grafik könnt ihr sehen, wie ein MoodPxl Datenpaket aufgebaut ist. Es entspricht weitestgehend dem Funkprotokoll der RFM12 Lib von Das Labor. Die Lib selbst war für meine Zwecke unbrauchbar, daher habe ich das Protokoll noch einmal selbst implementiert.

  • Die blau markierten Felder werden, richtige Kon?guration vorausgesetzt, vomFunkchip CC1100 automatisch generiert.
  • Die Präambel 0xAAAA entspricht einer Abfolge von 16 High/Low Über-gängen. Sie wird gesendet, um dem Empfänger das Synchronisieren auf den Takt zu ermöglichen.
  • Das Syncpattern 0x2DD4 ist von dem Funkmodul RFM12 fest vorgegeben. Wenn dieses Datenwort empfangen wird, beginnt das Modul damit,die folgenden Daten in den Empfangspu?er zu schreiben. Dieser ist so konfiguriert, dass er beim Empfang von acht bit ein Interrupt auslöst. In der Interruproutine wird geprüft ob es sich um einen Empfangsinterrupt handelt (das Funkmodul unterstützt noch einige mehr) und falls ja, wird das Byte abgeholt.
  • Das Längenbyte gibt die Paketlänge ab dieser Position an. Da es keinSchlusszeichen gibt, dient es dem Empfänger, um das Ende der Übertragung zu erkennen.
  • Das Adressbyte des Masters ist immer 0x00, die Bytes 0x01 bis 0xFE kön-nen für die Slaves verwendet werden. Der Adresse 0xFF ist die Broadcastadresse. Mit ihr können alle Slaves in der Reichweite gleichzeitig adressiert werden.
  • Nach dem Header (Länge und Adresse) folgt eine Checksumme. Wenn die Checksumme nicht stimmt oder der Slave nicht adressiert ist, wird der Empfang ab hier eingestellt. Die Checksumme selbst ist eine einfache Längsparität, also eine XOR-Verknüpfung der Datenfelder mit 0xFF.
  • Die Nutzdaten, hier kommen die Befehle und deren Parameter rein. Es ist übrigens nicht empfehlenswert mehr als 30 Byte über die Luftschnittstelle zu verschicken. Das Funkmodul kommt sonst irgendwann aus dem Tritt.
  • Das letzte Byte der Übertragung ist eine CRC Prüfsumme über das komplette Paket.

Für den Anfang sollten das genug Fakten sein. Wollt ihr mehr wissen? Dann Schreibt mir einen Kommentar :-)

thinkJD

 

26Mai/1110

MoodPxl v1.0 das vorläufige Projektende

Da bin ich wieder!

Alles abgeschlossen, geTeXt, gedruckt, gebunden, optimiert, präsentiert, bewertet,  aus, vorbei! Endlich wieder Zeit für mein Blog und ein paar spannende zukünftige Projekte (ich hab da schon so einiges auf Lager).

Sagt Hallo zu MoodPxl v1.0:

Demnächst werde ich euch dann mit den technischen Details bombardieren.

thinkJD

 

18Feb/110

Projekt MoodPixel Teil 3 es kommt Licht ins Dunkel

Wie ihr sicher bemerkt habt, ist es hier sehr ruhig geworden. Das hat keineswegs mit mangelnder Lust zu tun, mir fehlt einfach die Zeit. Ich habe im Moment beruflich und privat sehr viel um die Ohren. Dazu rückt der Abgabetermin für mein Abschlussprojekt immer näher!

Ich habe immer noch nicht so richtig realisiert, dass ich nur noch neun Schulabende vor mir habe, dann ist es erledigt. Ich weiß schon gar nicht mehr was ich nach den Vier Jahren Abendschule alles mit meiner neu gewonnenen Freizeit anstellen soll. Vielleicht mache ich noch irgendeine andere Fortbildung, suche mir einen Nebenjob oder übernehme die Weltherrschaft ... wir werden sehen.

Jetzt hat erst einmal mein Abschlussprojekt Priorität. Es sind nur noch zwei Monate Zeit und ich liege etwas hinter meinem Zeitplan. So wie es ausschaut, wird wohl ein gutes Stück von meinem Jahresurlaub dafür geopfert werden. Aber ganz so schlecht schaut es jetzt auch wieder nicht aus, ein paar Fortschritte konnte ich schon verzeichnen.

Die LEDs haben jetzt einen ordentlichen Rahmen aus Polyoxymethylen (in der Fachsprache auch Plastik genannt ;-) ). Dieser ist mit Löchern, welche in Verbindung mit dem Lüfter im inneren für frischen Wind sorgen sollen, versehen. Ob das so funktioniert wie ich mir das vorstelle, kann ich noch nicht genau sagen.

Die Treiber sitzen jetzt so nah wie möglich an dem LED-Modul. Da die Treiber nicht gerade unerhebliche Lasten sehr hochfrequent schalten, kommt es sonst zu allerlei lustigen Effekten. Ground-Bounce ist da nur das geringste Problem. Die etwas schlechter gewordene Kühlung nehme ich dabei in Kauf. Um einen drohenden Hitzetod rechtzeitig zu erkennen, habe ich dem Leistungsteil noch einen Temperatursensor spendiert. Das sorgt später auch für einen höheren WAF, Stichwort Lüfterregelung. Den Sensor hatte ich eh schon lange auf dem Schirm, es handelt sich dabei um einen Maxim DS18B20. Warum ich mich gerade für diesen entschieden habe und was ihn so sexy macht, erzähle ich euch ich in einem anderen Artikel :-)

Der schon angesprochene Lüfter befindet sich direkt unter dem Kopf. Ich hätte NIE gedacht, dass so ein kleiner Lüfter (30mm) soooo teuer sein kann! Das Loch an der Seite ist zur Durchführung der Kabel vom LED-Kopf gedacht. Wenn das Gehäuse geschlossen ist, ist er auch auf voller Drehzahl fast nicht mehr zu hören.

Die Steuerplatine musste wesentlich kompakter werden. Meine SMD-Pläne habe ich wieder über Bord geworfen, das ist zeitlich einfach nicht mehr drin. Das blaue Teil ist ein step down converter von Murata, die wahrscheinlich eleganteste Möglichkeit von den 28V LED-Spannung 5V für den Mikrocontroller zu generieren. Er ist mit 2A belastbar und hat einen Wirkungsgrad von über 98%. Leider ist auch dieses Bauteil nicht gerade günstig aber was tut man nicht alles für den Umweltschutz. Die Kondensatoren auf der rechten Seite sollen den Regelkreis des Spannungswandlers am schwingen hindern. Außerdem puffern sie Lastspitzen ab. Sie sind noch ein wenig schwach dimensioniert. Mal schauen was ich noch in der Baustelkiste habe.
Anfangs war ich noch sehr begeistert von dem Fädeldraht (das rote auf dem Bild), mittlerweile hat sich das aber etwas gelegt. Zum einen wird die Verdrahtung unübersichtlich und hässlich, zum anderen muss man ewig an den Lötstellen herum brutzeln, was sich erstens negativ auf die Bauteile auswirkt und zweitens unschöne Lötstellen hinterlässt. Für den Prototyp bleibt das erst mal so, später will ich das anders haben.

Mit der anderen Seite bin ich noch nicht fertig geworden. Man kann die Transistoren sehen, welche hoffentlich verhindern, dass mit die LED noch einmal abraucht. Das geht langsam in die Ersparnisse :-) Hier fehlen noch das Funkmodul die RTC (Echtzeituhr) und der Controller für den Touchsensor. Die Transistoren hätten durchaus auch kleiner sein können.

Zusammen flutscht das jetzt wunderbar in die Röhre. Auf Steckverbindungen habe ich absichtlich verzichtet. Das Innenleben soll so stabil wie möglich sein, lose Teile machen sich in einem Metallgehäuse nicht so gut. Die Kanten werden noch mit Moosgummi beklebt, das alles sicher sitzt und nicht verrutscht.

Ich bin recht zuversichtlich, dass ich diese Woche noch dazu komme, die Funkstrecke aufzubauen. Zur not mit tatkräftiger Unterstützung von diesem tollen Logic-Analyzer. Es handelt sich dabei um einen "Saleae Logic". Mal abgesehen von dem tollen Design, bringt er noch viele andere tolle Features mit. Da währe zum Beispiel: Software für Windows, Mac und Linux, ein ausgezeichneter Support und ein fairer Preis. Dazu werde ich aber noch einen eigenen Artikel veröffentlichen.

thinkJD

Page 5 of 30
« First
...
3
4
5
6
7
10
20
30
...
Last »