Home > Technologie > IKEA Star mit ATtiny und NeoPixels

IKEA Star mit ATtiny und NeoPixels

0
Advertisement

IKEA Star mit ATtiny und NeoPixels

IKEA Star mit ATtiny und NeoPixels

IKEA Star mit ATtiny und NeoPixels

IKEA Star mit ATtiny und NeoPixels

Ich habe mit NeoPixels für ein paar Jahre gespielt. Im Dezember 2015 fand ich von 1 Meter breiten 7-Punkt-Sternlaternen bei IKEA. Sie kamen mit einer weißen Glühbirne, aber ich fragte mich, was das Licht aus den Ausschnitten würde aussehen, wenn ich einige Pixel in den Armen. Ich kaufte ein paar der Lampen, und begann die Arbeit an mehr Animationen, aber ich habe nicht um zu setzen Pixel in der Lampe bis zum Herbst. Jetzt war die Herausforderung, es alle in ein ATtiny85 zu passen, und benutzen Sie einfach ein USB-Kabel für Energie!

Um loszulegen, benötigen Sie eine Möglichkeit, das Arduino oder ATtiny zu programmieren. Ich benutzte die http://Arduino.cc IDE, Version 1.6.11.

Sie finden auch eine NeoPixel Bibliothek benötigen. Ich habe Adafruit gefunden, um die besten, bitte, aber einige Ihrer Sachen von ihnen haben, da das ist, was hält sie glücklich Hacking (https: //learn.adafruit.com/adafruit-neopixel-uberg ..., und das macht Projekte Einfacher für den Rest von uns! :-)

Schließlich, wenn Sie die ATtiny85 Berücksichtigung verwenden, würde ich die Sparkfun USBtiny Programmierer (schlagen https://www.sparkfun.com/products/11801 ) es einfach zu machen, aber Sie können auch viele andere Online - Tutorials , wie zu finden Verwenden Sie ein anderes Arduino, um ein Tiny zu programmieren. Sie benötigen auch eine gute AVR Core (Board-Datei), die die ATtiny-Einstellungen enthält Informationen. Die eine , die mich beeindruckt hat, war die von Spence Konde, und Sie können die Datei hier (finden https://github.com/SpenceKonde/ATTinyCore ), sondern auch die Installationsdatei für zusätzliche Hinweise lesen. Schließlich , wenn Sie setzen oder Ihre Einstellungen ATtiny Board für 8 MHz ändern oder 16 MHz (intern) Taktfrequenz, denken Sie daran auf "Burn Bootloader" am unteren Rand des Arduino IDE - Tools - Menü zu klicken, bevor Sie Ihre Skizze Code laden.

Bitte lesen Sie die ganze instructable bevor Sie Zerschneiden Drähte oder Pixelstreifen beginnen! Während ich dies einfach zu machen bin versucht, es gibt eine Menge zu tun, und viel zu denken. Ich hoffe, Sie werden etwas lernen, während Sie dieses Projekt, egal, was Ihr Niveau der Arduino Erfahrung. aufrechtzuerhalten.

Sie benötigen ein Arduino von etwas Größe, einige WS-2811 oder 2812-Typ NeoPixel Streifen, und einige Hookup-Draht.

  • Sie benötigen 14 NeoPixel pro IKEA Star. Ich bevorzuge die Verwendung der 60 Pixel-pro-Meter-Streifen für diese Projekte, und Schneiden der Pixel zwischen den Kupfer-Pads. Ich verwende den weißen Hintergrundart, ohne klebende Rückseite.
  • Ich empfehle # 24 Gauge stranded Hookup Draht, und ich schlage vor, Sie erhalten rot, schwarz und eine dritte Farbe, um Ihnen helfen, diese Zeilen gerade halten, wie Sie gelötet werden.
  • Mein Go-to Arduino ist die Pro Mini oder die Adafruit Feder, aber dieses Projekt ist eigentlich klein genug gebaut in ein ATtiny85 zu passen!
  • Sie finden es einfacher, die Drähte zu den Pixeln zu löten, wenn Sie einen kleinen Schraubstock oder ein "Third-Hand" -Werkzeug haben.
  • Und Sie benötigen einen Lötkolben und Löten.

Schritt 1: Es gibt große und kleine Sterne, wählen Sie mit Bedacht!

IKEA Star mit ATtiny und NeoPixels

IKEA Star mit ATtiny und NeoPixels

IKEA Star mit ATtiny und NeoPixels

IKEA Star mit ATtiny und NeoPixels

IKEA Star mit ATtiny und NeoPixels

IKEA Star mit ATtiny und NeoPixels

Die großen IKEA-Sterne sind 1 Meter rund (ca. 40 Zoll) und ziemlich tief. Sie können diese in der Nähe einer Wand oder von der Decke hängen, aber es ist sehr groß, wenn Sie in der Lage, es in ein Fenster setzen und noch in der Nähe der Vorhänge.

Der kleinere IKEA-Stern ist etwa 3/4-Meter, aber es macht eine bessere Fensterdekoration.

Die Ausschnitte auf der Oberfläche sind auch etwas zu beachten. Diese werden, wie das Licht freigegeben wird, um an Ihren Wänden und Decken zu spritzen. Vielleicht finden Sie viele Lager im Laden, aber Sie sollten auch online für die Strala Lampen, um zu sehen, ob es eine Farbe oder Muster, die Sie besser.

Im Bild mit drei gefalteten Sternen, beachten Sie, dass die dunkleren zwei Löcher (Quadrate, wirklich) schneiden den ganzen Weg durch. Aber das Feuerzeug der drei hat Tissue-Papier in den Jakobsmuscheln entlang der Ränder des Armes, die das Licht vom Aussteigen blockieren wird, aber es wird auch leuchten glänzend.

Wie Sie oben sehen können, habe ich zwei Pixel in jedem Arm des Sterns. Ein Pixel sollte oberhalb der Mittellinie montiert werden, so dass es nach unten und nach links zeigt, und das andere Pixel sollte unterhalb der Mittellinie angebracht sein und ein Bit bzw. "Rechts" nach oben zeigen. Auf diese Weise können Sie die Decke mit einer Farbe beleuchten und die Wände mit einem anderen waschen. Es gibt ein markiertes Bild, das zeigt, was ich über das Wechseln der Pixel (ein höher als die Mittellinie und ein niedriger als die Mittellinie) meine.

Die Pixel arbeiten am besten 1/3 bis 1/2-Weg nach unten der Stern Arm. Es ist schwer, sie in die kleinsten / am weitesten Ende der Arme zu legen. Als ich versuchte, sie am fernen Ende zu setzen, waren die Pixel sehr nahe an der gegenüberliegenden Seite des Arms und verursachten einen hellen Farbfleck auf der gegenüberliegenden Seite des Armes. Indem man sie näher an der Mitte, erhalten Sie eine bessere Farbe zu waschen, und eine bessere Dispersion durch die Ausschnitte.

Lassen Sie etwas Spiel auf den kurzen Drähten, so dass Sie den Stern nach oben falten können. Wenn Ihre kurzen Drähte zu kurz sind, können sie das NeoPixel-Band nach nur wenigen Faltungen beschädigen.

Auf dem Whiteboard sehen Sie die Längen des Drahtes, den ich von Arm zu Arm (lang) und über den Arm (kurz) gegangen. Diese Längen werden natürlich für die großen und die kleinen Sterne unterschiedlich sein. Ich fand, dass es einfacher war, alle kurzen Drähte zuerst zu löten, und dann löten sie zu den längeren Drähten. Ich werde später mehr darüber schreiben.

Ich habe eine einfache Zeichnung mit nur 8 Pixel, und wie die langen und kurzen Drähte angeordnet sind. Es kann helfen, wenn Sie zeichnen, was Sie zu verbinden, einschließlich aller Pixel und Pfeile für den Datenfluss zu zeichnen. Zeichnung kann Ihnen helfen zu verstehen, wie alles zusammen gehen wird.

Schritt 2: Vorbereitung Ihrer Materialien wird einige Zeit dauern, aber spart Ihnen Frustration später

IKEA Star mit ATtiny und NeoPixels

IKEA Star mit ATtiny und NeoPixels

IKEA Star mit ATtiny und NeoPixels

IKEA Star mit ATtiny und NeoPixels

IKEA Star mit ATtiny und NeoPixels

IKEA Star mit ATtiny und NeoPixels

IKEA Star mit ATtiny und NeoPixels

Messen Sie zweimal, einmal schneiden. Schauen Sie sich die in die Arme des Stern schneiden Muster und entscheiden , wo Sie Ihre Pixel montiert werden soll. Dann messen Sie die "langen" Drähte von diesem Punkt in die Mitte des Sterns, wo sie einen U-Turn machen können und gehen Sie den nächsten Arm. Schreib das auf! Sie benötigen SECHS Stücke von drei verschiedenen Farben.

Hinweis: Sie sollten nur einen 2-Pixel - Strang, in Betracht ziehen , und die Skizze Code ausführen , wie sie ist (mit 14 Pixeln im Code) auf einer praktischen Arduino, und sehen , wo die Pixel , die am besten aussehen in nur einem Arm des Sterns. Sobald Sie wissen, dass Platzierung, können Sie die Messungen für die längeren Drähte.

Das Leben ist besser in Farbe. Es ist wichtig , Macht auf die richtigen Pins zu setzen, Boden auf die richtigen Stifte, und die Daten auf den richtigen Pins. Es ist viel wahrscheinlicher, sie gerade zu halten, wenn Sie drei verschiedene Farben verwenden. Sie haben mehr als 100 Verbindungen in diesem Projekt zu machen, so möchten Sie vielleicht in immer drei Draht Farben zu investieren, anstatt mehr Zeit zu debuggen später. (Ich bevorzuge Schwarz für Masse, Rot für die 5 Volt-Energie und Weiß für die Daten.Aber, solange Sie die Bedeutung gerade halten können, können Sie jede mögliche Farben verwenden, die Sie mögen, denn die Farbe der Isolierung doesn ' T beeinflussen, wie der Strom fließt.)

Versuchen Sie , die Dinge kühlen. Ihre NeoPixels werden in einzelne Pixel zu schneiden. Dieses kleine Stück Streifen kann nicht viel von dem Löten loswerden, also benutze ich einen kleinen Schraubstock, und ich nur QUICKLY Zinn die drei Pads auf einer Seite jedes Chips, und legen Sie sie beiseite zu kühlen, bevor ich zurück und Zinn Anderen drei Pads. ("Tinning" verwendet ein schnelles Bit von Wärme, um eine kleine Kugel aus Lötmittel auf das Pad.Later, wenn wir zum Löten der Draht zu jedem Pad, brauchen wir nur eine schnelle Berührung des Lötkolbens, um wieder schmelzen Um den Draht zu befestigen.) Dieser Prozeß verringert die Wahrscheinlichkeit, daß zu viel Wärme den Streifen oder das Pixel verletzen kann. Normalerweise kann man den Hitzeschaden nicht sehen, kann aber zu einem nicht arbeitenden Pixel in der Kette führen! Ich habe tinned genug Pixel für drei Lampen an diesem Tag. Sie können weitere spezielle Hinweise über NeoPixels in diesem UberGuide von Adafruit lesen. Https://learn.adafruit.com/adafruit-neopixel-uberguide

Sie sollten auch Zinn die Drähte. Ich benutze 22 oder 20-Gauge - Draht. Es kann ein wenig Wärme nehmen, um den Draht zu erhalten, um das Lot zu akzeptieren. Diese Hitze Dauer könnte schaden, ein Pixel, wenn Sie versuchten, den Draht und löten alle auf einmal. Stattdessen benutzte ich den Schraubstock, um den Lötkolben schräg zu halten, und dann konnte ich den Draht in einer Hand halten und das Lötmittel in der anderen. Zinn beide Enden der Drähte, da Sie jedes Ende zu den Pixeln anbringen werden!

Verwenden Sie eine Steckdose für den ATtiny85. Wenn Sie die ATtiny85 verwenden wollen, werden Sie wahrscheinlich wollen , dass der Chip in der Zukunft neu zu programmieren und eine Buchse wird, dass einfach zu tun. Sie sollten auch die Kondensatoren und die Widerstände haben. Sie brauchen nicht die Drucktaste zu haben, aber vielleicht möchten Sie den Druckknopf später haben.

Schritt 3: Verdrahten Sie Ihre Pixel zusammen, erste Dinge zuerst ...

IKEA Star mit ATtiny und NeoPixels

IKEA Star mit ATtiny und NeoPixels

IKEA Star mit ATtiny und NeoPixels

IKEA Star mit ATtiny und NeoPixels

Nun, da Sie einen Haufen von vor-tinned Pixel und Drähte haben, ist es Zeit, um sie zusammen! Vielleicht möchten Sie einen kleinen Schraubstock verwenden, oder som "third-hand" -Typ von Gerät. Ich bin mit dem Panavise Modell 201, die V-Kerben an den Backen hat , die für kleinere Bretter sind groß und für NeoPixels.

Beginnen Sie mit den kurzen Leitungen zuerst. Starten Sie durch Löten drei Leitungen zu einem Pixel (verschiedene Farben verwenden, wenn Sie verschiedene Farben haben). An dieser Stelle spielt es keine Rolle, ob Sie den Eingang oder die Ausgangsseite des Pixels wählen. Pre-Zinn die Spitze des Bügeleisens, halten Sie den Draht auf der Lötkugel auf dem Pad des Pixels, und berühren Sie dann das Eisen, um das Kabel. (Was Sie für das heiße Lötmittel auf der Spitze des Bügeleisens benötigen, um den Draht zu erhitzen und das Lötmittel auf dem Draht zu erweichen, das dann das Lötmittel auf dem Pad schmelzen wird. Wenn dies geschieht (schnell), spüren Sie den Lötkolben "Dropdown" nur ein wenig, und das ist, wie Sie wissen, dass alle Löten geschmolzen ist, und Sie können halten Sie den Draht halten, aber entfernen Sie den Lötkolben.Beachten Sie, die kleine Oberfläche des Bandes kann nicht viel Wärme zerstreuen, also nur versuchen Lot auf die Pixel für sehr kurze Zeiten, und dann lassen Sie es abkühlen lassen.

Sobald Sie die drei führt auf einem Pixel, löten ein anderes Pixel an das andere Ende. Achten Sie auf die Datenrichtung, betrachten Sie die Pfeile auf den beiden Pixeln! Diese Pfeile sollten in die gleiche Richtung weisen, so dass die Drähte flach, nebeneinander liegen. Schnelles Löten der Leiter zu dem Pixel, wie oben beschrieben, um die Wärmemenge zu minimieren, die Sie auf das Band legen. (Sie bekommen schnell den Hang davon, und Sie werden immer besser und schneller jedes Mal.)

Lösen Sie den Rest der kurzen Drähte als Pixelpaare (ein Pixel, die Drähte und ein Pixel), und legen Sie sie beiseite zu kühlen. Beenden Sie alle kurzen Drähte auf diese Weise. Sobald diese Pixelpaare fertig sind, können Sie die Drähte sanft biegen, während Sie den Hahn der Pixel halten, also sehen sie wie das Foto oben aus. Dies sind die Pixel, die in den Armen der Sterne installiert werden, und die kurzen Drähte müssen einen U-Turn machen.

Bereiten Sie Ihre langen Leitungen, und verwenden sie die Pixelpaare zu verbinden. Starten Sie durch die langen Leitungen in zwei Hälften Biegen und strecken sie, so dass die Drähte flach legen. Beginnen Sie mit der Auswahl eines der Pixelpaare, und verlöten Sie die Drähte mit den vorverzinnten Pads des Data Output ("DO"). Ich schlage vor, mit einem Schraubstock oder "dritte Hand", um das Pixel nach oben zu halten, und halten Sie dann den Draht, so dass die Biegung nach unten fällt. (Blick auf das zweite Bild), um den Winkel richtig zu halten. Wenn Sie diese gerade halten können, wird es viel einfacher, die Pixel in den Arm des Sterns zu installieren, und es wird keine Belastung für die gelöteten Verbindungen. Als nächstes werden die langen Drahtende mit dem nächsten Pixelpaar verlötet, wodurch sichergestellt wird, dass die vorverzinnten Pads des Dateneingangs ("DI") auf dem nächsten Pixelpaar gelötet werden. (Vergewissern Sie sich immer, dass Ihre Pfeile in der Kette in die gleiche Richtung zeigen, den ganzen Weg entlang der Drähte. Wenn Sie ein Pixel rückwärts erhalten, wird das Licht anhalten, und Sie können ein oder zwei Teile beschädigen.

Da die Saite wächst, kann es ein bisschen schwierig sein, von Hand zu halten ... habe ich erwähnt, wie handlich ich einen Schraubstock für diese Projekte zu finden. ;-) Benutzen Sie den Rest der langen Drähte, um Ihre Pixelpaare anzuschließen. Es sollte beginnen, wie das Bild oben aussehen.

Testen Sie immer für Magic Smoke (https://www.adafruit.com/products/565) , bevor Sie Ihre Pixel installieren! Testen Sie die fertige Zeichenkette mit Krokodilklemmen an einen Arduino mit einer geeigneten NeoPixel-Skizze, bevor Sie versuchen, es zu installieren! Hier finden Sie alle Pixel, die falsch installiert wurden, oder vielleicht das Pixel ging schlecht aufgrund von zu viel Wärme während der Montage.

Besser stellen Sie den Code in ein Brett. Es ist nicht nur noch auf einem winzigen sein müssen. Es könnte einfacher zu verbinden, wenn Sie nur eine UNO, oder normale Arduino. Überprüfen Sie einfach in den Code für die Pin-Nummern in der Nähe der Spitze (aber unter all den Kommentaren und Notizen). Nachdem diese Skizze in einem Brett, bereit zu gehen, ist ein gutes Werkzeug, um herum für das Testen und Basteln mit neopixels halten.

Für die einfache Entwicklung meiner Animationen verwende ich einen 16-Pixel-Ring von Adafruit und die Sparkfun USBtiny mit einem ATtiny85. Es packt gut in eine kleine Plastikwanne, die in meinem Rucksack lebt, also bin ich bereit zu hacken, wenn ich etwas Freizeit bekomme. (Ich freue mich auf Hacken, während in einem selbstfahrenden Auto während meiner pendeln, um eines Tages arbeiten! ;-)

Schritt 4: Über die Skizze ... Ich benutze Kommentare viel!

Lassen Sie uns zunächst über die Grundlagen gehen, um sicherzustellen , dass die Neulinge in Arduino einige grundlegende Hinweise haben. Diejenigen von euch , mit etwas Erfahrung überspringen voraus auf die gute Nachricht.

  • Skizze: Das ist der gemeinsame Name für eine Programmdatei auf einem Arduino hochgeladen werden. Gemeinsame Skizzen werden drei Abschnitte (Definition der globalen Variablen, die "Setup" -Funktion, und Haupt "Loop" -Funktion) haben. Das Setup läuft einmal, unmittelbar nach der Definition von Variablen, und dann Schleife läuft immer und immer wieder. Sie können andere Funktionen außerhalb von "Schleife" hinzufügen und dann Ihre Hauptschleife aufrufen, um die Funktionen. In meiner Skizze, wähle ich Farben durch Aufruf einer zufälligen Funktion, und dann sende ich Informationen an die Farbe Animation-Funktionen. Wenn eine Funktion abgeschlossen ist, wird die "Schleife" von dort fortgesetzt. Sie können mehr über diese zu lesen https://www.arduino.cc/en/Reference/HomePage
  • Arduino: kann ein paar Dinge bedeuten, aber die häufigste ist ein Verweis auf eine Familie von CPU - Chips, und die Platten / Module sie auf montiert sind.
  • CPU - Familie: Die ursprüngliche Arduino UNO Bord wurde auf Basis eines bestimmten "System on a Chip" (SoC) Gerät. Diese SoC - Geräte sind viel mehr als die lexikalische Definition einer Central Processing Unit (CPU), sondern in der Perspektive der Bastler, die "CPU" ist in der Regel der Chip auf der Platine mit der größten Anzahl an Beinen und mit allen Gehirnen. ATMEL macht eine große Anzahl von SoC-Chips, einige mit mehr Speicher und Eingaben für große Projekte, und einige mit weniger Speicher und weniger Eingänge / Ausgänge für kleinere Aufgaben. Dies bezeichnet man als ATMEL Familie , weil die Chips den gleichen Satz von maschinennahen Befehlscode teilen. (Dank der IDE, müssen Sie wahrscheinlich nicht wissen, was "Maschinensprache" und "Befehlssätze" sind alle über ... aber jetzt haben Sie ein paar Begriffe zu suchen, wenn Sie tiefer tauchen möchten. Mit der Beliebtheit des Arduino-Projektes gibt es jetzt viele Boards, einige mit den größeren ATMEL-Chips (ATmega ...) und einige mit den kleineren Chips (ATtiny), aber es gibt auch andere Boards, die SoC-Geräte von anderen Chipherstellern verwenden . Ein Beispiel ist die Teensy Familie von PJRC, http://www.pjrc.com/teensy/index.html , die SoC - Geräte von Freescale verwenden. Weil Paul Stoffregen gearbeitet hat, um die "Board Info" für diese Prozessoren in das Arduino-Format aufzunehmen, sind sie nun Teil der Arduino CPU-Familie, die mit der Arduino IDE programmiert werden kann.
  • IDE: ist eine integrierte Entwicklungsumgebung, die ein Software - Programm ist , dass Sie Ihre Skizzen bearbeiten können, und kennt viele verschiedene Arduino - Boards und viele verschiedene Software - Bibliotheken, die alle in einem Computer - Anwendung. Die IDE von http://www.arduino.cc/en/Main/Software (für die englische Version der Seite, können Sie Ihre Sprache variieren ...) ist das, was die meisten Bastler verwenden, aber ATMEL und andere Chip - Hersteller haben auch ihre Eigene Spezial-IDE-Programme.
  • Software - Bibliotheken: Eine typische "Bibliothek" für Ihre Arduino IDE ist eine kleine Sammlung von Dateien, einige komplizierte Code enthält , ganz bestimmte Dinge zu tun. Im Falle meiner NeoPixel-Skizze hat jemand mit Fachwissen die Software geschrieben, um die CPU-Taktrate zu erfassen und die Bits aus einem bestimmten Pin in einem sehr spezifischen Timing-Format zu senden und bestimmte Offsets um einen 360- Grad-Farbrad "basierend auf der Anzahl von Pixeln auf dem String. Da die Experten diesen Code schreiben, müssen Sie nicht herausfinden, wie es zu tun. Sie müssen nur einige "KEYWORDS" lernen, die in der Bibliothek verwendet werden, und dann legen Sie einfach die Keywords in Ihre Skizze. Ihre Arduino IDE kommt mit grundlegenden Bibliotheken, und Sie können andere hinzufügen, wie Sie in andere Aspekte für Ihre Skizzen zu vertiefen. Sie können mehr zu lernen https://www.arduino.cc/en/Tutorial/HomePage . Wenn Sie eine Bibliothek hinzufügen möchten, können Sie dies über die IDE durchführen, oder Sie können den Ordner aus dem Internet herunterladen und den Ordner in Ihren Bibliothekenordner legen (normalerweise in demselben Ordner, in dem Ihre Skizzen leben). Zum Beispiel lebt die Adafruit_NeoPixel Bibliothek hier https://github.com/adafruit/Adafruit_NeoPixel .
  • Kompilieren: ist das Zauber Teil (für die von uns neu in dieser CPU Familien). Wenn wir die Arduino IDE verwenden, programmieren wir in C ++, aber die CPU auf unserem Board spricht in CPU-Familie spezifischen Maschinenebene Code. Compiling bedeutet das Lesen des C ++ - Codes und die Erstellung des Maschinenebenen-Befehlssatzes, den die CPU verstehen wird. Ich bin sehr dankbar, dass die IDE wird dies für uns tun, da würde ich lernen müssen, neue Befehlssätze nur auf andere CPUs verwenden.
  • Hochladen der Skizze: durch Klicken auf das Symbol Hochladen gemacht, die wie die Taste "Play" (eine runde Taste auf der rechten Seite , mit einem Pfeil) aussieht. Wenn Sie das tun, wird die IDE auf Ihre Skizze betrachten, bestimmen , welche Teile , welche Bibliotheken Sie verwendet wird , und welche Karte Sie verwenden. Es wird dann die Skizze zu kompilieren, Code aus irgendwelchen Bibliotheken ziehen Sie angegeben haben (aber nur die Teile der Bibliothek , die Sie in Ihrer Skizze nennen). Es wird dann versuchen, den Code auf Ihr Board laden. (Wenn Sie nicht die richtige Karte ausgewählt haben, wird es fehlschlagen und geben Ihnen eine Fehlermeldung.Überprüfen Sie Ihre Board-Typ und Ihren Port! Dies wird in der Regel verhindern, dass Sie das Senden der falschen Maschine-Level-Code an eine CPU.) Sobald der Upload Ist erfolgreich, Ihr Arduino neu gestartet, und sollte Ihre neue Skizze ausgeführt werden!

Die gute Nachricht ist, dass Kommentare nicht auf Ihre Speicherzuteilung zählen!

Wenn Sie auf die Schaltfläche "Hochladen" klicken, ignoriert die IDE einfach alle Kommentare und stellt einfach das Konvertieren (Kompilieren) aller Befehle und das Einrichten Ihrer Variablen ein. Aus diesem Grund schreibe ich mir Geschichten als Kommentar, um mir zu helfen, mich daran zu erinnern, was ein Teil des Codes tun wird, oder was er erwartet. Ich schlage vor, dass Sie nicht löschen, die Kommentare, weil sie helfen können Sie verstehen, warum ich schrieb die Funktionen, wie ich es tat.

Die Arbeit mit NeoPixels war ein bisschen schwierig für mich. Ich begann eigentlich mit den Macetech Shiftbrite LEDs, die SPI verwenden, um endlich die Programmierung dieser Schieberegister-basierten LEDs zu verstehen. Shiftbrites haben 10 Bits pro Farbe, plus zwei Steuerbits, gegenüber den 8 Bits pro Farbe in NeoPixels, aber der Verschiebungsaspekt ist der gleiche. Da es schwer für mich war zu lernen, entschied ich, dass es nicht so schwer sein sollte für andere, so schrieb ich viele Hinweise für diejenigen, die nach mir folgen würde.

Ich habe gehackt mit NeoPixels für eine Reihe von Projekten, und das Hinzufügen meiner NeoPixel Clues Kommentare. Die Skizze verwendet nicht alle Animationen, die in den Hinweisen referenziert wurden, aber ich ließ sie dort, damit es kreative Gedanken für einige der Leser inspirieren könnte. Ich habe mehr Animationssequenzen, aber ich musste sie aufgrund des kleineren Speicherplatzes im ATtiny85 verlassen. Setzen Sie die Skizze in eine UNO würde Ihnen genügend Platz, um einen 5-Meter-NeoPixel-Streifen und mehr als die doppelte Anzahl der Animationen.

Ich baute einen NeoPixel Farb-Tuner zu helfen, mich hinzufügen / anpassen die Farben in meinem Array, aber das wird in einem anderen Projekt abgedeckt werden.

Ich habe einen Modus-Schalter, aber Sie müssen nicht hinzufügen, dass, wenn Sie nicht wollen. (Sie können einfach auswählen, eine einzelne Sequenz, oder wählen Sie die "random-all-Sequenz, und es wird tun, was Sie wollen, sobald Sie es einschalten.) Wie es jetzt ist, beginnt es in einem Rainbow Wheel, drückt Mode-Schalter Auf alle Pixel die gleiche Farbe und diese Farbe wird durch das Regenbogen-Farbrad zu drehen.Drücken Modus wieder gibt Ihnen Random-All.Pressing-Modus wieder bringt Sie zurück zum Regenbogen-Rad. (Natürlich können Sie auch dieses Verhalten zu ändern. :-) Man könnte versuchen, einen IR-Empfänger hinzuzufügen, um ein Pattern aus der Ferne zu wählen, so dass man keinen Schalter drücken muss.

Die "zufällige" Funktion in den ATMEL-Chips ist nicht sehr zufällig. Das Hinzufügen eines "Antennendrahtes" zu einem analogen Eingang kann das manchmal verbessern. Ich spiele auch mit einer Fotozelle oder einem Potentiometer am analogen Eingang, um die Sequenzen ein bisschen mehr zu verändern.

Diese Skizze sollte ein Ausgangspunkt sein! Holen Sie sich diese Arbeit, und ändern Sie es ein wenig, um zu verstehen, wie Timing die Sequenzen beeinflussen können. Bei längeren Streifen, fand ich , dass ich die ipDelay und icDelay Werte reduzieren soll. Hack ein wenig und viel lernen! Dann fängst du an, alle möglichen Sachen zu betrachten und denkend "ich frage mich, was das mit irgendeinem NeoPixel darin aussehen würde." aufrechtzuerhalten.

Schritt 5: Wenn Sie eine ATtiny mit NeoPixels verwenden möchten, lesen Sie diesen Schritt.

IKEA Star mit ATtiny und NeoPixels

IKEA Star mit ATtiny und NeoPixels

IKEA Star mit ATtiny und NeoPixels

Wenn Sie so ziemlich jedes andere Arduino-Board verwenden, können Sie diesen Teil überspringen.

Aber, wenn Sie die ATtiny erhalten wollen Ihre NeoPixels ans Licht, gibt es ein paar wichtige Schritte. Und ich schrieb dieses instructable, nur so konnte ich ein Projekt hinzuzufügen , die die wichtigen Schritte BIG OUT - Punkt, BOLD FONT! Auf die Gefahr hin, mich zu wiederholen, möchte ich dieser Schritt die wichtigen Bits zu zählen!

Nur ein wenig mehr Informationen über NeoPixels, für diejenigen , die wissen wollen , wie diese Dinge funktionieren. Da es nur eine Datenleitung (neben den beiden Stromleitungen) ist, die alle die "Taktung" Informationen für die Schieberegister muss mit gesendet werden die Daten! Als ein Ergebnis ist der Zeitpunkt des Anstiegs und Abfalls des Datensignals das, was anzeigt, wenn die Daten eine Null oder eine Eins sind oder wenn es Zeit ist, die Bits in den Registern zu den LED-Elementen zu verriegeln. Als Ergebnis hat der Code für das Senden der Bits an den Ausgangspin viele Sektionen, und die IDE entscheidet, welcher Abschnitt zur Kompilierzeit verwendet wird, basierend auf der CPU-Geschwindigkeit auf Ihrem Board. Sie können mehr von Adafruit der NeoPixel Uber Guide (herauszufinden , https://learn.adafruit.com/adafruit-neopixel-uberguide/overview ) und durch die WS-2812 Lesen Datenblatt ( https://www.adafruit.com/datasheets /WS2812.pdf ).

** WENN IHR UHRZEITGESCHWINDIGKEIT NICHT 8 MHZ (oder schneller) ist, kann die Pixelbibliothek die Bits nicht richtig senden!

Das ATtiny-Board ist nicht in vielen der wichtigsten AVR Core-Dateien enthalten. Wenn es enthalten ist, können Sie in der Regel nur wählen 8 MHz Interne Taktrate.

Sie benötigen einen AVR Board - Datei mit einer guten Uhr und Optionen für die ATtiny Familie zu finden , nachdem ich viele ausprobiert, ich dieses fand das Beste zu sein, in Bezug auf die Optionen und die Anzahl der kleinen Chips unterstützt.. Https: // Github. Com / SpenceKonde / ATTinyCore

Standardmäßig wird ein ATtiny bei nur 1 MHz läuft. Sie können Ihren Code hochladen, aber die Pixel werden nicht aufleuchten! Es sei denn, Sie haben ein Oszilloskop, es ist schwer zu sehen, wie diese Timing-Impulse aussehen. Ich verwendete ein o'scope auf TechShop, um meine Theorie zu prüfen, und ich sah, dass die Datenpulse von den kleinen waren viel länger als die von einem Arduino Pro Mini bei 8 MHz, selbst nachdem ich den ATtiny85 Brettart vorgewählt und das ausgewählt hatte 8 MHz (interne) Taktrate und die 16 MHz (PLL interne) Taktfrequenz. Die IDE sah die Optionen ändern, und es sagte, es war neu zu kompilieren. Aber der Chip nie verändert! Ich habe fast zwei Wochen versucht , diese ausfindig zu machen ... Hier ist , was Sie wissen müssen!

** Wenn Sie die Taktgeschwindigkeit ändern (oder ANY der Chip-Optionen, wie Brown-Out-Erkennung), müssen Sie zuerst auf "BURN BOOTLOADER" am unteren Rand des Tools-Menü klicken!

Sie * nur * müssen Bootloader zu verbrennen , wenn Sie eine Option ändern. Es dauert einen kurzen Augenblick, während die IDE "die Fuse Bits brennt" , die diese Funktionen in den Chip gesetzt, so wird es immer Boot zu dieser Geschwindigkeit und mit diesen Optionen Set.

Danach können Sie auf Klick auf den Upload - Button, und Änderungen an Ihren Skizzen zurück.

(Full Disclosure:.. Mit den meisten Basiskarten, die wir nie darüber nachdenken, sehen wir Möglichkeiten für die Verwendung eines Pro Mini 8 MHz oder Pro Mini 16 MHz im Board Manager Wir müssen nicht gesetzt Fuse Bits , klicken wir einfach hochladen und alles funktioniert , weil der Einstellungen im Board Manager und in Bibliotheken. I * * diese Ahnung in einem sah Hackster Projekt von Alex Glow, aber die USB - Treiber für meine USBtiny Board funktionierte nicht ... so habe ich versucht , Indem ich Burn Bootloader ein paar Mal, und nichts passiert, so dass ich gab auf. Sobald die USB-Treiber funktionierten, und ich konnte hochladen, habe ich nicht mehr über den Bootloader denken, da ich schon die Taktrate in Die IDE. :-( Die Experten unter uns wahrscheinlich denken, dass die meisten Leute wissen, über dies, und damit sie nicht fragen: "Haben Sie versuchen, Burning the Bootloader, haben Sie, nicht wahr? ".Sobald ich wieder gelernt schließlich sah es erwähnt in fetter Schrift in einem anderen Projekt, und ich versuchte es, und meine Pixel LIT! Während meine Hinweise schriftlich auf, und im Rückblick auf viele der Projekte hatte ich versucht zu folgen, um nur einige erwähnt den Bootloader zu brennen, und das ist , wenn Ich habe beschlossen, dieses Projekt aufzuschreiben.)

Schritt 6: Einige Gedanken über Pixel-Platzierung

IKEA Star mit ATtiny und NeoPixels

IKEA Star mit ATtiny und NeoPixels

IKEA Star mit ATtiny und NeoPixels

Malerei mit Licht und Farben ist für mich interessant. Hier sind einige Dinge, die speziell für die Beleuchtung der IKEA Star Laternen berücksichtigt werden.

Erste Test, bevor Sie etwas zukleben. Ernsthaft! Sie machen wollen, dass dies genau durch die Anweisungen, aber Sie sollten nur ein paar Pixel an Ort und Stelle halten, leuchten die Zeichenfolge, und sehen, was gut aussieht zu Ihnen, bevor Sie sich entscheiden, die Pixel nach unten zu halten.

** WIEDERHOLUNG: Sie sollten in Erwägung ziehen , nur einen 2-Pixel - Strang, und die Skizze Code ausführen , wie sie ist (mit 14 Pixel im Code), und sehen , wo die Pixel , die das Beste aus den Stern in nur einem Arm zu suchen. Sobald Sie wissen, dass Platzierung, können Sie die Messungen für die längeren Drähte.

Lassen Sie Platz für das Licht zu zerstreuen. Wenn Sie die Pixel zu nahe an der anderen Seite des Sterns haben, können Sie "Hot Spots" auf der anderen Seite des Armes des Sterns zu sehen. Das Platzieren der Pixel näher an der Mitte des Arms des Sterns wird wahrscheinlich besser aussehen. In dem ersten Bild oben (grauer Stern, blaue LEDs, und mein Finger zeigen ...) können Sie sehen, wie weit unten den Arm ich die Pixel, und mein Finger zeigt, wo ich glaube, ich hätte sie setzen sollen. Ich bin schuldig, nicht zu testen, bevor Sie Pixel Pixel nach unten. Aufrechtzuerhalten.

Prüfen Sie, ob die Dicke des Materials. Der wichtige Faktor ist " , wie viel Licht durch das Material zeigen wird", sowie , was Licht wird durch die Löcher gegossen werden. Ein Paar Modelle der IKEA Sternlaterne hatten dünneres Material als andere und Sie können Schatten von den Drähten sehen, wenn Sie es im Dunkeln sehen. Wenn Sie dünneres Material haben, können Sie ein wenig Heißkleber benutzen, um Ihre Drähte entlang der Wirbelsäule des Armes des Sterns zu heften.

In dem Bild mit dem grünen Stern, können Sie sehen, wie transluzent dieses Material ist. (Dies ist der graue Stern ...) Sie können auch die Schatten von den Drähten sehen. Ich gab mir nicht genug Schlag, um die Drähte in den Rand der Arme zu schieben. Dieser Stern wurde unter Verwendung von # 20 Eichlitzendrähten hergestellt, und Sie würden mit # 22 fein sein und konnten weg mit # 24 erhalten.

Das letzte Bild ist , wie viel Licht von diesen Pixeln kommen kann. Der helle Streifen am unteren Rand ist an meinem Color Tuner - Projekt, und die Pixel der Kamera. Es gibt zwei IKEA-Sterne (kleiner auf der linken Seite, größer auf der rechten Seite.Der kleinste Stern hat ein einziges Pixel inder der Mitte, mit Blick auf die Wand.Die Helligkeit der Pixel ist, warum ich vorschlagen, setzen die Pixel ein wenig weiter von den Löchern, Um zu minimieren, wie oft Sie direkt auf eine helle LED starren könnten.

Schritt 7: Die letzten Worte ...

Diese Animationen können mit kurzen und langen Streifen verwendet werden, nur durch die numLeds variable Einstellung.

Ich finde, dass die "Wisch" -Typ Animationen langsamer auf wirklich langen (~ 150 Pixel, 5 Meter) Streifen schauen. Wenn Sie mehr Streifen verwenden möchten, sollten Sie die icDelay und ipDelay globale Variablen zu senken.

Betrachten Sie die Geschwindigkeitsgrößen in der Hauptschleife Abschnitt zum Ändern entweder / beide Regenbogen - Funktionen. Die Zufallsfunktion eignet sich für eine schnellere und langsamere Geschwindigkeit (Änderungsrate). Beobachten Sie es Zyklus für eine Weile, und entscheiden, ob es jemals scheint zu schnell oder zu langsam, und passen Sie die Grenzen entsprechend.

Wenn Sie eine Animation hacken möchten, gibt es einen Debugging-Abschnitt in Kommentaren;

    Sequenz = Modus;  // Benutze eine Schaltfläche, um durch die Sequenzen zu gehen (kommentiere die beiden anderen) // sequence = randomChoice ();  // voll zufällig arbeiten (die beiden anderen Kommentare kommentieren) // sequence = 1;  // zu debuggen, das Muster auszuwählen, das Sie debuggen, kommentieren die anderen zwei)

Sie können einfach Kommentare Zeichen (//) vor der ersten Zeile hinzufügen und die // aus der Sequenz = 1, entfernen und dann die 1 ändert sich die Zahl der Animation, die Sie immer und immer wieder sehen wollen. .. dann hochladen und beobachten, und Notizen. Tune die Skizze, und laden Sie es erneut.

Wenn "mode == 1" ist , dann ist die Skizze in "Random-All-Sequenzen", und die meisten Animationen werden die Würfel rollen , um zu sehen , wie viele Zyklen sie die Animation wiederholen (mit gelegentlichen Farben jedes Mal) , bevor die sich bewegende auf Nächste Animationssequenz.

Der Code für die verschiedenen Animationen befindet sich unterhalb der Zufallsauswahl. Ich hoffe, dass Sie lesen und lernen, sowie die Skizze genießen. Ich freue mich darauf zu sehen, dass einige von euch Ihre Projekte irgendwann posten. Ich werde versuchen, Ihre Fragen in den Kommentaren zu beantworten.

Related Reading