Мазмұны:

Digilog_Bike POV дисплейі: 14 қадам
Digilog_Bike POV дисплейі: 14 қадам

Бейне: Digilog_Bike POV дисплейі: 14 қадам

Бейне: Digilog_Bike POV дисплейі: 14 қадам
Бейне: Russian TYPICAL Shopping Mall: Returning 18 Months Later 2024, Қараша
Anonim
Image
Image

Дигилог

Сандық + аналогтық

Сандық аналогқа сәйкес келеді

POV

Көрнекілік тұрақтылығы

Кейінгі бейне дисплей деп те аталады, егер жоғары жылдамдықпен шайқалса, кейінгі сурет қалады.

Адамдар теледидар көргенде бейне көріп отырмын деп ойлайды. Бірақ шын мәнінде, ол бірнеше суретті қатарынан қарап отыр. Бұл суретті қателеседі, себебі кезекті суреттерді қарау кезінде көздің тор қабығында қалған суреттердің әсері. Мұндай иллюзия POV деп аталады.

1 -қадам: Идея туралы түсінік

Идея туралы түсінік
Идея туралы түсінік

POV велосипедтің дөңгелегіне жарық диодты белдікті бекіту арқылы жүзеге асады.

2 -қадам: материалдар тізімі

Материалдар тізімі
Материалдар тізімі
Материалдар тізімі
Материалдар тізімі

Есептеу және енгізу -шығару

1. Arduino Mega 2560 [arduino] x3

2. Холл сенсор модулі V2 [YwRobot] x3

3. WS2812-5050 икемді неопиксель [Adafruit] 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. 4Жұлдызды сым жиынтығы 65PCS/SET [OR0012] x3

3 -қадам: Құралдар

Құралдар
Құралдар

Құралдар қажет емес, бірақ сізге қажет:

1. Дәнекерлеу машинасы

2. Пісіру үтігі

3. Желімді мылтық

4. Қысқыш

4 -қадам: жақтауды жасау

Image
Image
Рамка жасау
Рамка жасау

Велосипедті кесу және негізді бекіту

Тегістеуіш велосипед дөңгелектерін велосипедтен кесу үшін пайдаланылды және дөңгелектерді бекіту үшін болат табақтарды дәнекерледі.

5 -қадам: Қорытынды суреттер мен түсініктердің эскизі

Қорытынды бейнелер мен түсініктердің эскизі
Қорытынды бейнелер мен түсініктердің эскизі
Қорытынды бейнелер мен түсініктердің эскизі
Қорытынды бейнелер мен түсініктердің эскизі
Қорытынды бейнелер мен түсініктердің эскизі
Қорытынды бейнелер мен түсініктердің эскизі

Біз соңғы сурет ретінде айдаһарды таңдадық. Айдаһар толқыны кейінгі әсермен жақсы көрінетін сияқты.

6 -қадам: Жылжымалы кескінді кесіңіз

Жылжымалы кескінді кесіңіз
Жылжымалы кескінді кесіңіз
Жылжымалы кескінді кесіңіз
Жылжымалы кескінді кесіңіз

Кескінді әр велосипедке сәйкес келетін үш бөлікке бөліңіз және барлығы 12 суретті түсі мен қозғалысы бойынша бөліңіз.

7 -қадам: бағдарламалық қамтамасыз етуді дайындау

Бағдарламалық қамтамасыз етуді дайындау
Бағдарламалық қамтамасыз етуді дайындау
Бағдарламалық қамтамасыз етуді дайындау
Бағдарламалық қамтамасыз етуді дайындау

Қосымша бөлім 1. Arduino орнатыңыз

Arduino жүктеу:

(ОЖ нұсқасы мен жүйеге сәйкес келу үшін орнатыңыз.)

-

2 -бөлім. Кітапхананы орнатыңыз

*(Егер сіз Github арқылы орнатқыңыз келсе, Github Arduino Library жоғарыдағы сілтемеге өтіңіз:

1. Arduino бағдарламасын іске қосыңыз

2. Сілтемеге рұқсат ету Жоғарғы мәзір - эскиз - кітапхананы қосу -. Zip кітапханасын қосу

3. github library4 бұрыннан орнатылған. Zip файлын таңдау керек

*(Егер сіз Arduino бағдарламасының қызметтерін пайдаланғыңыз келсе)

1. Arduino бағдарламаларын іске қосыңыз

2. Сілтемеге рұқсат етіңіз Жоғарғы мәзір - эскиз - кітапхананы қамтиды - басқару кітапханасы - 'Adafruit неопикселін' іздеу - сіз '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. Егер қызыл светодиод жанып тұрса және жасыл светодиод Arduino -да жанса, өнімнің қуат кезеңінің конфигурациясы қалыпты түрде аяқталады.

9 -қадам: Аппаратты енгізу/шығару және шығуды тексеру (NeoPixel жұмыс істейді)

Аппаратты енгізу -шығару және шығуды тексеру (NeoPixel жұмыс істейді)
Аппаратты енгізу -шығару және шығуды тексеру (NeoPixel жұмыс істейді)
Аппаратты енгізу -шығару және шығуды тексеру (NeoPixel жұмыс істейді)
Аппаратты енгізу -шығару және шығуды тексеру (NeoPixel жұмыс істейді)
Аппаратты енгізу -шығару және шығуды тексеру (NeoPixel жұмыс істейді)
Аппаратты енгізу -шығару және шығуды тексеру (NeoPixel жұмыс істейді)

*Бұл бөлік сенсор мен шығыс сатысынан тұрады

1. Arduino және Hall сенсорларын қосыңыз. Деректер түйрегіші Arduino pin 2 -ге қосылады.

2. Arduino қосылғанда және магнит Холл сенсорымен тығыз байланыста болған кезде, қызыл светодиод жанады.

3. Arduino мен Neopixel жалғаңыз. Тек 30 неопиксель қолданылады.

4. Деректер түйреуішін 6 Arduino түйрегімен қосыңыз.

5. Arduino мен жүктеу кабелін компьютердің USB портына жалғап, компьютерде Arduino іске қосыңыз.

6. Arduino бағдарламасының жоғарғы мәзір жолағынан Toolboard - «Arduino / Genuino Mega or Mega 2560» таңдаңыз.

7. Портқа тікелей қосылатын өнімдердің тізімі бар -жоғын тексеріңіз. Егер ол тексерілмесе, оны таңдау үшін басыңыз.

8. Төмендегі кодты қойыңыз және сол жақ жоғарғы жағындағы Жүктеу түймесін басыңыз. (Содан кейін барлық бағдарламаны жүктеу 5-8 қадамдарды орындайды.)

9. Конфигурация 30 жаңартылған пикселдің барлығы қосылған кезде аяқталады.

№1. тақырып файлын және алдын ала өңдеуді қосқанда

Алдымен бізге неопиксельдерді қолдана алатын Adafruit_NeoPixel кітапханасын әкелу керек.

Кітапхананы объектілерді жариялау арқылы пайдалануға болады.

Adafruit_NeoPixel класы 3 параметрді көпшілікке енгізе алады.

Бірінші параметр - жарықдиодты шамдардың саны.

секунд параметрі - бұл Neopixel цифрлық кірісіне қосылған пин нөмірі.

Үшінші параметр - өнім сипаттамаларына сәйкес опцияларды енгізу. үш түсті WS2812b өнімі 'NEO_GRB' кірісін қолданады

#қосу

#анықтау PIN 6 Adafruit_NeoPixel жолағы = Adafruit_Neopixel (30, PIN, NEO_GRB+NEO_KHZ800);

#2. орнату

Орнату бөлігінде объектіні инициализациялаңыз және оны пайдалануға дайындаңыз.

'Adafruit_Neopixle_Object.begin ()' барлық жарықдиодты сөндіруге орнатады.

'Adafruit_Neopixle_Object.show ()' жарық диодты жарықтылықпен шығарылады.

жарамсыз орнату () {

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

#3. негізгі цикл

Негізгі циклдің әрекеті ақ түсті светодиодтарды дәйекті шығару үшін (0,1 секунд) for циклын қолданады

void loop () {

for (uint16_t i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, 255, 255, 255); strip.show (); кешіктіру (100); }}

10 -қадам: Дөңгелекті жинау және бекіту

Дөңгелекті жинау және бекіту
Дөңгелекті жинау және бекіту
Дөңгелекті жинау және бекіту
Дөңгелекті жинау және бекіту

1. Неопиксельдерді қосыңыз. (PIN нөмірін тексеруге назар аударыңыз)

2. Холл сенсорын қосыңыз. (9 -қадамды қараңыз)

3. Жақтауды велосипедтер арасындағы Arduino -ға бекітіңіз. (Arduino корпусын велосипед рамасына параллель бекітіңіз).

4. Неопиксельге қосылған Arduino салыңыз. (Сақ болыңыз, себебі желім пистолеті ыстық).

5. Қосылған Холл сенсорын Arduino -ға салыңыз, (Холл сенсоры құлап кетпейтіндей етіп кабель бекіткішін бекітіңіз).

6. Батареяны қосу үшін дәнекерлеу. (Дәнекерлеу кезінде абай болыңыз).

7. Оны желім мылтықпен бекітіңіз. (Бос орынды қамтамасыз ету үшін зарядтау модулін батареяға бекітіңіз).

8. Arduino -ға қосылмас бұрын әр жолды қосыңыз, 9. Әр істікшенің нөміріне сәйкес қосыңыз. (Зарядтау модулінің секіру сызықтарын шатастырмай қосыңыз).

10. Бір рет желім пистолетпен аяқтаңыз, (құлап кетпеу үшін абай болыңыз).

11 -қадам: INPUT (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 жоғарғы оң жақтағы сериялық монитор түймешігін басыңыз.

3. Магнит Холл сенсорымен 1 секундтан астам байланыста болған кезде, сериялық мониторда «байланыс магниті» сөзі пайда болған кезде конфигурация аяқталады.

-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- №1. PIN нөмірі мен орнатуды анықтаңыз

Холл сенсоры пайдаланылатын және пин нөмірін тек кіруге арналған порт ретінде орнататын бірінші конфигурация пин нөмірі.

Сериялық монитордағы Hall сенсорының деректерін тексеру үшін байланысты орнатыңыз.

#залды анықтау 2

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

#2. негізгі цикл

Холл сенсорының деректерін 0,1 секунд аралықта тексеріңіз.

Егер магнит сезілсе және деректер өзгертілсе, сериялық мониторға «байланыс магниті» шығарылады.

void loop () {

if (digitalRead (HALL)) {Serial.println («байланыс магниті»); } кешіктіру (100); }

12 -қадам: кодтау алгоритмі

*Сенсор мәндеріне негізделген неопиксельдерді басқару үшін логика мен кодтау құрыңыз.

1. Төмендегі кодты қойыңыз және жүктеңіз.

2. Кескіннің дұрыс көрсетілмеуі қалыпты жағдай, себебі кадр жасалмайды. Бірақ сіз бұл шамамен жұмыс істейтінін көре аласыз.

3. Холл сенсоры мен магнитін 1 секунд ішінде тез басып, босатыңыз. Бұл операцияны шамамен 10 рет қайталаңыз.

4. Неопикселдердің түстері үнемі өзгеріп тұрғанда конфигурация аяқталады.

№1. Тақырып файлдары мен алдын ала өңдеуді қосқанда

Біріншіден, біз Arduino Mega жады сурет файлын сақтауға жеткілікті үлкен емес екенін түсінуіміз керек.

Сондықтан 'avr/pgmspace' тақырыбы файлы әр түрлі жад кеңістігін пайдалану үшін қолданылады.

Неопиксельдерді қолдану үшін сіз объект пен конфигурацияны енгізу -шығару PIN нөмірін жариялайсыз.

Кескін массиві кодтау үшін тым үлкен, сондықтан бекітілген файлдарды жүктеп алып қойыңыз.

#қосу

#қосу #PIN кодын анықтау 6 #NUMPIXELS анықтау 30 #залды анықтау 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 count = 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; қос өңдеу_таймері = micros (); void setup () {strip.setBrightness (255); strip.begin (); strip.show (); Serial.begin (230400); }

#3. негізгі цикл - кескін өрнегінің шығыс бөлігі

Бұл код дөңгелектің айналу уақытын рұқсат бойынша шығару туралы шартты мәлімдеме.

Бұл бөлімде велосипед дөңгелегін бір рет айналдыру циклі өте маңызды параметр ретінде қолданылады.

Сонымен қатар, кескін массивінің деректерін жадыдан оқу маңызды.

void loop () {

if ((count (ex_timer / 120.0) - (micros () - processing_timer)))) {таймер = микрос (); 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 (); } if 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, жолақ. Color (0, 0, 0)); } strip.show (); }

#4. Негізгі цикл - өңдеу және цикл уақытын тексеру мен сезу

Бұл бүкіл жүйенің ең маңызды бөлігі.

Алдымен, бүкіл кодты орындауға кететін уақытты тексеріңіз және бір циклдегі жарықдиодты шығыс уақытын реттеңіз.

Дөңгелек айналған сайын сезілетін уақыт келесі циклдің уақытын болжайды.

Жеделдетуді уақыт бойынша өлшенген цикл уақытынан соңғы өлшенген цикл уақытын шегеру арқылы бағалауға болады.

Жүйе жарықдиодты шамдардың үздіксіз қосылу уақытын есептеу үшін өңдеу уақытын және үдеуді есептейді.

өңдеу_таймері = микросхемалар ();

if ((digitalRead (HALL) == HIGH) && (HALL_COUNT == 1)) {VELO = v; v = micros () - соңғы_таймер; 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 -қадам: Бағдарламалық жасақтаманы пайдалану

Бағдарламалық қамтамасыз етуді қолдану
Бағдарламалық қамтамасыз етуді қолдану
Бағдарламалық қамтамасыз етуді қолдану
Бағдарламалық қамтамасыз етуді қолдану
Бағдарламалық қамтамасыз етуді қолдану
Бағдарламалық қамтамасыз етуді қолдану

*Бағдарламалық жасақтаманы кескінді түрлендіру және кодқа процесс туралы мәліметтерді енгізу үшін қолданыңыз

1. Жоғарыда көрсетілген суретті дайындық қадамында орнатылған R. C. P қалтасындағы кескін қалтасына салыңыз.

- Суретті қалай қоюға болады.- №1 өнімнің 4 анимациялық кескінін 1.png, 2.png, 3-p.webp

2. Ver.5.exe файлын іске қосыңыз.

3. R. C. P қалтасында pro_1_code_1.txt - pro_3_code_4.txt файлдарының 12 файлының жасалғанын тексеріңіз.

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 өндірісі аяқталды.

Ұсынылған: