Knight Rider Larson Scanner für den Rapsberry Pi Pico

Vor kurzem hatte ich bei Reddit auf eines meiner Videos mit einem simplen Lauflicht verwiesen. Das hat mir leider nicht nur positive Kommentare eingebracht und jemand schrieb es sei billige Eigenwerbung. Zugegeben, der Code dahinter war nicht wirklich etwas Besonderes. Und ja, es stimmt, ich nutze Reddit um auf meine Videos zu verweisen. Würde ich nur auf Youtube vertrauen, hätte ich mit meiner winzigen Abonnentenzahl keine Chance die vielleicht an meinen Videos interessierten Zuschauer zu erreichen. In einem Subforum bei Reddit habe ich viel mehr Erfolg.

Da ich das Video mit ‚Knight Rider with Raspberry Pi Pico and 8 RGBW LED strip‘ betitelt hatte schrieb mir jemand, dass mein Lauflicht nicht dem Original Knight Rider Lauflicht entspricht. Und ein anderer wies mich auf den Begriff ‚Larson Scanner‘ hin. Nachdem ich mir einige Youtube Videos zum Thema angesehen habe, muss ich bestätigen, das das stimmt. Daraufhin setzte ich mich noch einmal hin und habe ein dem Original deutlich besser entsprechendes Lauflicht entwickelt:

Wer sich so etwas nachbauen will, benötigt folgende Teile und kann sie bei Reichelt bestellen:

Raspberry Pi Pico

RGB Stick

Elektrische Verbindungen:

Raspberry Pi Pico adafruit High Density NeoPixel L-DC 94V-0
GND GND
GP28_A2 DIN
5VDC VBUS

Wenn Ihr aber ein Original Knight Rider Lauflicht bauen wollt, empfehle ich Euch anstatt des Sticks einen RGB Streifen zu kaufen, bei dem die LEDs genügend weit auseinander sind. Oder Ihr kauft Euch einzelne RGB LEDs und lötet sie mit Kabel im richtigen Abstand zusammen. Das von mir weiter unten gezeigte Programm bleibt trotzdem identisch. Nur bei den RGB LEDs müsst Ihr aufpassen. Die gibt es als RGB oder RGBW LEDs. Das heißt sie haben noch eine extra weiße LED zusätzlich eingebaut. Für den Larson Scanner benötigt Ihr die aber nicht. Es macht aber nichts wenn Ihr solche verwendet, denn Ihr könnt in meinem Programm in der Zeile

Adafruit_NeoPixel strip(LEDCOUNT, LEDPIN, NEO_GRBW + NEO_KHZ800);

einstellen, was Ihr für LEDs angeschlossen habt. Dazu folgender Text von Adafruit:

‚For through-hole 8mm NeoPixels, use NEO_RGB instead of NEO_GRB in the strip declaration. For RGBW LEDs use NEO_RGBW (some RGBW strips use NEO_GRBW, so try that if you’re getting unexpected results!)‘

Das Lauflicht lässt sich mit folgenden 3 Konstanten nach Belieben anpassen:

  • ‚NEXTLEDDELAY‘ bestimmt in welchem zeitlichen Abstand die nächste LED aktiviert wird.
  • ‚INCREMENTLEDDELAY‘ bestimmt in welchem zeitlichen Abstand die Helligkeit der LEDs verringert wird.
  • ‚DIMFACTOR‘ gibt an, wie stark die Helligkeit verringert wird.

Experimentiert doch einmal damit!

#define NEXTLEDDELAY 100
#define INCREMENTLEDDELAY 75
#define DIMFACTOR 1.5

Hier der C++ Programmcode:

// Knight Rider Larson Scanner

#include <Adafruit_NeoPixel.h>

#define LEDPIN 28
#define LEDCOUNT 8

#define NEXTLEDDELAY 100
#define INCREMENTLEDDELAY 75
#define DIMFACTOR 2.2

Adafruit_NeoPixel strip(LEDCOUNT, LEDPIN, NEO_GRBW + NEO_KHZ800);

unsigned long nextLED = 0;
unsigned long incrementLED = 0;

int runningDirection = 0;
int LEDNbr = 0;

void setup() {
  strip.begin();
  strip.setBrightness(255);
}

void loop() {
  if (millis() - nextLED > NEXTLEDDELAY) {
    strip.setPixelColor(LEDNbr, 0xFF0000);
    strip.show();
    if (runningDirection == 0) {
      LEDNbr++;
      if (LEDNbr > LEDCOUNT - 1) {
        runningDirection = 1;
      }
    } else {
      LEDNbr--;
      if (LEDNbr < 0) {
        runningDirection = 0;
      }
    }
    nextLED = millis();
  }
  if (millis() - incrementLED > INCREMENTLEDDELAY) {
    for (int i = 0; i < LEDCOUNT; i++) {
      double color = strip.getPixelColor(i) >> 16;
      int r = (uint8_t)(color / DIMFACTOR);
      strip.setPixelColor(i, r, 0 , 0);
    }
    strip.show();
    incrementLED = millis();
  }
}

 

 

5 Kommentare

  1. Hallo ich bin begeistert und leider kein löter …. wollte mir einen für mein lego Kitt gern irgendwie finden
    Mfg Markus
    Kann vielleicht irgendwie den auch wo fertig finden … ??

  2. Hallo ich bin begeistert und leider kein löter …. wollte mir einen für mein lego Kitt gern irgendwie finden
    Mfg Markus
    Kann vielleicht irgendwie den auch wo fertig kaufen … und was könnte der kosten und wie groß wäre der scann

    1. Hallo Markus,
      ich wüsste nicht wo man meine Version fertig kaufen kann. Wenn Du den auf meiner Seite angegebenen Links folgst, kommst Du auf eine Angebotsseite und da steht auch, wie groß der Stick ist. Wenn Du es sehr klein benötigst, kannst Du auch einen DigiSpark nehmen:
      https://www.reichelt.de/digispark-mini-attiny85-usb-mit-stiftleiste-digispark-mini-p192128.html
      Wenn ich das alles für Dich machen soll, wird es sehr teuer.
      Außerdem benötigst Du noch eine Stromversorgung.
      Gruß Thomas

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert