İçindekiler:

Arduino, Geri Dönüştürülmüş Parçalar ve Dlib ile Şeker Fırlatma Robotu: 6 Adım
Arduino, Geri Dönüştürülmüş Parçalar ve Dlib ile Şeker Fırlatma Robotu: 6 Adım

Video: Arduino, Geri Dönüştürülmüş Parçalar ve Dlib ile Şeker Fırlatma Robotu: 6 Adım

Video: Arduino, Geri Dönüştürülmüş Parçalar ve Dlib ile Şeker Fırlatma Robotu: 6 Adım
Video: Başımız Sağ Olsun Türkiye. ❤️‍🩹 2024, Kasım
Anonim
Arduino, Geri Dönüştürülmüş Parçalar ve Dlib ile Şeker Fırlatma Robotu
Arduino, Geri Dönüştürülmüş Parçalar ve Dlib ile Şeker Fırlatma Robotu

Birkaç geri dönüştürülmüş parça, bir Arduino + motor kalkanı ve Dlib bilgisayar yazılımı ile çalışan bir yüz algılayan şeker atıcı yapabilirsiniz.

Malzemeler:

  • Ahşap çerçeve
  • Dizüstü bilgisayar/bilgisayar (tercihen Raspberry Pi'den daha güçlü!).
  • Arduino (Tercihen Uno veya motor kalkanınıza uyan bir tane.)
  • Arduino motor kalkanı (hala burada satıldığı için eski Adafruit kalkanını kullandım)
  • Herhangi bir standart web kamerası
  • Küçük yıkayıcı

Geri dönüştürülmüş parçalar:

  • Kasa (eski metal kutu iyi çalışıyor.)
  • Step motor, demonte eski yazıcıdan DC motor.
  • Eski yazıcı güç kaynağı
  • Şeker dağıtıcısı (Büyük yoğurt kabı).

Bitmiş ürünün iç kısımları bir şekilde ekteki genel bakışa benzeyecektir.

Uyarı

Kablolama/yeniden kablolamadan önce Arduino/motor kurulumuna giden gücü çıkardığınızdan emin olun. Gücü doğru polariteye taktığınızdan emin olun!

Bu, Arduino ve bilgisayarınıza kurmanız veya derlemeniz gereken yazılımları kullanan orta seviye bir projedir. Talimatlar değişebilir ve Ubuntu üzerinde çalışırken test edilmiştir.

Eski Adafruit motor kalkanını kullanmıyorsanız, Arduino kodunu, kullandığınız motor kalkanına göre ayarlamanız gerekebilir.

Adım 1: Motoru Delin, Bağlayın ve Monte Edin

Motoru Del, Bağla ve Monte Et
Motoru Del, Bağla ve Monte Et
Motoru Del, Bağla ve Monte Et
Motoru Del, Bağla ve Monte Et

Kasaya delikler açın, web kamerasının üstte hareket edebilmesi ve dağıtıcının altta dönebilmesi için kademeli motor takın.

Adım motorları, adım adım değil, ileri/geri çalışan DC motorların (2 tel) aksine küçük artışlarla (4 tel) hareket edebilir.

DC motorun 2 kablosu vardır (her iki şekilde de çalışır), isteğe bağlı step motorda 4'ü iki bobin olacaktır (burada açıklandığı gibi bobinlerin nereye kablolandığını görmek için multimetre direnç ölçer ile test edin.)

Örneğimdeki gibi eski Adafruit kalkanını kullanıyorsanız, DC şeker döndürücü motorunu motor #3'e ve step motoru ilk iki motora (#1, #2) belgelerinde açıklandığı gibi bağlamalısınız.

Bağlandıktan sonra, motorları bir Arduino'ya bağlı bir Arduino Motor Kalkanına bağlayın. En iyi sonuçlar için, ikinci el bir mağazadan 2 dolarlık bir duvar siğiline DC çıkışına bağlayabileceğiniz motorlara ikinci bir güç kaynağının olması önerilir.

2. Adım: Konteyneri Takma

Konteynerin Takılması
Konteynerin Takılması
Konteynerin Takılması
Konteynerin Takılması
Konteynerin Takılması
Konteynerin Takılması
Konteynerin Takılması
Konteynerin Takılması

Bir yoğurt kabının veya başka bir büyük plastik kabın ortasını ölçün ve motorun ucundan biraz daha büyük bir tutuş delin.

Küçük bir rondela kullanarak kabı kutuya takın - kabın dibine ve elektrik motoru miline Krazy yapıştırın.

Tutkalın tamamen kuruması için bir veya iki gün kurumasını bekleyin - eğilmediğinden emin olmak için kutu ile eğirme kabı arasına küçük bir ara parçası yerleştirmek isteyebilirsiniz.

3. Adım: Şeker Atıcı için Küçük Bir Delik Açın

Şeker Atıcı için Küçük Bir Delik Açın
Şeker Atıcı için Küçük Bir Delik Açın

Döndürücü düzgün bir şekilde takıldıktan sonra, uçtan atılacak şeker için küçük bir delik çizmek için keskin bir bıçağın ucunu kullanın - bu, dudağın olduğu yerin hemen altında olmalıdır.

(En iyi sonuç için, alt olacak olan dağıtıcının kapak ucuna yaklaşık 30 adet şeker yüklenebilir.)

Küçük bir delik bırakarak çıkana kadar keskin bir bıçakla hafifçe dış hatlarını çizmeye devam edin (deliği daha sonra gerektiği gibi genişletebilirsiniz).

Adım 4: Arduino Kurulumu

Arduino yazılımını henüz yüklemediyseniz, şu adresten edinin:

www.arduino.cc/en/Main/Software

Herhangi bir yeni sürüm çalışmalıdır.

Arduino Shield'inizin örnek kodunda verilen örneklerle DC/Step motorunu test edin.

Bu kalkanı kullanıyorsanız (hala bazı satıcılardan alınabilir) kodumu doğrudan kullanabilirsiniz:

github.com/programmin1/HowToTrainYourRobot…

Arduino seri penceresine "d" girerek şekeri test ettikten ve dağıttıktan sonra, bunu Dlib'in tanıyıcısına bağlamanın zamanı geldi.

Adım 5: Dlib Kurulumu

Dlib (https://dlib.net/), görüntü tanıma için açık kaynaklı, kullanımı kolay bir kitaplık sağlar. Python Dlib modülünü aşağıdakileri kullanarak kurun:

sudo pip Dlib'i kurun

- veya -

sudo easy_install Dlib'i

Dlib'in yüklenmesini ve derlenmesini bekleyin. (Tercihen birkaç gig RAM'e sahip bir bilgisayara ihtiyacınız olacak veya uzun bir süre beklemeniz ve takas alanını genişletmeniz gerekecek). Kod ayrıca web kamerası modülü için OpenCV kullanır, bu nedenle şunu çalıştırın:

sudo apt-get install python-opencv

MacOS veya diğer işletim sistemlerini kullanıyorsanız kurulum adımları değişebilir.

Şimdi şuradan yüz algılama yer işaretleri verilerini alın:

dlib.net/files/shape_predictor_68_face_land…

Dosyayı açın (Arşiv Yöneticisi / 7zip ile) ve HOME/Downloads/shape_predictor_68_face_landmarks.dat içine yerleştirin

Adım 6: Yüz Tanıyıcıyı Robotunuza Bağlama

Yüz Tanıyıcıyı Robotunuza Bağlama
Yüz Tanıyıcıyı Robotunuza Bağlama

Arduino kontrollü USB'yi bilgisayara takın ve "/dev/ttyACM0" dosyasının var olduğunu doğrulayın (bu, seri komutların gönderileceği cihazdır). Çalışmıyorsa ve taktığınızda /dev içinde görünen benzer şekilde adlandırılmış farklı bir dizin varsa, depodaki faceDetectThreadCorrelationCV2FaceSmile.py dosyasındaki /dev/ttyACM0'ı değiştirin.

Web kamerasını takın (kullandığınız bilgisayarda yerleşik web kamerası yoksa) ve bu.py dosyasını komut satırında veya Geany metin düzenleyicisinde Run/F5 komutuyla çalıştırın. Bir dizüstü bilgisayarda ikinci/harici bir web kamerası kullanmak istiyorsanız, robot kutusunun üstündeki step motora yerleştirebileceğiniz ikinci bir web kamerası kullanmak için "VideoCapture(0)" öğesini "VideoCapture(1)" olarak değiştirmek isteyebilirsiniz..

Her şey yolunda giderse, web kamerasının önünde bir yüz olduğunda bir gülümsemenin ana hatlarını göreceksiniz.

Dlib'in yüz dönüm noktası işlevinden verdiği noktalardan gülümseme algılamanın nasıl çalıştığının matematiğini görmek için.py dosyasının genel bakışını ve kaynak kodunu okuyun.:)

Önerilen: