Mündəricat:

Digilog_Bike POV Ekranı: 14 Addım
Digilog_Bike POV Ekranı: 14 Addım

Video: Digilog_Bike POV Ekranı: 14 Addım

Video: Digilog_Bike POV Ekranı: 14 Addım
Video: Servo Motor with Arduino | Arduino Starter kit by Digilog.pk 2024, Iyul
Anonim
Image
Image

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ışı

Fikir anlayışı
Fikir anlayışı

POV, velosipedin təkərinə LED kəmər bağlamaqla həyata keçirilir.

Addım 2: Materialların siyahısı

Materialların siyahısı
Materialların siyahısı
Materialların siyahısı
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

Alətlər
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

Image
Image
Çərçivə hazırlamaq
Çərçivə hazırlamaq

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

Yekun Şəkillərin və Konseptlərin Çizilməsi
Yekun Şəkillərin və Konseptlərin Çizilməsi
Yekun Şəkillərin və Konseptlərin Çizilməsi
Yekun Şəkillərin və Konseptlərin Çizilməsi
Yekun Şəkillərin və Konseptlərin Çizilməsi
Yekun Şəkillərin və Konseptlərin Çizilməsi

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

Hərəkətli Şəkil kəsdirin
Hərəkətli Şəkil kəsdirin
Hərəkətli Şəkil kəsdirin
Hərəkətli Şəkil kəsdirin

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

Proqramın Hazırlanması
Proqramın Hazırlanması
Proqramın Hazırlanması
Proqramın Hazırlanması

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ı

Avadanlıq Güc Təchizatının Hazırlanması
Avadanlıq Güc Təchizatının Hazırlanması
Avadanlıq Güc Təchizatının Hazırlanması
Avadanlıq Güc Təchizatının Hazırlanması
Avadanlıq Güc Təchizatının Hazırlanması
Avadanlıq Güc Təchizatının Hazırlanması

*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ə)

Hardware I/O hazırlanması və Çıxışların yoxlanılması (NeoPixel İşləmə)
Hardware I/O hazırlanması və Çıxışların yoxlanılması (NeoPixel İşləmə)
Hardware I/O hazırlanması və Çıxışların yoxlanılması (NeoPixel İşləmə)
Hardware I/O hazırlanması və Çıxışların yoxlanılması (NeoPixel İşləmə)
Hardware I/O hazırlanması və Çıxışların yoxlanılması (NeoPixel İşləmə)
Hardware I/O hazırlanması və Çıxışların 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

Montaj və Təkərə Bağlanma
Montaj və Təkərə Bağlanma
Təkərə Montaj və Bağlama
Təkərə Montaj və Bağlama

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)

GİRİŞ yoxlanılır (HALL Sensor Data)
GİRİŞ yoxlanılır (HALL Sensor Data)
GİRİŞ yoxlanılır (HALL Sensor Data)
GİRİŞ yoxlanılır (HALL Sensor Data)
GİRİŞ yoxlanılır (HALL Sensor Data)
GİRİŞ yoxlanılır (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ə

Proqramdan istifadə
Proqramdan istifadə
Proqramdan istifadə
Proqramdan istifadə
Proqramdan istifadə
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

Tamamlandı
Tamamlandı
Tamamlandı
Tamamlandı
Tamamlandı
Tamamlandı

Üç təkərli bir görüntü yaradan bir POV istehsalı tamamlandı.

Tövsiyə: