5*7 Treiberplatine an gestoppten Flipdots

Nach dem die Treiberschaltung so weit funktioniert, habe ich sie mal vom 5*7 Modul abgeklemmt und fliegend mit einem entsprechenden Bereich auf einer 19*21 Matrix verdrahtet. Auf der großen Matrix sind die Dots gestoppt – d. h. das auffällige Nachschwingen fällt weg. Mit diesem Aufbau kann ich nun weiter am Timing basteln, wobei die Änderungszyklen schon ganz flott gehen.

 

5*7 Flipdot Matrix als I2C Client

Aus Mirow habe ich auch sechs „fertige“ Flipdot Module mit fünf mal sieben Dots. Die Dioden sind auch schon drauf. Auf einer zwanzigpoligen Buchse sind die fünf Spaltenleitungen und je sieben Set- und Resetleitungen herausgeführt.

Zum Ausprobieren habe ich ein Treiberboard mit L293D und zwei Adressdecodern gebastelt. Von oben (rechtes Bild) sieht die Schaltung recht zivil aus. Links ist die Unterseite abgebildet – die Spannungen und GND sind mit Silberdraht auf den Lötpunkten verlegt, der Rest ist fliegend verdrahtet.

IMG_3183

IMG_3186Mit vier DIP Schaltern lässt sich die Modulnummer einstellen (von 0-15), der fünfte kann das Modul in einen Selbsttest Modus schicken, falls man kein I2C Master vorhanden ist. Damit wäre auch schon etwas zur Ansteuerung gesagt: Der Treiber ist mit einem Arduino Nano als I2C Client ausgestattet.

Zunächst mal eine kleine Funktionsprüfung (oben), danach der Versuch, wie weit man mit dem Timing so gehen kann (unten). Abschließend beurteilen kann man das Verhalten aufgrund der auf den Modulen verwendeten ungestoppten Dots nicht, aber das untere Video zeigt schon einen gewissen Fortschritt :-)

Nun noch der Test mit einem weiteren Arduino Nano als I2C Master und einem passenden Text:

Noritake 5*7 VFD Matrix

Einer der Schätze, der mir auf der Einkaufstour in MV in die Händer fiel, waren VFD Displays der Firma Noritake itron mit der Typenbezeichnung DM5X7A. Danach kann man im Netz eine Weile suchen, so richtig fündig wird man aber nicht. Die Leitungsverlegung kann man auf der Rückseite des Displays direkt erkennen – da ist kein Datenblatt von Nöten.

Noritake DM5X7A

Anders sieht es bei den Spannungen für Heitzung, Gitter und Anode aus. Vorsichtig herangetastet habe ich mich an die folgenden Werte – die sind für den statischen Betrieb und zum Ausprobieren durchaus OK:

  • Heizung: 2V,
  • Gitterspannung: 8V
  • Anodenspannung: 8V

Damit ergibt sich das folgende Bild:

Später habe ich dann die Werte schrittweise angehoben. Damit sieht die Anzeige immer noch „ganz gesund“ aus:

  • Heizung: 3V,
  • Gitterspannung: 12V
  • Anodenspannung: 12V

Shopping!

Manchmal fallen einem ja Dinge vor die Füße, zu denen man einfach nicht nein sagen kann. So ging es mir neulich irgendwo in den Weiten von Mecklenburg-Vorpommern. Jemand aus der Arduino Hannover Gruppe hatte einen Forumsbeitrag aufgetan, der unglaubliches verhieß: Ein Lager voll mit Flipdots, Bauteilen und VF Displays und alles musste raus. Große Mengen, kleine Preise.

Was soll ich sagen: Es stimmte Wort für Wort. Und so verfüge ich jetzt über einen kleinen Vorrat an Flipdots – teils auf fertigen Displays, teils als 7*1 Riegel zum selber löten. Ein paar VFDs sind auch noch abgefallen und liegen hier als Versuchsobjekte bereits auf meinem Basteltisch. Die Richtung für kommende Projekte ist jedenfalls vorgegeben ;-)

VFDAuswahlIMG_2947

Der Strandbeest Arduino Sketch

Ursprünglich sollte der Quelltext eigentlich beim Make Magazin auf der Seite gehostet werden, ich übernehme das jetzt mal hier. Die nachfolgenden Zeilen machen zusammengefasst folgendes: Nach der Initialisierung in setup() wird in loop() zunächst geprüft, ob an einem der beiden RC Kanäle (hier: chA) überhaupt ein Puls anliegt. Falls nein, so ist das (mindestens) beim FlySky Receiver das Signal dafür, dass keine Verbindung zum Sender besteht. Dann bekommen die Servos ein Stoppsignal.

Ist auf Kanal A ein Puls messbar, so wird auch noch der zweite Kanal gemessen. Je nach Wertebereich werden dann die Servos angesteuert.

// Strandbeest RC V1.1 -- 2016-01-19
// OHNE 45° Steuerknüppel-Stellungen
// FlySky Receiver

#include <Servo.h> 

Servo links;
Servo rechts;

#define RechtsFwd 180
#define RechtsBck 0
// Neutral kann angepasst werden, wenn Servos "kriechen"
#define RechtsNeutral 90

#define LinksFwd 0 
#define LinksBck 180
// Neutral kann angepasst werden, wenn Servos "kriechen"
#define LinksNeutral 90

#define RCchA 9
#define RCchB 8

long chA;
long chB;

void setup()
{
  // Pins für den RC Receiver auf Input
  pinMode(RCchA, INPUT);
  pinMode(RCchB, INPUT);

  //Servos anmelden und auf Neutral stellen
  rechts.attach(5);
  rechts.write(RechtsNeutral);
  links.attach(6);
  links.write(LinksNeutral);
}

void loop()
{
  //Fernbedienungskanal A abfragen
  chA = pulseIn(RCchA, HIGH, 30000);
  //Wenn =0, dann kein RC Connect
  if (chA==0)
  {
    //Servos stoppen, falls keine RC Verbindung
    rechts.write(RechtsNeutral);
    links.write(LinksNeutral);
    chA = pulseIn(RCchA, HIGH, 30000);
  }
  else
  {
    //RC Verbindung vorhanden, also auch noch 
    //Fernbedienungskanal B abfragen
    chB = pulseIn(RCchB, HIGH, 30000);
    
    if (chB < 1200) //Steuerknüppel nach links 
    { 
      if ((chA > 1300)&&(chA < 1600)) 
      // Vor/Rück in etwa in Mittelstellung? 
      { //rechtes Servo vorwärts, linkes Servo rückwärts 
        rechts.write(RechtsFwd); 
        links.write(LinksBck);
      }
    } 
    else if (chB > 1700) //Steuerknüppel nach rechts
    {
      if ((chA > 1300)&&(chA < 1600)) 
      // Vor/Rück in etwa in Mittelstellung? 
      { //rechtes Servo rückwärts, linkes Servo vorwärts 
        rechts.write(RechtsBck); 
        links.write(LinksFwd); 
      } 
    } 
    else //Steuerknüppel Kanal B etwa auf Mitte 
    { 
      if (chA > 1700) //Steuerknüppel nach vorn
      {
        //Rechtes und linkes Servo vorwärts
        rechts.write(RechtsFwd);
        links.write(LinksFwd);  
      }
      else if  (chA < 1200) //Steuerknüppel nach hinten
      {
        //Rechtes und linkes Servo rückwärts
        rechts.write(RechtsBck);
        links.write(LinksBck);        
      }
      else // Kanal A und B etwa auf Mitte - also Stopp
      {
        //Beide Servos Stopp
        rechts.write(RechtsNeutral);
        links.write(LinksNeutral);
      }
    }
  }
}

Die gedruckte Strandbeest Bauanleitung…

Achtung, es folgt Werbung ;-)100

Über meine lokale offene Werkstatt und über Twitter hatte ich schon seit einer Weile immer mal wieder lose Kontakt mir der Make Redaktion beim Heise Verlag. Eine erste Seite im Heft kam dann auch durch einen Tweet zustande. Gedruckt wurde sie in der Ausgabe 4/2015. Nichts großes, aber fühlte sich schon ganz witzig an, sich selbst mal in der Zeitung zu lesen.

Ende vergangenen Jahres gab es dann Gespräche zum Thema Strandbeest. Das ganze bewegte sich zwischen „wir machen mal zwei Seiten“ und „ich hab hier mal eine etwas längere Gliederung für Euch“. In den Weihnachtsferien habe ich mich dann mal hingesetzt und angefangen das Projekt zu beschreiben.

Was soll ich sagen: Es ist dann doch eher ausführlich geworden ;-) Das Resultat gibt es spätestens ab morgen am Kiosk!

Make Magazin 01-2016

Was ist neu in Version 1.5?

Ein weiteres Mal habe ich am Strandbeest-Bausatz herumoptimiert. Ich hatte ja bereits Verstärkungen für die Trägerplatten der Beinpaare eingeführt, aber was soll ich sagen: Einem Achtjährigen halten die so noch nicht Stand.

Also habe ich die Platten noch ein wenig größer gemacht. Gewissermaßen als Bonus gibt es Halter für die Muttern der Zahnradachsen inklusive, so dass es jetzt ausreicht, die Achsen von einer Seite mit einem Inbus nachzuziehen, ohne gleichzeitig auf der anderen Seite die Mutter halten zu müssen. Außerdem neu: die Muttern, mit denen die Deck- und die Bodenplatte gehalten werden, können nun nicht mehr durchfallen. Die Ausschnitte in der Verstärkung sind ein wenig kleiner gewählt, so dass die Muttern alle zusammen vor dem Einbau eingelegt werden können. Neu auf die Teileliste kommt dafür Holzleim, außerdem sind ein paar Spann- oder Klemmzwingen hilfreich. Notfalls tun es auch Wäscheklammern ;-)Material

Mit auf dem Bild: Schrauben und Muttern. Weshalb? Nun, wenn die Verstärkung aufgeklebt wird, ist es wichtig, dass sie überall genau passend sitzt. Daher mein Tipp: Schrauben und Muttern anbringen, Verstärkungsplatte ausrichten, Schrauben festziehen, Platte abnehmen, mit Leim einstreichen und dann zurück damit auf die Muttern. Passt.

So sieht das aus:7K2_40967K2_40987K2_4101

Der @Arduino_H Lötkolben Prototyp

Was wäre eine Bastlerwerkstatt ohne Werkzeug. Selbst gebasteltes Werkzeug! Schon in der Berufsausbildung „musste“ ich einen Lötkolben samt Gehäuse bauen, der dann aber irgendwie in Vaters Werkstatt hängengeblieben ist. Jetzt also auf ein Neues! Luca von der Arduino Hannover Gruppe ist ja immer schnell dabei, wenn es um Platinen und dergleichen geht, und so ist eines der Projekte der Gruppe der Aufbau des abgebildeten Steuergerätes, das ganz wunderbar mit den Weller RT Lötspitzen funktioniert. Im Gehäuse befinden sich nur Nebensächlichkeiten wie Netzteil (12V, 5A), Sicherung, Netzschalter und die Anschlussbuchsen. Der Rest, bestehend aus einem Atmel 328 und ein bisschen Hühnerfutter befindet sich auf der (Rückseite der) abgebildeten Platine. Mal sehen, wie sich die Lötstation so macht – wenn alles gut geht, kommt Luca sicher bald mit dem Projekt raus.