Weihnachten 2025 – Animierter Schneewürfel - Teil 1

   Wenn es ein besonderes Element in der Weihnachtsdekoration gibt, dann sind es wohl die Weihnachtsschneekugeln, in denen sich normalerweise ein Schneemann oder ein Weihnachtsmann befinden und die, wenn man sie schüttelt, einen Schneesturm im Inneren auslösen. Für Weihnachten dieses Jahres möchte man diese Idee aufgreifen, sie jedoch an die Welt von Arduino anpassen, weshalb die Glaskugel durch eine transparente Urne ersetzt werden muss. Es darf keine Flüssigkeit verwendet werden, daher wird versucht, den Schneesturm mit Ventilatoren und kleinen Daunenfedern aus einem Staubwedel zu simulieren. Für die Animation sorgt ein kleiner Zug, der außerhalb eines kleinen Dorfes fährt, während ein kleiner Weihnachtsmann mit seinem Schlitten über dem Dorf fliegt.

   Da zu Weihnachten die Beleuchtung mit Botschaften nicht fehlen darf, wird zu Weihnachten mit Beleuchtung gratuliert, außerdem wird die Beleuchtung im Inneren einiger Häuser des Dorfes simuliert, und damit das Projekt Aufmerksamkeit erregt, wird es mit Musik und Klängen untermalt.

   Dieses Weihnachtsprojekt ist in zwei Teile gegliedert: Im ersten Teil werden die Struktur und die Elemente des Projekts zusammengebaut und die beiden Gleichstrommotoren installiert, die sowohl den Zug als auch den Weihnachtsmann und die Innenbeleuchtung einiger Häuser im Dorf in Bewegung versetzen. Im zweiten Teil wird das Projekt mit der Installation einer LED-Anzeige WS2812B zur Anzeige von Nachrichten, dem Soundsystem und den Ventilatoren abgeschlossen.

Die für das gesamte Projekt erforderlichen Materialien sind:

 

        1 Microcontroller board AZ-ATmega328

        1 Double H-Bridge DC Motor Controller Board Module AZ-L298N

        1 Mini MP3 Player Master Module

        1 PAM8403 digital mini audio amplifier 2x 3 Watt DC 5V board with potentiometer

        2 mini speakers 3 watts 8 ohms

        1 4-channel relay module 5V with optocoupler low-level trigger

        2 DC brushless fan heatsink cooler separation interface 3.3 V 5 V

        2 TT Motor DC3V-6V Gear Motor Double Shaft

        6 330 ohms resistors

        6 3 mm white LEDs

        1 1 Kohm resistor

        1 5 Kohm potentiometer

        1 RGB LED Panel WS2812B 16x16 256 LEDs

        Jumper Wire cable 3 x 40 pcs. 20 cm M2M / F2M / F2F

        MB-102 breadboard with 830 contacts

        Plywood Panels, Wood, 420 x 300 x 3 mm

        Acetate Sheets A4

        White wood glue

        Mosquito Net

 

Die erforderliche Software ist:

        Arduino IDE

        Adafruit GFX library (Arduino Adafruit_GFX.h)

        Adafruit NeoPixel library (Arduino Adafruit_NeoPixel.h)

        SoftwareSerial library (SoftwareSerial.h)

        Adafruit_NeoMatrix library (Adrafruit_NeoMatrix.h)                                                                                                    

        DFPlayer Mini-Bibliothek von DFRobot (DFRobotDFPlayerMini.h)

        SPI.h-Bibliothek (in der Arduino IDE enthalten)

        001.mp3

        002.mp3

        003.mp3

        snow_cube_animated_part_1.ino

 

 

Die Zeichnungen der Figuren sind:

      Für Bäume.jpg

       Santa.jpg

      Stadt.jpg

      Zug.jpg

      Abmessungen der Teile


Schaltplan und Beschreibung der im Endprojekt verwendeten Module

 

Zeichnung 2 – Schneewürfelzeichnung Teil 2


