Spisu treści:
- Krok 1: Koncepcja pomysłu
- Krok 2: Lista materiałów
- Krok 3: Narzędzia
- Krok 4: Tworzenie ramki
- Krok 5: Szkicowanie ostatecznych obrazów i koncepcji
- Krok 6: Wykonaj cięcie ruchomego obrazu
- Krok 7: Przygotowanie oprogramowania
- Krok 8: Wykonywanie zasilania sprzętowego
- Krok 9: Tworzenie sprzętowych we/wy i sprawdzanie WYJŚCIA (działanie NeoPixel)
- Krok 10: Montaż i mocowanie do koła
- Krok 11: Sprawdzanie WEJŚCIA (Dane czujnika HALL)
- Krok 12: Algorytm kodowania
- Krok 13: Korzystanie z oprogramowania
- Krok 14: Ukończ
Wideo: Wyświetlacz Digilog_Bike POV: 14 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Digilog
Cyfrowy + Analogowy
Cyfrowy spotyka analogowy
POV
Trwałość Wizualna
Znany również jako wyświetlanie powidoku, jeśli potrząśnie się z dużą prędkością, powidok pozostaje.
Ludzie myślą, że oglądają wideo, kiedy oglądają telewizję. Ale w rzeczywistości ogląda kilka kolejnych zdjęć. Jest to mylone z obrazem z powodu efektu powidoków pozostających na naszych siatkówkach podczas oglądania kolejnych obrazów. Ten rodzaj iluzji nazywa się POV.
Krok 1: Koncepcja pomysłu
POV jest realizowany poprzez przymocowanie paska LED do koła roweru.
Krok 2: Lista materiałów
Obliczenia i we/wy
1. Arduino Mega 2560 [arduino] x3
2. Moduł czujnika Halla V2 [YwRobot] x3
3. WS2812-5050 Elastyczny Neopiksel [Adafruit] x3
4. Magnetyczny (średnica 15mm, grubość 50mm) x3
5. Mega obudowa Arduino x3
Linia napięcia
5. Bateria litowa 5000 mAh/3,7 V [TheHan] x3
6. Regulator AVR 5V i moduł ładowania i PCM: JBATT-U5-LC [Jcnet] x3
7. 4Zestaw przewodów połączeniowych 65 SZT/KOMPLET [OR0012] x3
Krok 3: Narzędzia
Nie potrzeba zbyt wielu narzędzi, ale będziesz potrzebować:
1. Maszyna do lutowania
2. Lutownica
3. Pistolet do klejenia
4. Szczypce
Krok 4: Tworzenie ramki
Przycinanie roweru i mocowanie podstawy
Szlifierka służyła do odcinania kół rowerowych od roweru i spawanych stalowych płyt do zabezpieczania kół.
Krok 5: Szkicowanie ostatecznych obrazów i koncepcji
Jako ostateczny obraz wybraliśmy smoka. Ponieważ falę smoka najlepiej reprezentował efekt powidoku.
Krok 6: Wykonaj cięcie ruchomego obrazu
Podziel obraz na trzy części, które zmieszczą się na każdym rowerze i podziel łącznie 12 obrazów według koloru i ruchu.
Krok 7: Przygotowanie oprogramowania
Podczęść 1. Zainstaluj Arduino
Pobierz Arduino:
(Zainstaluj, aby dopasować wersję systemu operacyjnego i system.)
-
Podczęść 2. Zainstaluj bibliotekę
*(Jeśli chcesz zainstalować przez Github, odwiedź link powyżej Github Arduino Library:
1. Uruchom program Arduino
2. Zezwól na link Górne menu – szkic – dołącz bibliotekę – dodaj. Zip library
3. Powinieneś wybrać plik. Zip, który już zainstalował bibliotekę github4
*(Jeśli chcesz korzystać z usług programu Arduino)
1. Uruchom programy Arduino
2. Zezwól na link Górne menu – szkic – dołącz bibliotekę – bibliotekę zarządzania – wyszukaj ‘Adafruit neopixel’ – możesz zobaczyć ‘Adafruit Neopixel by Adafruit’
3. Zainstaluj i zaktualizuj bibliotekę
-
Podczęść 3. Zainstaluj program konwertujący
1. Zainstaluj program Rotation Circle (R. C. P):
2. Musisz przeczytać plik README
Krok 8: Wykonywanie zasilania sprzętowego
*W ten sposób należy dostarczyć napięcie 5V Arduino przez baterię. Wykonaj poniższe czynności.
1. Podłącz baterię litową i moduł ładowania JBATT. (Dla odniesienia, moduł JBATT ma wbudowany wyłącznik zasilania.)
2. Podłącz zacisk wyjściowy JBATT do zacisku Vin Arduino i zacisku uziemienia.
3. Podłącz port USB Micro 5pin do portu ładowania, aby sprawdzić, czy produkt działa prawidłowo.
4. Następnie ustaw wbudowany przełącznik w pozycję ON.
5. Jeśli czerwona dioda LED zapali się, a zielona dioda LED zapali się w Arduino, konfiguracja stopnia mocy produktu jest zakończona normalnie.
Krok 9: Tworzenie sprzętowych we/wy i sprawdzanie WYJŚCIA (działanie NeoPixel)
*Ta część składa się z czujnika i stopnia wyjściowego
1. Podłącz czujniki Arduino i Halla. Pin danych łączy się z pinem Arduino 2.
2. Gdy Arduino jest włączone, a magnes jest w bliskim kontakcie z czujnikiem Halla, zaświeci się czerwona dioda LED.
3. Połącz Arduino i Neopixel. Używanych jest tylko 30 Neopikseli.
4. Połącz pin danych z pinem Arduino 6.
5. Podłącz Arduino i pobierz kabel do portu USB komputera i uruchom Arduino na swoim komputerze.
6. Wybierz Tool – board – „Arduino / Genuino Mega or Mega 2560” z górnego paska menu programu Arduino.
7. Sprawdź, czy istnieje lista produktów, które można bezpośrednio podłączyć do portu. Jeśli nie jest zaznaczone, kliknij, aby je zaznaczyć.
8. Wklej poniższy kod i kliknij Prześlij w lewym górnym rogu. (Następnie wszystkie przesyłane programy postępują zgodnie z krokami 5-8.)
9. Konfiguracja jest zakończona po włączeniu wszystkich 30 pikseli neoledu.
#1. w tym plik nagłówkowy i wstępne przetwarzanie
Najpierw musimy sprowadzić bibliotekę Adafruit_NeoPixel, która jest w stanie działać Neopixels.
Z biblioteki można korzystać, deklarując obiekty.
Klasa Adafruit_NeoPixel może publicznie wprowadzić 3 parametry.
Pierwszym parametrem jest liczba diod LED.
parametr sekund to numer pinu podłączonego do wejścia cyfrowego Neopixel.
Trzecim parametrem jest wprowadzenie opcji zgodnie z charakterystyką produktu. trójkolorowy produkt WS2812b wykorzystuje wejście „NEO_GRB”
#włączać
#define PIN 6 Adafruit_NeoPixel strip = Adafruit_Neopixel(30, PIN, NEO_GRB+NEO_KHZ800);
#2. Ustawiać
W części konfiguracji zainicjuj obiekt i przygotuj go do użycia.
'Adafruit_Neopixle_Object.begin()' wyłącza wszystkie diody LED.
'Adafruit_Neopixle_Object.show()' wyprowadza z jasnością ustawioną w LED.
pusta konfiguracja (){
strip.początek(); strip.pokaż(); }
#3. główna pętla
Działanie pętli głównej wykorzystuje pętlę for do sekwencyjnego wysyłania (0,1 sekundy) diod LED w kolorze białym
pusta pętla () {
for(uint16_t i=0;i<strip.numPixels();i++){ strip.setPixelColor(i, 255, 255, 255); strip.pokaż(); opóźnienie (100); } }
Krok 10: Montaż i mocowanie do koła
1. Podłącz Neopiksele. (Zwróć uwagę na sprawdzenie numeru PIN)
2. Podłącz czujnik Halla. (Patrz Krok 9)
3. Przymocuj ramkę do Arduino pomiędzy rowerami. (Przymocuj obudowę Arduino równolegle do ramy roweru).
4. Włóż Arduino podłączone do Neopixel. (Uważaj, ponieważ pistolet do klejenia jest gorący).
5. Włóż podłączony czujnik Halla do Arduino (zabezpiecz opaskę kablową, aby czujnik Halla nie spadł).
6. Przylutuj do podłączenia akumulatora. (Bądź ostrożny podczas lutowania).
7. Napraw to za pomocą pistoletu do klejenia. (Przymocuj moduł ładujący do akumulatora, aby zabezpieczyć miejsce).
8. Podłącz każdą linię przed podłączeniem do Arduino, 9. Podłącz zgodnie z każdym numerem pinu. (Podłącz linie skoku do modułu ładującego, nie myląc ich).
10. Wykończ raz pistoletem do kleju (proszę uważać, aby nie spaść).
Krok 11: Sprawdzanie WEJŚCIA (Dane czujnika HALL)
*Sprawdź kod oprogramowania, aby sprawdzić, czy czujnik działa.
1. Wklej i prześlij poniższy kod.
2. Kliknij przycisk Serial Monitor w prawym górnym rogu Arduino.
3. Gdy magnes styka się z czujnikiem Halla przez ponad 1 sekundę, konfiguracja jest zakończona, gdy na monitorze szeregowym pojawi się słowo „kontakt magnetyczny”.
-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- #1. Zdefiniuj numer pinu i konfigurację
Pierwszy numer pinu konfiguracji do korzystania z czujnika Halla i ustawienie numeru pinu jako portu tylko wejściowego.
Ustaw komunikację, aby sprawdzić dane czujnika Halla na monitorze szeregowym.
#define HALA 2
void setup(){ pinMode(HALL, INPUT); Serial.początek(9600); }
#2. główna pętla
Sprawdzaj dane czujnika Halla w odstępach 0,1 sekundy.
Jeśli magnes zostanie wykryty i dane zostaną zmienione, do monitora szeregowego wysyłany jest „kontakt magnetyczny”.
pusta pętla () {
if(digitalRead(HALL)){ Serial.println("kontakt magnetyczny"); } opóźnienie(100); }
Krok 12: Algorytm kodowania
*Twórz logikę i kodowanie, aby kontrolować Neopiksele na podstawie wartości czujników.
1. Wklej i prześlij poniższy kod.
2. To normalne, że obraz nie jest wyświetlany prawidłowo, ponieważ nie jest tworzona ramka. Ale widać, że działa z grubsza.
3. Szybko dotknij i zwolnij czujnik Halla i magnes w ciągu 1 sekundy. Powtórz tę operację około 10 razy.
4. Konfiguracja jest zakończona, gdy kolory Neopikseli zmieniają się regularnie.
#1. W tym pliki nagłówkowe i wstępne przetwarzanie
Po pierwsze, musimy zrozumieć, że pamięć Arduino Mega nie jest wystarczająco duża, aby pomieścić plik obrazu.
Dlatego plik nagłówkowy 'avr/pgmspace' jest używany do wykorzystania innej przestrzeni pamięci.
Aby użyć Neopixels, deklarujesz obiekt i konfigurację numer pinu I/O.
Tablica obrazów jest zbyt duża do kodowania, więc pobierz i wklej załączone pliki.
#włączać
#include #define PIN 6 #define LICZBA PIKSELÓW 30 #define HALL 2 Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800); // wklej tablicę w 'image_array_1.txt' // " 'image_array_2.txt' // " 'image_array_3.txt' // " 'image_array_4.txt'
#2. Zmienna globalna i konfiguracja
Ustaw zmienną globalną.
Najważniejsze jest, aby ustawić jasność, to określa cykl życia produktu.
liczba int = 0;
podwójne v = 0; podwójne last_v = 0; podwójny zegar = mikro(); podwójny ex_timer = micros(); podwójny last_timer = micros(); stopnie całkowite = 36; int piks = 35; int rgb = 3; podwójne q_arr[2] = {0, 0}; int HALL_COUNT = 0; podwójne VELO; podwójny timer_processingu = mikro(); void setup(){ strip.setBrightness(255); strip.początek(); strip.pokaż(); Serial.początek(230400); }
#3. pętla główna - część wyjściowa ekspresji obrazu
Ten kod jest warunkowym stwierdzeniem, w jaki sposób wyprowadzić czas, w którym koło się obraca, zgodnie z rozdzielczością.
Ta część wykorzystuje cykl jednokrotnego przekręcenia koła rowerowego jako bardzo ważny parametr.
Ponadto ważne jest odczytywanie danych tablicy obrazów z pamięci.
pusta pętla () {
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[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[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[liczba][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. Kolor(0, 0, 0)); } strip.show(); }
#4. pętla główna - przetwarzanie i kontrola czasu cyklu i wykrywanie
To najważniejsza część całego systemu.
Najpierw sprawdź czas potrzebny na wykonanie całego kodu i dostosuj czas wyjścia LED na cykl.
Czas wykrywany za każdym razem, gdy koło się kręci, przewiduje czas następnego cyklu.
Przyspieszenie można oszacować, odejmując ostatni zmierzony czas cyklu od czasu cyklu zmierzonego na czas.
System oblicza czas przetwarzania i przyspieszenie, aby obliczyć, jak długo diody LED włączają się w sposób ciągły.
licznik_przetwarzania = mikro();
if ((digitalRead(HALL) == HIGH) && (HALL_COUNT == 1)) { VELO = v; v = micros() - last_timer; ex_timer = q_arr[0] - q_arr[1] + v; last_timer = mikro(); q_arr[0] = q_arr[1]; q_arr[1] = v; liczba = 0; HALL_COUNT = 0; } else if (digitalRead(HALL) == LOW) { HALL_COUNT = 1; } }
Krok 13: Korzystanie z oprogramowania
*Użyj oprogramowania, aby przekształcić obraz i wstawić dane procesji do kodu
1. Wstaw obraz z powyższego kroku do folderu obrazów w folderze R. C. P zainstalowanym w kroku przygotowania.
- Sposób umieszczenia obrazu jest następujący. - Zmień nazwę 4 animowanych obrazów produktu nr 1 w kolejności 1.png, 2.png, 3-p.webp
2. Uruchom plik Ver.5.exe.
3. Sprawdź, czy w folderze R. C. P zostało utworzonych 12 plików od pro_1_code_1.txt do pro_3_code_4.txt.
4. Jeśli nie został utworzony, zmień zawartość pliku config.txt na następujący plik konfiguracyjny.
5. Po utworzeniu pliku skopiuj całą zawartość z pliku pro_1_code_1.txt i wklej ją do części pokazanej w poniższym kodzie.
6. Dodaj zawartość pro_1_code_2.txt, pro_1_code_3.txt i pro_1_code_4.txt do zaznaczonej części w piątej kolejności.
7. Odnosząc się do 5 i 6, pro_2_code…, pro_3_code uzupełnia kod w ten sam sposób.
Krok 14: Ukończ
Ukończył produkcję POV, który tworzy jeden obraz z trzema kołami.
Zalecana:
Jak zrobić wyświetlacz POV dla fanów: 6 kroków (ze zdjęciami)
Jak zrobić wyświetlacz POV z wentylatorem: W tym projekcie pokażę ci, jak przekształciłem zwykły stary wentylator w wyświetlacz LED POV, który może prezentować wzory świetlne, słowa, a nawet czas. Zacznijmy
Wyświetlacz TTGO (kolorowy) z Micropythonem (wyświetlacz TTGO T): 6 kroków
Wyświetlacz TTGO (kolorowy) Z Micropythonem (wyświetlacz TTGO T): Wyświetlacz TTGO T to płyta oparta na ESP32, która zawiera 1,14-calowy kolorowy wyświetlacz. Deskę można kupić za cenę mniejszą niż 7$ (wliczając wysyłkę, nagrodę widzianą na banggood). To niesamowita nagroda za ESP32 z wyświetlaczem.T
Jeden wyświetlacz POV, aby rządzić nimi wszystkimi!: 10 kroków (ze zdjęciami)
Jeden wyświetlacz POV, aby rządzić nimi wszystkimi!: MotywacjaNaprawdę lubię wyświetlacze POV (trwałość wzroku)! Są nie tylko ciekawe dla oka, ale także stanowią duże wyzwanie, aby je rozwijać. To naprawdę interdyscyplinarne zadanie. Potrzebujesz wielu umiejętności: mechanicznych, elektronicznych, programistycznych i
Wyświetlacz LCD I2C / IIC - Konwertuj wyświetlacz LCD SPI na wyświetlacz LCD I2C: 5 kroków
Wyświetlacz LCD I2C / IIC | Konwertuj wyświetlacz LCD SPI na wyświetlacz LCD I2C: używanie wyświetlacza LCD spi wymaga zbyt wielu połączeń, co jest naprawdę trudne, więc znalazłem moduł, który może przekonwertować wyświetlacz LCD i2c na wyświetlacz LCD spi, więc zaczynamy
Wyświetlacz rowerowy POV - ESP8266 + APA102: 7 kroków (ze zdjęciami)
Wyświetlacz rowerowy POV - ESP8266 + APA102: **ZRZECZENIE SIĘ** Ta instrukcja była częścią mojej pracy magisterskiej i jest pod każdym względem skończona. W tej chwili nie mam miejsca do pracy, więc nie mogę go ukończyć, dopóki nie będę miał odpowiedniego miejsca do testowania i budowania.Jeśli chcesz zbudować wyświetlacz rowerowy POV, np