Съдържание:
- Стъпка 1: Идея концепция
- Стъпка 2: Списък на материалите
- Стъпка 3: Инструменти
- Стъпка 4: Изработка на рамка
- Стъпка 5: Скициране на крайни изображения и концепции
- Стъпка 6: Нарежете движещо се изображение
- Стъпка 7: Подготовка на софтуера
- Стъпка 8: Направете хардуерно захранване
- Стъпка 9: Осъществяване на хардуерни входове/изходи и проверка на изхода (NeoPixel Working)
- Стъпка 10: Сглобяване и закрепване към колелото
- Стъпка 11: Проверка на INPUT (HALL Sensor Data)
- Стъпка 12: Алгоритъм за кодиране
- Стъпка 13: Използване на софтуер
- Стъпка 14: Завършете
Видео: Digilog_Bike POV дисплей: 14 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
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: Изработка на рамка
Нарязване на велосипеда и закрепване на основата
Мелницата се използва за отрязване на колелата на велосипеда от мотора и заварени стоманени плочи за закрепване на колелата.
Стъпка 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)
*Тази част се състои от сензор и изходен етап
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)
*Проверете софтуерния код, за да видите дали сензорът работи.
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, който създава едно изображение с три колела.
Препоръчано:
Как да си направим POV дисплей с вентилатор: 6 стъпки (със снимки)
Как да си направим вентилатор POV дисплей: В този проект ще ви покажа как трансформирах обикновен стар вентилатор в LED POV дисплей, който може да ви представи светлинни модели, думи или дори времето. Да започваме
TTGO (цветен) дисплей с Micropython (TTGO T-дисплей): 6 стъпки
TTGO (цветен) дисплей с Micropython (TTGO T-дисплей): TTGO T-дисплейът е платка, базирана на ESP32, която включва 1,14 инчов цветен дисплей. Таблото може да бъде закупено за награда под 7 $ (включително корабоплаването, награда, видяна на banggood). Това е невероятна награда за ESP32, включително дисплей
I2C / IIC LCD дисплей - Конвертиране на SPI LCD към I2C LCD дисплей: 5 стъпки
I2C / IIC LCD дисплей | Конвертирайте SPI LCD към I2C LCD дисплей: използването на spi lcd дисплей се нуждае от твърде много връзки, което е наистина трудно да се направи, затова намерих модул, който може да преобразува i2c lcd в spi lcd, така че нека започнем
Регулатор на напрежение на платка с дисплей / регулатор на напрежение Com дисплей Para Placa De Ensaio: 8 стъпки
Регулатор на напрежение на платка с дисплей / регулатор на напрежение Com дисплей Para Placa De Ensaio: Придобийте необходимите компоненти, които са в прикачения списък (има връзки, за да купите или да видите техните характеристики). lá os links para poderem comprar ou ver as caracteristicas d
Как да направите часовник в реално време с помощта на Arduino и TFT дисплей - Arduino Mega RTC с 3,5 -инчов TFT дисплей: 4 стъпки
Как да си направим часовник в реално време, използвайки Arduino и TFT дисплей | Arduino Mega RTC с 3,5-инчов TFT дисплей: Посетете моя канал в Youtube. Въведение:- В този пост ще направя „Часовник в реално време“, използвайки 3,5-инчов TFT сензорен LCD, Arduino Mega 2560 и DS3231 RTC модул … .Преди да започнете … проверете видеоклипа от моя канал в YouTube .. Забележка:- Ако използвате Arduin