Funktionsweise des Projekts

   Wenn der zweite Teil des Projekts fertiggestellt und in Betrieb ist, fährt der Zug in eine Richtung, während der Weihnachtsmann in die entgegengesetzte Richtung fährt, während es in dem kleinen Dorf schneit. Im Hintergrund der Landschaft befindet sich eine LED-Matrix, die die Glückwunschbotschaft anzeigt. Auf Wunsch können auch Bilder angezeigt werden. Während des Betriebs wechseln sich der Zugsound, das Klingeln der Rentierglöckchen des Weihnachtsmanns und Weihnachtsmusik ab. Die Musikdateien können individuell angepasst werden. In diesem Projekt wurden urheberrechtsfreie Dateien hochgeladen.

   Um sowohl den Zug als auch den Schlitten des Weihnachtsmanns zu bewegen, werden Gleichstrommotoren verwendet. An den Motor, der den Zug antreibt, wurde ein 6 mm dickes Rad mit einer Gummikante gekoppelt, das einen Holzring dreht, auf dem der Zug installiert ist. Für die Bewegung des Weihnachtsmanns wird ein Draht angebracht, an dessen einem Ende der Weihnachtsmann befestigt wird und dessen anderes Ende an der Motorachse installiert werden muss. Beide Motoren werden vom Motorsteuerungsmodul L298N gespeist und geregelt. Für den Schneeeffekt wurden kleine Stücke von einem Staubwedel verwendet, da diese sehr leicht sind und sich schon bei minimalem Luftstrom leicht bewegen lassen. Wir verwenden vier 5-VDC-Ventilatoren, um Luft in die Kapsel zu blasen. Diese Motoren werden über das 4-Relais-Modul mit Strom versorgt. Ein Relaismodul schützt den Mikrocontroller vor Überlastung und Stromspitzen beim Start. Für die Leuchtanzeigen wird eine 16x16-RGB-LED-Matrix verwendet. Durch Ändern des Sketches können auch Bilder angezeigt werden. Für den Ton wird eine Kombination aus MP3-Player, Verstärker und zwei Lautsprechern verwendet. Um die Innenbeleuchtung der Häuser im Dorf zu simulieren, werden 6 weiße 3-mm-LEDs verwendet, von denen jede an einen 330-Ohm-Widerstand angeschlossen werden muss, um die Versorgungsspannung anzupassen. Zur Steuerung der gesamten Elektronik wurde der Mikrocontroller AZ-ATmega328 verwendet.

 

Projektmontage

   Die Figuren und die Struktur wurden aus 3 Millimeter dickem Balsaholz gefertigt, da dieses Material alle notwendigen Änderungen an der Struktur zur Korrektur des Projekts ermöglicht und zudem sehr leicht und einfach zu handhaben ist. Die Abmessungen der Figuren und der Struktur dieses Projekts sind Richtwerte und können an die gewünschten Maße angepasst werden.

   Für den Bau des Zuges wurden zwei Zeichnungen jedes Waggons und jeder Lokomotive aus Balsaholz aufgeklebt und ihre Umrisse ausgeschnitten. Um den Zug auf den Ring setzen zu können, wurde beschlossen, einen Draht zwischen die beiden Teile jeder Zugfigur zu kleben. Dazu wurde eine Büroklammer gerade gebogen, um die beiden Teile der Figur zu befestigen, und eine 1 mm tiefe Kerbe in jeden Teil der Figur gemacht, sodass der Draht beim Zusammenkleben der beiden Teile fest sitzt. Die Abmessungen und die Herstellungsweise des Zuges sind auf dem folgenden Foto zu sehen.

 

Abbildung 1 – Abmessungen und Aufbau des Zuges

 

   Es wurde bereits erwähnt, dass einige Häuser des Dorfes über eine Innenbeleuchtung verfügen werden. Zu diesem Zweck werden in sechs Häusern weiße LEDs installiert. Für den Bau des Dorfes wird dieselbe Methode wie für den Zug verwendet: Die Silhouetten der Häuser, die geklebt werden sollen, werden gezeichnet. aber zuvor werden die Umrisse ausgeschnitten, die Rillen für die Installation der LEDs und der Verbindungskabel angelegt und die Löcher für die Fenster und Türen gebohrt, damit das Licht der LEDs durch das Papier scheint, wenn die Umrisse der Häuser aufgeklebt werden. Die Abmessungen der Häuser können frei angepasst werden.

 

Bild 2 – Stadt

 

   Die Methode zum Bau der Weihnachtsmannfigur ähnelt der des Zuges: Die Umrisse der Weihnachtsmannfigur und des Rentiers werden markiert, diesmal sind Weihnachtsmann und Rentier durch zwei Drähte miteinander verbunden, die ähnlich wie die Waggons angebracht werden. Der Draht, der den Weihnachtsmann mit dem Motor verbindet, der ihn dreht, wird an der Rückseite des Schlittens angebracht und anschließend rechtwinklig gebogen, um ihn zur Motorachse zu führen.

 

Bild 3 – Maße des Weihnachtsmanns

 

   Die Methode zum Bau der Tannenbaumfiguren ist ähnlich wie bei den vorherigen: Die Umrisse der Tannenbaumfiguren werden markiert und die Figuren geklebt. Man kann zwei Umrisse verwenden und diese miteinander verbinden oder nur einen Holzumriss verwenden und die Zeichnung des Tannenbaums auf beide Seiten kleben.

Bild 4 – Tannenbäume

 

   Für die Montage des Zuges auf dem Ring werden die erforderlichen Rillen im mittleren Bereich zwischen den beiden Rändern der Ringe angebracht, um anschließend zwei 90-Grad-Winkel an den Drähten der Waggons und der Lokomotive zu bilden und diese auf den Ringen zu installieren. Auf den Bildern sind die Abmessungen des Rings, die Form, die den Drähten gegeben wird, um den Zug in den Ring einzubauen, und der Endzustand des Rings zu sehen.

 

Bild 5 – Zugring

 

   Für den Bau der Plattform, auf der das Dorf stehen wird, wird ein Kreis ausgeschnitten, dessen Durchmesser etwas größer sein muss als der Innendurchmesser des Rings. Wie auf den unteren Bildern zu sehen ist, werden Bohrungen vorgenommen, um die Verbindungskabel zu den LEDs, die das Innere der Häuser des Dorfes beleuchten werden, hindurchzuführen, sowie drei Schlitze zum Einfügen des oberen Teils der Säulen, die die Plattform des Dorfes an der Struktur des Projekts befestigen werden. Diese Säulen haben die gleiche Höhe wie die Außensäulen des Projektkastens. Auf der Innenseite der Plattform werden 3 Holzstifte so angebracht, dass sie sich im Inneren des Rings befinden und einen Spielraum von etwa 2 Millimetern haben, damit sich der Ring frei drehen kann und sie als Begrenzung für eine mögliche seitliche Verschiebung des Rings dienen.

 

Bild 6 – Stadtbahnsteig

 

   Um die Ventilatoren, die Tannenbäume und den Motor, der den Ring des Zuges drehen wird, unterzubringen, wurde die Herstellung eines Würfels mit einem Kreis an der Oberseite mit einem Durchmesser kleiner als der Außendurchmesser des Rings vorgesehen, wodurch der Ring, der den Zug enthält, innerhalb der Grenzen der Plattform des Dorfes und der Plattform der Ventilatoren und Tannenbäume bleibt. Der Zug fährt durch den etwa 4 Millimeter breiten freien Spalt. In diesem Projekt wurden Säulen verwendet, die genauso hoch sind wie die Stützsäulen der Dorfplattform. Es wurden drei pro Seite (an den Kanten  und in der Mitte der Seiten) installiert. Der Leser kann auch Säulen oder Platten mit den erforderlichen Abmessungen verwenden, um sie abzudecken. In der folgenden Abbildung sind die Abmessungen aller Teile dieses Bauteils zu sehen.

 

