Съдържание:

Digilog_Bike POV дисплей: 14 стъпки
Digilog_Bike POV дисплей: 14 стъпки

Видео: Digilog_Bike POV дисплей: 14 стъпки

Видео: Digilog_Bike POV дисплей: 14 стъпки
Видео: Он играет в роблокс на 25-ти телефонах roblox #Shorts 2024, Юли
Anonim
Image
Image

Digilog

Цифров + аналогов

Цифровото отговаря на аналоговия

POV

Визуална устойчивост

Известен също като дисплей на остатъчно изображение, ако се разклати с висока скорост, остатъчното изображение остава.

Хората мислят, че гледат видео, когато гледат телевизия. Но всъщност той разглежда няколко последователни снимки. Това е погрешно за изображение поради ефекта на остатъчните изображения, останали върху ретините ни при гледане на последователни снимки. Този вид илюзия се нарича POV.

Стъпка 1: Идея концепция

Идея концепция
Идея концепция

POV се реализира чрез прикрепване на LED каишка към колелото на мотор.

Стъпка 2: Списък на материалите

Списък на материалите
Списък на материалите
Списък на материалите
Списък на материалите

Изчисления и I/O

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. Трябва да изберете. Zip файла, който вече е инсталирал github library4

*(Ако искате да използвате програмните услуги на Arduino)

1. Стартирайте програмите Arduino

2. Разрешете връзката Горно меню - скица - включете библиотека - библиотека за управление - търсене на „Adafruit neopixel“- можете да видите „Adafruit Neopixel от Adafruit“

3. Инсталирайте и актуализирайте библиотеката

-

Подчаст 3. Инсталирайте програма за конвертор

1. Инсталирайте Rotation Circle Program (R. C. P):

2. Трябва да прочетете README файл

Стъпка 8: Направете хардуерно захранване

Изработване на хардуерно захранване
Изработване на хардуерно захранване
Изработване на хардуерно захранване
Изработване на хардуерно захранване
Изработване на хардуерно захранване
Изработване на хардуерно захранване

*Ето как да захранвате Arduino 5V напрежение през батерията. Моля, следвайте стъпките по -долу.

1. Свържете литиева батерия и модул за зареждане JBATT. (За справка, модулът JBATT има вграден превключвател на захранването.)

2. Свържете изходния терминал на JBATT към терминала Vin на Arduino и заземяващия терминал.

3. Свържете Micro 5pin usb порта към порта за зареждане, за да проверите дали продуктът работи правилно.

4. След това включете вградения превключвател в положение ON.

5. Ако червеният светодиод светне и зеленият светодиод светне в Arduino, конфигурацията на етапа на захранване на продукта е завършена нормално.

Стъпка 9: Осъществяване на хардуерни входове/изходи и проверка на изхода (NeoPixel Working)

Осъществяване на хардуерни входове/изходи и проверка на изхода (работещ NeoPixel)
Осъществяване на хардуерни входове/изходи и проверка на изхода (работещ NeoPixel)
Осъществяване на хардуерни входове/изходи и проверка на изхода (работещ NeoPixel)
Осъществяване на хардуерни входове/изходи и проверка на изхода (работещ NeoPixel)
Осъществяване на хардуерни входове/изходи и проверка на изхода (работещ NeoPixel)
Осъществяване на хардуерни входове/изходи и проверка на изхода (работещ NeoPixel)

*Тази част се състои от сензор и изходен етап

1. Свържете сензорите Arduino и Hall. Щифтът за данни се свързва с пин 2 на Arduino.

2. Когато Arduino се включи и магнитът е в близък контакт със сензора на Хол, червеният светодиод ще светне.

3. Свържете Arduino и Neopixel. Използват се само 30 неопиксела.

4. Свържете пина за данни с Arduino pin 6.

5. Свържете Arduino и изтеглете кабела към usb порта на вашия компютър и стартирайте Arduino на вашия компютър.

6. Изберете дъска с инструменти - „Arduino / Genuino Mega или Mega 2560“от горната лента с менюта на програмата Arduino.

7. Проверете дали има списък с продукти, които могат да бъдат директно свързани към порта. Ако не е отметнато, щракнете, за да го изберете.

8. Поставете кода по -долу и щракнете върху Качване горе вляво. (След това всички качвания на програми следват стъпки 5-8.)

9. Конфигурацията е завършена, когато се включат всичките 30 неолирани пиксела.

#1. включително заглавен файл и предварителна обработка

Първо трябва да внесем библиотеката Adafruit_NeoPixel, която е в състояние да действа Neopixels.

Библиотеката може да се използва чрез деклариране на обекти.

Класът Adafruit_NeoPixel може да въведе публично 3 параметъра.

Първият параметър е броят на светодиодите.

параметър seconds е пинов номер, свързан към цифровия вход Neopixel.

Третият параметър е да въведете опции според характеристиките на продукта. трицветен продукт WS2812b използва входа „NEO_GRB“

#включва

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

#2. настройвам

В частта за настройка инициализирайте обекта и го подгответе за употреба.

„Adafruit_Neopixle_Object.begin ()“настройва всички светодиоди да се изключват.

„Adafruit_Neopixle_Object.show ()“извежда с яркостта, зададена в светодиода.

void setup () {

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

#3. основен контур

Действието на основния контур използва цикъл for за последователно извеждане (0,1 секунди) на светодиодите в бяло

void loop () {

for (uint16_t i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, 255, 255, 255); strip.show (); забавяне (100); }}

Стъпка 10: Сглобяване и закрепване към колелото

Сглобяване и закрепване към колелото
Сглобяване и закрепване към колелото
Сглобяване и закрепване към колелото
Сглобяване и закрепване към колелото

1. Свържете неопиксели. (Обърнете внимание на проверката на пинов номер)

2. Свържете сензора на Хол. (Вижте Стъпка 9)

3. Прикрепете рамката към Arduino между велосипедите. (Прикрепете кутията Arduino успоредно на рамката на велосипеда).

4. Поставете Arduino, свързан с Neopixel. (Внимавайте, защото пистолетът за лепило е горещ).

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. Щракнете върху бутона Serial Monitor в горния десен ъгъл на Arduino.

3. Когато магнитът е в контакт с сензора на Хол за повече от 1 секунда, конфигурирането е завършено, когато на серийния монитор се появи думата „магнитен контакт“.

-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- #1. Определете пинов номер и настройка

Първият конфигурационен пинов номер, който използва сензора на Хол и задава номера на пина като порт само за вход.

Настройте комуникацията, за да проверите данните на сензора на Хол на серийния монитор.

#дефинирайте ЗАЛА 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' се използва за използване на различно пространство в паметта.

За да използвате Neopixels, декларирате обект и конфигурирате I/O пинов номер.

Масивът с изображения е твърде голям за кодиране, така че изтеглете и поставете прикачените файлове.

#включва

#include #define PIN 6 #define NUMPIXELS 30 #define HALL 2 Adafruit_NeoPixel strip = 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 (); двоен последен таймер = 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. main loop - изходна част на израза на изображението

Този код е условно изявление за това как да се изведе времето на въртене на колелото по разделителна способност.

Тази част използва цикъла на завъртане на колелото веднъж като много важен параметър.

Също така е важно да се четат данните от масива от изображения от паметта.

void loop () {

if ((count (ex_timer / 120.0) - (micros () - processing_timer))) {timer = 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 [брой] [2])), pgm_read_byte (& (image_1 [брой] [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. Цвят (0, 0, 0)); } strip.show (); }

#4. основен контур - обработка и проверка на времето на цикъла и засичане

Това е най -важната част от цялата система.

Първо проверете времето, необходимо за изпълнение на целия код и регулирайте времето за извеждане на светодиода за цикъл.

Отчитаното време при всяко въртене на колелото предсказва времето на следващия цикъл.

Ускорението може да бъде оценено чрез изваждане на последното измерено време на цикъла от измереното време на цикъл на време.

Системата изчислява времето за обработка и ускорението, за да изчисли колко дълго светодиодите се включват непрекъснато.

processing_timer = micros ();

if ((digitalRead (HALL) == HIGH) && (HALL_COUNT == 1)) {VELO = v; v = micros () - последен таймер; ex_timer = q_arr [0] - q_arr [1] + v; последен таймер = 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, инсталирана в подготвителната стъпка.

- Как се поставя изображението е както следва.- Преименувайте 4 анимирани изображения на продукт # 1 в ред 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, който създава едно изображение с три колела.

Препоръчано: