İçindekiler:
- Adım 1: Fikir Konsepti
- Adım 2: Malzeme Listesi
- 3. Adım: Araçlar
- Adım 4: Çerçeve Yapma
- Adım 5: Son Görüntüleri ve Kavramları Çizmek
- Adım 6: Hareketli Görüntü Kesimi Yapın
- Adım 7: Yazılım Hazırlama
- Adım 8: Donanım Güç Kaynağının Yapılması
- Adım 9: Donanım G/Ç Yapma ve ÇIKIŞI Kontrol Etme(NeoPixel Çalışma)
- Adım 10: Birleştirme ve Tekerleğe Takma
- Adım 11: INPUT(HALL Sensör Verileri) Kontrolü
- Adım 12: Kodlama Algoritması
- Adım 13: Yazılımı Kullanma
- Adım 14: Tamamlayın
Video: Digilog_Bike POV Ekranı: 14 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
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
POV, bir bisikletin tekerleğine bir LED kayış takılarak uygulanır.
Adım 2: 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
Ç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
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
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
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
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ı
*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)
*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
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ü
*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
*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
Üç tekerlekli bir görüntü oluşturan bir POV üretimini tamamladı.
Önerilen:
CO2 Ekranı: 9 Adım (Resimlerle)
CO2 Ekranı: Adından da anlaşılacağı gibi, CO2 Ekran projesi, iç ve dış kirliliği kolayca takip etmek için USB'ye takılacak küçük bir CO2 gaz sensörüdür. CO2 seviyesi canlı olarak görüntülenir, ancak belgelerde sağlanan küçük uygulama ile mümkündür
Hayran POV Ekranı Nasıl Yapılır: 6 Adım (Resimlerle)
Bir Fan POV Ekranı Nasıl Yapılır: Bu projede size sıradan bir eski Fanı, size ışık desenleri, kelimeler ve hatta zaman sunabilen bir LED POV Ekranına nasıl dönüştürdüğümü göstereceğim. Başlayalım
Arduino Yatay POV Ekranı: 3 Adım
Arduino Yatay POV Ekranı: 5LED-s ve Arduino Nano ile en basit POV ekranı
PropHelix - 3D POV Ekranı: 8 Adım (Resimlerle)
PropHelix - 3D POV Ekranı: İnsanlar her zaman holografik temsillerden etkilenmişlerdir. Bunu yapmanın birkaç yolu var. Projemde dönen bir LED şerit sarmal kullanıyorum. 16 renk ile 17280 voksel görüntüleyebilen toplam 144 LED vardır. Vokseller arra
POV Bisiklet Ekranı - ESP8266 + APA102: 7 Adım (Resimlerle)
POV Bisiklet Ekranı - ESP8266 + APA102: ** YASAL UYARI** Bu talimat, yüksek lisans tezimin bir parçasıydı ve herhangi bir şekilde tamamlandı. Şu anda bir çalışma alanım yok, bu yüzden test etmek ve inşa etmek için uygun bir alanım olmadan bitiremem. Bir POV bisiklet ekranı inşa etmek isterseniz