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

Cylindre POV avec Arduino Due

Composants et fournitures

Arduino Due
× 1
Régulateur linéaire avec sortie réglable
× 1
Texas Instruments à usage général Dual Op-Amp
× 1
Résistance 20k ohm
× 3
Résistance 220 ohm
× 1
Résistance 1k ohm
× 2
Transistor à usage général NPN
× 1
Condensateur 1000 µF
× 1
Condensateur 100 nF
× 1
Condensateur 1 µF
× 1
Résistance 240 ohm
× 1
Résistance de coupe 1k ohm
× 1
Émetteur IR (générique)
× 1
Récepteur IR (générique)
× 1
Planche à pain (générique)
× 1
Cylindre en polystyrène (Diamètre :20 cm, Hauteur :10 cm)
× 2
Moteur électrique, 12V, XDRIVE 545-1
× 1
Couronne 60 T 8 MM
× 1
Crown Gear 12 T, 3.2 MM
× 1
Courroie crantée, 80 T, 6 x 200 MM
× 1
Barre filetée, M8, 125 mm
× 3
Barre filetée, M8, 330 mm
Utilisé comme arbre.
× 1
Anneau de contact ASL9017
× 1
Ruban adhésif (noir, 48 mm)
Utilisé pour coller sur le rotor
× 1
Disque de contreplaqué (Ø 150 mm, épaisseur :10 mm)
× 2
Disque en aluminium ( Ø 200 mm, épaisseur :2,5 mm)
× 2

Outils et machines nécessaires

Fer à souder (générique)
Scie à chantourner (générique)
Perceuse d'établi (générique)
Alimentation de laboratoire (générique)
Ordinateur portable avec Windows 10 (générique)

Applications et services en ligne

Microchip Technology Microchip Studio
Utilisé pour le développement logiciel Arduino
Arduino IDE
Peut être utilisé comme alternative à Atmel Studio IDE
Cygwin
Cygwin fournit des fonctionnalités similaires à une distribution Linux sur Windows. Utilisé pour le programme de contrôle PC.
Microsoft Visual Studio 2015
Utilisé pour l'interface utilisateur graphique.

À propos de ce projet

Présentation

C'est mon premier projet Arduino. Mon travail a été inspiré par plusieurs projets de créateurs qui ont créé Persistence of Vision Displays [2,3,4].

Persistance de la vision (POV) fait référence à l'illusion d'optique dans laquelle plusieurs images discrètes se fondent en une seule image dans l'esprit humain et serait l'explication de la perception du mouvement dans le cinéma et les films d'animation [1].

Les projets [2,3,4] implémentent des affichages de globe POV, en utilisant des LED discrètes et des registres à décalage discrets. Au lieu de cela, mon appareil utilise un cylindre rotatif et des bandes LED RVB standard comme affichage POV.

Les principales caractéristiques de mon cylindre POV sont :

  • Affichage POV (Persistance de la vision)
  • Affiche des images GIF animées sur un cylindre rotatif
  • Les images GIF sont stockées dans la RAM ou Flash d'Arduino
  • Communication avec PC via Bluetooth

Présentation technique

  • Diamètre du cylindre :200 mm
  • Hauteur du cylindre :200 mm
  • Matériau du cylindre :polystyrène
  • Poids du cylindre :420 g
  • 4 bandes LED RVB basées sur LPD8806
  • Taille de l'écran 151 x 40 pixels
  • Basé sur Arduino Due
  • Comprend le module Bluetooth HC06
  • Contrôlé via Bluetooth depuis un PC

Construction mécanique

La construction mécanique est illustrée dans le dessin ci-dessous.

Le dispositif comprend un châssis et un rotor. Le châssis se compose de deux disques circulaires en contreplaqué reliés par trois barres filetées. La distance entre les disques est de 120 mm. Au milieu, il y a deux roulements à billes et l'arbre. Pour l'arbre, une barre filetée est également utilisée. L'arbre est entraîné par un moteur électrique via deux couronnes dentées et une courroie crantée. La vitesse de rotation peut atteindre 1 300 tr/min (22 Hz).

Le rotor se compose de deux cylindres en polystyrène et de deux disques circulaires en aluminium. Les cylindres en polystyrène sont collés au disque inférieur. Le disque supérieur peut être retiré. Il est utilisé pour attacher le rotor à l'arbre.

L'électronique est située dans la partie supérieure du rotor. Il comprend les parties suivantes :

  • Carte Arduino Due
  • Shield fait maison pour la carte Arduino Due
  • Carte d'alimentation (PS)
  • Module Bluetooth HC-06

L'alimentation (7,5 V) est fournie à la carte d'alimentation via des contacts coulissants et une bague de contact.

Quatre bandes de LED avec au total 40 LED RBG sont utilisées. Ils sont connectés par des câbles à l'Arduino Shield.

Les quatre bandes LED sont placées comme indiqué dans le dessin ci-dessous. En utilisant quatre bandes LED décalées, la distance sur l'axe Y entre les LED est divisée par 4. La distance sur l'axe X est gérée par SW. Le SW met à jour les 40 LED 151 fois par tour. La grille dans le dessin correspond aux pixels visibles.

Circuits électroniques

Les circuits électroniques sont illustrés dans le schéma PDF ci-joint.

Il y a une carte d'alimentation avec un régulateur de tension LM317. La tension d'entrée est de 7,5 volts et la tension de sortie est de 4,6 volts. Le régulateur de tension alimente la carte Arduino Due et les bandes LED.

Il existe également un bouclier fait maison pour l'Arduino. Il contient les câbles de connexion aux bandes LED et un circuit pour le récepteur IR. Le récepteur IR est utilisé pour détecter la position du rotor. Il est connecté à une entrée de minuterie/interruption de l'Arduino.

Il y a quatre bandes LED nommées STRIP0 à STRIP3. Chaque bande a 5 pilotes de LED LPD8806 et 10 LED RBG. STRIP0 est connecté à USART0 et STRIP1 est connecté à USART1. Les deux USART fonctionnent en mode SPI. STRIP2 et STRIP3 sont connectés en série et sont pilotés par l'interface SPI de l'Arduino.

Pour communiquer avec un PC, un module Bluetooth HC-06 est connecté à USART3. Le module Bluetooth est alimenté par le 3,3 Volt fourni par la carte Arduino.

Logiciel Arduino

Le logiciel Arduino se compose du programme principal (mpc.ino ) et les bibliothèques suivantes :

  • bt - Pilote SW pour module Bluetooth
  • LDP8806 - Driver SW pour bandes LED
  • Sans mémoire - Fonctions pour détecter la mémoire RAM libre disponible
  • mpcgif - Lecture de fichiers GIF situés dans la RAM ou la mémoire Flash
  • photos - Images GIF internes stockées dans Flash
  • tracer - Fonctions pour le débogage SW

La sortie périodique des images vers les bandes de LED se fait par interruption. Il y a deux tampons d'images à bascule. Chaque tampon d'image contient une image de 40 x 151 pixels. Chaque pixel est un index de palette de couleurs d'un octet. Alors qu'un tampon de trame est envoyé aux bandes LED via une interruption et un DMA, l'autre tampon de trame est préparé par le programme principal (par exemple par la fonction de décodage des images GIF). Le basculement des tampons de trame est effectué par la routine d'interruption de trame.

Il y a une interruption de trame par tour déclenchée par le capteur IR. La routine d'interruption de trame mesure (via un timer matériel) la vitesse d'évolution et programme des interruptions de colonne périodiques (une par colonne, soit 150 interruptions par tour) avec un timer matériel. La routine d'interruption de colonne envoie la colonne actuelle aux bandes LED. Pour des raisons de performances, la sortie se fait via trois canaux DMA qui fonctionnent entièrement en parallèle.

Le code source complet d'Arduino est disponible sur github.

Programme de contrôle PC

Le programme de contrôle du PC (pccp ) est un outil de ligne de commande écrit en C++. Il fonctionne sous Cygwin et communique avec l'Arduino via Bluetooth. Le pccp permet de contrôler le cylindre POV avec les commandes à caractère unique suivantes :

  • 0-7 - remplir l'écran avec de la couleur (noir, rouge, jaune, vert, cyan, bleu, violet, blanc)
  • t - dessiner une courbe triangulaire (comme image de test)
  • s - activer ou désactiver la rotation de l'image affichée
  • r - tracer une seule ligne 
  • c - dessiner une seule colonne
  • y - lecture d'une image GIF interne stockée dans la mémoire Flash
  • f - télécharger un fichier GIF externe depuis un PC via BT
  • x - lecture du fichier GIF externe téléchargé

Le pccp fournit également une interface à une interface utilisateur graphique. De plus, il affiche la vitesse de rotation actuelle (en Hz et µs) et une valeur de compteur d'images.

Le code source complet est disponible sur github.

Interface utilisateur graphique

L'interface utilisateur graphique est une application Windows universelle. Il permet de sélectionner le fichier GIF à afficher par le cylindre POV. L'application est dérivée de l'application FilePicker des "Microsoft Windows Universal Samples" [5].

Le code source complet est disponible sur github.

Références

[1] https://en.wikipedia.org/wiki/Persistence_of_vision

[2] GLOBE LED RVB - POV - 40 x 200

[3] POV Globe Display RVB

[4] POV Globe Display RVB – Description du projet (en allemand)

[5] https://github.com/Microsoft/Windows-universal-samples

Code

Code source Arduino pour cylindre POV
https://github.com/hanoba/povc-arduino
Programme de contrôle PC pour cylindre POV
Il s'agit d'un programme en ligne de commande C++ exécuté sous Cygwinhttps://github.com/hanoba/povc-pccp
Interface utilisateur graphique pour cylindre POV
Ceci est une application universelle Windowshttps://github.com/hanoba/povc-win-app

Schémas

Voici le schéma.

Processus de fabrication

  1. horloge de vision Arduino pov
  2. Oscilloscope Arduino 20 kHz simple bricolage sur écran LCD Nokia 5110
  3. Stores intelligents
  4. Arduino Due TIC TAC TOE avec écran tactile
  5. Contrôler l'accepteur de pièces avec Arduino
  6. Horloge de mots italienne
  7. Arduino avec Bluetooth pour contrôler une LED !
  8. Capteur d'obstacles simple avec Arduino
  9. Une entrée analogique isolée pour Arduino