Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Globe POV (Persistance Rétinienne) DIY – Art LED avec Arduino Mega & NeoPixel

Principe de la Persistance Rétinienne (POV)

Une LED clignotante à > 50 Hz apparaît allumée en continu. En faisant tourner une rangée de LED à grande vitesse et en allumant chaque LED au bon moment angulaire, on « dessine » une image 2D dans l'espace 3D. Un globe POV utilise deux demi-cercles de LED (58 par demi-cercle = 116 LED totales) montés sur un axe motorisé.

Matériel

Arduino Mega 2560 (mémoire suffisante pour les patterns) 1
Anneaux NeoPixel WS2812B 5050 RGB (ou bande découpée) – 116 LED total 1
Résistance 330 Ω (sur ligne DATA) 1
Capteur de proximité (effet Hall ou optique) – détection position angulaire 1
Moteur DC + réducteur (vitesse stable ~ 1000–1500 tr/min) 1
Roulement à billes 625 2RS (5×16×5 mm) pour l'axe 1
Pièces imprimées 3D (structure globe, support moteur, capteur) 1 jeu

Outils

Câblage

Logiciel – Gestion du timing

Le code utilise :

Sketch principal (d_nya.ino)

#include "FastLED.h"
#define NUM_LEDS 58
#define DATA_PIN 6

CRGB leds[NUM_LEDS];
// kalp[40][75] = patterns (0/1) – défini en dur dans le code source complet
bool kalp[40][75] = { ... }; // voir fichier original

unsigned char i, m;
unsigned int wait = 1;     // µs par colonne
unsigned int wait2 = 10;   // µs entre frames
byte hall = 0;

void setup() {
  FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);
  attachInterrupt(1, LEDiyak, RISING); // Pin 3 sur Mega = INT1
  for (int i = 0; i < NUM_LEDS; i++) leds[i] = CRGB::Black;
  FastLED.show();
}

void LEDiyak() { hall++; if (hall > 2) hall = 0; }

void loop() {
  if (hall > 0) {
    for (m = 0; m < 75; m++) {
      for (i = 0; i < 40; i++) {
        leds[i + 7] = kalp[i][m] ? CRGB::Green : CRGB::Blue;
      }
      FastLED.show();
      delayMicroseconds(wait);
    }
    // Effacement / frame suivante
    for (i = 0; i < NUM_LEDS; i++) leds[i] = CRGB::Blue;
    FastLED.show(); delayMicroseconds(wait2);
    for (i = 0; i < NUM_LEDS; i++) leds[i] = CRGB::White;
    FastLED.show(); delayMicroseconds(wait2);
  }
}

Création des patterns (images)

Le tableau kalp est généré hors ligne :

  1. Image cible (ex. 40×75 px, noir/blanc).
  2. Script Python (PIL/OpenCV) → conversion en tableau C booléen.
  3. Intégration dans le sketch.

Pour du texte défilant ou animations, pré-calculer une séquence de frames.

Construction mécanique

Alimentation

116 LED × 60 mA (blanc max) ≈ 7 A ! En pratique, avec motifs partiels et luminosité réduite (FastLED setBrightness(64)), 3–4 A suffisent. Utilisez une LiPo 3S/4S + BEC 5V 5A ou alim secteur 5V 10A. Condensateur 1000 µF 6,3V au plus près des LED.

Améliorations & variantes

Ressources

Processus de fabrication

  1. Horloge POV Arduino : Construire un affichage LED à persistance rétinienne
  2. Carte de Visite PCB Tic-Tac-Toe 4×4 Personnalisée – Guide de Conception, Fabrication et Programmation
  3. Système de Capteur de Température Multi-Position pour Intégration Domotique
  4. Contrôleur DIY pour fer à souder 862D+ — Précision et fiabilité
  5. MotionSense : Détection d'intrusion intelligente avec Arduino et ESP8266
  6. Prévention incendie imprimante 3D : Système de sécurité à capteur intelligent
  7. Construire un affichage à persistance rétinienne portable avec Arduino UNO et ATtiny85
  8. Créer une jauge IoT connectée au Web avec Arduino, Yaler et IFTTT
  9. CoroFence : Détecteur Thermique Avancé PIR + Capteur Grid-EYE & IoT