Transformer star sur l'arbre de Noël



La veille de la nouvelle année à la maternelle a demandé de faire un jouet d'arbre de Noël. J'ai décidé d'aider et de prendre en charge la partie technique pour la fabrication de l'artisanat, et de laisser la partie design à l'enfant. Parce que Je ne cherche pas de moyens faciles, j'ai décidé de faire le jouet le plus technologique et que ce serait plus qu'une simple boule de feu dans une balle. Je ne sais pas comment, mais dans ma tête l'idée a immédiatement mûri de faire une étoile transformante à l'aide d'un moteur pas à pas et de LED adressables.

Matériaux utilisés:

  1. Plexiglas pour l'éclairage final
  2. Moteur pas à pas 28BYJ-48
  3. Le pilote sur la puce ULN2003
  4. Microcontrôleur ATTINY85
  5. LED Strip WS2812

Si vous illuminez le bord du plexiglas pour l'éclairage final, alors non seulement les bords, mais aussi l'avion lui-même brillera. En raison de l'hétérogénéité de la structure interne d'un tel plexiglas, la lumière à l'intérieur est réfléchie à plusieurs reprises et ainsi le plan est mis en évidence. J'ai imprimé un morceau sur une feuille A4 et j'ai découpé 2 parties de l'étoile.

image



Dans l'une des pièces, j'ai essayé un moteur pas à pas, trouvé un centre de rotation et découpé un trou rond dans lequel j'ai collé un morceau de ruban WS2812 avec 5 LED. J'ai attaché la deuxième partie à l'arbre du moteur et connecté le tout à l'Arduino.



La bibliothèque Stepper standard pour contrôler un moteur pas à pas contient un bug et ne vous permet pas de tourner dans le sens antihoraire, j'ai donc utilisé la bibliothèque TinyStepper_28BYJ_48. Pour l'animation des LED, j'ai utilisé la bibliothèque Adafruit_NeoPixel.

Transformer Star Sketch
// La documentation de cette bibliothèque se trouve à l'adresse suivante:
// github.com/Stan-Reifel/TinyStepper_28BYJ_48
//
//
// Cette bibliothèque nécessite que le moteur pas à pas soit connecté à l'Arduino
// en utilisant la carte de pilote ULN2003.

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

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

// Configuration NEO Pixel
#define PIN 0
#define LEDS_COUNT 5
# définir la bande ROUGE Couleur (255, 0, 0)
#define GREEN strip.Color (0, 255, 0)
#define BLUE strip.Color (0, 0, 255)
#define WHITE strip.Color (255, 255, 255)

// affectation des broches, toutes les broches numériques peuvent être utilisées
#define MOTOR_IN1_PIN 1
#define MOTOR_IN2_PIN 2
#define MOTOR_IN3_PIN 3
#define MOTOR_IN4_PIN 4

// crée l'objet moteur pas à pas
TinyStepper_28BYJ_48 stepper;
Bande Adafruit_NeoPixel = Adafruit_NeoPixel (LEDS_COUNT, PIN, NEO_GRB + NEO_KHZ800);

void setup () {
// connecter et configurer le moteur pas à pas sur ses broches IO
stepper.connectToPins (MOTOR_IN1_PIN, MOTOR_IN2_PIN, MOTOR_IN3_PIN, MOTOR_IN4_PIN);
// définir la vitesse et les taux d'accélération pour le moteur pas à pas
stepper.setSpeedInStepsPerSecond (256);
stepper.setAccelerationInStepsPerSecondPerSecond (512);

strip.begin ();
strip.show (); // Initialise tous les pixels sur 'off'
}

boucle vide () {
// Faire tourner le moteur vers l'avant d'une révolution
stepper.moveRelativeInSteps (410);
pour (octet i = 0; i <20; i ++) {
fadeInOut (0xff, 0x00, 0x00); // rouge
}

// tourner en arrière 1 rotation, puis attendre 1 seconde
stepper.moveRelativeInSteps (-410);
pour (octet i = 0; i <20; i ++) {
fadeInOut (0x00, 0x00, 0xff); // bleu
}
}

void fadeInOut (octet rouge, octet vert, octet bleu) {
flotteur r, g, b;

pour (int k = 0; k <256; k = k + 1) {
r = (k / 256,0) * rouge;
g = (k / 256,0) * vert;
b = (k / 256,0) * bleu;
setAll (r, g, b);
strip.show ();
retard (5);
}

pour (int k = 255; k> = 0; k = k-2) {
r = (k / 256,0) * rouge;
g = (k / 256,0) * vert;
b = (k / 256,0) * bleu;
setAll (r, g, b);
strip.show ();
retard (5);
}
}

void setAll (octet rouge, octet vert, octet bleu) {
pour (int i = 0; i <LEDS_COUNT; i ++) {
strip.setPixelColor (i, strip.Color (rouge, vert, bleu));
}
strip.show ();
}


C'est vivant !!!

Maintenant, il fallait tout assembler de manière compacte et utiliser ATTINY85 au lieu d'Arduino. Guidé par les instructions du site Web create.arduino.cc, vous pouvez facilement et facilement coudre ATTINY85 avec un croquis Arduino. Sur 8 pattes, j'en ai utilisé 7, 4 pour un moteur pas à pas, 1 pour les LED, 2 pour l'alimentation, RESET est resté libre.



Pour le montage sur la couronne du sapin de Noël, la poignée du piston s'est parfaitement déroulée.



Après des travaux de décoration, la star a commencé à paraître beaucoup plus jolie. La poignée était enveloppée dans un ruban de satin rouge et le plexiglas était recouvert de vernis transparent avec des étincelles, d'où l'effet de lueur beaucoup plus fort.



Le tout avec la prochaine 2020, l'humeur du Nouvel An et l'ingéniosité!

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


All Articles