Taula de continguts:
- Pas 1: concepte d'idees
- Pas 2: Llista de materials
- Pas 3: eines
- Pas 4: elaboració del marc
- Pas 5: esbossar imatges i conceptes finals
- Pas 6: feu un tall d'imatge en moviment
- Pas 7: Preparació del programari
- Pas 8: fabricació d'una font d'alimentació de maquinari
- Pas 9: Creació d'E / S de maquinari i comprovació de la SORTIDA (funcionament de NeoPixel)
- Pas 10: Muntatge i fixació a la roda
- Pas 11: Comprovació d’INPUT (dades del sensor HALL)
- Pas 12: Algorisme de codificació
- Pas 13: Ús de programari
- Pas 14: completar
Vídeo: Digilog_Bike POV Display: 14 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
Digilog
Digital + Analògic
El digital es troba amb l’analògic
POV
Persistència del visual
També es coneix com a pantalla de postimatge, si es sacseja a gran velocitat, la imatge posterior queda.
La gent creu que mira un vídeo quan mira la televisió. Però, de fet, està mirant diverses imatges consecutives. Això es confon amb una imatge a causa de l’efecte de les imatges posteriors que queden a les nostres retines quan visualitzem imatges successives. Aquest tipus d’il·lusió s’anomena POV.
Pas 1: concepte d'idees
El POV s’implementa fixant una corretja LED a la roda d’una bicicleta.
Pas 2: Llista de materials
Informàtica i E / S
1. Arduino Mega 2560 [arduino] x3
2. Mòdul de sensor Hall V2 [YwRobot] x3
3. WS2812-5050 Neopixel flexible [Adafruit] x3
4. Magnètic (diàmetre de 15 mm, gruix de 50 mm) x3
5. Arduino Mega Case x3
Línia elèctrica
5. Bateria de liti de 5000 mAh / 3,7 V [TheHan] x3
6. Regulador AVR 5V, mòdul de càrrega i PCM: JBATT-U5-LC [Jcnet] x3
7. 4Kit de cable de pont 65PCS / SET [OR0012] x3
Pas 3: eines
No calen massa eines, però necessitareu:
1. Soldadora
2. Un soldador
3. Pistola de cola
4. Nipper
Pas 4: elaboració del marc
Tallar la bicicleta i fixar la base
El molí es va utilitzar per tallar les rodes de la bicicleta i les plaques d'acer soldades per assegurar les rodes.
Pas 5: esbossar imatges i conceptes finals
Vam escollir un drac com a imatge final. Perquè l’ona del drac semblava estar millor representada per l’efecte postimatge.
Pas 6: feu un tall d'imatge en moviment
Dividiu la imatge en tres parts que s’adaptaran a cada bicicleta i dividiu el total de 12 imatges per color i moviment.
Pas 7: Preparació del programari
Subpart 1. Instal·leu Arduino
Descàrrega d'Arduino:
(Instal·leu-lo per adaptar-lo a la vostra versió i sistema operatiu).
-
Subpart 2. Instal·la la biblioteca
* (Si voleu instal·lar-lo a través de Github, visiteu l'enllaç que hi ha a sobre de la Biblioteca Github Arduino:
1. Executeu el programa Arduino
2. Permetre l'enllaç Menú superior - esbós - incloure biblioteca - afegir biblioteca. Zip
3. Heu de triar el fitxer. Zip que ja ha instal·lat la biblioteca github4
* (Si voleu utilitzar els serveis del programa Arduino)
1. Executeu programes Arduino
2. Permetre l’enllaç Menú superior - esbós - incloure biblioteca - biblioteca de gestió - cercant ‘Adafruit neopixel’ - podeu veure ‘Adafruit Neopixel by Adafruit’
3. Instal·leu i actualitzeu la biblioteca
-
Subpart 3. Instal·leu el programa convertidor
1. Instal·leu el programa Rotation Circle (R. C. P):
2. Heu de llegir un fitxer README
Pas 8: fabricació d'una font d'alimentació de maquinari
* Així és com subministrar voltatge Arduino 5V a través de la bateria. Seguiu els passos següents.
1. Connecteu la bateria de liti i el mòdul de càrrega JBATT. (Com a referència, el mòdul JBATT té un interruptor d’alimentació incorporat).
2. Connecteu el terminal de sortida de JBATT al terminal Vin d'Arduino i el terminal de terra.
3. Connecteu el port USB Micro 5pin al port de càrrega per comprovar si el producte ha funcionat correctament.
4. A continuació, gireu l'interruptor integrat a ON.
5. Si el led vermell s’encén i el led verd s’encén a Arduino, la configuració de l’etapa de potència del producte es completa amb normalitat.
Pas 9: Creació d'E / S de maquinari i comprovació de la SORTIDA (funcionament de NeoPixel)
* Aquesta part consta de sensor i etapa de sortida
1. Connecteu els sensors Arduino i Hall. El pin de dades es connecta al pin 2 d’Arduino.
2. Quan l’Arduino s’encén i l’imant està en contacte estret amb el sensor Hall, el led vermell s’encendrà.
3. Connecteu Arduino i Neopixel. Només s’utilitzen 30 Neopíxels.
4. Connecteu el pin de dades amb el pin 6 d'Arduino.
5. Connecteu l'Arduino i descarregueu el cable al port USB de l'ordinador i executeu Arduino a l'ordinador.
6. Seleccioneu Eina - Tauler - "Arduino / Genuino Mega o Mega 2560" a la barra de menú superior del programa Arduino.
7. Comproveu si hi ha una llista de productes que es poden connectar directament al port. Si no està marcat, feu clic per seleccionar-lo.
8. Enganxeu el codi següent i feu clic a Penja a la part superior esquerra. (Després, totes les càrregues del programa segueixen els passos 5-8.)
9. La configuració es completa quan s'activen els 30 píxels neolats.
# 1. inclòs el fitxer de capçalera i el preprocessament
Primer hem de portar la biblioteca Adafruit_NeoPixel que sigui capaç d’actuar amb Neopixels.
La biblioteca es pot utilitzar declarant objectes.
La classe Adafruit_NeoPixel pot introduir 3 paràmetres en públic.
El primer paràmetre és el nombre de LEDs.
el paràmetre segons és el número de pin connectat a l'entrada digital Neopixel.
El tercer paràmetre és introduir opcions segons les característiques del producte. El producte WS2812b de tres colors utilitza l'entrada NEO_GRB
#incloure
#define PIN 6 Adafruit_NeoPixel strip = Adafruit_Neopixel (30, PIN, NEO_GRB + NEO_KHZ800);
# 2. configuració
A la part de configuració, inicialitzeu l'objecte i prepareu-lo per utilitzar-lo.
'Adafruit_Neopixle_Object.begin ()' defineix tots els LEDs perquè s'apagin.
'Adafruit_Neopixle_Object.show ()' emet amb la brillantor configurada al LED.
configuració nul·la () {
strip.begin (); strip.show (); }
# 3. bucle principal
L'acció del bucle principal utilitza un bucle for per emetre seqüencialment (0,1 segons) els LED en blanc
bucle buit () {
per a (uint16_t i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, 255, 255, 255); strip.show (); retard (100); }}
Pas 10: Muntatge i fixació a la roda
1. Connecteu Neopixels. (Presteu atenció a la comprovació del número de pin)
2. Connecteu el sensor Hall. (Consulteu el pas 9)
3. Connecteu el quadre a l'Arduino entre les bicicletes. (Col·loqueu la funda Arduino paral·lela al marc de la bicicleta).
4. Introduïu l'Arduino connectat a Neopixel. (Aneu amb compte perquè la pistola de cola està calenta).
5. Introduïu el sensor Hall connectat a Arduino, (Assegureu la connexió del cable perquè el sensor Hall no caigui).
6. Soldadura per connectar la bateria. (Aneu amb compte quan soldeu).
7. Fixeu-lo amb una pistola de cola. (Connecteu el mòdul de càrrega a la bateria per assegurar l’espai).
8. Connecteu cada línia abans de connectar-vos a Arduino, 9. Connecteu segons el número de pin. (Connecteu les línies de salt del mòdul de càrrega sense confondre-les).
10. Acabeu amb una pistola de cola una vegada (tingueu cura de no caure).
Pas 11: Comprovació d’INPUT (dades del sensor HALL)
* Comproveu el codi del programari per veure si el sensor funciona.
1. Enganxeu i pengeu el codi següent.
2. Feu clic al botó Monitor serial de la part superior dreta de l'Arduino.
3. Quan l'imant està en contacte amb el sensor Hall durant més d'1 segon, la configuració es completa quan apareix la paraula "contacte magnètic" al monitor sèrie.
-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- # 1. Definiu el número de pin i la configuració
El primer número de pin de configuració que utilitza el sensor Hall i defineix el número de pin com a port només d’entrada.
Configureu la comunicació per comprovar les dades del sensor Hall al monitor sèrie.
#define HALL 2
void setup () {pinMode (HALL, INPUT); Serial.begin (9600); }
# 2. bucle principal
Comproveu les dades del sensor Hall a intervals de 0,1 segons.
Si es detecta l'imant i es canvien les dades, s'emet "contacte magnètic" al monitor sèrie.
bucle buit () {
if (digitalRead (HALL)) {Serial.println ("contacte magnètic"); } retard (100); }
Pas 12: Algorisme de codificació
* Crear lògica i codificació per controlar els Neopíxels basats en els valors del sensor.
1. Enganxeu i pengeu el codi següent.
2. És normal que la imatge no es mostri correctament perquè no es produeix cap marc. Però es pot veure que funciona aproximadament.
3. Toqueu ràpidament i deixeu anar el sensor Hall i l'imant en un segon. Repetiu aquesta operació unes 10 vegades.
4. La configuració es completa quan els colors dels Neopixels canvien regularment.
# 1. Inclou fitxers de capçalera i preprocessament
En primer lloc, hem d’entendre que la memòria de l’Arduino Mega no és prou gran com per contenir un fitxer d’imatge.
Per tant, el fitxer de capçalera 'avr / pgmspace' s'utilitza per utilitzar diferents espais de memòria.
Per utilitzar Neopixels, heu de declarar un objecte i configurar un número de PIN d'E / S.
El conjunt d’imatges és massa gran per codificar-lo, així que descarregueu i enganxeu els fitxers adjunts.
#incloure
#include #define PIN 6 #define NUMPIXELS 30 #define HALL 2 Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800); // enganxa matriu a 'image_array_1.txt' // "'image_array_2.txt' //" 'image_array_3.txt' // "'image_array_4.txt'
# 2. Configuració i variable global
Definiu una variable global.
El més important és establir la brillantor, ja que determina el cicle de vida del producte.
int count = 0;
doble v = 0; doble last_v = 0; temporitzador doble = micros (); doble ex_timer = micros (); doble últim_temporitzador = micros (); int deg = 36; int pix = 35; int rgb = 3; doble q_arr [2] = {0, 0}; int HALL_COUNT = 0; doble VELO; doble processador_temporitzador = micros (); void setup () {strip.setBrightness (255); strip.begin (); strip.show (); Serial.begin (230400); }
# 3. bucle principal: part de sortida d'expressió d'imatge
Aquest codi és una declaració condicional sobre com generar el temps que gira la roda per resolució.
Aquesta part utilitza el cicle de girar la roda de la bicicleta una vegada com a paràmetre molt important.
A més, és important llegir dades de la matriu d’imatges de la memòria.
bucle buit () {
if ((count (ex_timer / 120.0) - (micros () - processing_timer))) {temporitzador = micros (); if (VELO> 360000) {for (int i = 0 + 5; i <pix; i ++) {strip.setPixelColor (i - 5, strip. Color (pgm_read_byte (& (image_1 [count] [1])), pgm_read_byte (& (image_1 [count] [2])), pgm_read_byte (& (image_1 [count] [0])))); } strip.show (); } else if (VELO 264000) {for (int i = 0 + 5; i <pix; i ++) {strip.setPixelColor (i - 5, strip. Color (pgm_read_byte (& (image_2 [count] [1])), pgm_read_byte (& (image_2 [count] [2])), pgm_read_byte (& (image_2 [count] [0])))); } strip.show (); } else if (VELO 204000) {for (int i = 0 + 5; i <pix; i ++) {strip.setPixelColor (i - 5, strip. Color (pgm_read_byte (& (image_3 [count] [1])), pgm_read_byte (& (image_3 [count] [2])), pgm_read_byte (& (image_3 [count] [0]))))); } strip.show (); } else if (VELO <= 204000) {for (int i = 0 + 5; i = 120)) {for (int i = 0 + 5; i <pix; i ++) {strip.setPixelColor (i - 5, strip. Color (0, 0, 0)); } strip.show (); }
# 4. bucle principal: processament i comprovació i detecció del temps del cicle
Aquesta és la part més important de tot el sistema.
En primer lloc, comproveu el temps necessari per executar tot el codi i ajusteu el temps de sortida del LED per cicle.
El temps detectat cada vegada que gira la roda prediu el temps del cicle següent.
L'acceleració es pot estimar restant l'últim temps de cicle mesurat del temps de cicle mesurat a temps.
El sistema calcula el temps de processament i l’acceleració per calcular quant de temps s’encenen de manera continuada els LED.
processador_temporitzador = micros ();
if ((digitalRead (HALL) == HIGH) && (HALL_COUNT == 1)) {VELO = v; v = micros () - últim_temporitzador; ex_timer = q_arr [0] - q_arr [1] + v; last_timer = micros (); q_arr [0] = q_arr [1]; q_arr [1] = v; recompte = 0; HALL_COUNT = 0; } else if (digitalRead (HALL) == BAIX) {HALL_COUNT = 1; }}
Pas 13: Ús de programari
* Utilitzeu programari per transformar la imatge i inserir dades de processó al codi
1. Inseriu la imatge del pas anterior a la carpeta d'imatges de la carpeta R. C. P instal·lada al pas de preparació.
- Com posar imatge és el següent. - Canvieu el nom de 4 imatges animades del producte # 1 per ordre de 1.png, 2.png, 3-p.webp
2. Executeu el fitxer Ver.5.exe.
3. Verifiqueu que es creïn 12 fitxers pro_1_code_1.txt a pro_3_code_4.txt a la carpeta R. C. P.
4. Si no es crea, canvieu el contingut de config.txt pel fitxer de configuració següent.
5. Un cop creat el fitxer, copieu tot el contingut del fitxer pro_1_code_1.txt i enganxeu-lo a la part que es mostra al codi següent.
6. Afegiu els continguts pro_1_code_2.txt, pro_1_code_3.txt i pro_1_code_4.txt a la part marcada en el cinquè ordre.
7. En referència a 5 i 6, el pro_2_code …, pro_3_code completa el codi de la mateixa manera.
Pas 14: completar
S'ha completat la producció d'un POV que crea una imatge amb tres rodes.
Recomanat:
Feu el vostre propi globus LED POV: 5 passos (amb imatges)
Feu el vostre propi globus LED POV: en aquest projecte us mostraré com he combinat un parell de peces d’acer amb un Arduino, una tira LED APA102 i un sensor d’efecte Hall per tal de crear un globus LED RGB POV (persistència de la visió). Amb ella podeu crear tot tipus d'imatges esfèriques
Com fer una pantalla POV del ventilador: 6 passos (amb imatges)
Com fer una pantalla POV de ventilador: en aquest projecte us mostraré com he transformat un ventilador antic normal en una pantalla POV LED que us pot presentar patrons de llum, paraules o fins i tot el temps. Comencem
Utilitzeu un Display Grande a 4 Cifre 8886 Display Con Wemos ESP8266 Arduino NodeMCU: 6 Steps
Utilitzeu Un Display Grande a 4 Cifre 8886 Display Con Wemos ESP8266 Arduino NodeMCU: Aquest projecte és un senzill exemple que mostra com a col·laborador un display del tipus 8886-Display i, per comoditat nostra, un Wemos D1 - pot ser que sigui un Arduino o un NodeMCU o qualsevol altre microcontrolador que estigui utilitzant per un projecte.Esi
Breadboard Voltage Regulator With Display / Regulador De Voltagem Com Display Para Placa De Ensaio: 8 Steps
Breadboard Voltage Regulator With Display / Regulador De Voltagem Com Display Para Placa De Ensaio: Adquiriu els components necessaris que es troben a la llista adjunta (hi ha els enllaços per comprar o veure'n les característiques). lá os links for poderem comprar ou ver as caracteristicas d
Arduino Horizontal POV Display: 3 passos
Pantalla POV horitzontal Arduino: pantalla POV més senzilla amb 5LED-s i Arduino Nano