Bild 7 – Ventilatorplattform

 

   Die folgenden Bilder zeigen die Schritte für den Zusammenbau des ersten Teils des Projekts, bei dem die Dorfplattform, der Zugring und die Plattform mit den Ventilatoren und Tannenbäumen installiert werden. Wie auf dem letzten Bild zu sehen ist, wurde alles mit einem weißen Filzstift bemalt, um eine verschneite Landschaft zu simulieren.

 

Bild 8 – Montage des ersten Teils des Projekts

 

Beschreibung der Funktionsweise des ersten Teils des Projekts und Skizze

   Für diesen ersten Teil des Projekts wurde die grundlegende Elektronik für die Bewegung des Zuges und der Weihnachtsmann sowie für die Innenbeleuchtung einiger Häuser, genauer gesagt 6 Häuser, installiert. Der elektronische Schaltkreis ist wie folgt aufgebaut:

 

Zeichnung 1 – Schneewürfelzeichnung Teil 1

 

   Die Schaltung des ersten Teils des Projekts verfügt über das Motorsteuerungsmodul L298N zur Steuerung der Drehzahl und Drehrichtung der beiden Motoren der Baugruppe, von denen einer für die Bewegung des Rings mit dem Zug und der andere für die Bewegung des Weihnachtsmanns zuständig ist. Dieses Modul wird mit zwei Spannungen versorgt: Über den 5-VDC-Ausgang des Mikrocontroller-Moduls wird die Steuerelektronik des Moduls versorgt, und über eine externe 5-Volt-Stromversorgung werden die Motoren versorgt. Dabei muss darauf geachtet werden, den Jumper zu entfernen, der den internen Regler des Moduls deaktiviert.

 

Abbildung 9 – L298N-Modul

 

   Es gibt 6 weiße 3-Millimeter-LEDs, die an den Pluspol jeder LED einen 330-Ohm-Widerstand angeschlossen haben müssen. Dieser Widerstand reguliert die Spannung, die zur Versorgung der LED erforderlich ist, ohne sie durch Überspannung zu zerstören. Die LEDs werden in 6 Häusern als Innenbeleuchtung installiert.

   Nun wird der Sketch des ersten Teils analysiert. Zunächst müssen im Sketch die Pins des Mikrocontrollers definiert werden, an die die Kontakte des Moduls L298N angeschlossen werden, das jeden Motor steuert. Für jeden Motor benötigen wir drei Ports, wobei einer die Motordrehzahl steuert und die beiden anderen die Drehrichtung. Damit werden sechs Konstanten definiert, denen die Nummer des Ports des Mikrocontrollers zugewiesen wird, an den die Pins ENA, IN1, IN2, IN3, IN4 und ENB des Moduls L298N angeschlossen werden. Die Namen der Konstanten sind leicht zu interpretieren, für welche Motoren sie stehen.

 

#define enable_Santa_motor 7

#define connection_1_Santa_motor 5

#define connection_2_Santa_motor 6

 

#define enable_train_motor 2

#define connection_1_train_motor 3

#define connection_2_train_motor 4

 

   Außerdem müssen Konstanten für die sechs LEDs definiert werden, denen die Nummer des Ports des Mikrocontrollers zugewiesen wird, an den sie angeschlossen werden.

 

#define led_house_1 8

#define led_house_2 9

#define led_house_3 10

#define led_house_4 11

#define led_house_5 12

#define led_house_6 13          

 

   Mit den Definitionen der Konstanten ist der Block zur Definition der Variablen abgeschlossen und die Methode setup() des Sketches muss programmiert werden. Zunächst werden die Pins des Mikrocontrollers konfiguriert, die zur Steuerung der Motoren verwendet werden sollen. Sie müssen mit pinMode(pin_number, OUTPUT) als Ausgangssignal-Pins konfiguriert werden, da sie Signale an die Pins des L298N-Steuermoduls senden müssen.

 

pinMode(enable_Santa_motor,OUTPUT);

pinMode(connection_1_Santa_motor,OUTPUT);

pinMode(connection_2_Santa_motor,OUTPUT);

 

pinMode(enable_train_motor,OUTPUT);

pinMode(connection_1_train_motor,OUTPUT);

pinMode(connection_2_train_motor,OUTPUT);

 

   Die Pins des Mikrocontrollers, an die die LEDs angeschlossen werden, müssen ebenfalls als Ausgangspins konfiguriert werden, da sie Spannung liefern müssen, damit die LEDs leuchten.

 

 

pinMode(led_house_1,OUTPUT);

pinMode(led_house_2,OUTPUT);

pinMode(led_house_3,OUTPUT);

pinMode(led_house_4,OUTPUT);

pinMode(led_house_5,OUTPUT);

pinMode(led_house_6,OUTPUT);

 

   Mit den obigen Zeilen ist die Programmierung der Methode setup() des Sketches abgeschlossen. Nun muss die Methode loop() programmiert werden, die kontinuierlich ausgeführt wird. Die ersten drei Zeilen dieser Methode dienen zur Steuerung des Motors von Santa, wobei mit der Zeile analogWrite(pin_number, value)  wird die Motordrehzahl mit einem analogen Wert eingestellt, dessen Maximalwert 244 beträgt. Wie im Video dieses ersten Teils zu sehen ist, ist die Motordrehzahl zu hoch. Wenn der Wert dieser Variablen unter 128 liegt, dreht sich der Motor nicht. Im zweiten Teil des Projekts wird dieses Problem durch Hinzufügen eines Potentiometers gelöst. Für die Drehrichtung des Motors werden die beiden mit digitalWrite(pin_number, state) definierten Leitungen verwendet. Falls sich der Motor von Santa entgegen der gewünschten Drehrichtung dreht, kann dies entweder durch Ändern des Status dieser beiden Leitungen oder durch Vertauschen der Kabel vom Modul L298N zum Motor behoben werden.

 

analogWrite(enable_Santa_motor,128);

digitalWrite(connection_1_Santa_motor,HIGH);

digitalWrite(connection_2_Santa_motor,LOW);

 

   Die Codezeilen für die Steuerung des Motors des Zugrings sind genau dieselben wie die zuvor erläuterten. In diesem Fall ist die Geschwindigkeit des Zuges korrekt. Wenn Sie eine höhere Geschwindigkeit wünschen, müssen Sie den Wert in der Zeile analogWrite(pin_number, value) erhöhen.

 

analogWrite(enable_train_motor,128);

digitalWrite(connection_1_train_motor,HIGH);

digitalWrite(connection_2_train_motor,LOW);

 

   Damit die LEDs leuchten, muss der Status der Pins, an die sie angeschlossen sind, geändert werden. Normalerweise befindet sich der Anfangsstatus der Ports beim Anschließen der Spannung an eine Mikrocontroller-Platine oder beim Zurücksetzen im Low-Zustand (LOW), Das heißt, sie liefern keine Spannung, sodass der Status auf „hoch” (HIGH) geändert werden muss, um eine Ausgangsspannung von 5 Vdc zu erhalten. Dies erfolgt mit dem Befehl digitalWrite(pin_number, STATE). Nach dem Einschalten jeder LED wird eine Pause von 3 Sekunden eingelegt.

 

digitalWrite(led_house_1, HIGH);

delay(3000);

digitalWrite(led_house_2, HIGH);

delay(3000);

digitalWrite(led_house_3, HIGH);

delay(3000);

digitalWrite(led_house_4, HIGH);

delay(3000);

digitalWrite(led_house_5, HIGH);

delay(3000);

digitalWrite(led_house_6, HIGH);

delay(3000);

 

 

   Wir hoffen, dass Ihnen dieser erste Teil des Projekts für Weihnachten dieses Jahres gefallen hat. Im zweiten Teil des Projekts werden ein WS2812B-Panel mit 256 LEDs, ein Soundsystem und Ventilatoren installiert, um Schnee zu simulieren.

Für arduinoGrundlagen elektronikProjekte für fortgeschritteneRelaisSpecials

Lascia un commento

Tutti i commenti vengono moderati prima della pubblicazione