İçindekiler:

Digilog_Bike POV Ekranı: 14 Adım
Digilog_Bike POV Ekranı: 14 Adım

Video: Digilog_Bike POV Ekranı: 14 Adım

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

Digilog

Dijital + Analog

Dijital analogla buluşuyor

bakış açısı

Görsel Kalıcılığı

Görüntü izi görüntüsü olarak da bilinir, yüksek hızda sallanırsa görüntü izi kalır.

İnsanlar televizyon izlerken video seyrettiklerini sanıyorlar. Ama aslında, birkaç ardışık fotoğrafa bakıyor. Bu, ardışık resimlere bakarken retinamızda kalan görüntü izlerinin etkisi nedeniyle bir görüntüyle karıştırılır. Bu tür bir illüzyona POV denir.

Adım 1: Fikir Konsepti

fikir kavramı
fikir kavramı

POV, bir bisikletin tekerleğine bir LED kayış takılarak uygulanır.

Adım 2: Malzeme Listesi

Malzeme Listesi
Malzeme Listesi
Malzeme Listesi
Malzeme Listesi

Bilgi İşlem ve G/Ç

1. Arduino Mega 2560 [arduino] x3

2. Hall sensör modülü V2 [YwRobot] x3

3. WS2812-5050 Esnek Neopiksel [Adafruit] x3

4. Manyetik (çap 15 mm, kalınlık 50 mm) x3

5. Arduino Mega Kasa x3

Güç hattı

5. 5000mAh/3.7V Lityum Pil [TheHan] x3

6. AVR 5V regülatör & şarj & PCM modülü: JBATT-U5-LC [Jcnet] x3

7. 4Jumper kablo seti 65PCS/SET [OR0012] x3

3. Adım: Araçlar

Aletler
Aletler

Çok fazla araca gerek yok, ancak ihtiyacınız olacak:

1. Lehimleme Makinesi

2. Bir Havya

3. Tutkal tabancası

4. Kıskaç

Adım 4: Çerçeve Yapma

Image
Image
Çerçeve Yapımı
Çerçeve Yapımı

Bisikletin Kesilmesi ve Tabanın Takılması

Öğütücü, bisiklet tekerleklerini bisikletten kesmek için kullanıldı ve tekerlekleri sabitlemek için çelik plakalara kaynak yapıldı.

Adım 5: Son Görüntüleri ve Kavramları Çizmek

Nihai Görüntülerin ve Kavramların Eskizlenmesi
Nihai Görüntülerin ve Kavramların Eskizlenmesi
Nihai Görüntülerin ve Kavramların Eskizlenmesi
Nihai Görüntülerin ve Kavramların Eskizlenmesi
Nihai Görüntülerin ve Kavramların Eskizlenmesi
Nihai Görüntülerin ve Kavramların Eskizlenmesi

Son görüntü olarak bir ejderha seçtik. Çünkü ejderha dalgası en iyi görüntü izi efektiyle temsil ediliyor gibi görünüyordu.

Adım 6: Hareketli Görüntü Kesimi Yapın

Hareketli Görüntü Kesimi Yap
Hareketli Görüntü Kesimi Yap
Hareketli Görüntü Kesimi Yap
Hareketli Görüntü Kesimi Yap

Görüntüyü her bisiklete sığacak şekilde üç parçaya bölün ve toplam 12 görüntüyü renk ve harekete göre bölün.

Adım 7: Yazılım Hazırlama

Yazılım Hazırlama
Yazılım Hazırlama
Yazılım Hazırlama
Yazılım Hazırlama

Alt bölüm 1. Arduino'yu kurun

Arduino İndirme:

(İşletim sistemi sürümünüze ve sisteminize uyacak şekilde yükleyin.)

-

Alt bölüm 2. Kitaplığı yükleyin

*(Github üzerinden kurulum yapmak isterseniz, lütfen yukarıdaki Github Arduino Kütüphanesi bağlantısını ziyaret edin:

1. Arduino programını çalıştırın

2. Bağlantıya izin verin Üst menü – taslak – kitaplığı dahil et –. Zip kitaplığı ekle

3. Github library4'ü zaten yüklemiş olan. Zip dosyasını seçmelisiniz.

*(Arduino program servislerini kullanmak istiyorsanız)

1. Arduino programlarını çalıştırın

2. Bağlantıya izin verin Üst menü – taslak – kitaplığı dahil et – yönetim kitaplığı – ‘Adafruit neopixel’ araması – ‘Adafruit Neopixel by Adafruit’i görebilirsiniz.

3. Kitaplığı kurun ve güncelleyin

-

Alt bölüm 3. Dönüştürücü programı yükleyin

1. Rotation Circle Programını (R. C. P) kurun:

2. Bir BENİOKU dosyasını okumanız gerekiyor

Adım 8: Donanım Güç Kaynağının Yapılması

Donanım Güç Kaynağı Yapımı
Donanım Güç Kaynağı Yapımı
Donanım Güç Kaynağı Yapımı
Donanım Güç Kaynağı Yapımı
Donanım Güç Kaynağı Yapımı
Donanım Güç Kaynağı Yapımı

*Akü üzerinden Arduino 5V voltajı bu şekilde sağlanır. Lütfen aşağıdaki adımları izleyin.

1. Lityum pili ve JBATT şarj modülünü bağlayın. (Referans olarak, JBATT modülünde yerleşik bir güç anahtarı bulunur.)

2. JBATT'ın çıkış terminalini Arduino'nun Vin terminaline ve Toprak terminaline bağlayın.

3. Ürünün düzgün çalışıp çalışmadığını kontrol etmek için Micro 5pin usb bağlantı noktasını şarj bağlantı noktasına bağlayın.

4. Ardından, yerleşik anahtarı AÇIK konumuna getirin.

5. Arduino'da kırmızı led yanıyorsa ve yeşil led yanıyorsa, ürün güç aşaması konfigürasyonu normal olarak tamamlanmıştır.

Adım 9: Donanım G/Ç Yapma ve ÇIKIŞI Kontrol Etme(NeoPixel Çalışma)

Donanım G/Ç Yapma ve ÇIKIŞI Kontrol Etme(NeoPixel Çalışma)
Donanım G/Ç Yapma ve ÇIKIŞI Kontrol Etme(NeoPixel Çalışma)
Donanım G/Ç Yapma ve ÇIKIŞI Kontrol Etme(NeoPixel Çalışma)
Donanım G/Ç Yapma ve ÇIKIŞI Kontrol Etme(NeoPixel Çalışma)
Donanım G/Ç Yapma ve ÇIKIŞI Kontrol Etme(NeoPixel Çalışma)
Donanım G/Ç Yapma ve ÇIKIŞI Kontrol Etme(NeoPixel Çalışma)

*Bu kısım sensör ve çıkış aşamasından oluşmaktadır

1. Arduino ve Hall sensörlerini bağlayın. Veri pini Arduino pin 2'ye bağlanır.

2. Arduino çalıştırıldığında ve magnet Hall sensörü ile yakın temas halinde olduğunda kırmızı led yanacaktır.

3. Arduino ve Neopixel'i bağlayın. Sadece 30 Neopiksel kullanılır.

4. Veri pinini Arduino pin 6 ile bağlayın.

5. Arduino'yu ve indirme kablosunu bilgisayarınızın usb portuna bağlayın ve bilgisayarınızda Arduino'yu çalıştırın.

6. Arduino programının üst menü çubuğundan Araç – pano – “Arduino / Genuino Mega veya Mega 2560” seçeneğini seçin.

7. Bağlantı noktasına doğrudan bağlanabilecek ürünlerin bir listesinin olup olmadığını kontrol edin. İşaretli değilse, seçmek için tıklayın.

8. Aşağıdaki kodu yapıştırın ve sol üstteki Yükle'ye tıklayın. (Daha sonra, tüm program yüklemeleri 5-8 arasındaki adımları takip eder.)

9. 30 neoled pikselin tümü açıldığında yapılandırma tamamlanmıştır.

#1. başlık dosyası ve ön işleme dahil

Öncelikle Neopixels hareket edebilen Adafruit_NeoPixel kütüphanesini getirmemiz gerekiyor.

Kitaplık, nesneler bildirilerek kullanılabilir.

Adafruit_NeoPixel sınıfı public olarak 3 parametre girebilir.

İlk parametre LED sayısıdır.

saniye parametresi Neopiksel dijital girişe bağlı pin numarasıdır.

Üçüncü parametre ise ürün özelliklerine göre seçeneklerin girilmesidir. üç renkli WS2812b ürünü 'NEO_GRB' girişini kullanır

#Dahil etmek

#define PIN 6 Adafruit_NeoPixel şeridi = Adafruit_Neopixel(30, PIN, NEO_GRB+NEO_KHZ800);

#2. kurmak

Kurulum bölümünde, nesneyi başlatın ve kullanıma hazırlayın.

'Adafruit_Neopixle_Object.begin()' tüm LED'leri kapanacak şekilde ayarlar.

'Adafruit_Neopixle_Object.show()', LED'de ayarlanan parlaklık ile çıktı verir.

geçersiz kurulum(){

strip.begin(); şerit.göster(); }

#3. Ana döngü

Ana döngünün eylemi, LED'leri beyaz renkte sırayla (0,1 saniye) çıkarmak için bir for döngüsü kullanır

boşluk döngüsü(){

for(uint16_t i=0;i<strip.numPixels();i++){ strip.setPixelColor(i, 255, 255, 255); şerit.göster(); gecikme(100); } }

Adım 10: Birleştirme ve Tekerleğe Takma

Tekerleğe Montaj ve Takma
Tekerleğe Montaj ve Takma
Tekerleğe Montaj ve Takma
Tekerleğe Montaj ve Takma

1. Neopikselleri bağlayın. (Pin numarası kontrolüne dikkat edin)

2. Hall Sensörünü bağlayın. (Bkz. Adım.9)

3. Çerçeveyi Arduino'ya bisikletlerin arasına takın. (Arduino kasasını bisiklet çerçevesine paralel olarak takın).

4. Neopixel'e bağlı Arduino'yu takın. (Tutkal tabancası sıcak olduğundan dikkatli olun).

5. Bağlı Hall sensörünü Arduino'ya takın, (Kablo bağını Hall sensörünün düşmemesi için sabitleyin).

6. Pili bağlamak için lehim. (Lehim yaparken dikkatli olun).

7. Tutkal tabancasıyla sabitleyin. (Güvenli alan için şarj modülünü pilin üzerine takın).

8. Arduino'ya bağlanmadan önce her satırı takın, 9. Her pin numarasına göre takın. (Şarj modülünün atlama hatlarını karıştırmadan bağlayın).

10. Bir kez tutkal tabancası ile bitirin (Düşmemeye dikkat edin).

Adım 11: INPUT(HALL Sensör Verileri) Kontrolü

INPUT (HALL Sensör Verileri) Kontrol Ediliyor
INPUT (HALL Sensör Verileri) Kontrol Ediliyor
INPUT (HALL Sensör Verileri) Kontrol Ediliyor
INPUT (HALL Sensör Verileri) Kontrol Ediliyor
INPUT (HALL Sensör Verileri) Kontrol Ediliyor
INPUT (HALL Sensör Verileri) Kontrol Ediliyor

*Sensörün çalışıp çalışmadığını görmek için yazılım kodunu kontrol edin.

1. Aşağıdaki kodu yapıştırın ve yükleyin.

2. Arduino'nun sağ üst köşesindeki Seri Monitör düğmesine tıklayın.

3. Mıknatıs, Hall sensörü ile 1 saniyeden fazla temas halindeyken, seri monitörde “kontak manyetik” kelimesi göründüğünde konfigürasyon tamamlanır.

-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- #1. Pin numarasını ve kurulumunu tanımlayın

Hall sensörünü kullanan ve pin numarasını yalnızca Giriş bağlantı noktası olarak ayarlayan ilk yapılandırma pin numarası.

Seri monitördeki Hall sensörünün verilerini kontrol etmek için iletişimi ayarlayın.

#define SALON 2

void setup(){ pinMode(HALL, INPUT); Seri.başla(9600); }

#2. Ana döngü

Hall sensörü verilerini 0,1 saniye aralıklarla kontrol edin.

Mıknatıs algılanır ve veriler değiştirilirse, seri monitöre "kontak manyetik" çıkışı verilir.

boşluk döngüsü(){

if(digitalRead(HALL)){ Serial.println("kontak manyetik"); } gecikme(100); }

Adım 12: Kodlama Algoritması

*Sensör değerlerine göre Neopikselleri kontrol etmek için mantık ve kodlama oluşturun.

1. Aşağıdaki kodu yapıştırın ve yükleyin.

2. Çerçeve üretilmediği için görüntünün düzgün görüntülenememesi normaldir. Ama kabaca çalıştığını görebilirsiniz.

3. Hall sensörüne ve mıknatısa 1 saniye içinde hızlıca dokunup bırakın. Bu işlemi yaklaşık 10 kez tekrarlayın.

4. Neopiksellerin renkleri düzenli olarak değiştiğinde yapılandırma tamamlanmıştır.

#1. Başlık dosyaları ve ön işleme dahil

Öncelikle Arduino Mega'nın hafızasının bir imaj dosyasını tutacak kadar büyük olmadığını anlamalıyız.

Bu nedenle, farklı bellek alanını kullanmak için 'avr/pgmspace' başlık dosyası kullanılır.

Neopikselleri kullanmak için bir nesne bildirirsiniz ve bir G/Ç pin numarası yapılandırırsınız.

Görüntü dizisi kodlama için çok büyük, bu nedenle ekli dosyaları indirip yapıştırın.

#Dahil etmek

#include #define PIN 6 #define NUMPIXELS 30 #define HALL 2 Adafruit_NeoPixel şeridi = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800); // diziyi 'image_array_1.txt' içine yapıştır // " 'image_array_2.txt' // " 'image_array_3.txt' // " 'image_array_4.txt'

#2. Global değişken ve kurulum

Genel bir değişken ayarlayın.

Ana şey parlaklığı ayarlamaktır, ürünün yaşam döngüsünü belirler.

int sayı = 0;

çift v = 0; double last_v = 0; çift zamanlayıcı = mikros(); double ex_timer = mikros(); double last_timer = mikros(); int derece = 36; int piksel = 35; int rgb = 3; double q_arr[2] = {0, 0}; int HALL_COUNT = 0; çift VELO; çift işlem_zamanlayıcı = mikros(); void setup(){ strip.setBrightness(255); strip.begin(); şerit.göster(); Seri.başla(230400); }

#3. ana döngü - görüntü ifadesi çıktı bölümü

Bu kod, çarkın dönme süresinin çözünürlüğe göre nasıl çıkarılacağına ilişkin koşullu bir ifadedir.

Bu kısım, çok önemli bir parametre olarak bisiklet tekerleğini bir kez çevirme döngüsünü kullanır.

Ayrıca, bellekten görüntü dizisi verilerinin okunması önemlidir.

boşluk döngüsü () {

if ((count (ex_timer / 120.0) - (micros() - process_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[sayım][2])), pgm_read_byte(&(image_1[sayım][0])))); } şerit.göster(); } 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[sayım][2])), pgm_read_byte(&(image_2[sayım][0])))); } şerit.göster(); } 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[sayım][2])), pgm_read_byte(&(image_3[sayım][0])))); } şerit.göster(); } else if (VELO <= 204000) { for (int i = 0 + 5; i = 120)) { for (int i = 0 + 5; i < pix; i++) { strip.setPixelColor(i - 5, strip. Renk(0, 0, 0)); } şerit.göster(); }

