Mündəricat:
- Addım 1: Fikir anlayışı
- Addım 2: Materialların siyahısı
- Addım 3: Alətlər
- Addım 4: Çərçivə hazırlayın
- Addım 5: Yekun Şəkillərin və Konsepsiyaların Çizimi
- Addım 6: Hərəkətli Şəkil kəsin
- Addım 7: Proqram hazırlayın
- Addım 8: Avadanlıq Güc Təchizatı
- Addım 9: Hardware I/O hazırlanması və ÇIXIŞIN yoxlanılması (NeoPixel İşləmə)
- Addım 10: Təkərin montajı və bərkidilməsi
- Addım 11: GİRİŞin yoxlanılması (HALL Sensor Data)
- Addım 12: Kodlaşdırma alqoritmi
- Addım 13: Proqramdan istifadə
- Addım 14: Tamamlayın
Video: Digilog_Bike POV Ekranı: 14 Addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
Digilog
Rəqəmsal + Analog
Rəqəmsal analoqa uyğundur
POV
Vizual davamlılıq
Sonrakı görüntü ekranı olaraq da bilinir, yüksək sürətlə sarsılarsa, sonrakı görüntü qalır.
İnsanlar televizora baxanda video izlədiklərini düşünürlər. Amma əslində bir neçə ardıcıl şəkilə baxır. Ardıcıl şəkillərə baxarkən retinalarımızda qalan görüntülərin təsiri səbəbiylə bu bir görüntü olaraq səhvdir. Bu cür illüziyaya POV deyilir.
Addım 1: Fikir anlayışı
POV, velosipedin təkərinə LED kəmər bağlamaqla həyata keçirilir.
Addım 2: Materialların siyahısı
Hesablama və I/O
1. Arduino Mega 2560 [arduino] x3
2. Zal sensoru modulu V2 [YwRobot] x3
3. WS2812-5050 Çevik Neopixel [Adafruit] x3
4. Maqnit (diametri 15 mm, qalınlığı 50 mm) x3
5. Arduino Mega Case x3
Guc xətti
5. 5000mAh/3.7V Lityum Batareya [TheHan] x3
6. AVR 5V tənzimləyicisi və şarj və PCM modulu: JBATT-U5-LC [Jcnet] x3
7. 4Təmirli tel dəsti 65PCS/SET [OR0012] x3
Addım 3: Alətlər
Çox alət lazım deyil, ancaq ehtiyacınız olacaq:
1. Lehimləmə Maşını
2. Bir havya
3. Yapışqan tabancası
4. Nipper
Addım 4: Çərçivə hazırlayın
Velosipedin kəsilməsi və bazanın bağlanması
Taşlama maşını velosiped təkərlərini kəsmək üçün istifadə edilmiş və təkərləri bərkitmək üçün polad plitələr qaynaqlanmışdır.
Addım 5: Yekun Şəkillərin və Konsepsiyaların Çizimi
Son görüntü olaraq bir əjdaha seçdik. Çünki əjdahanın dalğası ən yaxşı görüntü effekti ilə təmsil olunurdu.
Addım 6: Hərəkətli Şəkil kəsin
Təsviri hər bir velosipedə uyğun olan üç hissəyə bölün və cəmi 12 şəkli rəng və hərəkətə bölün.
Addım 7: Proqram hazırlayın
Alt hissə 1. Arduino qurun
Arduino Yükləmə:
(OS versiyanıza və sisteminizə uyğun olaraq quraşdırın.)
-
Alt hissə 2. Kitabxananı quraşdırın
*(Github vasitəsi ilə qurmaq istəyirsinizsə, yuxarıdakı Github Arduino Kitabxanasına daxil olun:
1. Arduino proqramını işə salın
2. Bağlantıya icazə verin Üst menyu - eskiz - kitabxana daxildir - əlavə edin. Zip kitabxana
3. Artıq github library4 quraşdırılmış. Zip faylını seçməlisiniz
*(Arduino proqram xidmətlərindən istifadə etmək istəyirsinizsə)
1. Arduino proqramlarını işə salın
2. Bağlantıya icazə verin Üst menyu - eskiz - kitabxana daxildir - idarə kitabxanası - 'Adafruit neopixel' axtarır - 'Adafruit Neopixel by Adafruit' görə bilərsiniz
3. Kitabxananı quraşdırın və yeniləyin
-
Alt hissə 3. Dönüştürücü proqramını quraşdırın
1. Rotation Circle Proqramını (R. C. P) quraşdırın:
2. README faylını oxumalısınız
Addım 8: Avadanlıq Güc Təchizatı
*Batareya vasitəsilə Arduino 5V gərginliyini belə təmin etmək olar. Zəhmət olmasa aşağıdakı addımları izləyin.
1. Lityum batareyanı və JBATT şarj modulunu qoşun. (İstinad üçün, JBATT modulunda quraşdırılmış güc açarı var.)
2. JBATT çıxış terminalını Arduino və Ground terminalının Vin terminalına qoşun.
3. Məhsulun düzgün işlədiyini yoxlamaq üçün Micro 5pin usb portunu şarj portuna qoşun.
4. Sonra, daxili açarı ON vəziyyətinə gətirin.
5. Arduinoda qırmızı led yanarsa və yaşıl led yanarsa, məhsulun güc mərhələsi konfiqurasiyası normal şəkildə tamamlanır.
Addım 9: Hardware I/O hazırlanması və ÇIXIŞIN yoxlanılması (NeoPixel İşləmə)
*Bu hissə sensor və çıxış mərhələsindən ibarətdir
1. Arduino və Hall sensorlarını qoşun. Məlumat pin Arduino pin 2 -ə qoşulur.
2. Arduino işə salındıqda və maqnit Hall sensoru ilə sıx təmasda olduqda qırmızı led yanacaq.
3. Arduino və Neopixel'i qoşun. Yalnız 30 Neopixel istifadə olunur.
4. Məlumat pinini Arduino pin 6 ilə bağlayın.
5. Arduino və yükləmə kabelini kompüterinizin usb portuna qoşun və Arduino -nu kompüterinizdə işlədin.
6. Arduino proqramının üst menyu çubuğundan Tool - board - “Arduino / Genuino Mega və ya Mega 2560” seçin.
7. Limana birbaşa qoşula biləcək məhsulların siyahısının olub olmadığını yoxlayın. Yoxlanılmırsa, seçmək üçün vurun.
8. Aşağıdakı kodu yapışdırın və sol üstdəki Yüklə düyməsini basın. (Daha sonra bütün proqram yükləmələri 5-8 addımları izləyir.)
9. Bütün 30 neoled piksel açıldıqda konfiqurasiya tamamlanır.
#1. başlıq faylı və əvvəlcədən işlənmə daxildir
Əvvəlcə Neopixel hərəkət edə bilən Adafruit_NeoPixel kitabxanasını gətirməliyik.
Kitabxana obyektləri elan etməklə istifadə edilə bilər.
Adafruit_NeoPixel sinfi 3 parametri ictimaiyyətə daxil edə bilər.
İlk parametr LEDlərin sayıdır.
saniyə parametri Neopixel rəqəmsal girişinə qoşulan pin nömrəsidir.
Üçüncü parametr, məhsulun xüsusiyyətlərinə görə seçimlərin daxil edilməsidir. üç rəngli WS2812b məhsulu 'NEO_GRB' girişini istifadə edir
#daxil edin
#define PIN 6 Adafruit_NeoPixel zolağı = Adafruit_Neopixel (30, PIN, NEO_GRB+NEO_KHZ800);
#2. qurmaq
Quraşdırma hissəsində obyekti işə salın və istifadəyə hazırlayın.
'Adafruit_Neopixle_Object.begin ()' bütün LED -lərin sönməsini təyin edir.
'Adafruit_Neopixle_Object.show ()', LED -də qurulmuş parlaqlıqla çıxır.
boş quraşdırma () {
strip.begin (); strip.show (); }
#3. əsas döngə
Əsas döngənin hərəkəti LEDləri ağ rəngdə ardıcıl olaraq çıxarmaq üçün (0,1 saniyə) for for loopundan istifadə edir
boşluq döngəsi () {
for (uint16_t i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, 255, 255, 255); strip.show (); gecikmə (100); }}
Addım 10: Təkərin montajı və bərkidilməsi
1. Neopikselləri birləşdirin. (Pin nömrəsinin yoxlanılmasına diqqət yetirin)
2. Hall Sensorunu qoşun. (9 -cu addıma baxın)
3. Çərçivəni velosipedlər arasında Arduinoya bağlayın. (Arduino qutusunu velosiped çərçivəsinə paralel olaraq bağlayın).
4. Neopixel -ə qoşulmuş Arduino -nu daxil edin. (Yapışqan tabancası isti olduğu üçün diqqətli olun).
5. Bağlı Hall sensorunu Arduino'ya daxil edin, (Kabel bağlayıcısını Hall sensoru yıxılmaması üçün bağlayın).
6. Batareyanı bağlamaq üçün lehim. (Lehim edərkən diqqətli olun).
7. Bir yapışqan tabancası ilə düzəldin. (Məkanı təmin etmək üçün şarj modulunu batareyaya qoşun).
8. Arduino -ya qoşulmadan əvvəl hər xətti qoşun, 9. Hər pin nömrəsinə görə qoşun. (Şarj modulu üçün atlama xətlərini qarışdırmayın).
10. Bir dəfə yapışqan tabancası ilə bitirin, (Zəhmət olmasa yıxılmamaq üçün diqqətli olun).
Addım 11: GİRİŞin yoxlanılması (HALL Sensor Data)
*Sensorun işlədiyini görmək üçün proqram kodunu yoxlayın.
1. Aşağıdakı kodu yapışdırıb yükləyin.
2. Arduinonun sağ üst tərəfindəki Serial Monitor düyməsini basın.
3. Maqnit Hall sensoru ilə 1 saniyədən çox təmasda olduqda, serial monitorda "kontakt maqnit" sözü göründükdə konfiqurasiya tamamlanır.
-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- #1. Pin nömrəsini və quruluşunu təyin edin
Hall sensorundan istifadə edən və pin nömrəsini yalnız Giriş portu olaraq təyin edən ilk konfiqurasiya pin nömrəsi.
Serial monitorda Hall sensorunun məlumatlarını yoxlamaq üçün ünsiyyət qurun.
#ZALI 2 təyin edin
void setup () {pinMode (HALL, INPUT); Serial.begin (9600); }
#2. əsas döngə
0.1 saniyə aralıqlarla Hall sensoru məlumatlarını yoxlayın.
Maqnit algılanarsa və məlumatlar dəyişdirilərsə, "kontakt maqnit" serial monitoruna verilir.
boşluq döngəsi () {
if (digitalRead (HALL)) {Serial.println ("kontakt maqnit"); } gecikmə (100); }
Addım 12: Kodlaşdırma alqoritmi
*Sensor dəyərlərinə əsaslanaraq Neopixelləri idarə etmək üçün məntiq və kodlaşdırma yaradın.
1. Aşağıdakı kodu yapışdırıb yükləyin.
2. Çərçivə istehsal edilmədiyi üçün görüntünün düzgün göstərilməməsi normaldır. Ancaq təxminən işlədiyini görə bilərsiniz.
3. Hall sensoruna və maqnitinə 1 saniyə ərzində tez toxunun və buraxın. Bu əməliyyatı təxminən 10 dəfə təkrarlayın.
4. Neopiksellərin rəngləri müntəzəm olaraq dəyişdikdə konfiqurasiya tamamlanır.
#1. Başlıq sənədləri və əvvəlcədən işlənmə daxildir
Birincisi, Arduino Mega -nın yaddaşının bir şəkil faylını tutacaq qədər böyük olmadığını anlamalıyıq.
Bu səbəbdən, 'avr/pgmspace' başlıq faylı fərqli yaddaş sahəsindən istifadə etmək üçün istifadə olunur.
Neopixels istifadə etmək üçün bir obyekt və konfiqurasiya I/O pin nömrəsi elan edirsiniz.
Şəkil dizisi kodlaşdırmaq üçün çox böyükdür, buna görə əlavə edilmiş faylları yükləyin və yapışdırın.
#daxil edin
#daxil edin #PIN kodunu təyin edin 6 #NUMPIXELS təyin edin 30 #define HALL 2 Adafruit_NeoPixel şeridi = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800); // dizini 'image_array_1.txt' -ə yapışdırın // "'image_array_2.txt' //" 'image_array_3.txt' // "'image_array_4.txt'
#2. Qlobal dəyişən və quraşdırma
Qlobal dəyişən təyin edin.
Əsas odur ki, məhsulun həyat dövrünü təyin edən parlaqlığı təyin edin.
int sayı = 0;
ikiqat v = 0; ikiqat son_v = 0; ikiqat taymer = mikrosxemlər (); ikiqat ex_timer = micros (); ikiqat last_timer = micros (); int deg = 36; int pix = 35; int rgb = 3; ikiqat q_arr [2] = {0, 0}; int HALL_COUNT = 0; ikiqat VELO; ikiqat işləmə_dometresi = mikrosxemlər (); void setup () {strip.setBrightness (255); strip.begin (); strip.show (); Serial.begin (230400); }
#3. əsas döngə - görüntü ifadəsinin çıxış hissəsi
Bu kod, təkərin fırlanma vaxtını qətnamə ilə necə çıxarmaqla bağlı şərti bir ifadədir.
Bu hissədə çox əhəmiyyətli bir parametr olaraq velosiped təkərini bir dəfə çevirmək dövrü istifadə olunur.
Yaddaşdan görüntü serialı məlumatlarını oxumaq da vacibdir.
boşluq döngəsi () {
if ((say (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 (); } başqa halda (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 (); } başqa halda (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 (); } başqa halda (VELO <= 204000) {for (int i = 0 + 5; i = 120)) {for (int i = 0 + 5; i <pix; i ++) {strip.setPixelColor (i - 5, strip. Rəng (0, 0, 0)); } strip.show (); }
#4. əsas döngə - emal və dövrənin vaxtının yoxlanılması və algılanması
Bu, bütün sistemin ən vacib hissəsidir.
Əvvəlcə bütün kodu yerinə yetirmək üçün lazım olan vaxtı yoxlayın və dövr başına LED çıxış müddətini tənzimləyin.
Təkərin hər dəfə fırlandığı zaman hiss olunan vaxt, növbəti dövrənin vaxtını proqnozlaşdırır.
Sürətlənmə, son ölçülmüş dövrü vaxtında ölçülmüş dövr dövründən çıxmaqla qiymətləndirilə bilər.
Sistem, LED -lərin nə qədər davamlı yandığını hesablamaq üçün işləmə müddətini və sürətlənməni hesablayır.
emal_təmiri = mikrosxemlər ();
if ((digitalRead (HALL) == HIGH) && (HALL_COUNT == 1)) {VELO = v; v = mikrosxemlər () - son_ zaman; ex_timer = q_arr [0] - q_arr [1] + v; last_timer = mikrosxemlər (); q_arr [0] = q_arr [1]; q_arr [1] = v; say = 0; HALL_COUNT = 0; } else if (digitalRead (HALL) == LOW) {HALL_COUNT = 1; }}
Addım 13: Proqramdan istifadə
*Görüntünü çevirmək və gediş məlumatlarını koda daxil etmək üçün proqramdan istifadə edin
1. Yuxarıdakı addımdakı görüntüyü hazırlıq addımında quraşdırılmış R. C. P qovluğundakı şəkil qovluğuna daxil edin.
- Şəklin necə qoyulacağı aşağıdakı kimidir.- 1 nömrəli məhsulun 4 animasiya şəklinin adını 1.png, 2.png, 3-p.webp
2. Ver.5.exe faylını işə salın.
3. R. C. P qovluğunda pro_1_code_1.txt ilə pro_3_code_4.txt arasındakı 12 faylın yaradıldığını yoxlayın.
4. Yaradılmırsa, config.txt məzmununu aşağıdakı konfiqurasiya faylı olaraq dəyişdirin.
5. Fayl yaradıldıqdan sonra bütün məzmunu pro_1_code_1.txt faylından kopyalayın və aşağıdakı kodda göstərilən hissəyə yapışdırın.
6. 5 -ci sırada işarələnmiş hissəyə pro_1_code_2.txt, pro_1_code_3.txt və pro_1_code_4.txt məzmunlarını əlavə edin.
7. 5 və 6 -ya istinad edərək, pro_2_code…, pro_3_code kodu eyni şəkildə tamamlayır.
Addım 14: Tamamlayın
Üç təkərli bir görüntü yaradan bir POV istehsalı tamamlandı.
Tövsiyə:
Bir pərəstişkar POV ekranı necə etmək olar: 6 addım (şəkillərlə)
Fan POV Ekranı Necə Hazırlanır: Bu layihədə adi bir köhnə Fanı sizə işıq nümunələri, sözlər və ya hətta vaxt təqdim edə bilən LED POV Ekranına necə çevirdiyimi göstərəcəyəm. Gəlin başlayaq
Raspberry Pi Ekranı və Toxunma Ekranı: 4 Addım
Raspberry Pi Ekranı və Toxunma Ekranı Döndür: Bu, Buster Raspbian əməliyyat sistemi ilə işləyən hər hansı bir Raspberry Pi üçün ekranı və toxunma girişini necə döndərəcəyinizi göstərmək üçün əsas bir təlimatdır, amma Jessie -dən bəri bu üsuldan istifadə edirəm. Burada istifadə olunan şəkillər bir Raspberry Pi -dən
Arduino Horisontal POV Ekranı: 3 addım
Arduino Horisontal POV Ekranı: 5LED-lər və Arduino Nano ilə ən sadə POV ekranı
PropHelix - 3D POV Ekranı: 8 Addım (Şəkillərlə birlikdə)
PropHelix - 3D POV Ekranı: İnsanlar həmişə holoqrafik təsvirlərə heyran qalmışlar. Bunu etmək üçün bir neçə yol var. Layihəmdə LED şeritlərindən fırlanan bir spiral istifadə edirəm. 16 rəngli 17280 voksel göstərə bilən cəmi 144 LED var. Voksellər arra
Arduino Wireless Power POV Ekranı: 6 Addım (Şəkillərlə birlikdə)
Arduino Wireless Power POV Display: Bu kiçik cihazı ilk dəfə tanıyanda dərhal bəyəndim. Öz POV -ni hazırlamağa qərar verdim. Bir çox video izlədim və bəzi əsas problemləri tanıdım. Mikro nəzarətçinin enerji təchizatı ən böyük idi. Batareya və ya sürüşən komutat