Ihr Hund wird zum Hingucker: Mit Adafruit Flora ein leuchtendes Hundehalsband bauen  

Ihr Hund wird zum Hingucker: Mit Adafruit Flora ein leuchtendes Hundehalsband bauen

Einfach zum Spaß oder weil Ihr Hund dann auch bei Nacht immer gut zu erkennen sein wird: So bauen Sie ihrem „besten Freund“ ein extravagantes, leuchtendes Hundehalsband mit der Hilfe von Adafruit Flora und einer beliebigen Anzahl von farbwechselnden Adafruit Neopixeln.

Das Projekt

Geeignet für: Anfänger

Zeitaufwand: 2 Stunden

Budget: 80-100 €

Das brauchen Sie: Adafruit Flora, Adafruit Flora RGB Neopixel LEDs, 150 mAh LiPoly Batterie oder 3xAAA Blockbatterie, leitfähiger Faden, Adafruit Flora Accelerometer (=Beschleunigungssensor),

Das benötigen Sie außerdem: Hundehalsband, Nadel, Faden

Beschleunigungssensor und Neopixel mit Adafruit Flora verbinden

Bevor die eigentliche Konstruktionsphase startet, ist es wichtig zu verstehen, wie die Komponenten (Beschleunigungssensor und Neopixel) später mit dem Adafruit Flora verbunden werden müssen. Die Verbindung wird dann durch leitfähige Fäden zustande kommen und sicherstellen, dass die Übertragung der Signale bzw. die Stromübertragung funktioniert. Alternativ kann aber auch Litze verwendet werden, die die Bauteile über Lötpunkte verbindet. Dazu muss folgende Aufstellung berücksichtig werden (Die Buchstaben stehen für die Anknüpfungspunkte der einzelnen Komponenten und des Mainboards):

Accelerometer:

  • GND → GND
  • SCL → SCL
  • SDA → SDA
  • 3V → 3.3V

Reihenschaltung der NeoPixel:

  • Vcc (Power) → FLORA VBATT
  • IN (Data Input) → FLORA D6
  • Gnd (Ground) → GND

Platzierung von Neopixeln und Adafruit Flora

Achtung: Man sollte immer sicherstellen, dass man auf einer nicht-leitenden Oberfläche arbeitet und es ist wichtig, seine Arbeit auf Kurzschlüsse zu untersuchen, bevor man das Adafruit Flora mit der Batterie oder dem Computer verbindet.

Nun geht es um die Platzierung der Neopixel, des Adafruit Flora und des Accelerometers auf dem Hundehalsband. Wenn diese gefunden sind, wird im nächsten Schritt das Mainboard und der Beschleunigungssensor nahe beieinander auf das Halsband genäht. Für das Adafruit Flora eignen sich hier die gegenüberliegenden Anschlüsse GND und 3.3V. Anschließend werden Flora und der Accelerometer mit einem leitfähigen Faden verbunden.

Neopixel mit Adafruit Flora verbinden

Im nächsten Schritt geht es darum, die Neopixel mit dem Mainboard zu verbinden. Dazu beginnt man vom D6 Anschluss des Mainborads und führt den leitfähigen Faden zum Anschluss mit dem nach innen gerichteten Pfeil des ersten Neopixels. Vom gegenüberliegenden Anschluss des Neopixels mit dem nach außen gerichteten Pfeil führt man den leitfähigen Faden zum nächsten Neopixel – solange, bis man alle Neopixel erreicht hat

Dann nimmt man zwei weitere leitfähige Fäden und näht zum einen die Masseleitung und zum anderen die Stromverbindung zwischen dem Mainboard und den Neopixel.

Die Neopixel zum Leuchten bringen

Jetzt wird das Mainboard mit einem USB-Kabel mit dem Computer verbunden. Dort öffnet man im Anschluss die Adafruit Arduino IDE, welche die NeoPixel Library enthält. Folgendes Vorgehen ist nun ratsam:

  1. Die Neopixel testen: Dazu den Sketch hier hochladen: File→Examples→Adafruit_NeoPixel→strandtest. Wenn alle Pixel aufleuchten und die Farben wechseln, ist alles in Ordnung.
  2. Den Accelerometer testen: Dazu die Adafruit Sensor Library und die Unified LSM303DLHC Library herunterladen und den Sketch hier hochladen: File→Examples→Adafruit_LSM303→Test. Anschließend den Serial Monitor öffnen und nach wechselnden Motion Values Ausschau halten.
  3. Im dritten Schritt wird folgender Code (bereitgestellt auf der offiziellen Adafruit Homepage) in die Adafruit Arduino DIE kopiert und hochgeladen. Die Farben können im myFavoriteColors Array angepasst werden und die Bewegungssensibilität unter MOVE_THRESHOLD:

 

#include <Wire.h>

#include <Adafruit_Sensor.h>

#include <Adafruit_LSM303_U.h>

#include <Adafruit_NeoPixel.h>




// Parameter 1 = number of pixels in strip

// Parameter 2 = pin number (most are valid)

// Parameter 3 = pixel type flags, add together as needed:

//   NEO_RGB     Pixels are wired for RGB bitstream

//   NEO_GRB     Pixels are wired for GRB bitstream

//   NEO_KHZ400  400 KHz bitstream (e.g. FLORA pixels)

//   NEO_KHZ800  800 KHz bitstream (e.g. High Density LED strip)

Adafruit_NeoPixel strip = Adafruit_NeoPixel(6, 6, NEO_GRB + NEO_KHZ800);

Adafruit_LSM303_Accel_Unified accel = Adafruit_LSM303_Accel_Unified(54321);




// Here is where you can put in your favorite colors that will appear!

// just add new {nnn, nnn, nnn}, lines. They will be picked out randomly

//                                  R   G   B

uint8_t myFavoriteColors[][3] = {{200,   0, 200},   // purple

{200,   0,   0},   // red

{200, 200, 200},   // white

};

// don't edit the line below

#define FAVCOLORS sizeof(myFavoriteColors) / 3




// mess with this number to adjust TWINklitude :)

// lower number = more sensitive

#define MOVE_THRESHOLD 45




void setup()

{

Serial.begin(9600);




// Try to initialise and warn if we couldn't detect the chip

if (!accel.begin())

{

Serial.println("Oops ... unable to initialize the LSM303. Check your wiring!");

while (1);

}

strip.begin();

strip.show(); // Initialize all pixels to 'off'

}




void loop()

{

/* Get a new sensor event */

sensors_event_t event;

accel.getEvent(&event);

Serial.print("Accel X: "); Serial.print(event.acceleration.x); Serial.print(" ");

Serial.print("Y: "); Serial.print(event.acceleration.y);       Serial.print(" ");

Serial.print("Z: "); Serial.print(event.acceleration.z);     Serial.print(" ");




// Get the magnitude (length) of the 3 axis vector

// http://en.wikipedia.org/wiki/Euclidean_vector#Length

double storedVector = event.acceleration.x*event.acceleration.x;

storedVector += event.acceleration.y*event.acceleration.y;

storedVector += event.acceleration.z*event.acceleration.z;

storedVector = sqrt(storedVector);

Serial.print("Len: "); Serial.println(storedVector);




// wait a bit

delay(100);




// get new data!

accel.getEvent(&event);

double newVector = event.acceleration.x*event.acceleration.x;

newVector += event.acceleration.y*event.acceleration.y;

newVector += event.acceleration.z*event.acceleration.z;

newVector = sqrt(newVector);

Serial.print("New Len: "); Serial.println(newVector);




// are we moving

if (abs(newVector - storedVector) > MOVE_THRESHOLD) {

Serial.println("Twinkle!");

flashRandom(5, 1);  // first number is 'wait' delay, shorter num == shorter twinkle

flashRandom(5, 3);  // second number is how many neopixels to simultaneously light up

flashRandom(5, 2);

}

}




void flashRandom(int wait, uint8_t howmany) {




for(uint16_t i=0; i<howmany; i++) {

// pick a random favorite color!

int c = random(FAVCOLORS);

int red = myFavoriteColors[c][0];

int green = myFavoriteColors[c][1];

int blue = myFavoriteColors[c][2];




// get a random pixel from the list

int j = random(strip.numPixels());

//Serial.print("Lighting up "); Serial.println(j);




// now we will 'fade' it in 5 steps

for (int x=0; x < 5; x++) {

int r = red * (x+1); r /= 5;

int g = green * (x+1); g /= 5;

int b = blue * (x+1); b /= 5;




strip.setPixelColor(j, strip.Color(r, g, b));

strip.show();

delay(wait);

}

// & fade out in 5 steps

for (int x=5; x >= 0; x--) {

int r = red * x; r /= 5;

int g = green * x; g /= 5;

int b = blue * x; b /= 5;




strip.setPixelColor(j, strip.Color(r, g, b));

strip.show();

delay(wait);

}

}

// LEDs will be off when done (they are faded to 0)

}

Sollte man mit der Konfiguration im Nachhinein nicht zufrieden sein, so können selbstverständlich im Code immer wieder Veränderungen vorgenommen werden bis das perfekte Setup gefunden ist.

Jetzt noch die Batterie

Nach der Konfiguration muss im letzten Schritt die Batterie angebracht werden. Dazu kann entweder eine kleine Batterietasche genäht werden oder es wird ein kleines Stoffsäckchen an das Hundehalsband genäht und so befestigt, dass es sich bei Bewegung ruhig verhält. Dabei sollte darauf geachtet werden, dass sich die Batterie nahe am Adafruit Flora Mainboard befindet, damit die Verbindung kurz und stabil ist. Wenn die Batterietasche fixiert ist, können Sie Batterie und Mainboard verbinden.

Ab nach draußen!

Wenn Lichtfrequenz und Farbgestaltung dann optimal auf den individuellen Geschmack abgestimmt sind, gibt es eigentlich nur noch eine Sache zu tun: ab nach draußen und zeigen, wer das coolste Hunde-Gadget hat!

 

Deine Meinung zählt: Was denkst du zu diesem Thema?

Bisherige Abstimmungsergebnisse werden geladen.
 

Schreibe einen Kommentar

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