#4. ana döngü - işleme ve döngü süresi kontrolü ve algılama

Bu, tüm sistemin en önemli parçasıdır.

İlk olarak, tüm kodu yürütmek için geçen süreyi kontrol edin ve döngü başına LED çıkış süresini ayarlayın.

Çark her döndüğünde algılanan zaman, bir sonraki döngünün zamanını tahmin eder.

Hızlanma, zamanında ölçülen çevrim süresinden son ölçülen çevrim süresi çıkarılarak tahmin edilebilir.

Sistem, LED'lerin sürekli olarak ne kadar süreyle yanacağını hesaplamak için işlem süresini ve ivmeyi hesaplar.

process_timer = mikros();

if ((digitalRead(HALL) == YÜKSEK) && (HALL_COUNT == 1)) { VELO = v; v = mikros() - last_timer; ex_timer = q_arr[0] - q_arr[1] + v; last_timer = mikros(); q_arr[0] = q_arr[1]; q_arr[1] = v; sayı = 0; HALL_COUNT = 0; } else if (digitalRead(HALL) == LOW) { HALL_COUNT = 1; } }

Adım 13: Yazılımı Kullanma

Yazılımı Kullanma
Yazılımı Kullanma
Yazılımı Kullanma
Yazılımı Kullanma
Yazılımı Kullanma
Yazılımı Kullanma

*Görüntüyü dönüştürmek ve alay verilerini koda eklemek için yazılımı kullanın

1. Yukarıdaki adımdaki görüntüyü, hazırlık adımında kurulan R. C. P klasöründeki görüntü klasörüne yerleştirin.

- Resmin nasıl yerleştirileceği aşağıdaki gibidir.- 1 numaralı ürünün 4 hareketli resmini 1.png, 2.png, 3-p.webp

2. Ver.5.exe dosyasını çalıştırın.

3. R. C. P klasöründe pro_1_code_1.txt ila pro_3_code_4.txt arasında 12 dosyanın oluşturulduğunu doğrulayın.

4. Oluşturulmamışsa, config.txt'nin içeriğini aşağıdaki yapılandırma dosyası olarak değiştirin.

5. Dosya oluşturulduktan sonra, pro_1_code_1.txt dosyasındaki tüm içeriği kopyalayın ve aşağıdaki kodda gösterilen kısma yapıştırın.

6. pro_1_code_2.txt, pro_1_code_3.txt ve pro_1_code_4.txt içeriklerini 5. sırada işaretlenen kısma ekleyin.

7. 5 ve 6'ya atıfta bulunarak, pro_2_code…, pro_3_code kodu aynı şekilde tamamlar.

Adım 14: Tamamlayın

Tamamlayınız
Tamamlayınız
Tamamlayınız
Tamamlayınız
Tamamlayınız
Tamamlayınız

Üç tekerlekli bir görüntü oluşturan bir POV üretimini tamamladı.

Önerilen: