Donnerstag, 22. Dezember 2011

Bristlebot-Rennen 2011

Eine kleine Ankündigung: Auch in diesem Jahr gibt es wieder ein Bristlebot-Rennen, bei dem es wertvolle Preise zu gewinnen gibt und gleichzeitig ein gutes Werk getan wird.

And Now for Something Completely Different

 Weihnachtskarten - auch die gehören zu dem Thema Basteln. Die elektronischen Projekte habe ich in der Vorweihnachtszeit auf Eis gelegt, da so schon kaum mehr Zeit für Irgendwas blieb.
 Diese Weihnachten haben wir uns für Weihnachtskarten per Linolschnitt entschieden.
 Als Grundmotiv habe ich an einem schönen Winterabend im letzten Jahr das Ulmer Münster fotografiert.
 Dann habe ich den Schriftzug "Fröhliche Weihnachten" aus einer Linolplatte herausgeschnitzt. Ein paar Schneeflocken habe ich auch stehen lassen. Und die "Schnitzriefen" um die Schneeflocken ergeben einen hübschen Windeffekt.
Mit weißer Farbe auf das Bild gedruckt hat man einen schönen weihnachtlichen Schneeeffekt. Die Fotos habe ich dann auf dunkelgrauen Karton geklebt. Auf den kann man dann sehr edel mit einem weißen Gelroller die Weihnachtswünsche schreiben.

In diesem Sinne wünsche ich allen fröhliche Weihnachten und ein innovatives Bastler-Jahr 2012!

Montag, 14. November 2011

Erste Erfolge...

... für meine Arbeitsplatzbeleuchtung stellen sich dann doch ein. Hier kann man nachlesen, wie man eine hohe Last mit dem Arduino schalten kann. In dem Tutorial ist es zwar einen Solenoid, aber das macht ja nichts. Man trennt die Stromkreise einfach mit einem Optokoppler. So kann ich jetzt meine Test-LED tatsächlich via PWM vom Arduino aus dimmen. Allerdings bekomme ich nicht die gleiche Leistung durchgeschaltet, die ich bei direktem Anschluss der Stromquelle habe. Irgendwie schaltet der Leistungstransistor nicht voll durch. Hat irgendjemand einen Profi-Tipp dazu?

Donnerstag, 10. November 2011

R.I.P.

Gestern habe ich meinen zweiten Arduino-Nano geschrottet. Mist. Ich wollte eine 10 Watt High-Power-LED mit einem Leistungstransistor und den mit dem PWM-Signal vom Arduino ansteuern. Aber irgendwie hat die High-Power-LED dann soviel Leckstrom vom Arduino gezogen, daß es ihm ein wenig zu warm wurde.
Na ja. Experimentalbasteln auf höchstem Niveau. Weitere Experimente werde ich mit dem RBBB durchführen, dann sind wenigstens "nur" 14 Euro hinüber.

Dienstag, 8. November 2011

Create, Art and Technology

 Wie kurz in einem vorigen Beitrag erwähnt, waren wir vom vom 4. bis zum 6. November auf der "Create. Art and Technology" in Berlin. Wir sind bereits am Freitag in der Früh angereist, um noch durch die Hauptstadt schlendern zu können. Die Create begann erst gegen 17.00 Uhr mit der Registrierung.

 Also haben wir nach der Abgabe des Gepäcks im Hotel erst mal stilgerecht eine Currywurst im "Konnopke's Imbiß" als Mittagessen genossen - sehr zu empfehlen. Wir haben den Tipp von der App "The Sound of Berlin" der Zeitschrift "de:bug" (Kapitel: "after-club munching"). Dort sind noch einige andere spannende Orte in Berlin aufgeführt.

 Ich erzähle hier nur lückenhaft und lose von ein paar Punkten, auf der Seite der Veranstaltung werden noch Bilder und Vorträge bereitgestellt.

 Nach dem Eröffnungsvortrag von Chris Taylor von Sparkfun war Niklas Roy mit seinem Beitrag an der Reihe.

 Er berichtete von verschiedenen Projekten, unter anderem von "My little piece of Privacy", einem automatischen Stück Vorhang; einem mechanischen Pong-Spiel; einem automatisierten Galerie-Führungs-System und einer Klang-Installation. Alles absolut irre Systeme.
Niklas hat Gestaltung studiert, auf die Frage aus dem Publikum, was man Studieren soll (Gestaltung versus Ingenieurwissenschaften) antwortet er salomonisch "egal - Hauptsache, Du machst was". Das kann ich nur unterstützen.

 Frank Spenling von Archimedes stellte verschiedene Projekte vor, speziell auch im Hinblick auf Haltbarkeit in lang laufenden Ausstellungen.

 Mich hat "Felix, the Robot" besonders beeindruckt. Felix ist ein Roboter-Kopf, der die Gesichtsmimik des Betrachters imitieren kann. Die Freiformteile des Kopfes sind im 3D-Druck-Verfahren hergestellt, was zeigt, wie weit die Technik ist (auch wenn es sicher kein Drucker für Daheim war).

 Neben den Vorträgen und Workshops gab es auch eine Ausstellung. Hier im Bild spielt Sabine mit dem "Augmented Pixel" von Niklas Roy. Das Thema "Pong" scheint Niklas nicht loszulassen. Bei "Ping!" kann man einen Pixel mit allem steuern, was eine Videokamera aufnimmt und einen hohen Kontrast hat. Das hat mich an die Installationen im ZKM erinnert.
Auch von Niklas ist die "Electronic Instant Camera", die mit einem ausgedienten Thermodrucker für Kassenbons das Bild einer Videokamera druckt. Das Besondere dabei: das Bild der Videokamera wird Zeile für Zeile abgetastet. Wenn man also nach der Hälfte (das Drucken geht langsam) aus dem Bild geht, hat man plötzlich keinen Kopf mehr. Niklas meint, die Bilder werden dann nicht so interessant. Stimmt. Aber ein Tipp an ihn: "Was, wenn die Person nach der Hälfte wechselt?".

 "But wait, there is more...": Neben den Vorträgen, der Ausstellung und den Workshops gab es auch Darbietungen von Künstlern, die zuerst von dem Bau eigener Instrumente erzählten, um dann auch auf den Instrumenten zu spielen. Onyx Ashanti ist ein prominentes Beispiel dafür. Aber auch Will mit seinem Monome und Sebastian Arnold wussten zu beeindrucken.

 "Früher" wurden Musikstücke am Computer mit einem Sequenzer arrangiert, jetzt scheint es ein Trend zu sein, den Sequenzer in Echtzeit zu steuern. Damit kann man als Einzelperson eine ganze Band ersetzten.

Andere Künstler waren sehr interessant, aber mir als Laien hat vielleicht ein wenig der Zugang gefehlt.

Und dann gab es natürlich auch meinen Vortrag. Ich habe von dem Bau meiner ersten QLOCKTWO und den damit verbundene Problemen berichtet. Ein Mitnachbauer kam extra für meinem Vortrag, was ich sehr beeindruckend fand. Ich hoffe, er hat viele Anregungen aus den Vorträgen und Workshops mitnehmen können.
Ich würde mir wünschen, daß es mit der Anleitung auf der Projektseite und der Unterstützung durch die Google-Group noch viele schaffen, die Uhr nachzubauen.

Am Ende war nicht nur Anton von TinkerSoup erschöpft, auch wir waren von den vielen Vorträgen, Anregungen, Ideen und Darbietungen ziemlich erschlagen, aber auch sehr glücklich.

Als Resümee kann ich nur sagen: Wir sind begeistert und kommen jederzeit wieder! Vielen Dank für die Organisation an TinkerSoup und Formulor und an alle Vortragenden, Workshop-Betreuer und Künstler.

Freitag, 28. Oktober 2011

Neues von der Superflux-QLOCKTWO

 Inzwischen macht meine QLOCKTWO auf der Basis von Superflux-LEDs und MAX7219-LED-Treiberchips Fortschritte.

Auf den Seiten des Arduino-Projektes gibt es ein gutes Tutorial zu dem Thema.

Links sieht man noch ein paar Komponenten der neuen Variante. Zunächst ein sehr preisgünstiges Einbaunetzteil von Pollin. Mit 2,3 Ampere und stabilen 5 Volt ist es ideal für das Basteln mit Arduinos. Und mit einem Preis von 1,50 € ist es auch unschlagbar günstig.
Dann kommt eine USB-Buchse von Reichelt. Ich möchte gerne die Software der Uhr ändern können, ohne das Gehäuse zu öffnen. Und dann kommt noch die 220 Volt-Buchse für das Netzteil.
 Die Matrix wird von vier MAX7219-LED-Treiberchips angesteuert, je ein Chip für ein Viertel der Matrix. Es gab in den Kommentaren diverse Vorschläge, wie man die Matrix mit weniger Chips ansteuern könnte. Das kann jeder gerne einmal probieren, man muss nur aufpassen, dass ein Chip ja eine Matrix steuert, also die LEDs nicht beliebig aufgeteilt werden kann. Und mann muß danach natürlich auch noch die Software im Griff behalten.
Die Chips sind wie Shiftregister mit Überläufen untereinander verbunden. In der Software gibt es dann eine kleine Umsetzung zwischen der alten Matrix und der geviertelten Matrix: writeMatrix() ruft setPixel() auf...


/**
 * Die Matrix ausgeben
 */
void writeMatrix() {
  for(int y=0; y<16; y++) {
    for(int x=0; x<16; x++) {
      if((matrix[y] & 1 << x) == (1 << x)) {
        setPixel(15-x, y, true);
      } else {
        setPixel(15-x, y, false);
      }
    }
  }
}

... und setPixel() teilt die Koordinaten auf die Chips auf...


/**
 * Einen X/Y-koordinierten Pixel in der Matrix setzen.
 */
void setPixel(int x, int y, boolean state) {
  // 1. MAX7219
  if((x < 6) && (y < 5)) {
    lc.setLed(0, x, y, state);
  } 
  
  // 2. MAX7219
  if((x < 6) && (y > 4) && (y < 10)) {
    lc.setLed(1, x, y-5, state);  
  } 
  
  // 3. MAX7219
  if((x > 5) && (x < 11) && (y < 5)) {
    lc.setLed(2, x-6, y, state);
  } 
  
  // 4. MAX7219
  if((x > 5) && (x < 11) && (y > 4) && (y < 10)) {
    lc.setLed(3, x-6, y-5, state);  
  }
}

Also eigentlich kein Hexenwerk.




 Die Steuerplatine ist unverändert, allerdings habe ich den USB-BUB fest mit dem RBBB verlötet, weil ich ja über die oben erwähnte Buchse einen einfachen Zugriff auf den RBBB haben möchte.

Zur Zeit fehlen noch die Taster und das DCF77-Empfangsmodul sowie der LDR.
 Hier sieht man die Uhr im Betrieb, links und rechts sind jeweils zwei MAX7219-Chips. Das ist übrigens die dunkelste Einstellung, weil ja der LDR noch fehlt, also einen unendlichen Widerstand hat.
Hier sieht man die Rückseite des Ribba-Rahmens. Die LEDs sind in vier Quadranten aufgeteilt. Silberdrähte führen die vier Matrixen auf die andere Seite.

Fritzing Fab

Nachdem es ein ziemliches Gefummel war, den Arduino in die Kiste für das Mood-Egg aus dem vorherigen Post zu bekommen, habe ich mich dazu entschlossen, das Fritzing Fab zu teste.
Dort kann man einen Fritzing-Entwurf hochladen und bekommt dann seine Platine fix und fertig mit Beschriftung, Lötstopp-Masken etc. zurück.

Das Ergebnis ist nicht ganz billig, aber dafür unterstützt man die Entwicklung der Fritzing-Software, die Qualität ist hervorragend und man kommt an ein Ein-Exemplar-Modell einer professionellen Platine.

Mood-Egg

Vor einiger Zeit sind wir auf die Idee gekommen, ein sogenanntes Mood-Egg als Spinnen-Vertreibungs-Einrichtung zu bauen. Straußeneiern wird ja nachgesagt, sie würden Spinnen aus Räumen fern halten. Wir haben dann nach einer hübschen Möglichkeit gesucht, Straußeneier in einer Wohnung zu platzieren. So wurde das Mood-Egg geboren.
Das Mood-Egg besteht aus einem Arduino-Mikrokontroller, der aus Platzmangel auf einer quadratischen Lochrasterplatine aufgebaut wurde, einem LED-Pixel von Bliptronics, eingebaut in eine hübsche Holzkiste von Amazon und einem Straußenei, welches dann von innen beleuchtet wird.
Die Software konnte ich praktischerweise von der Regenbogenmaschine übernehmen, das Mood-Egg ist so zu sagen eine Ein-Pixel-Regenbogenmaschine.

Inzwischen haben wir herausgefunden, daß Straußeneier vermutlich doch keine Spinnen vertreiben. Aber das Mood-Egg ist dennoch hübsch geworden...

Lasercutting & Herbstlaternen

 Vor einiger Zeit habe ich Formulor entdeckt, sozusagen das deutsche Gegenstück zu Ponoko. Man kann dort SVG-Grafiken hochladen und ein Material auswählen. Ein Laser schneidet oder graviert dann das Material je nach Strichfarbe in der SVG-Grafik. So kann man professionelle Gegenstände kostengünstig fertigen, z.B. Gehäuse aus Acryl.
 Zum Testen habe ich eine kleine Teelicht-Laterne mit den vier Jahreszeiten entworfen und aus dünnem Holz schneiden lassen.

Nach einiger Zeit kommt dann ein flaches Päckchen mit dem kompletten Material, also auch den ungenutzten Flächen.
Das Ganze funktioniert einwandfrei und ich werde es sicherlich in einem der zukünftigen Projekte, vielleicht der Ping-Pong-Ball-Uhr, verwenden.

Mittwoch, 26. Oktober 2011

Garagentor-Steuerung

Nachdem meine Einpark-Hilfe bestens funktioniert und ich mich täglich an blinkenden LEDs erfreuen konnte, wollte gestern das Garagentor nicht mehr aufgehen. Die Sicherung war herausgesprungen und wollte sich auch nicht mehr einschalten lassen.

Nach der Demontage des Garagentor-Antriebs war der Verursache dann bald gefunden.
Zwei Entstör-Kondensatoren waren durchgebrannt. Einer von beiden dabei so ungünstig, daß er einen Kurzschluß verursacht hat. Der andere war vermutlich schon längere Zeit durchgebrannt, aber da funktionell kein Unterschied zwischen einem intakten oder durchgebrannten Entstör-Kondensator ist, bemerkt man das nicht (außer einer höheren Störumgebung, aber wer misst die schon?).

Den Original-Kondensator (565-1 Y RS 7 WY) mit 1 nF / 250 V habe ich nicht bekommen, aber ein paar mit identischen Werten sind bestellt und ich bin guter Dinge, mein Garagentor demnächst wieder am Laufen zu haben.

Donnerstag, 6. Oktober 2011

QLOCKTWO-Matrix mit Superflux-LEDs

Endlich bin ich dazu gekommen, die LED-Matrix für meine erste eigene QLOCKTWO zu verkabeln. Sie besteht aus Superflux-LEDs und wird von vier MAX7219-LED-Treiber-Chips getrieben. Dieser Chip kann entweder eine 8x8-Matrix oder Sieben-Segment-Anzeigen treiben. Und er kann 16 Helligkeitsstufen selber über Pulse Width Modulation steuern. Ich habe dabei auch mal versucht, mit meiner alten iSight-Video-Kamera einen Demo-Film zu erstellen. Die LEDs sind nicht ganz so hell, wie es das Video zeigt. Und irgendwie überzeugt mich die Qualität (vom Video) noch nicht so ganz.

Dienstag, 6. September 2011

Berlin, Berlin, wir fahren nach Berlin!

Im November fahren wir nach Berlin auf die Create. Ich werde dort einen Vortrag über den Bau der QLOCKTWO halten.

Zitat von der Create-Webseite: "Create. Art and Technology bringt Menschen zusammen.
Vom 4. bis 6. November 2011 treffen sich in Berlin Künstler, Hacker und Designer, Produzenten, Bastler und Ingenieure."

Vielleicht sehen wir uns da?

ZKM Karlsruhe


Am Wochenende haben wir das ZKM in Karlsruhe (Zentrum für Kunst und Medientechnologie) besucht. Ich kann nur jedem Interessierten Bastler dringend empfehlen, das ZKM zu besuchen. Neben wechselnden Ausstellungen gibt es feste und vor allem unglaubliche elektronische und interaktive Installationen.

Montag, 29. August 2011

Einparkhilfe, fertig!

Die Einparkhilfe ist fertig montiert! Das eigentliche Problem war, den Strom von der Garagentor-Steuerung abzugreifen, bzw. von deren Licht. Denn das geht für ca. 240 Sekunden an, wenn das Garagentor geöffnet wird. Und genau dann benötige ich ja auch die Einparkhilfe. Zum Glück war in der Steuerung noch ein Pin-Paar für ein Licht frei. Sehr lobenswert und vorausschauend vom Hersteller gedacht.

Den Schaltplan und die Software gibt es bei Fritzing.

Freitag, 19. August 2011

Einparkhilfe, Teil 2

Nachdem die Schaltung und Software auf dem Steckbrett gut funktioniert hat, habe ich sie auf eine Laborkarte übertragen. Die LEDs habe ich in eine längliche Kiste von einer Magnum-Flasche eingebaut. Der Parallax Ping)))-Sensor ist in einen Stromverteiler gekommen, damit kann ich die Anzeige auf 'Augenhöhe' und den Sensor auf 'Stoßstangenhöhe' hängen.

Die Laborkarte eigent sich ganz gut für schnelle Aufbauten, habe ich festgestellt. Speziell wenn man, wie ich, Platinen noch nicht selbst herstellen kann. Aber vielleicht sollte ich das auch mal angehen.
Jetzt kommt dann der Einbau in die Garage, dazu muß allerdings die Elektrik ein wenig angepasst werden. Das könnte daher ein paar Tage dauern...

Mittwoch, 10. August 2011

Einparkhilfe

Zur Zeit arbeite ich an einem kurzen Intermezzo. Nachdem ich zwei Schwerlastregale in meine Garage eingebaut habe, stimmt der gewohnte Einparkabstand nicht mehr. Also muss eine kleine Hilfe her. Diese besteht aus einem Arduino, einem Parallax Ping-Sensor, LEDs zur Anzeige und Potentiometern, mit denen man die "Grenzwerte" einstellen kann.
Das Ganze wird dann an die Rückwand der Garage gebaut und mit dem Licht des elektrischen Garagenöffners verbunden, so dass es sich einschaltet, wenn das Tor geöffnet wird.
Der Idealabstand sollte dann so sein, dass man vor dem Auto noch herumgehen kann (falls man den Kopf in die Motorhaube stecken möchte) und natürlich das Tor keine Delle in den Kofferraum schlägt.
Ich werde berichten (hoffentlich ohne grössere Schäden am Fahrzeug).

Lötkurs mit Emma

Nachdem Emma (8 Jahre alt) die Regenbogenlampe so gut gefallen hat, dass sie gleich in den Baumarkt wollte, um Teile für einen Nachbau zu kaufen, haben wir für den Einstieg in das Thema "Basteln" einen Lötkurs für Emma veranstaltet. Als Testobjekt wurde das "Conrad Retro-Radio Bausatz Komplettset" ausgesucht.

Zunächst aber stand Üben auf dem Programm. Auf einer Lochrasterplatine wurden viele alte Bauteile aus Pollin-Sortimenten verlötet. Dann ging es an das Radio.

Nach gemütlichem Grillen und einigen Rückschlägen wegen der fehlerhaften und teilweise uneindeutigen Beschreibung von Conrad haben wir das Radio tatsächlich zum Spielen gebracht!

Ein grosses Lob an Emma, die perfekte Lötstellen hinbekommt!

Als nächstes werden wir dann den "Simon Game - Through-Hole Soldering Kit"-Bausatz in Angriff nehmen.

Summer School

Vergangene Woche haben wir eine "Summer School" für unsere Azubis veranstaltet. Der Titel war "Physical Computing mit Arduino". 7 Fritzing Starter Kits standen zur Verfügung. Nach der Einarbeitung in die Technik und die verschiedenen Bauelemente konnten die Azubis dann zwei Tage an einem "freien" Projekt arbeiten. Am letzten Tag wurde das coolste Projekt gekürt (ein animierter 3x3 LED-Cube) und die Gewinner konnten sich über ein 8x32-LED-Display als Preis freuen.

Mittwoch, 27. Juli 2011

Neuer Versuchsaufbau

Das ist jetzt mein neuer Versuchsaufbau. Die LED-Matrix habe ich in vier Quadranten aufgeteilt. Jeder Quadrant bekommt seinen eigenen MAX7219-LED-Treiber. In den Kommentaren zum letzten Post wurden einige Vorschläge gemacht, wie man mit weniger LED-Treibern auskommt. Das ist sicherlich möglich, aber macht die Programmierung und die Fehlersuche auch deutlich komplizierter. Ich fange daher mal mit vier Treibern an und reduziere dann eventuell noch. Ich hoffe bald dazu zu kommen, die Matrix zum Testen zu verkabeln.

Mittwoch, 20. Juli 2011

Alles auf Anfang

Nun ist es soweit. Nach der Pleite mit den TLC5940-LED-Treibern ist die Matrix wieder 'herkömmlich' verlötet und die QLOCKTWO-Hardware auf dem Steckbrett nachgebaut. Das kann ich dann bald im Schlaf. Immerhin habe ich im Zuge dessen endlich einen Compiler-Schalter in die Firmware eingebaut, mit dem man die Anzeige auf den Kopf stellen kann (und dann die Kabel bei dem Anoden-Multiplexer nicht mehr kreuzen muss).

Dann habe ich begonnen, mit dem MAX7219-LED-Treiber zu spielen. Der kann eine 8x8-Matrix treiben. Bei der Arduino-IDE gibt es dazu ein Beispiel (hello_matrix). Aber das hat wieder mal nicht geklappt, die Matrix leuchtet komplett (aber dafür schön hell). Irgendwann am späten Abend habe ich die Fehlersuche aufgegeben.

Was übrigens immer eine gute Idee ist, denn meistens hat man am nächsten Morgen die zündende Idee. In dem Beispiel werden die digitalen Pins 0, 1, 2 verwendet, was mit einem Arduino Duemilanove keine gute Idee ist - denn die Pins 0, 1 werden für die serielle Kommunikation genutzt. Nach der Umstellung auf die Pins 2, 3, 4 ging es sofort.

Jetzt bleibt das Problem: "Wie teilt man eine 10 mal 11 Matrix auf 'Kacheln' mit 8 mal 8 auf?" Und braucht man wirklich 4 Stück, denn der Chip ist recht hochpreisig?

Dienstag, 19. Juli 2011

Basteln im ganz großen Stil

Ich bin ja eher ein Bastler im kleinen Stil, was vielleicht meines Studiums der Feinwerktechnik gestundet ist. Wer sich eher für Basteln im großen Stil interessiert, dem sei der Blog von Freunden empfohlen: Jugendstilhaus renovieren beschäftigt sich mit den Höhen, Tiefen, Freuden und Leiden des Erwerbs einer rennovierungsbedürftigen Immobilie.

Mittwoch, 13. Juli 2011

Ausflug: WebDuino

Mit der im vorherigen Post erwähnten 'JavaFirmata' habe ich dann eine kleine Demo-Web-Anwendung geschrieben. Aus den Teilen eines Fritzing Starter Kits habe ich ein paar LEDs, einen LDR und ein Potentiometer an den Arduino angeschlossen.

Sechs LEDs gehen über Vorwiderstände an die digitalen Pins 8-13 vom Arduino, der LDR ist mit einem 10kΩ-Widerstand als Spannungsteiler an den analogen Pin 0 angeschlossen und letztlich ist das Potentiometer auch als Spannungsteiler an den analogen Pin 1 angeschlossen.

Mit Hilfe der JavaFirmata kann man dann prima die LEDs ein- und ausschalten sowie die Werte vom LDR bzw. Potentiometer lesen.

Das Projekt (für NetBeans) kann hier heruntergeladen werden. Es folgt dem Model-View-Controler-Pattern, das Servlet "Controller.java" nimmt die Eingaben aus dem HTML-Formular entgegen, verarbeitet sie, hängt anzuzeigende Daten an den Request an und gibt die Kontrolle dann weiter an die JSP-Seite, welche die HTML-Seite darstellt.

Das Servlet als Herz sieht so aus:

public class Controller extends HttpServlet {

private static Firmata f;
private static boolean[] digitalPins = new boolean[14];

static {
try {
f = new Firmata("/dev/tty.usbmodem1d11", 57600);

for (int i = 8; i < 14; i++) {
f.pinMode(i, Firmata.OUTPUT);
}

for (int i = 0; i < 14; i++) {
digitalPins[i] = false;
}
} catch (Exception ex) {
ex.printStackTrace();
}
}

/**
* Processes requests for both HTTP GET and POST methods.
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

request.setAttribute("a0", f.analogRead(0));
request.setAttribute("a1", f.analogRead(1));

for (int i = 8; i < 14; i++) {
digitalPins[i] = request.getParameter("d" + i) != null;
}
try {
for (int i = 8; i < 14; i++) {
if (digitalPins[i]) {
f.digitalWrite(i, Firmata.HIGH);
} else {
f.digitalWrite(i, Firmata.LOW);
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
request.setAttribute("digitalPins", digitalPins);

RequestDispatcher rd = request.getRequestDispatcher("arduino.jsp");
rd.forward(request, response);
}

@Override
public void destroy() {
f = null;
}
[...]
}

Ausflug: Arduino - Firmata - Java

Ich wollte gerne einen Arduino über Java ansprechen können, um ihn in Webprojekte (Java Servlets/JSPs) einbinden zu können. Es gibt ein interessantes Projekt, um den Arduino via Firmata in Processing einzubinden. Firmata ist eine kleine Firmware für den Arduino, wodurch er sich über MIDI-ähnliche Befehle über die serielle Schnittstelle steuern lässt. Leider setzt die Library Processing voraus, was sie für Web-Anwendungen unbrauchbar macht. Ich habe daher einige Source-Codes aus dem Netz zusammengeworfen, herausgekommen ist die 'JavaFirmata'. Jetzt kann man den Arduino aus jedem Java-Projekt via Firmata steuern.

Ein Beispiel-Code sieht so aus:

public class TestJavaFirmata {

public static void main(String[] args)
throws Exception {

// list available ports...
SerialWorker.listPorts();
// open a port...
Firmata f = new Firmata("/dev/tty.usbmodem1d11", 57600);

// set pin 13 (smd-led on arduino) to output...
f.pinMode(13, Firmata.OUTPUT);
// set pin 13 to HIGH - the smd-led should light up...
f.digitalWrite(13, Firmata.HIGH);

}
}

Rückschlag

Leider muß ich von einem Rückschlag berichten. Die Matrix aus SuperFLUX-LEDs und TLC5940-Treiber-Bausteinen habe ich nicht zum Laufen gebracht. Sie ging immer mit wenigen eingeschalteten LEDs, aber bei vielen traten unkontrollierbare Störungen auf und der letzte Treiber-Chip wurde heiß. Ich habe dann angefangen, eine Reihe nach der anderen in Betrieb zu nehmen, um den Fehler zu finden. Dabei ist mir aufgefallen, dass bereits 3 Reihen bei voller Beleuchtung 1,5 A ziehen. Bei 10 Reihen ist der Stromverbrauch dann nicht mehr haltbar... Eventuell lag der Fehler darin, vielleicht auch in dem hochfrequenten Treiben der LEDs, die ja alle über Flachbandkabel angeschlossen waren, und dadurch vermutlich hervorragende Antennen bilden und stören.
Auf jeden Fall kehre ich jetzt zum 'klassischen' Aufbau zurück und versuche dafür mal mein Glück mit dem Ersetzen der Darlington-Arrays durch Transistoren - oder vielleicht auch dem Einsatz eines TLC5940 statt der Shift-Register/Darlington-Array-Kombination.

Dienstag, 28. Juni 2011

Erste Gehversuche

Es hat jetzt doch einige Zeit gedauert, bis die ganzen LED-Treiber-Chip-Platinen zusammengelötet waren. Leider ist sind die Treiber-Chips zu breit, um sie sauber nebeneinander legen zu können. Und dann ist das Verbinden der Chips doch eine ziemliche Fummelei.

Gestern Abend war es dann so weit. Nachdem die letzten Verbindungen getätigt waren, konnte ich erste Tests auf dem neuen QLOCKTWO-Display durchführen.

Jede einzelne LED kann jetzt einen eigenen 4096-bittigen Graustufenwert haben. Leider habe ich immer noch keine Möglichkeit, Videos aufzuzeichnen, aber die Stufen sind perfekt flackerfrei.

Leider habe ich irgendwo noch einen elektrischen Seehund begraben - der vorletzte Chip wird heiß und manchmal zeigt die Matrix im linken Drittel Schrott.

Übrigens lohnt sich auch für die 'alte' QLOCKTWO ein Blick auf die Infos zu der Library für den TLC5940 unter http://code.google.com/p/tlc5940arduino/. Dort wird der Pin 'BLANK' (bei unseren Shift-Registern 'OE' für 'Output Enable') über einen Widerstand auf Vcc gelegt und mit einem Pin vom Controller verbunden. Dadurch bleiben die LEDs beim Einschalten oder neu Bespielen ausgeschaltet, bis man den Pin dann auf LOW schaltet.

So langsam werden die Schaltungen und damit die Fehlersuche komplizierter. Ich bin am Überlegen, ob ich mir als Oszi einen DSO Nano v2 und als Logic Analyzer einen Logic von Saleae zulegen soll. Hat zufällig jemand Erfahrung mit diesen Geräten?