Farbwechsel Larson Scanner

6 Schritt:Schritt 1: Werkzeuge und Materialien Schritt 2: Erstellen Sie Schaltung und Last-Code Schritt 3: Code Schritt 4: Installation Schritt 5: Lessons Learned Schritt 6: Weiter kommen

Farbwechsel Larson Scanner

Video der Scanner in Aktion . Ja, ich bin durch die Farben manuelles Drehen .
Wer nicht liebt, KITT, die Superhelden-Auto von Night Rider? Das mit den Bouncing Glowing Lichter eines Larson Scanner vorne. Das Scanner war so cool, sie haben sogar gefilmt ein Remake der TV Show mit ihm. Vergessen Sie nicht, die Larson Scanner auch einen Auftritt in Battelstar Glatica, Zisch hin und her auf dem Gesicht von den Zylonen.
Auf meine Version, für mein Auto, ich wollte das rote Glühen vom TV Auto, wenn es auch zu zeigen, aber ich wollte auch in der Lage, zu einer Farbe, die nicht zu verwechseln mit einem Rettungsfahrzeug sein würde, während auf öffentlichen Straßen zu ändern.
Der Larson Scanner ist für Glen Larson, Producer von Knight Rider und andere Shows benannt. Wie ich schrieb meine build Notizen, war ich traurig, zu lesen , dass Glen Larson verstarb. Der Mann klar zu verstehen, die Attraktivität der blinkenden, rausch, leuchtenden Lichter.

Schritt 1: Werkzeuge und Materialien


  1. Verwendete Materialien:
    Arduino UnoR3
    LED-Streifen - Adafruit
    Drehgeber - Sparkfun
    Knob - Sparkfun
    Encoder Break out Foren - Sparkfun
    Netzteil - Ebay 12v bis 5V Wandler 3A 7,77 €
    WS2811 Chip - I Got Mine von ebay (auf Leiterplatte montiert ist), sondern auch von Adafruit
    Drei 220 ohm 1/4 Watt-Widerstände
    Header Pins - Adafruit
    Proto Board - Ich empfehle mit Arduino Schild protoboard Bord eines Typs
    Steckverbinder - I geborgen mir aus alten Elektronik
    Sicherungshalter - lokale Auto Supply Store
    Sicherung - lokale Auto Supply Store
    Silikonkleber / Abdichtungen - lokale Auto Supply Store
    Hauptschalter, Kippschalter für + 12V - ich geborgen mir aus einem alten Drucker
    Werkzeuge benutzt:
    Solderless Brotschneidebrett
    Stromversorgung
    PC
    Lötstation
    Schaltdrähte / Messleitungen / temporäre Anschlüsse
    Handwerkzeuge: Schraubendreher / Messer / Zangen / Schraubenschlüssel /
    Nützliche Hinweise:
    Adafruit Uberguide
    Adafruit Larson Scanner
    Bildr.org Blog - Drehgeber-Tutorial
    Adafruit die NeoPixel Bibliothek auf GitHub

Schritt 2: Erstellen Sie Schaltung und Last-Code

  1. Farbwechsel Larson Scanner

    Steckbrett:
    Breadboard die Schaltung per Schaltplan und sicherstellen, dass alles funktioniert.
    Ich hatte Probleme mit meinem WS2811 Boards von Ebay. Die Daten aus, und Daten wurden auf der in Siebdruck umgekehrt, auch die RGB auf dem Siebdruck hatte die R und G umgekehrt. Die Schaltung war in Ordnung, waren nur das Etikett auf diese beiden umgekehrt.
    .
    Code Anmerkungen:
    Die Chancen stehen sehr gut, dass Sie viel besser als Code, was ich zusammengebastelt zu schreiben. Mein Code läuft, es tut, was ich will, es zu tun, und ich bin nicht verwandelte sie in eine Informatik-Lehrer für eine Klasse. Ich werde es in Version 2.0 aufpolieren
    (Dies war mein erstes Mal mit einer objektorientierten Sprache, und ich bin nicht einer, der am Anfang beginnen, vor allem, wenn es Beispielcode, um aus zu starten). Schultern von Riesen und das alles.
    Um den Code unten zu bauen, begann ich mit Larson Scanner Demo Adafruit ist . Es lief super, direkt aus der Box, aber ich war nicht nur mit der Farbe rot glücklich.
    Ich lud die "Lesen Sie einen Encoder" Beispielcode aus bldr.org und kombinierte sie mit der Adafruit Code, dann könnte ich den Encoder gelesen, während der Scanner gescannt.
    Früher habe ich diese Messwerte, um die Farben von den LEDs angezeigt werden, ändern.
    Ändern der Werte in der Nachschlagetabelle wechselt die Farbe der LED. Wenn Sie die Art, wie es auf dem Prüfstand aussieht, bewegen Sie den Stromkreis zu einer dauerhaften Proto Board und löten sie auf. Es ist wahrscheinlich eine gute Idee, dann geben sie einen weiteren Test vor der Installation in Ihrem Auto.
    Prüfstand Video Ja, die Farbe der Drehgeber tut Farbton ändern, um die LED-Streifen entsprechen, auch wenn es nicht unbedingt erscheinen, auf diese Weise in dem Video. Ich glaube, ich brauche etwas Übung mit der Weißabgleich auf meiner Kamera.

Schritt 3: Code


  1. // Von Bildr Artikel: http://bildr.org/2012/08/rotary-encoder-arduino/
    // Und von Adafruit der Larson Scanner https://learn.adafruit.com/larson-scanner-shades
    // Sie müssen auch die Adafruit NeoPixel Bibliothek installiert https://github.com/adafruit/Adafruit_NeoPixel
    # include
    #define N_LEDS 60
    #define PIN 6
    Adafruit_NeoPixel Streifen = Adafruit_NeoPixel (N_LEDS, PIN, NEO_GRB + NEO_KHZ800);
    // Diese Stifte nicht geändert werden kann 2/3 sind spezielle Stifte
    int encoderPin1 = 2;
    int encoderPin2 = 3;
    volatile int lastEncoded = 0;
    volatile int Encoder = 0;
    Lang lastencoderValue = 0;
    int lastMSB = 0;
    int lastLSB = 0;
    Leere setup () {
    strip.begin ();
    int pos = 1, dir = 1; // Position, Richtung "Auge"
    Serial.begin (9600); // Zum Testen Encoder
    pinMode (encoderPin1, INPUT);
    pinMode (encoderPin2, INPUT);
    digital (encoderPin1, HIGH); // Einzuschalten Pullup-Widerstand
    digital (encoderPin2, HIGH); // Einzuschalten Pullup-Widerstand
    // Aufruf updateEncoder (), wenn eine hohe / niedrige verändert gesehen
    // Auf Interrupt 0 (Pin 2), oder unterbrechen 1 (Pin 3)
    attachInterrupt (0, updateEncoder, CHANGE);
    attachInterrupt (1, updateEncoder, CHANGE);
    }
    int pos = 1, dir = 1; // Position, Richtung "Auge"
    Leere Schleife () {
    int count = 0;
    count = (Encoder / 4);
    // Serial.println (Encoder); // Test / Debug-Encoder
    Serial.println (count); // Test / Debug-Encoder
    int j;
    Lang colorb = 0;
    Lang colorg = 0;
    Lang colorr = 0;
    // Int count;
    colorb = colorb + abs (Encoder); // Blau
    colorg = colorb + 2 * abs (Encoder); // Green
    colorr = colorb + 4 * abs (Encoder); // Red
    // Lookup-Tabelle für die Farbwerte 13 Sätze 3 Farben
    int red [13] = {255,255,255,255,128,0,0,0,0,0,127,255,255};
    int red1 [13] = {128,128,204,204,102,0,0,0,0,0,102,204,204};
    int red2 [13] = {32,16,153,153,76,0,0,0,0,0,76,153,153};
    int green [13] = {255,0,0,0,0,0,127,255,255,255,255,255,127};
    int green1 [13] = {128,0,0,0,0,0,102,64,204,128,204,204,102};
    int green2 [13] = {32,0,0,0,0,0,76,32,153,16,153,153,76};
    int blue [13] = {255,0,127,255,255,255,255,255,0,0,0,0,0};
    int blue1 [13] = {128,0,102,204,204,128,204,32,102,0,0,0,0};
    int blue2 [13] = {32,0,76,153,153,16,153,32,76,0,0,0,0};
    if (colorb> 255) colorg = colorg ++;
    if (colorg> 255) colorr = colorr ++;
    // Draw 5 Pixel auf pos zentriert. setPixelColor () wird jeder Clip
    // Pixel von den Enden des Streifens, die wir nicht brauchen, um für das zu beobachten.
    strip.setPixelColor (0, (rot [count]), (grün [count]), (blue [count])); // Encoder LED (getrennte WS2811-Chip)
    strip.setPixelColor (Pos - 2 (red2 [count]), (green2 [count]), (blue2 [count])); // Red2 green2 blue2 aus Lookup-Tabelle
    strip.setPixelColor (Pos - 1, (red1 [count]), (green1 [count]), (blue1 [count])); // Red1 green1 blue1
    strip.setPixelColor (pos, (rot [count]), (grün [count]), (blue [count])); // Mittlere Pixel am hellsten
    strip.setPixelColor (Pos + 1, (red1 [count]), (green1 [count]), (blue1 [count])); // Red1 green1 blue1
    strip.setPixelColor (Pos + 2, (red2 [count]), (green2 [count]), (blue2 [count])); // Red2 green2 blue2
    strip.show ();
    Verzögerung (30);
    // Anstatt hinterhältig und Löschen nur der Schwanz pixel,
    // Ist es einfacher, alles zu löschen und ziehen eine neue nächste Mal.
    for (j = -2; j <= 2; j ++) strip.setPixelColor (pos + j, 0);
    // Abprallen Enden des Streifens
    pos + = dir;
    if (pos <2) {
    pos = 3;
    dir = -dir;
    } Else if (pos> = strip.numPixels ()) {
    pos = strip.numPixels () - 2;
    dir = -dir;
    }
    }
    Leere updateEncoder () {
    int MSB = digitalRead (encoderPin1); // MSB = höchstwertige Bit
    int LSB = digitalRead (encoderPin2); // LSB = niedrigstwertiges Bit
    int codierten = (MSB << 1) | LSB; // Umwandlung des 2-Pin-Wert um einzelne Zahl
    int sum = (lastEncoded << 2) | codiert; // Sie die Ware in den vorhergehenden kodierten Wert
    if (Summe == 0b1101 || Summe == 0b0100 || Summe == 0b0010 || Summe == 0b1011) Encoder ++;
    if (Summe == 0b1110 || Summe == 0b0111 || Summe == 0b0001 || Summe == 0b1000) Encoder -;
    if (Encoder> 55) Encoder = 0; // Geändert 10-26-14
    if (Encoder <0) Encoder = 55;
    lastEncoded = codierte; // Speichern Sie diesen Wert für die nächste Zeit
    }

Schritt 4: Installation

  1. Farbwechsel Larson Scanner

    In meinem Fall wird der Scanner gehen in eine 2010 Ford Focus.
    (Die Tatsache, dass dieses Auto in der Einfahrt an genau 50.000,0 Meilen geparkt war ein Omen, dass dieses Auto wollte ein glänzendes Upgrade, und dachte, es wurde zu einem Titel.)
    Es war nicht zu viel Arbeit, um die Installation, sobald die Schaltung wurde gebaut und auf der Bank geprüft. Die LED-Streifen ging hinter dem Grill und wurde mit dem Silikon "Klebstoff" gesichert, ein Klecks auf dem offenen Ende verschlossen Der LED-Streifen vor dem Wetter. Der Pluspol der Batterie hatte eine Schraubanschluss wartet nur auf den Draht an der Sicherung und Netzschalter. Der schwierigste Teil war die Adern durch die Firewall läuft. Ich ging durch eine vorhandene Kabeldurchführung auf der Fahrerseite, kann Ihr millage variieren.
    Derzeit wird alles angeschlossen und funktioniert. Der Kunststoff strich muss noch teilweise entfernt werden, und der Drehgeber darauf montierten, aber die Temperatur wurde auf -11 Grad Celsius fallen gelassen. Ich denke, es wäre eine gute Idee sein, für wärmere Temperaturen warten, bevor neugierigen und Bohrungen auf Kunststoff. Der Scanner funktioniert gut, wie es ist sowieso.

Schritt 5: Lessons Learned

  1. Verwenden Sie echte Arduino Schild Prototyping Schild. Der generische Proto Board einfach nicht gut passen, zumindest nicht die, die ich verwendet. Schauen Sie genau auf potenzielle Ebay-Käufe. Die fünfzig WS2811 Chips ich kaufte waren alle auf einer Platine, die keine Perforationen angebracht hatte. Bauen Sie auf solderless Proto Board ersten in Zukunft aussehen für Teile mit Steckbrett freundliche 0,1 "Stiftabstand (WS2811 Chips wurden nicht genau wie auf dem Bestückungsdruck Ich musste einige Verbindungen neu konfigurieren markiert). Betrachten wir ein Brückenstecker zwischen dem Drehgeber und den Proto Board für mehr Einbauort Optionen. Ziehen Sie Extrakabel durch die Firewall für die zukünftige Verwendung. Vielleicht sogar Shielded Twisted Pair eine beheizte Garage, sauber genug, um ein Auto innen zu ziehen, ist ein lohnendes Ziel

Schritt 6: Weiter kommen

  1. Es gibt 11 GPIO-Pins über dieses Projekt verlassen. Dies lässt viel Raum für Expansion. Der Nachteil ist, sowohl unterbrechen Pins werden für die Drehgeber verwendet wird, bin ich sicher, eine freie könnte zumindest eine dieser Interrupts mit einem Code neu zu schreiben. Ich baute eine Larson Scanner Seite , von der gelinkten Seite Projekte auf meiner Website. Dies ist ein Ort, ich kann meine Verbesserungen, die noch nicht ganz bereit für eine instructable der eigenen, als auch einen Ort zu schreiben, um anderer Leute Kommentare / instructables verknüpfen. Mehr als eine Reihe von Lichtern, Scannen zusammen, ich könnte mehr visuelle Wirkung. Man kann wollen um den Luftstrom durch den Kühler obwohl berücksichtigen. Ein PIR-Sensor, den Larson Scanner von einem externen (oder schlafenden) Zustand auslösen, wenn jemand vorbeigeht. Das würde Spaß machen. Vielleicht auslösen eine Kamera gleichzeitig. In den kühlen whooshing Ton wie in der TV-Show verwendet. Ich erwarte von der Instructables Publikum zu kommen mit Ideen hätte ich nie von diesem Projekt geträumt. Bitte fügen Sie Ihre.