Faire un écrivain Air POV LED pour moins de 5 $

Dans ce projet simple, nous allons créer un petit appareil qui éclaire les messages dans les airs lorsque vous l'agitez. C'est plus facile que vous ne le pensez, et le coût total est inférieur à 5 $.

Dans ce projet simple, nous allons créer un petit appareil qui éclaire les messages dans les airs lorsque vous l'agitez.  C'est plus facile que vous ne le pensez, et le coût total est inférieur à 5 $.
Publicité

Vous pouvez faire toutes sortes de choses avec des LED clignotantes, et dans ce projet simple, nous allons faire un petit appareil qui allume les messages dans les airs lorsque vous l'agitez d'avant en arrière. C'est plus facile que vous ne le pensez, et le coût total des pièces est inférieur à 5 $.

Ce projet utilise une illusion d'optique appelée persistance de la vision pour faire apparaître le texte dans l'air. Vous avez probablement rencontré ce phénomène quand quelqu'un bouge un mousseux allumé rapidement la nuit. Nous allons utiliser un Arduino et quelques LED pour imiter cet effet. Ce projet est simple à construire, avec peu de composants et peu de soudure (bien que si vous voulez quelques conseils pour commencer avec votre fer à souder consultez ce guide Apprenez comment souder, avec ces simples conseils et projets apprendre à souder, avec ces simples Conseils et projets Etes-vous un peu intimidé par la pensée d'un fer chaud et de métal en fusion? Si vous voulez commencer à travailler avec l'électronique, vous aurez besoin d'apprendre à souder.Laissez-nous savoir.

Tu auras besoin de

  • Arduino (j'ai utilisé un Nano de 2 $ parce qu'il est compact et pas cher, mais n'importe quel modèle devrait convenir).
  • 5 LED rouges.
  • 5 résistances de 220 ohms.
  • 1x support de batterie 9v.
  • 1x interrupteur à bascule.
  • 1x morceau de protoboard.
  • Un logement pour le produit fini (j'ai utilisé une petite boîte en carton peinte en noir).

Vous aurez également besoin d'un fer à souder et un peu de soudure pour tout mettre ensemble.

Bien que facultatif, une mèche à souder peut être très utile au cas où vous feriez des erreurs de soudure. Une planche à pain et quelques fils de connexion sont également utiles pour tester votre circuit.

Composants requis pour le projet

Câblage

Le câblage ne pourrait pas être plus simple. Tout d'abord, connectez votre Arduino, les LED et les résistances comme indiqué sur ce schéma.

pov fritzing

Les broches D2 à D6 vont respectivement à chaque résistance, qui sont attachées à l'anode positive (longue branche) de chaque LED. La cathode est connectée à la terre, qui se connecte à l'Arduino. Quand c'est fait, ça devrait ressembler à ceci:

planche à pain pov

Voilà: notre circuit est terminé! Nous allons ajouter un boîtier de batterie et un interrupteur plus tard, mais c'est tout ce dont nous avons besoin pour tester si cela fonctionne.

Code

Maintenant, connectez votre Arduino à l'ordinateur et ouvrez l'IDE Arduino. Si vous êtes novice dans l'utilisation de l'Arduino et que vous voulez un bon guide pour démarrer, ce lien Arduino est une plate-forme de prototypage électronique open-source basée sur des outils flexibles et faciles à utiliser. Arduino: un guide pour débutants utiliser du matériel et des logiciels. Il est destiné aux artistes, designers, amateurs et toute personne intéressée par la création d'objets ou d'environnements interactifs. Lire la suite sera utile.

Ouvrez une nouvelle esquisse et copiez ce code. Le code a été modifié à partir de ce projet et vous pouvez le télécharger en entier sur ce Gist.

// how long each led stays on for int delayTime = 1; //how long between each int charBreak = 3; //how long to wait after the message is finished before it repeats int resetTime = 20; int LED1 = 2; int LED2 = 3; int LED3 = 4; int LED4 = 5; int LED5 = 6; void setup(){ pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); pinMode(LED4, OUTPUT); pinMode(LED5, OUTPUT); } int a[] = {1, 6, 26, 6, 1}; int b[] = {31, 21, 21, 10, 0}; int c2[] = {14, 17, 17, 10, 0}; int d[] = {31, 17, 17, 14, 0}; int e[] = {31, 21, 21, 17, 0}; int f[] = {31, 20, 20, 16, 0}; int g[] = {14, 17, 19, 10, 0}; int h[] = {31, 4, 4, 4, 31}; int i[] = {0, 17, 31, 17, 0}; int j[] = {0, 17, 30, 16, 0}; int k[] = {31, 4, 10, 17, 0}; int l[] = {31, 1, 1, 1, 0}; int m[] = {31, 12, 3, 12, 31}; int n[] = {31, 12, 3, 31, 0}; int o[] = {14, 17, 17, 14, 0}; int p[] = {31, 20, 20, 8, 0}; int q[] = {14, 17, 19, 14, 2}; int r[] = {31, 20, 22, 9, 0}; int s[] = {8, 21, 21, 2, 0}; int t[] = {16, 16, 31, 16, 16}; int u[] = {30, 1, 1, 30, 0}; int v[] = {24, 6, 1, 6, 24}; int w[] = {28, 3, 12, 3, 28}; int x[] = {17, 10, 4, 10, 17}; int y[] = {17, 10, 4, 8, 16}; int z[] = {19, 21, 21, 25, 0}; int eos[] = {0, 1, 0, 0, 0}; int excl[] = {0, 29, 0, 0, 0}; int ques[] = {8, 19, 20, 8, 0}; int space[] = {0, 0, 0, 0, 0}; void displayLine(int line){ int myline; myline = line; if (myline>=16) {digitalWrite(LED1, HIGH); myline-=16;} else {digitalWrite(LED1, LOW);} if (myline>=8) {digitalWrite(LED2, HIGH); myline-=8;} else {digitalWrite(LED2, LOW);} if (myline>=4) {digitalWrite(LED3, HIGH); myline-=4;} else {digitalWrite(LED3, LOW);} if (myline>=2) {digitalWrite(LED4, HIGH); myline-=2;} else {digitalWrite(LED4, LOW);} if (myline>=1) {digitalWrite(LED5, HIGH); myline-=1;} else {digitalWrite(LED5, LOW);} } void displayChar(char c){ if (c == 'a'){for (int i = 0; i<5; i++){displayLine(a[i]);delay(delayTime);}displayLine(0);} if (c == 'b'){for (int i = 0; i<5; i++){displayLine(b[i]);delay(delayTime);}displayLine(0);} if (c == 'c2'){for (int i = 0; i<5; i++){displayLine(c2[i]);delay(delayTime);}displayLine(0);} if (c == 'd'){for (int i = 0; i<5; i++){displayLine(d[i]);delay(delayTime);}displayLine(0);} if (c == 'e'){for (int i = 0; i<5; i++){displayLine(e[i]);delay(delayTime);}displayLine(0);} if (c == 'f'){for (int i = 0; i<5; i++){displayLine(f[i]);delay(delayTime);}displayLine(0);} if (c == 'g'){for (int i = 0; i<5; i++){displayLine(g[i]);delay(delayTime);}displayLine(0);} if (c == 'h'){for (int i = 0; i<5; i++){displayLine(h[i]);delay(delayTime);}displayLine(0);} if (c == 'i'){for (int it = 0; it<5; it++){displayLine(i[it]);delay(delayTime);}displayLine(0);} if (c == 'j'){for (int i = 0; i<5; i++){displayLine(j[i]);delay(delayTime);}displayLine(0);} if (c == 'k'){for (int i = 0; i<5; i++){displayLine(k[i]);delay(delayTime);}displayLine(0);} if (c == 'l'){for (int i = 0; i<5; i++){displayLine(l[i]);delay(delayTime);}displayLine(0);} if (c == 'm'){for (int i = 0; i<5; i++){displayLine(m[i]);delay(delayTime);}displayLine(0);} if (c == 'n'){for (int i = 0; i<5; i++){displayLine(n[i]);delay(delayTime);}displayLine(0);} if (c == 'o'){for (int i = 0; i<5; i++){displayLine(o[i]);delay(delayTime);}displayLine(0);} if (c == 'p'){for (int i = 0; i<5; i++){displayLine(p[i]);delay(delayTime);}displayLine(0);} if (c == 'q'){for (int i = 0; i<5; i++){displayLine(q[i]);delay(delayTime);}displayLine(0);} if (c == 'r'){for (int i = 0; i<5; i++){displayLine(r[i]);delay(delayTime);}displayLine(0);} if (c == 's'){for (int i = 0; i<5; i++){displayLine(s[i]);delay(delayTime);}displayLine(0);} if (c == 't'){for (int i = 0; i<5; i++){displayLine(t[i]);delay(delayTime);}displayLine(0);} if (c == 'u'){for (int i = 0; i<5; i++){displayLine(u[i]);delay(delayTime);}displayLine(0);} if (c == 'v'){for (int i = 0; i<5; i++){displayLine(v[i]);delay(delayTime);}displayLine(0);} if (c == 'w'){for (int i = 0; i<5; i++){displayLine(w[i]);delay(delayTime);}displayLine(0);} if (c == 'x'){for (int i = 0; i<5; i++){displayLine(x[i]);delay(delayTime);}displayLine(0);} if (c == 'y'){for (int i = 0; i<5; i++){displayLine(y[i]);delay(delayTime);}displayLine(0);} if (c == 'z'){for (int i = 0; i<5; i++){displayLine(z[i]);delay(delayTime);}displayLine(0);} if (c == '!'){for (int i = 0; i<5; i++){displayLine(excl[i]);delay(delayTime);}displayLine(0);} if (c == '?'){for (int i = 0; i<5; i++){displayLine(ques[i]);delay(delayTime);}displayLine(0);} if (c == '.'){for (int i = 0; i<5; i++){displayLine(eos[i]);delay(delayTime);}displayLine(0);} if (c == ' '){for (int i = 0; i<5; i++){displayLine(space[i]);delay(delayTime);}displayLine(0);} delay(charBreak); } void displayString(char* s){ for (int i = 0; i<=strlen(s); i++){ displayChar(s[i]); } } void loop(){ //Change the text inside here to change the text displayed. //Make sure to keep the brackets and the quotation marks. displayString("..hello!.."); delay(40); } 

Enregistrez l'esquisse et téléchargez-la sur votre tableau. Si vous obtenez des erreurs, assurez-vous que la carte et le port de communication sont corrects. Vos LED devraient commencer à scintiller. Si ce n'est pas le cas, vérifiez toutes vos connexions sur votre maquette. Les entiers déclarés au début du code déterminent la vitesse d'affichage du texte. Plus le nombre est élevé, plus vite vous aurez besoin d'onduler l'appareil. J'ai trouvé que les chiffres utilisés ici fonctionnaient bien.

Maintenant pour faire un test rapide. Débranchez votre Arduino du câble USB et fixez le support de la batterie aux broches VIN et GND de votre arduino

pov fritz avec batt

Maintenant que vous pouvez le déplacer, essayez avec précaution de balancer les LED devant vous. Vous devriez voir quelques lettres se former dans l'air à condition qu'il fasse assez sombre autour de vous. J'ai trouvé cela utile pour configurer mon téléphone pour capturer cela.

test de pain

Ça marche! Maintenant pour le rendre un peu plus permanent.

Fers au prêt!

Posez votre carte Arduino, les résistances et les LED sur votre protoboard comme ceci:

aménagé à bord

Vous pouvez bien sûr rendre la disposition aussi compacte que vous le souhaitez, tant que le circuit reste le même. Assurez-vous de laisser au moins une ligne de contacts protoboard de chaque côté de votre Arduino pour les composants et l'alimentation. Si vous êtes un débutant en électronique, voici d'excellents conseils pour vous Électronicien débutant: 10 compétences que vous devez savoir Électronique du débutant: 10 compétences que vous devez savoir Beaucoup d'entre nous n'ont jamais touché un fer à souder - mais rendre les choses incroyablement enrichissantes . Voici dix des compétences les plus élémentaires de l'électronique de bricolage pour vous aider à démarrer. Lire la suite .

Nous allons souder les cathodes LED ensemble dans une ligne pour faire un terrain commun, un peu comme nous l'avons fait lorsque nous avons fait notre matrice LED Mise à niveau de votre guirlande de Noël avec une matrice de LED activée par le mouvement couronne utilise une matrice Arduino et LED pour produire un écran lumineux incroyable qui impressionnera vos amis et votre famille. Lire la suite .

cathodes de rangée

Pliez chaque cathode pour qu'elle chevauche la suivante et soudez-la pour créer une ligne ininterrompue. Maintenant, nous devons souder nos anodes aux jambes des résistances à côté d'eux. J'ai trouvé que la façon la plus facile de le faire était de souder chaque patte à leur patin respectif, puis de placer le fer entre eux pour chauffer les deux joints, avant d'ajouter finalement plus de brasure pour combler l'écart entre eux.

Vérifiez chaque connexion pour voir qu'elle est solidement fixée, puis utilisez des pinces coupantes pour couper les pattes excédentaires des résistances et des LED.

résistances aux anodes

Maintenant, répétez cette même tâche, mais cette fois en reliant l'autre extrémité de nos résistances aux jambes de l'Arduino. C'est la partie la plus délicate de la soudure. Chaque résistance s'attache beaucoup à sa seule broche Arduino ou le circuit ne fonctionnera pas comme prévu. J'ai fait plusieurs erreurs ici et ai dû utiliser la mèche de soudure pour enlever la soudure non désirée plusieurs fois.

Une fois que vous avez effectué toutes les connexions correctes, vérifiez qu'aucune d'entre elles ne chevauche leurs voisins. Si vous avez accès à un multimètre ici, vous pouvez utiliser le mode de continuité pour vérifier que chaque broche n'a qu'une ligne continue jusqu'à sa résistance. Si vous avez juste un multimètre, il y a un bon guide de démarrage dans cet article. 7 compétences techniques bricolage pour enseigner à vos enfants, parce que les écoles ne seront pas 7 compétences techniques bricolage pour enseigner à vos enfants, parce que les écoles ne lisent pas plus

image de continuité

Une fois que vous avez vérifié chaque connexion, coupez la longueur excédentaire des pattes des résistances

Ajouter de la puissance

Maintenant, passez un morceau de fil de la broche GND de votre Arduino à un trou à côté de l'endroit où votre ligne de cathodes soudées se termine, et placez le fil noir de votre porte-pile à côté de lui.

fils de gnd haut

Maintenant, souder le fil à la broche GND, de la même manière que nous avons fait avec les résistances, et souder les deux fils à la fin de la ligne de cathodes pour créer une terre commune pour le circuit.

Enfin, attachez un fil à la broche VIN de votre Arduino, et placez votre interrupteur entre ce fil et la batterie. Toutes mes excuses pour l'interrupteur recouvert de colle chaude sur cette photo, j'ai dû démonter la machine finie pour photographier cette scène!

changer vin

Une fois que tout est soudé ensemble, mettez une batterie et appuyez sur l'interrupteur. Toutes nos félicitations! Le circuit est terminé. Si vous ne voyez rien s'éclairer, vérifiez soigneusement chaque joint de soudure pour voir s'il y a une rupture ou un court-circuit.

Enceinte

Maintenant que nous l'avons fonctionné, mettons-le dans une boîte. Ici, une boîte en carton peinte a été utilisée, bien que vous puissiez faire quelque chose de plus permanent en utilisant une boîte achetée dans un magasin de passe-temps, ou même une vieille boîte de tupperware. Pour plus de crédibilité geek, vous pouvez même imprimer en 3D sur une de ces imprimantes 3D bon marché. 5 Imprimantes 3D bon marché que vous pouvez acheter aujourd'hui 5 Imprimantes 3D bon marché que vous pouvez acheter aujourd'hui Il y a quelques années, même les imprimantes 3D les moins chères se rapprochaient à peine de la barre des 1 000 $. Lire la suite

Coupez votre protoboard à la taille en le marquant et en enlevant soigneusement les parties dont vous n'avez pas besoin.

proto gif

Placez votre circuit à l'intérieur de votre boîtier et marquez l'endroit où les voyants et le commutateur doivent passer. Vous pouvez éventuellement marquer également où le connecteur USB sur la carte Arduino rencontre le bord de sorte que vous pouvez le brancher pour changer le texte sans ouvrir la boîte. Percer ou couper les trous dont vous avez besoin dans l'enceinte.

faire des trous

Maintenant, ajoutez un peu de colle chaude sur les bords des LED et collez-les en place. J'ai collé un morceau d'éponge sous le circuit afin qu'il soit bien installé dans la boîte. Attachez votre interrupteur à l'affaire. J'ai utilisé de la colle chaude, bien que les vis ou les boulons fassent une connexion beaucoup plus forte. Vous pouvez également coller le support de batterie à l'arrière de la carte de circuit imprimé pour l'empêcher de bouger à l'intérieur lorsque l'article est utilisé, mais assurez-vous que les contacts métalliques sur le boîtier ne touchent aucun de vos joints de soudure!

interrupteur de mesure

Le travail est fait!

Fermez votre enceinte, et vous avez terminé! Pour modifier le texte, connectez votre câble USB à la carte Arduino et changez le texte entre parenthèses après displayString dans la méthode de la boucle . Trouver un endroit sombre, et amusez-vous!

plus lent

Avez-vous déjà construit une machine POV et savez-vous comment améliorer la conception? Envisagez-vous d'en construire un vous-même? Parlez-nous de votre projet dans les commentaires ci-dessous, nous aimerions l'entendre!

In this article