Werbung
Weihnachten ist wieder da und ob es nun Ihr Lieblingsfeiertag des Jahres ist oder Sie kalt ins Schwitzen bringt, die Dekorationen beginnen zu steigen. Warum nicht in diesem Jahr DIY-Technologie in Ihre Dekorationen integrieren, um sie hervorzuheben?
In diesem Projekt werden wir eine wetterfeste, bewegungsaktivierte 8 x 8 LED-Matrix von Grund auf neu bauen… für unter 20 US-Dollar. Es ist so konzipiert, dass es in die Mitte eines normalen Weihnachtstürkranzes passt, obwohl es überall im Haus verwendet werden kann. Und da es batteriebetrieben ist, auch außerhalb des Hauses!
Liste der Einzelteile
Für dieses Projekt benötigen Sie:
- Arduino.
- Ich habe das benutzt Nano denn es ist klein, aber Sie können fast jedes verwenden Arduino-kompatibler Mikrocontroller Arduino Buying Guide: Welches Board solltest du bekommen?Es gibt so viele verschiedene Arten von Arduino-Boards, dass man sich verzeihen kann, verwirrt zu sein. Was solltest du für dein Projekt kaufen? Lassen Sie uns mit diesem Arduino-Einkaufsführer helfen! Weiterlesen .
- 64 x rote LEDs.
- 8 x 220 Ohm Widerstände.
- PIR-Bewegungssensor.
- Viele Arduino Starter Kits Was ist in einem Arduino Starter Kit enthalten? [MakeUseOf erklärt]Ich habe die Open-Source-Hardware von Arduino bereits hier auf MakeUseOf vorgestellt, aber Sie benötigen mehr als nur das eigentliche Arduino, um etwas daraus zu bauen und tatsächlich loszulegen. Arduino "Starter Kits" sind ... Weiterlesen komm mit diesen. Ich habe ein Multi-Pack von gekauft Amazon für 10 US-Dollar.
- 1 Stück Prototyping Board.
- Die hier verwendete war 9 x 7 cm, obwohl Sie jede gewünschte Größe verwenden können.
- 7-12V Batterie.
- Hier wird aus Budgetgründen ein einfacher Akku verwendet, aber a Ladegerät für mobile Banken Die besten Pokemon Go Power BanksPokemon Go schlägt den Akku eines Telefons zum Teufel. Um ein bisschen mehr Pokemon-Saft aus Ihrem Telefon zu pressen, ist eine Powerbank erforderlich. Aber was ist die beste Batterie da draußen? Weiterlesen kann noch länger dauern.
- Verschiedene kurze Drahtstücke.
- Tupperware-Box oder ähnliches wetterfestes Gehäuse.
- Stellen Sie sicher, dass es groß genug ist, um alle Ihre Komponenten hinein zu passen!
- Weihnachtskranz.
- Jeder wird es tun, stellen Sie einfach sicher, dass die Gehäusebox hineinpasst.
- Lötkolben und Lötmittel.
Obwohl dies nicht unbedingt erforderlich ist, da Sie die Komponenten direkt an den Nano anlöten können, fand ich beim Testen auch ein kleines Steckbrett sehr nützlich. Eine Heißklebepistole hilft auch beim Zusammensetzen aller Teile.
Dieses Projekt erfordert ziemlich viel Löten, und als Anfänger mag es entmutigend erscheinen. Ich persönlich bin immer noch ein Anfänger im Löten und fand es nicht so herausfordernd oder zeitaufwändig, wie es scheint. Wenn Sie auch neu im Löten sind, sind hier einige gute tipps um zu helfen Erfahren Sie, wie Sie mit diesen einfachen Tipps und Projekten lötenSind Sie ein wenig eingeschüchtert von dem Gedanken an ein heißes Eisen und geschmolzenes Metall? Wenn Sie mit Elektronik arbeiten möchten, müssen Sie das Löten lernen. Lasst uns helfen. Weiterlesen .
Wenn Sie sich wirklich nicht für das Löten interessieren, ist dieses Projekt auch mit möglich LED-Streifen Wochenendprojekt: Erstellen Sie ein riesiges LED-Pixel-DisplayIch liebe LED-Pixel: hell, einfach zu steuern, billig und so vielseitig. Heute verwandeln wir sie in ein großes Pixel-Display, das an die Wand gehängt werden kann. Weiterlesen oder eine vorgefertigte LED-Matrix, die Sie möglicherweise in Ihrem Starter-Kit haben. Einige Code-Anpassungen sind erforderlich, wenn Sie sich für diesen Weg entscheiden.
Einrichten des Arduino
Wir beginnen mit dem Schaltplan für den Arduino und den Drähten, die wir an unseren PIR-Sensor und unsere LED-Matrix anschließen werden.
In der Matrix
Nun zu unserer 8 x 8 LED Matrix. Es ist zunächst eine gute Idee, eine Zeile und eine Spalte der Matrix zu erstellen, um sicherzustellen, dass sie genau dort sind, wo Sie sie auf dem Prototyping-Board haben möchten.
Auf dem Foto oben sind alle LEDs so platziert, dass die Anoden (das längere, positive Bein) zur Oberseite des Protoboards zeigen. Dies ist wichtig, da wir Spalten gemeinsamer Anoden erstellen, indem wir sie miteinander verbinden, und Reihen gemeinsamer Kathoden (das kürzere, negative Bein). Wenn Sie dies jetzt tun, sparen Sie später Kopfschmerzen!
Wir werden eine gemeinsame Reihenkathodenmatrix bauen. Dieses Diagramm zeigt, wie alles miteinander verbunden ist.
Es mag auf den ersten Blick ein wenig entmutigend aussehen, aber es ist eine recht einfache Konfiguration. In jeder Reihe werden alle Kathoden von rechts nach links verbunden und dann an einem unserer Arduino-Stifte befestigt. Danach machen wir dasselbe für jede Anodenspalte. Auf diese Weise können wir abhängig davon, an welche Spalte wir Strom anlegen und welche Zeile wir mit Masse verbinden, jede einzelne LED im Array einschalten.
Lass das Löten beginnen
Platzieren Sie zunächst Ihre erste LED-Reihe. Stellen Sie sicher, dass alle Anoden nach oben zeigen, und drehen Sie sie um. Ich fand heraus, dass das Hinzufügen einer weiteren LED in jeder Ecke und das Anbringen eines weiteren Protoboards mit einer elastischen Schnur dazu beitrug, alles an Ort und Stelle zu halten.
Biegen Sie nun nacheinander das (kurze) Kathodenbein jeder LED nach links, sodass sich alle überlappen. Es ist am einfachsten, von links zu beginnen und rechts zu arbeiten. Wenn Sie ein größeres Stück Protoboard verwenden, können Sie es zuerst auf die Platine löten und mit den Pads miteinander verbinden. Achten Sie darauf, keine der Kathoden mit anderen Leitungen auf der Platine oder einer der Anoden zu verbinden!
Wiederholen Sie diesen Vorgang für alle acht Zeilen. Wenn Sie fertig sind, sollten Sie etwas haben, das ungefähr so aussieht:
Springende Anoden!
Die Anodensäulen sind etwas fummeliger. Im obigen Diagramm krümmen sich die Anoden jedes Mal, wenn sie eine Reihe von Kathoden kreuzen. Dies liegt daran, dass sie die Zeilen überhaupt nicht berühren können. Wir müssen die Anoden über die Kathodenreihen biegen und aneinander befestigen. Möglicherweise hilft es sehr, die Beine mit einem Stift zu beugen.
Tun Sie dies für jede Anodenreihe und befestigen Sie an jeder oberen Anode einen Widerstand. Sie werden es wahrscheinlich einfacher finden, den Widerstand in das nächste Loch im Protoboard zu stecken und die Pads mit Lötmittel zu verbinden. Sie sollten jetzt so etwas haben:
Herzliche Glückwünsche! Die LED-Matrix ist vollständig. Überprüfen Sie Ihr Löten zu diesem Zeitpunkt gründlich, um sicherzustellen, dass keine Unterbrechungen auftreten und keine der Spalten die Zeilen berührt. Mach dir keine Sorgen, wenn es nicht hübsch aussieht, wir brauchen es nur, um zu funktionieren! Sie können jetzt jede LED einzeln überprüfen, indem Sie 5 V an eines der Spaltenenden anschließen und an einem der Zeilenenden erden.
Wenn alles in Ordnung ist, befestigen Sie Anschlussdrähte an jeder Spalte und jeder Reihe und befestigen Sie sie an Ihrem Arduino, wie in der obigen Abbildung gezeigt.
Lassen Sie uns die Codierung erhalten
Öffnen Sie die Arduino IDE und wählen Sie Ihr Board und Ihren Port. Wenn Sie Arduino noch nicht kennen, sehen Sie sich das an Erste Schritte Anleitung. Erste Schritte mit Arduino: Ein Leitfaden für AnfängerArduino ist eine Open-Source-Plattform für das Prototyping von Elektronik, die auf flexibler, benutzerfreundlicher Hardware und Software basiert. Es richtet sich an Künstler, Designer, Bastler und alle, die interaktive Objekte oder Umgebungen erstellen möchten. Weiterlesen
Geben Sie diesen Code in den Editor ein. Es ist ziemlich dichter Code, wenn Sie mit ihm nicht vertraut sind, aber er ist verfügbar Hier vollständig kommentiert, um zu verstehen, wie es funktioniert.
const int row [8] = {2,3,4,5,6,7,8,9}; const int col [8] = {10,11,12,14,15,16,17,18}; int pirPin = 19; int pirState = LOW; int val = 0; bool pirTrigger = false; const int pirLockTime = 12000; int pirCountdown = pirLockTime; int Pixel [8] [8]; const int refreshSpeed = 500; int countDown = refreshSpeed; int currentCharIndex = 0; typedef bool CHAR_MAP_NAME [8] [8]; const CHAR_MAP_NAME blank = {{0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, }; const CHAR_MAP_NAME threedownthreein = {{0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, }; const int noOfFrames = 5; const CHAR_MAP_NAME * charMap [noOfFrames] = { & blank, & threedownthreein, & blank, & blank, & threedownthreein. }; void setup () {for (int i = 0; i <8; i ++) {pinMode (Zeile [i], OUTPUT); pinMode (col [i], OUTPUT); // Bewegungssensor pinMode (pirPin, INPUT); digitalWrite (col [i], LOW); } } void screenSetup () {const CHAR_MAP_NAME * thisMap = charMap [currentCharIndex]; für (int x = 0; x <8; x ++) {for (int y = 0; y <8; y ++) {bool on = (* thisMap) [x] [y]; if (on) {Pixel [x] [y] = HIGH; } else {Pixel [x] [y] = LOW; }}} currentCharIndex ++; if (currentCharIndex> = noOfFrames) {currentCharIndex = 0; }} void refreshScreen () {for (int currentRow = 0; currentRow <8; currentRow ++) {digitalWrite (Zeile [currentRow], LOW); für (int currentCol = 0; currentCol <8; currentCol ++) {int thisPixel = pixels [currentRow] [currentCol]; digitalWrite (col [currentCol], thisPixel); if (thisPixel == HIGH) {digitalWrite (col [currentCol], LOW); }} digitalWrite (Zeile [currentRow], HIGH); }} void loop () {val = digitalRead (pirPin); if (val == HIGH) {pirTrigger = true; } else if (val == LOW && pirCountdown <= 0) {pirTrigger = false; pirCountdown = pirLockTime; } if (pirTrigger == true && pirCountdown> 0) {refreshScreen (); Countdown--; pirCountdown--; if (countDown <= 0) {countDown = refreshSpeed; screenSetup (); } } }
Die wichtigen Teile zu verstehen sind:
Das refreshSpeed Variable. Diese Variable bestimmt, wie die Zeit zwischen den einzelnen Bildschirmaktualisierungen ist. Eine größere Anzahl bedeutet ein längeres Warten.
Die const CHAR_MAP_NAMEs. Hier platzieren Sie jede Charakterzuordnung (oder jeden Rahmen, wenn es einfacher ist, sie so zu sehen), die Sie anzeigen möchten.
Das noOfFrames Variable. Dies bestimmt, wie viele Frames in einem vollständigen Durchspiel angezeigt werden. Beachten Sie, dass dies von der Anzahl der Zeichentabellen abweichen kann. Wenn Sie beispielsweise "A CAT" anzeigen möchten, müssen Sie nur vier verschiedene Frames definieren: blank, an EIN, ein C. und ein T..
Wenn der Bewegungssensor eine Bewegung erkennt, sollte der LED-Bildschirm die LED drei nach unten und drei nach oben links oben blinken. Wenn es nicht richtig angezeigt wird, überprüfen Sie Ihre Verkabelung erneut, um sicherzustellen, dass alles am richtigen Ort ist! Wenn Sie ein eigenes Bild oder eine eigene Nachricht hinzufügen, wird diese möglicherweise vorzeitig unterbrochen oder zu lange abgespielt. Versuchen Sie das zu ändern pirLockTime variabel, bis es für die gewünschte Zeit abgespielt wird.
Das Hinzufügen jedes Frames zur LED-Anzeige kann etwas mühsam sein, daher haben wir erstellt diese Tabelle Um das Erstellen von Text und Bildern für Ihre LED-Matrix zu vereinfachen (erstellen Sie eine Kopie des Google Sheet, damit Sie es bearbeiten können).
Mithilfe der Tabelle können Sie Ihre Kreationen direkt in den Code kopieren.
Machen Sie es mutig die Elemente
Jetzt, da wir eine funktionierende LED-Matrix haben, brauchen wir einen Weg, um das Winterwetter zu überstehen. Obwohl diese Methode einem tropischen Sturm oder einem Eintauchen in den Pool möglicherweise nicht standhält, sollte sie ausreichen, um die gesamte Elektronik vor Witterungseinflüssen zu schützen.
Ich habe eine runde Tupperware-Box mit einem Durchmesser von 15 cm und einer Tiefe von 6 cm verwendet, da sie perfekt zu meinen Komponenten passt. Schneiden Sie ein Fenster in den Deckel, das etwas größer als Ihre LED-Matrix ist, und befestigen Sie eine durchsichtige Kunststofffolie daran. Achten Sie darauf, dass keine Flüssigkeit eindringen kann. Robuster Kunststoff aus einigen Verpackungen würde am besten funktionieren, aber das war alles, was ich hatte. Sie können auch einige Halterungen für das Protoboard anbringen, obwohl beide Arbeiten problemlos mit starkem wasserdichtem Klebeband ausgeführt werden können.
Machen Sie als nächstes ein kleines Loch unter dem Fenster und erweitern Sie es vorsichtig und langsam, bis Ihr PIR-Sensor gerade noch durchpasst. Sie möchten, dass es so gut wie möglich passt.
Bringen Sie Ihren PIR-Sensor an und füllen Sie alle sichtbaren Lücken mit Klebeband oder Heißkleber aus.
Reinigen Sie Klebeband oder Kleber, die das ordnungsgemäße Schließen der Box verhindern könnten, und fügen Sie alle Komponenten zusammen mit Ihrer Batterie zur Box hinzu. Hier wurde ein einfacher AA-Akku verwendet, der direkt in den VCC-Pin des Nano eingesteckt wurde. Ein paar kleine Korkstücke wurden an der Außenseite des Geheges angebracht, um den Bau in der Mitte des Kranzes aufzuhängen.
Und wir sind fertig
Sobald die Schachtel versiegelt ist, hängen Sie sie mit Ihrem Weihnachtskranz auf und warten Sie auf die Reaktionen Ihrer Besucher auf Ihren persönlichen Empfang unter 20 US-Dollar! Sie könnten sogar noch einen Schritt weiter gehen und fantastisch kreieren DIY Dekorationen 3D-gedruckte Weihnachtsdekoration für perfekte geeky FeiertageSparen Sie sich dieses Weihnachten etwas Geld und drucken Sie festliche Verzierungen für Ihr Zuhause in 3D. Weiterlesen für anderswo im Haus auch!
In diesem Projekt haben wir ein in sich geschlossenes LED-Matrixsystem von Grund auf neu gebaut, das bewegungsaktiviert ist und es überleben kann, draußen zu sein, außer bei schlechtem Wetter. Dieser Build wird lange nach Ablauf der Ferienzeit in anderen Projekten nützlich sein, und die gleiche Technik könnte verwendet werden, um billige wetterfeste Gehäuse auch für andere Projekte zu erstellen.
Haben Sie etwas gebaut, um Ihrem Weihnachtsfest einen DIY-Touch zu verleihen? Planen Sie dieses Jahr Weihnachtsgeschenke zum Thema DIY? Lass es uns in den Kommentaren unten wissen!
Ian Buckley ist freiberuflicher Journalist, Musiker, Performer und Videoproduzent und lebt in Berlin. Wenn er nicht schreibt oder auf der Bühne steht, bastelt er an DIY-Elektronik oder Code in der Hoffnung, ein verrückter Wissenschaftler zu werden.