Բովանդակություն:

Digilog_Bike POV Displayուցադրել. 14 քայլ
Digilog_Bike POV Displayուցադրել. 14 քայլ

Video: Digilog_Bike POV Displayուցադրել. 14 քայլ

Video: Digilog_Bike POV Displayուցադրել. 14 քայլ
Video: Servo Motor with Arduino | Arduino Starter kit by Digilog.pk 2024, Հուլիսի
Anonim
Image
Image

Դիջիլոգ

Թվային + անալոգային

Թվայինը հանդիպում է անալոգային

POV

Տեսողական դիմադրություն

Նաև հայտնի է որպես հետերկրյա ցուցադրում, եթե բարձր արագությամբ ցնցվում է, հետերկրյա պատկերը մնում է:

Մարդիկ կարծում են, որ հեռուստացույց դիտելիս տեսանյութ են դիտում: Բայց իրականում նա նայում է մի քանի հաջորդական նկարներ: Սա սխալվում է որպես պատկերի ՝ հաջորդական նկարները դիտելիս մեր ցանցաթաղանթների վրա մնացած պատկերների ազդեցության պատճառով: Նման պատրանքը կոչվում է POV:

Քայլ 1: Գաղափարի հայեցակարգ

Գաղափարի հայեցակարգ
Գաղափարի հայեցակարգ

POV- ն իրականացվում է հեծանիվի անիվին LED ժապավեն ամրացնելով:

Քայլ 2: Նյութերի ցուցակ

Նյութերի ցուցակ
Նյութերի ցուցակ
Նյութերի ցուցակ
Նյութերի ցուցակ

Հաշվողականություն և ելք

1. Arduino Mega 2560 [arduino] x3

2. Hall ցուցիչ V2 [YwRobot] x3 մոդուլ

3. WS2812-5050 ibleկուն նեոպիքսել [Ադաֆրուտ] x3

4. Մագնիսական (տրամագիծը ՝ 15 մմ, հաստությունը ՝ 50 մմ) x3

5. Arduino Mega Case x3

Էլեկտրահաղորդման գիծ

5. 5000mAh/3.7V լիթիումի մարտկոց [TheHan] x3

6. AVR 5V կարգավորիչ և լիցքավորում և PCM մոդուլ ՝ JBATT-U5-LC [Jcnet] x3

7. 4Jumper մետաղալար հավաքածու 65PCS/SET [OR0012] x3

Քայլ 3: Գործիքներ

Գործիքներ
Գործիքներ

Ոչ շատ գործիքներ են անհրաժեշտ, սակայն ձեզ հարկավոր կլինի.

1. oldոդման մեքենա

2. Sոդման երկաթ

3. Սոսինձ ատրճանակ

4. Niակոտիչ

Քայլ 4: Շրջանակ պատրաստելը

Image
Image
Շրջանակ պատրաստելը
Շրջանակ պատրաստելը

Հեծանիվ կտրելը և հիմքը ամրացնելը

Հղիչը օգտագործվում էր հեծանիվի անիվները հեծանիվից կտրելու համար, իսկ անիվները ամրացնելու համար եռակցված պողպատե ափսեներ:

Քայլ 5. Վերջնական պատկերների և հասկացությունների ուրվագծում

Վերջնական պատկերների և հասկացությունների ուրվագծում
Վերջնական պատկերների և հասկացությունների ուրվագծում
Վերջնական պատկերների և հասկացությունների ուրվագծում
Վերջնական պատկերների և հասկացությունների ուրվագծում
Վերջնական պատկերների և հասկացությունների ուրվագծում
Վերջնական պատկերների և հասկացությունների ուրվագծում

Մենք որպես վիշապ ընտրեցինք որպես վերջնական պատկեր: Որովհետև վիշապի ալիքը կարծես լավագույնս ներկայացված էր հետերկրյա էֆեկտով:

Քայլ 6. Կտրեք շարժվող պատկերի կտրվածքը

Կատարեք շարժական պատկերի կտրվածք
Կատարեք շարժական պատկերի կտրվածք
Կատարեք շարժական պատկերի կտրվածք
Կատարեք շարժական պատկերի կտրվածք

Պատկերը բաժանեք երեք մասի, որոնք տեղավորվելու են յուրաքանչյուր հեծանիվի վրա և ընդհանուր 12 պատկերների բաժանել ըստ գույնի և շարժման:

Քայլ 7: Softwareրագրաշարի պատրաստում

Softwareրագրային ապահովման պատրաստում
Softwareրագրային ապահովման պատրաստում
Softwareրագրային ապահովման պատրաստում
Softwareրագրային ապահովման պատրաստում

Ենթամասն 1. Տեղադրեք Arduino- ն

Arduino ներբեռնում ՝

(Տեղադրեք ՝ ձեր OS տարբերակին և համակարգին համապատասխանելու համար):

-

Ենթամասն 2. Տեղադրեք գրադարանը

*(Եթե ցանկանում եք տեղադրել Github- ի միջոցով, այցելեք Github Arduino գրադարանի վերևի հղումը ՝

1. Գործարկեք Arduino ծրագիրը

2. Թույլատրել հղումը Վերևի ընտրացանկ - ուրվագիծ - ներառել գրադարանը - ավելացնել. ZIP գրադարան

3. Դուք պետք է ընտրեք. Zip ֆայլը, որն արդեն տեղադրել է github Library4

*(Եթե ցանկանում եք օգտվել Arduino ծրագրի ծառայություններից)

1. Գործարկեք Arduino ծրագրերը

2. Թույլատրել հղումը Վերևի ընտրացանկ - ուրվագիծ - ներառել գրադարան - կառավարման գրադարան - որոնել «Adafruit neopixel» - կարող եք տեսնել «Adafruit Neopixel by Adafruit»

3. Տեղադրեք և թարմացրեք գրադարանը

-

Ենթամասն 3. Տեղադրեք փոխարկիչ ծրագիրը

1. Տեղադրեք Պտտման շրջանակի ծրագիրը (R. C. P) ՝

2. Անհրաժեշտ է կարդալ README ֆայլ

Քայլ 8: Սարքավորման էներգիայի մատակարարման պատրաստում

Սարքավորման էներգիայի մատակարարման պատրաստում
Սարքավորման էներգիայի մատակարարման պատրաստում
Սարքավորման էներգիայի մատակարարման պատրաստում
Սարքավորման էներգիայի մատակարարման պատրաստում
Սարքավորման էներգիայի մատակարարման պատրաստում
Սարքավորման էներգիայի մատակարարման պատրաստում

*Ահա թե ինչպես կարելի է Arduino 5V լարումը մատակարարել մարտկոցի միջոցով: Խնդրում ենք հետևել ստորև նշված քայլերին:

1. Միացրեք լիթիումի մարտկոցը և JBATT լիցքավորման մոդուլը: (Որպես տեղեկություն, JBATT մոդուլն ունի ներկառուցված հոսանքի անջատիչ):

2. JBATT- ի ելքային տերմինալը միացրեք Arduino- ի և Ground տերմինալի Vin տերմինալին:

3. Միացրեք Micro 5pin USB պորտը լիցքավորման պորտին `ստուգելու, արդյոք ապրանքը ճիշտ է աշխատել:

4. Հաջորդը, ներկառուցված անջատիչը միացրեք ON:

5. Եթե կարմիր լուսարձակը լուսավորվի և կանաչ լուսավորվի Արդուինոյում, արտադրանքի հզորության աստիճանի կարգավորումը նորմալ ավարտված է:

Քայլ 9. Սարքավորման մուտքի/ելքի պատրաստում և ելքի ստուգում (NeoPixel- ը աշխատում է)

Սարքավորման մուտքի/ելքի պատրաստում և ելքի ստուգում (NeoPixel- ի աշխատանքը)
Սարքավորման մուտքի/ելքի պատրաստում և ելքի ստուգում (NeoPixel- ի աշխատանքը)
Սարքավորման մուտքի/ելքի պատրաստում և ելքի ստուգում (NeoPixel- ի աշխատանքը)
Սարքավորման մուտքի/ելքի պատրաստում և ելքի ստուգում (NeoPixel- ի աշխատանքը)
Սարքավորման մուտքի/ելքի պատրաստում և ելքի ստուգում (NeoPixel- ի աշխատանքը)
Սարքավորման մուտքի/ելքի պատրաստում և ելքի ստուգում (NeoPixel- ի աշխատանքը)

*Այս մասը բաղկացած է սենսորից և ելքային փուլից:

1. Միացրեք Arduino և Hall սենսորները: Տվյալների կապը միանում է Arduino կապին 2 -ին:

2. Երբ Arduino- ն սնուցվում է, և մագնիսը սերտ կապի մեջ է Hall սենսորի հետ, կարմիր լուսարձակը լուսավորվելու է:

3. Միացրեք Arduino- ն և Neopixel- ը: Օգտագործվում է ընդամենը 30 նեոպիքսել:

4. Տվյալների կապը միացրեք Arduino 6 -րդ կապին:

5. Միացրեք Arduino- ն և ներբեռնեք մալուխը ձեր համակարգչի USB պորտին և գործարկեք Arduino- ն ձեր համակարգչի վրա:

6. Arduino ծրագրի վերևի ընտրացանկից ընտրեք Գործիք - տախտակ - «Arduino / Genuino Mega կամ Mega 2560»:

7. Ստուգեք, արդյոք կա ապրանքների ցանկ, որոնք կարող են ուղղակիորեն միացվել նավահանգստին: Եթե այն ստուգված չէ, կտտացրեք այն ընտրելու համար:

8. Տեղադրեք ներքևի ծածկագիրը և կտտացրեք Վերբեռնել ձախ վերևում: (Հետո, ծրագրի բոլոր վերբեռնումները հետևում են 5-8-րդ քայլերին):

9. Կոնֆիգուրացիան ավարտված է, երբ միացված են բոլոր 30 նեոլավորված պիքսելները:

#1 ներառյալ վերնագրի ֆայլը և նախամշակումը

Սկզբում մենք պետք է բերենք Adafruit_NeoPixel գրադարանը, որն ունակ է գործել Neopixels- ով:

Գրադարանը կարող է օգտագործվել օբյեկտներ հայտարարելով:

Adafruit_NeoPixel դասը կարող է հանրության առջև մուտքագրել 3 պարամետր:

Առաջին պարամետրը LED- ների թիվն է:

վայրկյանների պարամետրը Neopixel թվային մուտքին միացված քորոցի համարն է:

Երրորդ պարամետրը արտադրանքի բնութագրերին համապատասխան ընտրանքների մուտքագրումն է: եռագույն WS2812b արտադրանքը օգտագործում է «NEO_GRB» մուտքը

#ներառում

#սահմանեք PIN 6 Adafruit_NeoPixel շերտ = Adafruit_Neopixel (30, PIN, NEO_GRB+NEO_KHZ800);

#2 կարգավորում

Կարգավորման մասում սկզբնականացրեք օբյեկտը և պատրաստեք այն օգտագործման համար:

'Adafruit_Neopixle_Object.begin ()' - ը անջատում է բոլոր LED- ները:

'Adafruit_Neopixle_Object.show ()' արդյունքները լուսադիոդում տեղադրված պայծառությամբ:

void setup () {

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

#3 հիմնական հանգույց

Հիմնական հանգույցի գործողությունը օգտագործում է for loop- ը `հաջորդաբար (0.1 վայրկյան) LED- ները սպիտակ գույնով թողարկելու համար

դատարկ շրջան () {

for (uint16_t i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, 255, 255, 255); strip.show (); ուշացում (100); }}

