İçindekiler:
Video: Ses Kontrollü Jumping Jack- Google Voice AIY Versiyonu: 3 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
Demek Noel için AIY ses setine sahipsin ve talimatları izleyerek onunla oynuyorsun. Komik ama şimdi?
Aşağıda açıklanan proje, Raspberry Pi için AIY sesli HAT kullanılarak oluşturulabilen basit bir cihaz sunmaktadır. LED'leri ve iki servoyu kontrol etmek için Google ses tanıma sistemini kullanır, çok basit bir vitesle bir zıplama krikosunun kollarını ve bacaklarını hareket ettirir.
Arka planda çalışan yazılım, AIY ses kiti kılavuzunda açıklandığı gibi servo_demo.py betiğinin bir modifikasyonudur. Donanımı ve yazılımı kurmak için orada verilen talimatları izlemeniz yeterlidir. Cihazın kendisinin yapımı kolaydır ve çok fazla el işi becerisi gerektirmez. Ayrıca bir kesici bıçak, bir matkap ve bir havya yardımcı olacaktır.
Ses tanıma sistemini göz kırparak etkinleştirir ve 'eller yukarı' derseniz, zıplama krikosu ellerinizi ve bacaklarınızı kaldırır, 'eller merkezi' her iki servoyu da orta konuma hareket ettirir ve 'eller aşağı'dayken eller ve bacaklar hareket eder. indirilecek. 'Sol yukarı'da sol el ve bacaklar kaldırılır ve "sağ aşağı"da sağ olanlar indirilir, "sağ yukarı"da ise tam tersi. "Dans", onu dans ettirecek, en azından bir nevi. Ayrıca konuşuyor, lütfen ekteki videoya bir göz atın.
Böylece çok az çabayla kendi dans eden, sohbet eden ve şarkı söyleyen robotunuzu oluşturabilirsiniz.
Özellikle daha küçük çocuklar tarafından kullanımını kolaylaştırmak ve 'sihir' faktörünü arttırmak için AIY kutusundaki düğme bir yakınlık sensörü ile tetikleyici olarak değiştirildi. Sadeliği için, bir nesnenin 5 cm'den daha yakın olup olmadığını tanıyan ve bir düğme gibi kullanılabilen Pololu'nun dijital mesafe sensörünü kullandım. LED'ler, cihazın ne zaman emir beklediğini, dinlediğini veya "düşündüğünü" gösterir. Servolar, sensörler ve LED'ler GPIOZero yazılım kitaplığı tarafından kontrol edilir.
Prototip, bir kesici bıçakla çok kolay kesilebilen ve yapıştırılabilen, ancak aynı zamanda oldukça stabil olan Forex, PVC köpük plakalardan yapılmıştır. Daha büyük, daha hoş, geliştirilmiş veya daha süslü bir sürüm oluşturmaktan çekinmeyin, ancak iyileştirmelerinizi belgeleyip sunmanız iyi olur.
Hareketli dişliyi sunmak veya güzel, çocuk dostu bir düzene sahip olmak isteyip istemediğinize bağlı olarak gövdenin her iki tarafını da kullanabilirsiniz. ---------"Hampelmann", belirli çağrışımlara sahip olan "zıplayan jack" için Almanca terimdir.
Adım 1: Kullanılan Malzemeler
Ahududu Pi 3; 32 £, Pimoroni, Birleşik Krallık
AIY ses Kiti; 25 £, Pimoroni, Birleşik Krallık
Sharp sensörlü Pololu dijital mesafe sensörü koparma, 5 cm; 5,90 € Exp-tec.de'de
İki adet 9g servo
İki beyaz LED ve bir direnç
Bazı başlıklar ve atlama kabloları
2 mm Forex plakası, 250 x 500 mm; 1.70 € Modulor, Berlin, Almanya
Tüm hareketli parçaları bağlamak için M3 vidalar, somunlar ve rondelalar. Altı adet 10 ve dört adet 16 mm Naylon vida kullandım.
Servoları plakalara sabitlemek ve servo kollarını ve dişlilerini bağlamak için altı adet M2 vida ve somun.
Birkaç damla plastik yapıştırıcı
Adım 2: Cihazın Montajı ve Kullanımı
AIY ses kitinin kendisiyle ilgili olarak, servo ile ilgili bölüm de dahil olmak üzere, kit ile birlikte gelen açıklamadaki talimatları izleyin. AIY ses çıkışındaki servo bağlantı noktalarına birkaç üç pimli başlığı lehimlemenizi tavsiye ederim, böylece HAT ile servoları, sensörleri ve LED'leri çok kolay bağlayabilirsiniz.
Zıplama jakıyla ilgili olarak, burada verdiğim çizimleri svg ve PDF dosyaları olarak şablon olarak kullanabilir veya kendi fikirlerinize göre değiştirebilirsiniz. Dönme noktası ile dişli arasındaki mesafenin servo, kol ve bacakta aynı olmasını sağlayarak, zıplama krikosunun bacaklarını ve kolunu hareket ettiren dişlinin temel düzenini korumak isteyebilirsiniz.
Alternatif olarak, kolların ve bacakların doğrudan dört ayrı servo veya daha gelişmiş bir dişli tarafından çalıştırıldığı bir versiyon da oluşturabilirsiniz.
Çizimi kullanarak parçaları bir Forex, karton veya kontrplak levhadan kesin ve uygun konumlarda delikler açın. Deliklerin iyi hizalanmasını sağlayarak, ara parçalarını kolların ve bacakların dönme noktalarına yapıştırın.
Servoları ve hareketli parçaları taban plakasına sabitleyin. Mesafe sensörünü ve LED'i belirtildiği gibi ekleyin. Servolar M2 vidalarla, tüm hareketli parçalar M3 vidalarla sabitlenmiştir. Naylon M3 vidaları kullandım, ancak sadece estetik nedenlerle.
Servo kolların orta konuma yerleştirilip yerleştirilmediğini kontrol edin. Servo kolları ve dişlileri bağlayın, bunun için M2 vida kullandım.
AIY kartındaki servo konektörlerine servoları, LED'leri ve mesafe sensörünü takın. Bazı uzama/atlama kablolarına ihtiyacınız olabilir. AIY'de sol servoyu "servo0"a (GPIO 26), sağ servoyu "servo2"ye (GPIO 13), LED'leri "servo5"e (GPIO 24) ve sensörü "servo3"e (GPIO 5) taktım. ses ŞAPKA.
Sağlanan “Hampelmann.py” dosyasını AIY “src” alt klasörüne kopyalayın ve herkes için doğrudan çalıştırılabilir hale getirin. Bunu yapmak için, dosya yöneticisinde dosyayı seçebilir, ardından sağ tıklayıp Özellikler'i seçin, İzinler'i seçin, Yürüt'e gidin, ~ herhangi birini seçin. Veya geliştirme konsoluna “chmod +x src/Hampelmann.py” yazın.
Her şeyin yerinde ve sabit olup olmadığını veya gerektiğinde taşınabilir olup olmadığını kontrol edin. Dev komut satırını açın, “src/Hampelmann.py” girin ve programı başlatın. Mesafe sensörünün önünde elinizi veya parmaklarınızı hareket ettirirseniz AIY ünitesi emir isteyecek ve LED'ler yanıp sönecektir. Uygulanan emirler “sağ/sol/eller yukarı/aşağı/orta”, “dans”, “LED açık/kapalı” ve “hoşçakal” şeklindedir.
Oynamak. Elinizi sensörün önüne getirin, sorulduğunda konuşun ve cihaza tepki vermesi için biraz zaman verin. Gecikme oldukça yüksek. Crtl+C veya “Hoşçakal” programı durduracaktır.
Dosyayı Nano veya başka bir basit metin düzenleyici kullanarak değiştirebilirsiniz.
Açıklamalar: Lütfen bazı kelimelerin ve terimlerin büyük harfle başlayan kelimeler olarak, 'Merkez' veya 'Sağ Merkez' olarak tanındığını, çünkü diğerlerinin tanınmadığını unutmayın, örn. 'doğru yukarı'. Bazı eylemleri tetiklemek için ses tanıma modülü tarafından verilen tam formu kullanmanız gerekir.
3. Adım: Python Komut Dosyası
Daha önce belirtildiği gibi, komut dosyası, bazı eklemelerle birlikte AIY sesli talimatlarındaki servo_demo.py komut dosyasına dayanmaktadır. İlk sürüm, ekte bulacağınız Hampelmann.py dosyasıdır. GPIOZero'dan AngularServo, servonun hareket aralığını kısıtlamaya ve tam olarak ne kadar hareket edeceğini tanımlamaya izin veriyor. Ama ben İngiliz sesini orijinal sese tercih ederim. Cihaz ayrıca İngilizce, Almanca, İtalyanca, Fransızca ve İspanyolca konuşabilir, ancak anlayamayabilir (?). Aşağıda, İngiliz sesi ve biraz İtalyanca ve Almanca ile Hampelmann2.py komut dosyasını bulacaksınız. Lütfen komut dosyalarını çalıştırmak için yürütülebilir hale getirmeniz gerektiğini unutmayın.
#!/usr/bin/env python3# Bu komut dosyası AIY ses HAT için servo_demo.py komut dosyasının bir uyarlamasıdır, # AIY atlama jakı için optimize edilmiştir aiy.audio içe aktarma aiy.cloudspeech içe aktarma aiy.voicehat gpiozero içe aktarma LED'inden gpiozero'dan AngularServo'yu gpiozero'dan içe aktar Zamandan düğmeyi içe aktar sleep def main(): tanıyıcı = aiy.cloudspeech.get_recognizer() tanıyıcı.expect_phrase('sağ yukarı') tanıyıcı.expect_phrase('sağ aşağı') tanıyıcı.expect_phrase('Right Merkez') # büyük harfler bilerek oradadır tanıyıcı.expect_phrase('sol yukarı') tanıyıcı.expect_phrase('sol aşağı') tanıyıcı.expect_phrase('sol Merkez') tanıyıcı.expect_phrase('eller yukarı') tanıyıcı.expect_phrase ('eller aşağı') tanıyıcı.expect_phrase('eller Merkezi') tanıyıcı.expect_phrase('Dans') tanıyıcı.expect_phrase('LED açık') tanıyıcı.expect_phrase('LED kapalı') tanıyıcı.expect_phrase('güle güle') aiy.audio.get_recorder().start() servo0 = AngularServo(26, min_angle=-40, max_angle=40) # 1. bağlantı veya, GPIO 26 servo2 = AngularServo(13, min_angle=-40, max_angle=40) # 3. konektör, GPIO 13 led0 = LED(24) # LED'ler servo5/GPIO'ya bağlı 24 mesafe= Düğme(5) # mesafe sensörü bağlı servo3/GPIO 05 # diğerlerine: GPIO 6 servo1, 12'de servo4 aiy.audio.say("Merhaba!",) aiy.audio.say("Başlamak için elinizi sensöre yaklaştırın",) iken True: led0.on() # LED'ler on print("Ses tanımayı etkinleştirmek için elinizi mesafe sensörüne yaklaştırın, sonra konuşun") print('Beklenen anahtar kelimeler: eller/sol/sağ yukarı/aşağı/orta, ') print('LED açık/kapalı, dans et ve hoşçakal.') print() Distance.wait_for_press() print('Dinleniyor…') aiy.audio.say("Lütfen siparişlerinizi verin",) led0.blink() # light yanıp sönen metin = tanıyıcı.recognize() metin Yok ise: aiy.audio.say('Üzgünüm, sizi duymadım.',) else: print('", metin, '"') # İzin verir metinde 'sağ yukarı' ise sistem yorumunu kontrol edin: print('Servo0'u maksimum konuma taşımak') servo0.angle=35 elif metinde 'sağ aşağı': print('Servo0'u hareket ettirmek minimum konuma') servo0.angle=-35 elif metinde 'Sağ Merkez': #correct büyük harfler kritiktir print('Servo0'u orta konuma taşımak') servo0.angle=0 elif metinde 'sol yukarı': print(' servo2'yi maksimum konuma taşıma') servo2.angle=-35 elif metinde 'sol aşağı': print('Servo2'yi minimum konuma taşıma') servo2.angle=35 elif metinde 'sol Merkez': print('Servo2'yi şu konuma taşıma orta konum') servo2.angle=0 elif metinde 'eller yukarı': print('Servo2'yi maksimum konuma taşıma') servo2.angle=-35 servo0.angle=35 elif metinde 'eller aşağı': print('Hareketli servo2 minimum konuma') servo2.angle=35 servo0.angle=-35 elif metinde 'eller Merkez': print('Servo2'yi orta konuma taşıma') servo2.angle=0 servo0.angle=0 elif 'LED kapalı' metinde: print ('harici LED 0'ı kapatmak') led0.off() elif 'LED açık' metinde: print ('harici LED 0'ı açmak') led0.on() # light elif 'dansı' metinde: print ('şimdi bir numaralı dansı gerçekleştiriyor') aiy.audio.say("Eh, elimden geleni yapacağım!",) led0.on() # ışıklar yanıyor (3) aralığındaki i için: servo0.açı=0 servo2.açı=0 uyku(1) servo0.açı=35 servo2.açı=-35 uyku(1) servo0.açı=0 servo2.açı=-35 uyku(1) servo0.angle=-25 servo2.angle=0 uyku(1) servo0.angle=30 servo2.angle=20 uyku(1) servo0.angle=0 servo2.angle=0 led0.off() # light off elif Metinde 'güle güle': aiy.audio.say("Güle güle",) aiy.audio.say('Arrivederci',) aiy.audio.say('Auf Wiedersehen',) servo0.angle=0 servo2.angle=0 led0.off() uyku (3) print('güle güle!') break else: print('anahtar kelime tanınmadı!') aiy.audio.say("Üzgünüm, sizi anlamadım",) if _name_ == ' _Ana ana()
Önerilen:
Konuşkan Otomasyon -- Arduino'dan Ses -- Ses Kontrollü Otomasyon -- HC - 05 Bluetooth Modülü: 9 Adım (Resimli)
Konuşkan Otomasyon || Arduino'dan Ses || Ses Kontrollü Otomasyon || HC - 05 Bluetooth Modülü:…………………………… Daha fazla video için lütfen YouTube kanalıma ABONE OLUN…. …. Bu videoda Konuşkan Otomasyon kurduk.. Mobilden sesli komut göndereceğiniz zaman ev cihazlarını açıp geri bildirim gönderecektir
Jumping-Jack Sayacı: 3 Adım
Zıplama Vale Sayacı: Zıplama krikolarımı saymanın ve zıplama krikolarını önceden oluşturduğumda kendimi devam etmeye teşvik etmenin bir yolunu istedim, bu yüzden bir zıplamayı her tamamladığımda Super Mario Brothers'tan bir zil sesi çıkaran bir zıplayan jack sayacı yarattım
Wiggly Wobbly - Ses Dalgalarını Görün !! Gerçek Zamanlı Ses Görüntüleyici !!: 4 Adım
Wiggly Wobbly - Ses Dalgalarını Görün !! Gerçek Zamanlı Ses Görüntüleyici !!: Hiç Beetle şarkılarının nasıl göründüğünü merak ettiniz mi? Ya da sadece bir sesin nasıl göründüğünü görmek mi istiyorsunuz? O zaman endişelenmeyin, bunu yapmanıza yardımcı olmak için buradayım !!!Hoparlörünüzü yüksek tutun ve soluk olanı hedefleyin
Ses/Ses Seviyesi Göstergesi: 10 Adım
Ses/Ses Düzeyi Göstergesi: Bu projede, işlemsel yükselteçler kullanarak basit bir ses düzeyi göstergesinin nasıl oluşturulacağını göstereceğim. Not: Soru sormak için lütfen Uzmana Sor adresindeki sitemi ziyaret edin. Faydalı Ek Videolar: Bir Ekmek Tahtası Üzerine Kurulan Simüle Devre (Proto-
MIDI Adım Arayüzü (En Español versiyonu): 12 Adım
MIDI Adım Arayüzü (Español sürümü): Sürümün en İngilizce'si, en çok eğitilebilir ve platformaforma etkileşimli bir etkileşim içindedir. Ambos modos operados con los turtalar!Önceki