İçindekiler:
- Adım 1: Malzeme Listesi
- 2. Adım: Bir Lazer ve Kamera Cihazı Oluşturma
- Adım 3: Lazeri ve LCD'yi Sürmek
- Adım 4: OpenCV Kullanarak Lazeri Tespit Etme
- Adım 5: Mesafe Bulucunun Kalibrasyonu
- Adım 6: Mesafeleri Ölçme
Video: Lazer ve Kamera Kullanarak Telemetre Yapma: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Şu anda önümüzdeki bahar için bazı iç işleri planlıyorum ama eski bir ev aldığım için herhangi bir ev planım yok. Bir cetvel kullanarak duvardan duvara mesafeleri ölçmeye başladım ama bu yavaş ve hataya açık. İşlemi kolaylaştırmak için bir telemetre almayı düşündüm ama sonra lazer ve kamera kullanarak kendi telemetresini oluşturmakla ilgili eski bir makale buldum. Görünüşe göre, bu bileşenler atölyemde var.
Proje şu makaleye dayanmaktadır:
Tek fark, telemetreyi bir Raspberry Pi Zero W, bir LCD ve Raspberry Pi Kamera modülü kullanarak oluşturacağım. Ayrıca lazeri izlemek için OpenCV kullanacağım.
Teknoloji konusunda bilgili olduğunuzu ve Python ve komut satırını kullanmakta rahat olduğunuzu varsayacağım. Bu projede Pi'yi başsız modda kullanıyorum.
Hadi başlayalım!
Adım 1: Malzeme Listesi
Bu proje için ihtiyacınız olacak:
- ucuz bir 6mm 5mW lazer
- 220 Ω direnç
- 2N2222A transistör veya eşdeğeri
- bir Ahududu Pi Sıfır W
- bir Ahududu Pi Kamera v2
- Nokia 5110 LCD ekran veya eşdeğeri
- bazı atlama telleri ve küçük bir devre tahtası
Deneyler sırasında bana yardımcı olan bir aparatı basmak için 3d yazıcımı kullandım. Ayrıca telemetre için eksiksiz bir muhafaza oluşturmak için 3d yazıcıyı kullanmayı planlıyorum. Tamamen onsuz yapabilirsiniz.
2. Adım: Bir Lazer ve Kamera Cihazı Oluşturma
Sistem, kamera merceği ile lazer çıkışı arasında sabit bir mesafe olduğunu varsayar. Testleri kolaylaştırmak için kamerayı, lazeri ve lazer için küçük bir sürüş devresini monte edebileceğim bir şablon yazdırdım.
Kameranın montajını oluşturmak için kamera modülü boyutlarını kullandım. Ölçümleri yapmak için çoğunlukla dijital bir kumpas ve hassas bir cetvel kullandım. Lazer için, lazerin hareket etmemesini sağlamak için biraz takviyeli 6 mm'lik bir delik oluşturdum. Jigin arkasına sabitlenmiş küçük bir devre tahtasına sahip olmak için yeterli alan tutmaya çalıştım.
Yapı için Tinkercad kullandım, modeli burada bulabilirsiniz:
Lazer merceğinin merkezi ile kamera merceğinin merkezi arasında 3,75 cm mesafe vardır.
Adım 3: Lazeri ve LCD'yi Sürmek
Raspberry Pi Zero ile LCD ekranı sürmek için https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi bu öğreticiyi takip ettim. /boot/config.txt dosyasını düzenlemek yerine komut satırı üzerinden sudo raspi-config kullanarak SPI arayüzünü etkinleştirebilirsiniz.
Raspberry Pi Zero'yu, tarihteki en son Raspbian Stretch'i kullanarak başsız modda kullanıyorum. Kurulumu bu Eğitilebilir Kitapta ele almayacağım, ancak bu kılavuzu takip edebilirsiniz: https://medium.com/@danidudas/install-raspbian-jessie-lite-and-setup-wi-fi-without-access-to- komut satırı veya ağı kullanma-97f065af722e
Parlak bir lazer noktasına sahip olmak için Pi'nin 5V rayını kullanıyorum. Bunun için GPIO kullanarak lazeri sürmek için bir transistör (2N2222a veya eşdeğeri) kullanacağım. Transistörün tabanındaki 220 Ω'luk bir direnç, lazer boyunca yeterli akıma izin verir. Pi GPIO'yu değiştirmek için RPi. GPIO kullanıyorum. Transistörün tabanını GPIO22 pinine (15. pin), emitörü toprağa ve kollektörü lazer diyotuna bağladım.
Komut satırı üzerinden sudo raspi-config kullanarak kamera arayüzünü etkinleştirmeyi unutmayın.
Kurulumunuzu test etmek için bu kodu kullanabilirsiniz:
Her şey yolunda gittiyse, arka planı ve lazer noktasını göreceğiniz bir dot-j.webp
Kodda kamerayı ve GPIO'yu kuruyoruz, ardından lazeri etkinleştiriyoruz, görüntüyü yakalıyoruz ve lazeri devre dışı bırakıyoruz. Pi'yi başsız modda çalıştırdığım için, görüntüleri göstermeden önce Pi'mden bilgisayarıma kopyalamam gerekiyor.
Bu noktada, donanımınızın yapılandırılması gerekir.
Adım 4: OpenCV Kullanarak Lazeri Tespit Etme
İlk olarak, OpenCV'yi Pi'ye kurmamız gerekiyor. Temelde bunu yapmanın üç yolu var. Eski paketlenmiş sürümü apt ile yükleyebilirsiniz. İstediğiniz sürümü derleyebilirsiniz ancak bu durumda kurulum süresi 15 saate kadar çıkabilir ve çoğu gerçek derleme için. Veya benim tercih ettiğim yaklaşım, Pi Zero için üçüncü bir tarafça sağlanan önceden derlenmiş bir sürüm kullanabilirsiniz.
Daha basit ve daha hızlı olduğu için üçüncü taraf bir paket kullandım. Kurulum adımlarını bu yazıda bulabilirsiniz: https://yoursunny.com/t/2018/install-OpenCV3-PiZero/ Başka birçok kaynak denedim ama paketleri güncel değildi.
Bir lazer işaretçiyi izlemek için https://github.com/bradmontgomery/python-laser-tracker adresindeki kodu bir USB cihazı yerine Pi kamera modülünü kullanacak şekilde güncelledim. Pi kamera modülünüz yoksa ve bir USB kamera kullanmak istiyorsanız, kodu doğrudan kullanabilirsiniz.
Kodun tamamını burada bulabilirsiniz:
Bu kodu çalıştırmak için Python paketlerini kurmanız gerekecek: yastık ve picamera (sudo pip3 install yastık picamera).
Adım 5: Mesafe Bulucunun Kalibrasyonu
Orijinal makalede yazar, y koordinatlarını gerçek bir mesafeye dönüştürmek için gerekli parametreleri elde etmek için bir kalibrasyon prosedürü tasarladı. Kalibrasyonlar için oturma odamı ve eski bir kraft parçasını kullandım. Her 10 cm'de bir x ve y koordinatlarını bir elektronik tabloya kaydettim: https://docs.google.com/spreadsheets/d/1OTGu09GLAt… Her şeyin doğru çalıştığından emin olmak için, her adımda, yakalanan görüntüleri kontrol edip kontrol ettim. lazer doğru izlendi. Yeşil lazer kullanıyorsanız veya lazeriniz doğru takip edilmemişse, programın renk tonunu, doygunluğunu ve değer eşiğini buna göre ayarlamanız gerekecektir.
Ölçüm aşaması tamamlandıktan sonra, parametreleri fiilen hesaplamanın zamanı gelmiştir. Yazar gibi ben de doğrusal bir regresyon kullandım; aslında Google E-Tablo benim için işi yaptı. Daha sonra tahmini bir mesafeyi hesaplamak ve gerçek mesafeye göre kontrol etmek için bu parametreleri yeniden kullandım.
Artık mesafeleri ölçmek için parametreleri telemetre programına enjekte etme zamanı.
Adım 6: Mesafeleri Ölçme
Kodda: https://Gist.github.com/kevinlebrun/e767a46855e5fd501d820e1c5fcc527c HEIGHT, GAIN ve OFFSET değişkenlerini kalibrasyon ölçümlerine göre güncelledim. Mesafeyi tahmin etmek için orijinal makaledeki mesafe formülünü kullandım ve LCD ekranı kullanarak mesafeyi yazdırdım.
Kod önce kamerayı ve GPIO'yu kuracak, ardından ölçümleri daha iyi görmek için LCD arka ışığını yakmak istiyoruz. LCD girişi GPIO14'e takılı. Her 5 saniyede bir şunları yapacağız:
- lazer diyotu etkinleştir
- görüntüyü bellekte yakala
- lazer diyotu devre dışı bırak
- HSV menzil filtrelerini kullanarak lazeri takip edin
- ortaya çıkan görüntüyü hata ayıklama amacıyla diske yazın
- y koordinatına göre mesafeyi hesapla
- mesafeyi LCD ekrana yazın.
Yine de, önlemler benim kullanım durumum için yeterince hassas ve doğru olsa da, iyileştirmeler için çok yer var. Örneğin, lazer noktası çok düşük kalitededir ve lazer çizgisi tam olarak ortalanmamıştır. Daha kaliteli bir lazer ile kalibrasyon adımları daha kesin olacaktır. Kamera benim aletimde pek iyi konumlandırılmamış olsa bile, aşağıya doğru eğiliyor.
Ayrıca, tam ile kullanarak kamerayı 90º döndürerek telemetre çözünürlüğünü artırabilir ve çözünürlüğü kamera tarafından desteklenen maksimum değere yükseltebilirim. Mevcut uygulama ile 0 ila 384 piksel aralığı ile sınırlıyız, üst sınırı mevcut çözünürlüğün 4 katı olan 1640'a yükseltebiliriz. Mesafe daha da kesin olacaktır.
Takip olarak, yukarıda bahsettiğim hassas iyileştirmeler üzerinde çalışmam ve telemetre için bir muhafaza oluşturmam gerekecek. Duvardan duvara ölçümleri kolaylaştırmak için muhafazanın kesin derinliğe sahip olması gerekir.
Sonuçta mevcut sistem benim için yeterli ve ev planımı yaparken bana biraz para kazandıracak!
Önerilen:
C Kodu Kullanarak Hesap Makinesi Yapma: 14 Adım
C Kodu Kullanarak Hesap Makinesi Yapma: Muhtemelen ilk kodunuz olacak olana hoş geldiniz, "C" programlama dilini kullanarak basit bir hesap makinesi oluşturan kolay bir program yazacaksınız. Not: Görüntüler çok uzak veya yakınsa, tam görüntüyü görmek için lütfen üzerlerine tıklayın
Arduino UNO Kullanarak Drone Nasıl Yapılır - Mikrodenetleyici Kullanarak Quadcopter Yapma: 8 Adım (Resimlerle)
Arduino UNO Kullanarak Drone Nasıl Yapılır | Mikrodenetleyici Kullanarak Quadcopter Yapın: GirişYoutube Kanalımı Ziyaret EdinBir Drone, satın alınması çok pahalı bir alettir(ürün). Bu yazıda tartışacağım, bunu nasıl ucuza yapabilirim? Ve böyle ucuz fiyata nasıl kendin yapabilirsin… Peki Hindistan'da tüm malzemeler (motorlar, ESC'ler
MIT APP ve Google Fusion Kullanarak Küçük İşletmeler İçin Android Uygulaması Yapma Tablosu: 7 Adım
MIT APP ve Google Fusion Table Kullanarak Küçük İşletmeler İçin Android Uygulaması Yapma: Hiç google play store'da bulunabilecek kendi Uygulamanızı yapmak istediniz mi !!! Bir işiniz varsa, bu eğitim hayatınızı değiştirecek. Bunu dikkatlice okuduktan sonra kendi Başvurunuzu yapabileceksiniz. Befo
HT12D Kullanarak RF 433MHZ Radyo Kontrolü HT12E - 433mhz ile HT12E & HT12D Kullanarak Rf Uzaktan Kumanda Yapma: 5 Adım
HT12D Kullanarak RF 433MHZ Radyo Kontrolü HT12E | 433mhz ile HT12E ve HT12D Kullanarak Rf Uzaktan Kumanda Yapma: Bu talimatta size HT12E kodlamalı & HT12D kod çözücü IC.Bu talimatta çok ucuz BİLEŞENLER GİBİ kullanarak veri gönderip alabilirsiniz: HT
Arduino ile Canne Blanche Lazer / Lazer Beyaz Baston: 6 Adım
Arduino'lu Canne Blanche Lazer / Lazer Beyaz Baston: Uzaklık noktası düzeyinde lazer titreşimli canlı bir frekans ters çevirme. Görsel yetersizliklere yardım. Lazerli telemetre, sivri mesafeyle ters orantılı bir frekansta titrer.Görsel kusura yardım