Transformatorstern auf dem Weihnachtsbaum



Am Vorabend des neuen Jahres im Kindergarten gebeten, einen Weihnachtsbaum Spielzeug zu machen. Ich beschloss zu helfen und den technischen Teil für die Herstellung von Kunsthandwerk zu übernehmen und den Designteil dem Kind zu überlassen. Weil Ich bin nicht auf der Suche nach einfachen Wegen. Ich habe beschlossen, das technologischste Spielzeug herzustellen und es wäre mehr als nur ein Feuerball in einer Kugel. Ich weiß nicht wie, aber in meinem Kopf reifte sofort die Idee, aus einem Schrittmotor und adressierbaren LEDs einen verwandelnden Stern zu machen.

Verwendete Materialien:

  1. Plexiglas für die Schlussbeleuchtung
  2. 28BYJ-48 Schrittmotor
  3. Der Treiber auf dem ULN2003-Chip
  4. Mikrocontroller ATTINY85
  5. LED-Streifen WS2812

Wenn Sie die Kante aus Plexiglas für die Schlussbeleuchtung beleuchten, leuchten nicht nur die Kanten, sondern auch die Ebene selbst. Aufgrund der Heterogenität der inneren Struktur eines solchen Plexiglases wird das Licht im Inneren wiederholt reflektiert und somit die Ebene hervorgehoben. Ich habe ein Stück auf A4 gedruckt und 2 Teile des Sterns ausgeschnitten.

Bild



In einem der Teile habe ich einen Schrittmotor ausprobiert, einen Drehpunkt gefunden und ein rundes Loch ausgeschnitten, in das ich ein Stück Klebeband WS2812 mit 5 LEDs eingeklebt habe. Ich befestigte den zweiten Teil an der Motorwelle und verband diese ganze Sache mit dem Arduino.



Die Standard-Stepper-Bibliothek zur Steuerung eines Schrittmotors enthält einen Fehler und lässt keine Drehung gegen den Uhrzeigersinn zu. Daher habe ich die Bibliothek TinyStepper_28BYJ_48 verwendet. Für die Animation von LEDs habe ich die Adafruit_NeoPixel-Bibliothek verwendet.

Transformator-Stern-Skizze
// Dokumentation für diese Bibliothek finden Sie unter:
// github.com/Stan-Reifel/TinyStepper_28BYJ_48
//
//
// Diese Bibliothek erfordert, dass der Schrittmotor mit dem Arduino verbunden ist
// Verwenden der ULN2003-Treiberplatine.

// *************************************************** ************************

#include <TinyStepper_28BYJ_48.h>
#include <Adafruit_NeoPixel.h>

// NEO Pixel Konfiguration
# PIN 0 definieren
#define LEDS_COUNT 5
#define RED strip.Color (255, 0, 0)
#define GREEN strip.Color (0, 255, 0)
#define BLUE strip.Color (0, 0, 255)
#define WHITE strip.Color (255, 255, 255)

// Pinbelegung, es können beliebige digitale Pins verwendet werden
#define MOTOR_IN1_PIN 1
#define MOTOR_IN2_PIN 2
#define MOTOR_IN3_PIN 3
#define MOTOR_IN4_PIN 4

// Schrittmotorobjekt erstellen
TinyStepper_28BYJ_48 stepper;
Adafruit_NeoPixel-Streifen = Adafruit_NeoPixel (LEDS_COUNT, PIN, NEO_GRB + NEO_KHZ800);

void setup () {
// Schrittmotor an seine IO-Pins anschließen und konfigurieren
stepper.connectToPins (MOTOR_IN1_PIN, MOTOR_IN2_PIN, MOTOR_IN3_PIN, MOTOR_IN4_PIN);
// Geschwindigkeit und Beschleunigung des Schrittmotors einstellen
stepper.setSpeedInStepsPerSecond (256);
stepper.setAccelerationInStepsPerSecondPerSecond (512);

strip.begin ();
strip.show (); // Initialisiere alle Pixel auf 'aus'
}

void loop () {
// Den Motor eine Umdrehung vorwärts drehen
stepper.moveRelativeInSteps (410);
für (Byte i = 0; i <20; i ++) {
fadeInOut (0xff, 0x00, 0x00); // rot
}

// 1 Umdrehung rückwärts drehen, dann 1 Sekunde warten
stepper.moveRelativeInSteps (-410);
für (Byte i = 0; i <20; i ++) {
fadeInOut (0x00, 0x00, 0xff); // blau
}
}

void fadeInOut (Byte Rot, Byte Grün, Byte Blau) {
float r, g, b;

für (int k = 0; k <256; k = k + 1) {
r = (k / 256,0) * rot;
g = (k / 256,0) * grün;
b = (k / 256,0) * blau;
setAll (r, g, b);
strip.show ();
Verzögerung (5);
}

für (int k = 255; k> = 0; k = k-2) {
r = (k / 256,0) * rot;
g = (k / 256,0) * grün;
b = (k / 256,0) * blau;
setAll (r, g, b);
strip.show ();
Verzögerung (5);
}
}

void setAll (Byte Rot, Byte Grün, Byte Blau) {
für (int i = 0; i <LEDS_COUNT; i ++) {
strip.setPixelColor (i, strip.Color (rot, grün, blau));
}
strip.show ();
}


Es lebt !!!

Jetzt musste alles kompakt zusammengebaut und ATTINY85 anstelle von Arduino verwendet werden. Anhand der Anweisungen auf der Website create.arduino.cc können Sie ATTINY85 einfach und problemlos mit einer Arduino-Skizze nähen. Von 8 Beinen verwendete ich 7, 4 für einen Schrittmotor, 1 für LEDs, 2 für die Stromversorgung, RESET blieb frei.



Für die Montage an der Krone des Weihnachtsbaumes ging der Stößelgriff einwandfrei.



Nach dekorativen Arbeiten sah der Stern viel hübscher aus. Der Griff war mit einem roten Satinband umwickelt, und das Plexiglas war mit einem durchsichtigen Lack mit Glitzern überzogen, wodurch der Glüheffekt stark verstärkt wurde.



Alles mit dem kommenden Jahr 2020, Neujahrsstimmung und Einfallsreichtum!

Source: https://habr.com/ru/post/de480058/


All Articles