Քայլ 10. Հավաքում և կցում անիվին

Հավաքում և կցում անիվին
Հավաքում և կցում անիվին
Հավաքում և կցում անիվին
Հավաքում և կցում անիվին

1. Միացրեք նեոպիքսելները: (Ուշադրություն դարձրեք կապի համարի ստուգմանը)

2. Միացրեք Hall Sensor- ը: (Տես `Քայլ 9)

3. Կցեք շրջանակը Arduino- ին հեծանիվների միջև: (Կցեք Arduino- ի պատյանը հեծանիվի շրջանակին զուգահեռ):

4. Տեղադրեք Neopixel- ին միացված Arduino- ն: (Carefulգույշ եղեք, քանի որ սոսինձի ատրճանակը տաք է):

5. Տեղադրեք միացված Hall սենսորը Arduino- ի մեջ (ամրացրեք մալուխի կապը այնպես, որ Hall սենսորը չընկնի):

6. erոդիչ `մարտկոցը միացնելու համար: (Soldոդման ժամանակ զգույշ եղեք):

7. Ամրացրեք այն սոսինձ ատրճանակով: (Տեղադրեք լիցքավորման մոդուլը մարտկոցի վրա `տարածք ապահովելու համար):

8. Միացրեք յուրաքանչյուր տող Arduino- ին միանալուց առաջ, 9. Միացրեք ըստ յուրաքանչյուր կապի համարի: (Միացրեք ցատկման գծերը լիցքավորման մոդուլի համար `առանց դրանք շփոթելու):

10. Մեկ անգամ ավարտեք սոսինձ ատրճանակով, (Խնդրում ենք զգույշ լինել, որ չընկնեք):

Քայլ 11. Մուտքի ստուգում (HALL Sensor Data)

INPUT (HALL Sensor Data) ստուգում
INPUT (HALL Sensor Data) ստուգում
INPUT (HALL Sensor Data) ստուգում
INPUT (HALL Sensor Data) ստուգում
INPUT (HALL Sensor Data) ստուգում
INPUT (HALL Sensor Data) ստուգում

*Ստուգեք ծրագրակազմի ծածկագիրը ՝ տեսնելու, թե արդյոք սենսորը աշխատում է:

1. Տեղադրեք և վերբեռնեք ներքևի ծածկագիրը:

2. Սեղմեք Arduino- ի վերևի աջ մասում գտնվող Serial Monitor կոճակը:

3. Երբ մագնիսը 1 վայրկյանից ավելի է շփվում Hall սենսորի հետ, կազմաձևումն ավարտվում է, երբ սերիական մոնիտորի վրա հայտնվում է «կոնտակտային մագնիսական» բառը:

------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ #1 Սահմանեք PIN- ի համարը և կարգավորումը

Առաջին կազմաձևման PIN համարը, որն օգտագործում է Hall սենսորը և սահմանում է PIN- ի համարը որպես Մուտքի միայն պորտ:

Սահմանեք հաղորդակցությունը `սերիական մոնիտորի վրա Hall սենսորի տվյալները ստուգելու համար:

#սահմանեք ՍՐԱՀ 2

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

#2 հիմնական հանգույց

Ստուգեք Hall սենսորի տվյալները 0.1 վայրկյան ընդմիջումներով:

Եթե մագնիսը զգացվում է և տվյալները փոխվում են, «կոնտակտային մագնիսական» -ը դուրս է գալիս սերիական մոնիտոր:

դատարկ շրջան () {

if (digitalRead (HALL)) {Serial.println («կոնտակտային մագնիսական»); } ուշացում (100); }

Քայլ 12: Կոդավորման ալգորիթմ

*Ստեղծեք տրամաբանություն և կոդավորում ՝ սենսորային արժեքների հիման վրա Neopixels- ը վերահսկելու համար:

1. Տեղադրեք և վերբեռնեք ներքևի ծածկագիրը:

2. Նորմալ է, որ պատկերը պատշաճ կերպով չցուցադրվի, քանի որ շրջանակ չի արտադրվում: Բայց դուք կարող եք տեսնել, որ այն մոտավորապես աշխատում է:

3. Արագ հպեք և արձակեք Hall- ի տվիչն ու մագնիսը 1 վայրկյանի ընթացքում: Կրկնեք այս գործողությունը մոտ 10 անգամ:

4. Կոնֆիգուրացիան ամբողջական է, երբ Neopixels- ի գույները պարբերաբար փոխվում են:

#1 Ներառյալ վերնագրի ֆայլերը և նախամշակումը

Նախ, մենք պետք է հասկանանք, որ Arduino Mega- ի հիշողությունը բավականաչափ մեծ չէ պատկերի ֆայլ պահելու համար:

Հետևաբար, «avr/pgmspace» վերնագրի ֆայլը օգտագործվում է տարբեր հիշողության տարածք օգտագործելու համար:

Neopixels- ից օգտվելու համար օբյեկտը և կազմաձևը հայտարարում եք I/O PIN համար:

Պատկերի զանգվածը չափազանց մեծ է կոդավորման համար, այնպես որ ներբեռնեք և տեղադրեք կցված ֆայլերը:

#ներառում

#ներառել #սահմանել PIN 6 #սահմանել NUMPIXELS 30 #սահմանել HALL 2 Adafruit_NeoPixel շերտ = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800); // տեղադրեք զանգվածը 'image_array_1.txt' // "'image_array_2.txt' //" 'image_array_3.txt' // "'image_array_4.txt'

#2 Գլոբալ փոփոխական և կարգավորում

Սահմանեք գլոբալ փոփոխական:

Հիմնական բանը պայծառությունը սահմանելն է, այն որոշում է արտադրանքի կյանքի ցիկլը:

int հաշվարկ = 0;

կրկնակի v = 0; կրկնակի last_v = 0; կրկնակի ժմչփ = micros (); կրկնակի ex_timer = micros (); կրկնակի last_timer = micros (); int deg = 36; int pix = 35; int rgb = 3; կրկնակի q_arr [2] = {0, 0}; int HALL_COUNT = 0; կրկնակի VELO; կրկնակի մշակման_հարցիչ = միկրո (); void setup () {strip.setBrightness (255); strip.begin (); strip.show (); Serial.begin (230400); }

#3 հիմնական հանգույց - պատկերի արտահայտման ելքային մաս

Այս ծածկագիրը պայմանական հայտարարություն է այն մասին, թե ինչպես կարելի է ելքավորել անիվի պտտման ժամանակը ըստ լուծման:

Այս մասը օգտագործում է հեծանիվի անիվը մեկ անգամ պտտելու ցիկլը որպես շատ կարևոր պարամետր:

Բացի այդ, կարևոր է կարդալ պատկերների զանգվածի տվյալները հիշողությունից:

դատարկ շրջան () {

եթե ((հաշվիչ (նախկին_տաչափ / 120.0) - (միկրոս () - վերամշակման ժամանակաչափ))) {ժմչփ = միկրո (); 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 [հաշվել] [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, շերտ. Գույն (0, 0, 0)); } strip.show (); }

#4 հիմնական հանգույց - մշակման և ցիկլի ժամանակի ստուգում և զգացում

Սա ամբողջ համակարգի ամենակարևոր մասն է:

Նախ, ստուգեք ամբողջ ծածկագիրը գործարկելու ժամանակը և մեկ ցիկլի համար կարգավորեք LED ելքային ժամանակը:

Ամեն անգամ, երբ անիվը պտտվում է, զգացվում է հաջորդ ցիկլի ժամանակը:

Արագացումը կարելի է գնահատել ՝ ժամանակի չափված ցիկլի ժամանակից հանելով վերջին չափված ցիկլի ժամանակը:

Համակարգը հաշվարկում է վերամշակման ժամանակը և արագացումը `հաշվարկելու համար, թե որքան ժամանակ LED- ները անընդհատ միանում են:

Process_timer = micros ();

եթե ((digitalRead (HALL) == HIGH) && (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; հաշվել = 0; HALL_COUNT = 0; } else if (digitalRead (HALL) == LOW) {HALL_COUNT = 1; }}

Քայլ 13: Usingրագրակազմի օգտագործումը

. Րագրային ապահովման օգտագործումը
. Րագրային ապահովման օգտագործումը
. Րագրային ապահովման օգտագործումը
. Րագրային ապահովման օգտագործումը
. Րագրային ապահովման օգտագործումը
. Րագրային ապահովման օգտագործումը

*Օգտագործեք ծրագրակազմ ՝ պատկերը փոխակերպելու և թափորի տվյալները կոդի մեջ տեղադրելու համար:

1. Պատկերը վերը նշված քայլից տեղադրեք պատրաստման փուլում տեղադրված R. C. P թղթապանակի պատկերի թղթապանակի մեջ:

- Ինչպես տեղադրել պատկերը հետևյալն է:- Վերանվանել # 1 ապրանքի 4 անիմացիոն պատկերներ `ըստ 1.png, 2.png, 3-p.webp

2. Գործարկեք Ver.5.exe ֆայլը:

3. Հաստատեք, որ 12 ֆայլ pro_1_code_1.txt դեպի pro_3_code_4.txt ստեղծվում են R. C. P պանակում:

4. Եթե այն ստեղծված չէ, փոխեք config.txt- ի բովանդակությունը որպես հետևյալ կազմաձևման ֆայլ:

5. Երբ ֆայլը ստեղծվի, պատճենեք ամբողջ բովանդակությունը ֆայլից pro_1_code_1.txt և տեղադրեք այն ստորև նշված կոդի մեջ ցուցադրվող մասի մեջ:

6. Ավելացրեք pro_1_code_2.txt, pro_1_code_3.txt և pro_1_code_4.txt բովանդակությունը նշված հատվածին 5 -րդ կարգով:

7. Անդրադառնալով 5 -ին և 6 -ին ՝ pro_2_code…, pro_3_code- ը նույն կերպ է լրացնում ծածկագիրը:

Քայլ 14: Ավարտեք

Ամբողջական
Ամբողջական
Ամբողջական
Ամբողջական
Ամբողջական
Ամբողջական

Ավարտեց POV- ի արտադրությունը, որը ստեղծում է մեկ պատկեր երեք անիվներով:

Խորհուրդ ենք տալիս: