Talaan ng mga Nilalaman:

Digilog_Bike POV Display: 14 Hakbang
Digilog_Bike POV Display: 14 Hakbang

Video: Digilog_Bike POV Display: 14 Hakbang

Video: Digilog_Bike POV Display: 14 Hakbang
Video: Мерседес W204 | Комплект кузова C63 // Черный бизон - модифицированный 2024, Hulyo
Anonim
Image
Image

Digilog

Digital + Analog

Nakakatugon ang digital sa analog

POV

Pagpupumilit ng Biswal

Kilala rin bilang display afterimage, kung inalog sa mataas na bilis, nananatili ang afterimage.

Iniisip ng mga tao na nanonood sila ng video kapag nanonood sila ng TV. Ngunit sa katunayan, tumitingin siya sa maraming magkakasunod na larawan. Napagkamalan ito para sa isang imahe dahil sa epekto ng mga afterimage na natitira sa aming mga retina kapag tumitingin ng sunud-sunod na mga larawan. Ang ganitong uri ng ilusyon ay tinatawag na isang POV.

Hakbang 1: Konsepto ng Ideya

Konsepto ng Ideya
Konsepto ng Ideya

Ang POV ay ipinatupad sa pamamagitan ng paglakip ng isang LED strap sa gulong ng isang bisikleta.

Hakbang 2: Listahan ng Mga Materyales

Listahan ng Mga Materyales
Listahan ng Mga Materyales
Listahan ng Mga Materyales
Listahan ng Mga Materyales

Pag-compute at I / O

1. Arduino Mega 2560 [arduino] x3

2. Hall sensor module V2 [YwRobot] x3

3. WS2812-5050 Flexible Neopixel [Adafruit] x3

4. Magnetic (diameter ng 15mm, kapal ng 50mm) x3

5. Arduino Mega Case x3

Linya ng Kuryente

5. 5000mAh / 3.7V Lithium Battery [TheHan] x3

6. AVR 5V regulator & singilin at module ng PCM: JBATT-U5-LC [Jcnet] x3

7. 4Jumper wire kit 65PCS / SET [OR0012] x3

Hakbang 3: Mga tool

Mga kasangkapan
Mga kasangkapan

Hindi masyadong maraming mga tool na kinakailangan gayunpaman kakailanganin mo:

1. Makinang Panghinang

2. Isang bakal na bakal

3. Pandikit na baril

4. Nipper

Hakbang 4: Paggawa ng Frame

Image
Image
Paggawa ng Frame
Paggawa ng Frame

Paggupit ng Bisikleta at Paglakip sa Base

Ginamit ang gilingan upang i-cut ang mga gulong ng bisikleta sa bisikleta at hinangin ang mga plate na bakal upang masiguro ang mga gulong.

Hakbang 5: Pag-sketch ng Mga Huling Larawan at Konsepto

Pag-sketch ng Mga Huling Larawan at Konsepto
Pag-sketch ng Mga Huling Larawan at Konsepto
Pag-sketch ng Mga Huling Larawan at Konsepto
Pag-sketch ng Mga Huling Larawan at Konsepto
Pag-sketch ng Mga Huling Larawan at Konsepto
Pag-sketch ng Mga Huling Larawan at Konsepto

Pumili kami ng dragon bilang pangwakas na imahe. Dahil ang alon ng dragon ay tila pinakamahusay na kinakatawan ng afterimage effect.

Hakbang 6: Gawing Gupitin ang Imahe ng Paglipat

Gawing Gupitin ang Imahe ng Paglipat
Gawing Gupitin ang Imahe ng Paglipat
Gawing Gupitin ang Imahe ng Paglipat
Gawing Gupitin ang Imahe ng Paglipat

Hatiin ang imahe sa tatlong bahagi na magkakasya sa bawat bisikleta at hatiin ang kabuuang 12 mga imahe ayon sa kulay at galaw.

Hakbang 7: Maghanda ng Software

Maghanda ng Software
Maghanda ng Software
Maghanda ng Software
Maghanda ng Software

Sub bahagi 1. I-install ang Arduino

I-download ang Arduino:

(I-install upang magkasya ang iyong bersyon ng OS at system.)

-

Sub bahagi 2. Mag-install ng library

* (Kung nais mong mag-install sa pamamagitan ng Github, mangyaring bisitahin ang link sa itaas Github Arduino Library:

1. Patakbuhin ang programa ng Arduino

2. Payagan ang link Nangungunang menu - sketch - isama ang library - magdagdag ng. Zip library

3. Dapat mong piliin ang. Zip file na naka-install na github library4

* (Kung nais mong gamitin ang mga serbisyo ng programa ng Arduino)

1. Patakbuhin ang mga programa ng Arduino

2. Payagan ang link Nangungunang menu - sketch - isama ang library - library ng pamamahala - naghahanap ng 'Adafruit neopixel' - makikita mo ang 'Adafruit Neopixel by Adafruit'

3. I-install at i-update ang library

-

Sub bahagi 3. I-install ang converter program

1. I-install ang Rotation Circle Program (R. C. P):

2. Kailangan mong basahin ang isang file na README

Hakbang 8: Paggawa ng Hardware Power Supply

Paggawa ng Hardware Power Supply
Paggawa ng Hardware Power Supply
Paggawa ng Hardware Power Supply
Paggawa ng Hardware Power Supply
Paggawa ng Hardware Power Supply
Paggawa ng Hardware Power Supply

* Ito ang paraan upang makapagbigay ng boltahe ng Arduino 5V sa pamamagitan ng baterya. Mangyaring sundin ang mga hakbang sa ibaba.

1. Ikonekta ang baterya ng Lithium at module ng pagsingil ng JBATT. (Para sa sanggunian, ang module ng JBATT ay may built-in na power switch.)

2. Ikonekta ang output terminal ng JBATT sa Vin terminal ng Arduino at Ground terminal.

3. Ikonekta ang Micro 5pin usb port sa pagsingil ng port upang suriin kung ang produkto ay gumagana nang maayos.

4. Susunod, i-ON ang built-in switch.

5. Kung ang pula na humantong ilaw at ang berdeng humantong ilaw sa Arduino, ang pagsasaayos ng yugto ng kapangyarihan ng produkto ay nakumpleto nang normal.

Hakbang 9: Paggawa ng Hardware I / O at Suriin ang OUTPUT (Gumagawa ang NeoPixel)

Paggawa ng Hardware I / O at Suriin ang OUTPUT (Gumagawa ang NeoPixel)
Paggawa ng Hardware I / O at Suriin ang OUTPUT (Gumagawa ang NeoPixel)
Paggawa ng Hardware I / O at Suriin ang OUTPUT (Gumagawa ang NeoPixel)
Paggawa ng Hardware I / O at Suriin ang OUTPUT (Gumagawa ang NeoPixel)
Paggawa ng Hardware I / O at Suriin ang OUTPUT (Gumagawa ang NeoPixel)
Paggawa ng Hardware I / O at Suriin ang OUTPUT (Gumagawa ang NeoPixel)

* Ang bahaging ito ay binubuo ng sensor at output yugto

1. Ikonekta ang mga sensor ng Arduino at Hall. Ang data pin ay kumokonekta sa Arduino pin 2.

2. Kapag ang Arduino ay pinalakas at ang magnet ay malapit sa pakikipag-ugnay sa sensor ng Hall, ang pulang pinangungunahan ay sindihan.

3. Ikonekta ang Arduino at Neopixel. 30 Neopixel lamang ang ginagamit.

4. Ikonekta ang data pin gamit ang Arduino pin 6.

5. Ikonekta ang Arduino at mag-download ng cable sa usb port ng iyong computer at patakbuhin ang Arduino sa iyong computer.

6. Piliin ang Tool - board - "Arduino / Genuino Mega o Mega 2560" mula sa tuktok na menu bar ng Arduino program.

7. Suriin kung mayroong isang listahan ng mga produkto na maaaring direktang konektado sa port. Kung hindi ito nasuri, i-click upang mapili ito.

8. Idikit ang code sa ibaba at i-click ang I-upload sa kaliwang tuktok. (Pagkatapos, ang lahat ng mga pag-upload ng programa ay sumusunod sa mga hakbang 5-8.)

9. Kumpleto ang pag-configure kapag nakabukas ang lahat ng 30 neoled na pixel.

# 1. kabilang ang header file at preprocessing

Una kailangan naming dalhin ang library ng Adafruit_NeoPixel na magagawang kumilos Neopixels.

Maaaring magamit ang library sa pamamagitan ng pagdedeklara ng mga bagay.

Ang klase ng Adafruit_NeoPixel ay maaaring maglagay ng 3 mga parameter sa publiko.

Ang unang parameter ay ang bilang ng mga LED.

segundo parameter ay ang numero ng pin na konektado sa Neopixel digital input.

Ang pangatlong parameter ay ang mga pagpipilian sa pag-input ayon sa mga katangian ng produkto. ang produktong may tatlong kulay na WS2812b ay gumagamit ng input na 'NEO_GRB'

# isama

# tukuyin ang PIN 6 Adafruit_NeoPixel strip = Adafruit_Neopixel (30, PIN, NEO_GRB + NEO_KHZ800);

# 2. pag-setup

Sa bahagi ng pag-set up, simulan ang bagay at ihanda ito para magamit.

Itinatakda ng 'Adafruit_Neopixle_Object.begin ()' ang lahat ng mga LED upang i-off.

Ang 'Adafruit_Neopixle_Object.show ()' ay output na may ilaw na nakatakda sa LED.

walang bisa ang pag-setup () {

strip.begin (); strip.show (); }

# 3. pangunahing loop

Ang pagkilos ng pangunahing loop ay gumagamit ng isang para sa loop upang sunud-sunod na output (0.1 segundo) ang mga LED na puti

void loop () {

para sa (uint16_t i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, 255, 255, 255); strip.show (); pagkaantala (100); }}

Hakbang 10: Pagtitipon at Maglakip sa Gulong

Pagtitipon at Maglakip sa Gulong
Pagtitipon at Maglakip sa Gulong
Pagtitipon at Maglakip sa Gulong
Pagtitipon at Maglakip sa Gulong

1. Ikonekta ang Neopixels. (Bigyang pansin ang tsek ng numero ng pin)

2. Ikonekta ang Hall Sensor. (Sumangguni sa Hakbang.9)

3. Ikabit ang frame sa Arduino sa pagitan ng mga bisikleta. (Ikabit ang kaso ng Arduino na kahanay sa frame ng bisikleta).

4. Ipasok ang Arduino na konektado sa Neopixel. (Mag-ingat dahil mainit ang glue gun).

5. Ipasok ang nakakonektang sensor ng Hall sa Arduino, (I-secure ang cable tie upang hindi mahulog ang sensor ng Hall).

6. Maghinang upang ikonekta ang baterya. (Mag-ingat kapag naghinang ka).

7. Ayusin ito gamit ang isang glue gun. (Ikabit ang module ng pagsingil sa baterya upang ma-secure ang puwang).

8. I-plug ang bawat linya bago kumonekta sa Arduino, 9. I-plug in ayon sa bawat numero ng pin. (Ikonekta ang mga linya ng paglukso para sa module ng pagsingil nang hindi nalilito ang mga ito).

10. Tapusin gamit ang isang pandikit gun minsan, (Mangyaring mag-ingat na hindi mahulog).

Hakbang 11: Pagsuri sa INPUT (Data ng Sensor ng HALL)

Sinusuri ang INPUT (Data ng Sensor ng HALL)
Sinusuri ang INPUT (Data ng Sensor ng HALL)
Sinusuri ang INPUT (Data ng Sensor ng HALL)
Sinusuri ang INPUT (Data ng Sensor ng HALL)
Sinusuri ang INPUT (Data ng Sensor ng HALL)
Sinusuri ang INPUT (Data ng Sensor ng HALL)

* Suriin ang code ng software upang makita kung gumagana ang sensor.

1. I-paste at i-upload ang code sa ibaba.

2. I-click ang pindutang Serial Monitor sa kanang tuktok ng Arduino.

3. Kapag ang magnet ay nakikipag-ugnay sa sensor ng Hall nang higit sa 1 segundo, nakumpleto ang pagsasaayos kapag lumitaw ang salitang "contact magnet" sa serial monitor.

---- ---- ---- # 1. Tukuyin ang numero ng pin at pag-set up

Ang unang numero ng pagsasaayos ng pin upang magamit ang sensor ng Hall at itakda ang numero ng pin bilang isang Input-only port.

Itakda ang komunikasyon upang suriin ang data ng sensor ng Hall sa serial monitor.

# tukuyin ang HALL 2

void setup () {pinMode (HALL, INPUT); Serial.begin (9600); }

# 2. pangunahing loop

Suriin ang data ng sensor ng Hall sa 0.1 segundo na agwat.

Kung ang magnet ay nadama at ang data ay binago, ang "contact magnet" ay output sa serial monitor.

void loop () {

kung (digitalRead (HALL)) {Serial.println ("contact magnetic"); } pagkaantala (100); }

Hakbang 12: Coding Algorithm

* Lumikha ng lohika at pag-coding upang makontrol ang mga Neopixel batay sa mga halaga ng sensor.

1. I-paste at i-upload ang code sa ibaba.

2. Karaniwan para sa imahe na hindi maipakita nang maayos sapagkat walang frame na ginawa. Ngunit maaari mong makita itong gumana nang magaspang.

3. Mabilis na hawakan at bitawan ang sensor ng Hall at magnet sa loob ng 1 segundo. Ulitin ang operasyong ito ng halos 10 beses.

4. Kumpleto ang pagsasaayos kapag regular na nagbabago ang mga kulay ng Neopixels.

# 1. Kabilang ang mga file ng header at preprocessing

Una, dapat nating maunawaan na ang memorya ng Arduino Mega ay hindi sapat na malaki upang makapaghawak ng isang file ng imahe.

Samakatuwid, ang 'avr / pgmspace' header file ay ginagamit upang magamit ang iba't ibang puwang ng memorya.

Upang magamit ang Neopixels, idineklara mo ang isang bagay at ang pagsasaayos ng isang I / O na numero ng pin.

Ang array ng imahe ay masyadong malaki sa pag-coding, kaya i-download at i-paste ang mga nakalakip na file.

# isama

#include #define PIN 6 #define NUMPIXELS 30 #define HALL 2 Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800); // paste array sa 'image_array_1.txt' // "'image_array_2.txt' //" 'image_array_3.txt' // "'image_array_4.txt'

# 2. Global variable at pag-setup

Magtakda ng isang pandaigdigang variable.

Ang pangunahing bagay ay upang itakda ang ningning, natutukoy nito ang cycle ng buhay ng produkto.

int count = 0;

doble v = 0; doble last_v = 0; double timer = micros (); dobleng ex_timer = micros (); doble last_timer = micros (); int deg = 36; int pix = 35; int rgb = 3; doble q_arr [2] = {0, 0}; int HALL_COUNT = 0; doble ang VELO; double processing_timer = micros (); void setup () {strip.setBrightness (255); strip.begin (); strip.show (); Serial.begin (230400); }

# 3. pangunahing loop - bahagi ng output expression ng imahe

Ang code na ito ay isang kondisyunal na pahayag tungkol sa kung paano i-output ang oras na umiikot ang gulong sa pamamagitan ng resolusyon.

Ang bahaging ito ay gumagamit ng pag-ikot ng pag-ikot ng bisikleta nang isang beses bilang isang napakahalagang parameter.

Gayundin, mahalaga na basahin ang data ng array ng imahe mula sa memorya.

void loop () {

kung ((count (ex_timer / 120.0) - (micros () - processing_timer))) {timer = micros (); kung (VELO> 360000) {para sa (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 (); } iba pa kung (VELO 264000) {para sa (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 (); } iba pa kung (VELO 204000) {para sa (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 (); } iba pa kung (VELO <= 204000) {para sa (int i = 0 + 5; i = 120)) {para sa (int i = 0 + 5; i <pix; i ++) {strip.setPixelColor (i - 5, strip. Kulay (0, 0, 0)); } strip.show (); }

# 4. pangunahing loop - pagproseso at pag-check at pag-sensing ng oras sa pag-ikot

Ito ang pinakamahalagang bahagi ng buong system.

Una, suriin ang oras na ginugol upang maipatupad ang buong code at ayusin ang oras ng output ng LED bawat ikot.

Ang oras na nadama sa tuwing umiikot ang gulong ay hinuhulaan ang oras ng susunod na ikot.

Ang pagpapabilis ay maaaring matantya sa pamamagitan ng pagbabawas ng huling sinusukat na oras ng ikot mula sa oras na sinusukat na oras ng pagsukat sa oras.

Kinakalkula ng system ang oras ng pagpoproseso at pagpabilis upang makalkula kung gaano katagal ang patuloy na pag-on ng mga LED.

processing_timer = micros ();

kung ((digitalRead (HALL) == TAAS) && (HALL_COUNT == 1)) {VELO = v; v = micros () - last_timer; ex_timer = q_arr [0] - q_arr [1] + v; last_timer = micros (); q_arr [0] = q_arr [1]; q_arr [1] = v; bilangin = 0; HALL_COUNT = 0; } iba pa kung (digitalRead (HALL) == LOW) {HALL_COUNT = 1; }}

Hakbang 13: Paggamit ng Software

Paggamit ng Software
Paggamit ng Software
Paggamit ng Software
Paggamit ng Software
Paggamit ng Software
Paggamit ng Software

* Gumamit ng software upang ibahin ang imahe at ipasok ang data ng prusisyon sa code

1. Ipasok ang imahe mula sa itaas na hakbang sa folder ng imahe sa folder na R. C. P na naka-install sa hakbang ng paghahanda.

- Paano maglagay ng imahe ay ang mga sumusunod. - Palitan ang pangalan ng 4 na animated na imahe ng produkto # 1 sa pagkakasunud-sunod ng 1.png, 2.png, 3.png, at 4.png. 5.png, 6.png, 7.png, 8.png.- Palitan ang pangalan ng 4 na animated na imahe ng Produkto # 3 sa pagkakasunud-sunod ng 9.png, 10.png, 11.png, 12.png.

2. Patakbuhin ang file na Ver.5.exe.

3. I-verify na 12 file na pro_1_code_1.txt sa pro_3_code_4.txt ang nilikha sa folder na R. C. P.

4. Kung hindi ito nilikha, baguhin ang mga nilalaman ng config.txt bilang sumusunod na file ng pagsasaayos.

5. Kapag nilikha ang file, kopyahin ang buong nilalaman mula sa file na pro_1_code_1.txt at i-paste ito sa bahaging ipinakita sa code sa ibaba.

6. Idagdag ang mga nilalaman ng pro_1_code_2.txt, pro_1_code_3.txt, at pro_1_code_4.txt sa minarkahang bahagi sa ika-5 order.

7. Sumangguni sa 5 at 6, ang pro_2_code…, kinumpleto ng pro_3_code ang code sa parehong paraan.

Hakbang 14: Kumpleto

Kumpleto
Kumpleto
Kumpleto
Kumpleto
Kumpleto
Kumpleto

Nakumpleto ang paggawa ng isang POV na lumilikha ng isang imahe na may tatlong gulong.

Inirerekumendang: