Spisu treści:

Wyświetlacz Digilog_Bike POV: 14 kroków
Wyświetlacz Digilog_Bike POV: 14 kroków

Wideo: Wyświetlacz Digilog_Bike POV: 14 kroków

Wideo: Wyświetlacz Digilog_Bike POV: 14 kroków
Wideo: Wyświetlacze LCD [RS Elektronika] #117 2024, Listopad
Anonim
Image
Image

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

Koncepcja pomysłu
Koncepcja pomysłu

POV jest realizowany poprzez przymocowanie paska LED do koła roweru.

Krok 2: Lista materiałów

Lista materiałów
Lista materiałów
Lista materiałów
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

Narzędzia
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

Image
Image
Tworzenie ramki
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

Szkicowanie ostatecznych obrazów i koncepcji
Szkicowanie ostatecznych obrazów i koncepcji
Szkicowanie ostatecznych obrazów i koncepcji
Szkicowanie ostatecznych obrazów i koncepcji
Szkicowanie ostatecznych obrazów i koncepcji
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

Wykonaj cięcie ruchomego obrazu
Wykonaj cięcie ruchomego obrazu
Wykonaj cięcie ruchomego obrazu
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

Przygotowanie oprogramowania
Przygotowanie oprogramowania
Przygotowanie oprogramowania
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

Dokonywanie zasilania sprzętowego
Dokonywanie zasilania sprzętowego
Dokonywanie zasilania sprzętowego
Dokonywanie zasilania sprzętowego
Dokonywanie zasilania sprzętowego
Dokonywanie 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)

Wykonywanie sprzętowych we/wy i sprawdzanie WYJŚCIA (działanie NeoPixel)
Wykonywanie sprzętowych we/wy i sprawdzanie WYJŚCIA (działanie NeoPixel)
Wykonywanie sprzętowych we/wy i sprawdzanie WYJŚCIA (działanie NeoPixel)
Wykonywanie sprzętowych we/wy i sprawdzanie WYJŚCIA (działanie NeoPixel)
Wykonywanie sprzętowych we/wy i sprawdzanie WYJŚCIA (działanie NeoPixel)
Wykonywanie 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

Montaż i mocowanie do koła
Montaż i mocowanie do koła
Montaż i mocowanie do koła
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)

Sprawdzanie WEJŚCIA (Dane czujnika HALL)
Sprawdzanie WEJŚCIA (Dane czujnika HALL)
Sprawdzanie WEJŚCIA (Dane czujnika HALL)
Sprawdzanie WEJŚCIA (Dane czujnika HALL)
Sprawdzanie WEJŚCIA (Dane czujnika HALL)
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

Korzystanie z oprogramowania
Korzystanie z oprogramowania
Korzystanie z oprogramowania
Korzystanie z oprogramowania
Korzystanie z oprogramowania
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

Kompletny
Kompletny
Kompletny
Kompletny
Kompletny
Kompletny

Ukończył produkcję POV, który tworzy jeden obraz z trzema kołami.

Zalecana: