İçindekiler:

OUCH: 6 Adım
OUCH: 6 Adım

Video: OUCH: 6 Adım

Video: OUCH: 6 Adım
Video: Gökçe - Tuttu Fırlattı 2024, Temmuz
Anonim
AH
AH
AH
AH

Ah, kişisel Çok Yönlü Yararsız Katarakt Yardımcınızdır. Yüz tanıma Zeitgeist'i vururken, OUCH sizi vurur! OUCH sadece nasıl göründüğünüzü değil, aynı zamanda çok sinir bozucu olmayı da biliyor! Ağabeyinden farklı olarak, bu makine çok görünür ve tek bir amacı yerine getiriyor: Hayatınızı biraz daha boktan hale getirmek. Güneş gözlüğünüzü hiç evde unutup parlak bir yansımayla şaşırdığınız oldu mu? OUCH, bu anı tekrar tekrar yaşamanızı sağlar. Çevrenizdeki en parlak ışık kaynağından gelen ışığı doğrudan yüzünüze yansıtarak, etrafında tek bir anın tadını çıkarmamanızı sağlayacaktır.

Dikkat edin, yoksa OUCH göreceğiniz son şey olabilir!

Proje, ITECH yüksek lisans programında Hesaplamalı Tasarım ve Dijital İmalat seminerinin bir parçası olarak gerçekleştirildi.

Ağustos Lehrecke | Azami Zorn

Gereçler

Elektronik parçalar:

Arduino

  • Arduino UNO'su

    • 2x Reely Mini Servo S0009
    • 4x fotodirençler
    • 4x 10k dirençler
    • 2x potansiyometre
    • 1x USB yazıcı kablosu

Ahududu Pi

  • Ahududu Pi 4

    • 1x RaspiCam
    • 4x Reely Mini Servo S0009
    • 1x PCA9685 16-Kanal 12-bit PWM Servo Sürücü
    • 5v DC harici güç kaynağı
    • 1x Rasberry Pi 5.1V - 3Amp güç kaynağı (veya harici eşdeğeri)
    • 1 adet MAKERFACTORY HC-SR05 Ultraschallsensor (MF-6402156)
    • 1x 470 Ohm direnç
    • 1x 320 Ohm direnç

3D Basılı Parçalar:

OUCH'lar çeşitli şekil ve boyutlarda gelir. Bu sürüm için özel mekanizmaları yazdırmak için bir 3D yazıcı kullandık.

  • 4 x Stand
  • 2 x Taban S
  • 1 x Baz L
  • 2 x Döner Taban Çift
  • 1 x Döndürme Tabanı Tek
  • 1 x Eksen Desteği S Seti
  • 1 x Eksen Desteği M Seti
  • 1 x Eksen Desteği L Seti
  • 1 x Kamera Montajı
  • 1 x Işık Dağı
  • 1 x Ayna Dağı

İsteğe bağlı olarak, bileşenleri şu amaçlarla birleştirmek için sağlanan Tower tasarımını kullanabilirsiniz:

  • 1 x Kule (4 x Stand yerine)
  • 1 x Base S & 1x Base M (2 x Base S yerine)

Diğer bölümler:

  • Mylar
  • 1 x Lastik bant
  • 1 x Zip kravat
  • 12 M5 x 160 Düz Başlı Vida
  • 2 M5 x 80 Düz Başlı Vida

Aletler:

  • 3 boyutlu yazıcı
  • H3.0 Tornavida
  • Sıcak yapıştırıcı tabancası

Adım 1: Adım 1: Parçaları Yazdırma

Bir 3D yazıcıya erişiminiz varsa, Servoları barındırmak ve üç ana bileşeni monte etmek için özel mekanizmalar yazdırabilirsiniz.

Yüz bileşeni için şunlara ihtiyacımız var:

  • 2 x Standlar
  • 1 x Baz L
  • 1 x Döner Taban Çift
  • 1 x Eksen Desteği M Seti
  • 1 x Kamera ve Mesafe Sensörü Montajı

Işık bileşeni şunları gerektirir:

  • 1 x Stand
  • 1 x Baz S
  • 1 x Döner Taban Çift
  • 1 x Eksen Desteği S Seti
  • 1 x Işık Dağı

Ayna bileşenleri aşağıdakilerden oluşur:

  • 1 x Stand
  • 1 x Baz S
  • 1 x Döner Taban Tek
  • 1 x Eksen Desteği L Seti
  • Ayna Dağı

Son olarak, sağlanan kuleyi de yazdırabilirsiniz.

Üç bileşenin tümü için temel olarak kullanmak istiyorsanız, koddaki vektör matematiğini buna göre ayarlamanız gerekecektir. Ayrıca, Face bileşenini Base L yerine Base M ile kuleye bağlayın.

Adım 2: Adım 2: Aynayı Yapmak

Adım 2: Aynayı Yapmak
Adım 2: Aynayı Yapmak
Adım 2: Aynayı Yapmak
Adım 2: Aynayı Yapmak

Kendi Ayna bileşeninizi yapmak için dairesel bir Mylar parçası kesin ve 3B yazdırılan ayna parçasının üzerine yerleştirin. Ardından, yerine sabitlemek için önce bir lastik bant kullanın. Lastik bant, bileşenin etrafındaki oluğun içine oturmalıdır. Ardından bağlantıyı nazikçe sabitlemek için bir fermuar kullanın, henüz çok fazla sıkmayın. Artık parlak, aynalı bir yüzey elde edene kadar Mylar'ı germeye başlayabilirsiniz. Son olarak, fermuarı sıkın ve güzel yüzünüzün yansımasının tadını çıkarın!

Adım 3: Adım 3: Bileşenlerin Birleştirilmesi

Adım 3: Bileşenleri Birleştirme
Adım 3: Bileşenleri Birleştirme
Adım 3: Bileşenleri Birleştirme
Adım 3: Bileşenleri Birleştirme
Adım 3: Bileşenleri Birleştirme
Adım 3: Bileşenleri Birleştirme
Adım 3: Bileşenleri Birleştirme
Adım 3: Bileşenleri Birleştirme

Yüz Bileşeni

  1. Yumruk Servo'yu döner tabanın uygun kesiminde sıcak tutkalla yapıştırın
  2. Servo konektörünü taban parçasının altında bulunan oluğa yapıştırın
  3. Servo konektörle kenetlenecek şekilde iki taban parçasını bir araya getirin
  4. Konektörü Servo'ya sabitlemek için Servo'nun vidasını kullanın
  5. İkinci bağlantı parçasını eksen desteğinin üstünde bulunan uygun oluğa sıcak yapıştırın
  6. Eksen desteğini dönen tabana vidalamak için 4 M5 cıvata kullanın
  7. İkinci Servoyu yuvaya sıcak tutkalla yapıştırın
  8. Kamerayı pimlerin üzerine kaydırın
  9. Ultrasonik mesafe sensörünü vidalama veya sıcak yapıştırma yoluyla montaj parçasına takın
  10. Kamera / sensör montajını eksen desteğine bağlayın, Servo tekrar bağlantı parçasına kaydırılmalıdır
  11. Konektörü Servo'ya sabitlemek için Servo'nun vidasını kullanın
  12. Raspberry Pi'yi ve servo sürücüyü bir parça kontrplak üzerine vidalayın (Boşluğun Base L'nin delikleriyle eşleştiğinden emin olun)
  13. M5 cıvataları kullanarak Yüz bileşenini ayaklara vidalayın

Ayna Bileşeni

  1. 1'den 7'ye kadar olan adımları izleyin
  2. Aynayı eksen desteğine bağlayın
  3. Ayna ve Yüz bileşeni aynı hizada olacak şekilde bir ayna ayağını kontrplağa yapıştırın
  4. M5 cıvataları kullanarak Ayna bileşenini standa vidalayın

Hafif Bileşen

  1. Yukarıdan 1'den 7'ye kadar olan adımları izleyin
  2. Işık sensörlerini gölgeleme çaprazının altındaki montaj deliklerinden geçirin
  3. Gölgeleme çaprazını eksen desteğine bağlayın, Servo tekrar bağlantı parçasına kaydırılmalıdır
  4. Konektörü Servo'ya sabitlemek için Servo'nun vidasını kullanın
  5. Işık, Ayna ve Yüz bileşeni hizalanacak ve Ayna Yüz ve Işık bileşenleri arasında olacak şekilde bir standı kontrplağa yapıştırın
  6. M5 cıvataları kullanarak Yüz bileşenini ayaklara vidalayın

*Tüm bileşenler kuleye de takılabilir, ancak artan kodlama ve kablolama karmaşıklığını ve baskı süresini lütfen göz önünde bulundurun. Kuleyi kullanmak istiyorsanız, Yüzey bileşeni için Taban L yerine Taban M parçasını kullanın ve Taban parçalarını halkaları ve M5 cıvataları kullanarak kuleye vidalayın.

4. Adım: 4. Adım: Kartları Yapılandırın

4. Adım: Panoları Yapılandırın
4. Adım: Panoları Yapılandırın
4. Adım: Panoları Yapılandırın
4. Adım: Panoları Yapılandırın
4. Adım: Panoları Yapılandırın
4. Adım: Panoları Yapılandırın

İşte üç bileşenin bağlantı şeması. Sun tracker Arduino üzerinde kendi döngüsünde hareket eder ve servo pozisyonlarını seri USB portu üzerinden Rasberry Pi'ye gönderir. Hedefin daha sağlam bir üçgenlenmesini oluşturmak için pan/tilt piCamera'nın önüne isteğe bağlı bir mesafe sensörü takılabilir. Burada onları düz bir çizgide sıralayacağız ve gerekli olmaması için vektörlerin ortalamasını alacağız.

Harici bir 5v güç kaynağı ile çalışan PCA9685 servo sürücüsüne dört servo bağlanmıştır. Servolardan ikisi yüz izleme kamerası için kaydırma ve eğmeyi kontrol ederken, kalan ikisi ayna için kaydırma ve eğmeyi kontrol eder.

Adım 5: Kod:

Kod
Kod

Bu projenin Kodu iki bölüme ayrılabilir: Arduino ışık izleme kodu ve piton yüz izleme/ayna konumlandırma kodu.

Arduino Kodu:

Bu kod, geobruce güneş izleme projesinin biraz değiştirilmiş bir versiyonudur. Güneş izleme bileşeni hakkında daha fazla bilgi edinmek için harika bir referanstır ve bu talimat sayfasında daha fazla ayrıntı bulunabilir. 4 foto-dirençten ışık yoğunluğu değerleri alınır ve en parlak alanı bulmak ve servoları buna göre ayarlamak için ortalaması alınır. Ardından servo açı değerlerini seri porta yazıyoruz.

Python Kodu:

Bu kod, bir yüz izleme pan tilt mekanizması oluşturmak için açık CV'yi entegre eder ve ayna için servoları çalıştırır. Raspberry pi'nize açık CV indirmek için bazı adımlardan geçmeniz gerekecek. Bunun için pek çok kaynak var ama ben pyimagesearch ile olanı çok seviyorum. Bu sürecin tam bir incelemesi burada bulunabilir. Not: Açık CV kitaplıklarını, tüm kodu çalıştırdığımız sanal bir ortama indirdik, bunu yapmaya karar verdiyseniz, tüm bağımlılıkları programı çalıştırdığınız sanal ortama indirdiğinizden emin olun. Pi'nin kendisi.

Açık CV'yi indirdikten sonra, bu kodun çalışması için daha fazla bağımlılık (çalıştırmakta olduğunuz belirli ortama yüklenmiş) gerekir:

  • Adafruit ServoKit: Raspberry Pi'ye indirme işleminin tam sayfasına buradan ulaşabilirsiniz.
  • imutiller
  • dizi
  • gpiozero (mesafe sensörü kullanılıyorsa)

Yüz izleme için komut dosyası, openCv'nin yüzleri bulmak için kullandığı bir.xml dosyası olan bir argüman (--faces) gerektirir. Bu dosyayı python betiğiyle aynı dizine koymanız gerekecek. İndirmelerde sağladım ve burada da bulunabilir.

Adım 6: Kodu Çalıştırma

Kodu Çalıştırmak
Kodu Çalıştırmak
Kodu Çalıştırmak
Kodu Çalıştırmak

Tüm kodları aynı dizine indirdikten ve açık CV ile sanal ortamınızı kurduktan sonra çalıştırmaya hazırsınız.

  1. Pi'nizde komut istemini açın
  2. workon cv yazın (veya sanal ortamınız için hangi adı seçtiyseniz)
  3. Dosyalarınızı sakladığınız dizini değiştirin (cd (dosyaların yolu))
  4. Son satır programı çalıştırır ve haar basamaklı dosyasını belirtir. (python Face3.py --faces haarcascade_frontalface_default.xml)

Çalıştırdığınızda, ekranda açılır picam'dan bir video akışı görmelisiniz ve komut istemi altı servonun hepsinden servo değerlerini yazdırmaya başlayacaktır.

Ve işin bitti! Sahip olduğunuz servoların kalitesine bağlı olarak, sisteminizin doğruluğunu artırmak için her birini özel olarak kalibre etmek isteyebilirsiniz. Düzgün çalışabilmeleri için tüm PWM aralıklarını değiştirmek zorunda kaldık.

Önerilen: