İçindekiler:
- Adım 1: Malzemeler
- Adım 2: Yazılımı Yükleme
- Adım 3: İvmeölçerin Takılması
- Adım 4: Esnek Sensörlerin Takılması
- Adım 5: Max ile Arayüz Oluşturma
- Adım 6: Max Kodun Geri Kalanını Oluşturma
- Adım 7: Kelimenin Tam Anlamıyla Her Şeyi Bir Araya Getirmek
Video: Giyilebilir Teknoloji: Sesi Değiştiren Eldiven: 7 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Görünüşe göre inanılmaz güçleri olan eldivenler bugünlerde çok revaçta. Thanos'un Infinity Gauntlet oldukça güçlü bir eldiven olsa da, daha da dikkat çekici bir şey yapabilecek bir eldiven yapmak istedik: kullanıcının sesini gerçek zamanlı olarak değiştirmek.
Bu Eğitilebilir Tablo, sesi değiştiren bir eldiveni nasıl tasarladığımızın bir özetini sunar. Tasarımımız, bir Arduino kodu aracılığıyla bir Max yamasına gönderilen hareketleri algılamak için eldivende çeşitli sensörler ve bir mikro denetleyici kullandı; burada ses sinyalimiz daha sonra değiştirilip eğlenceli şekillerde bozuldu. Kullandığımız belirli sensörler, hareketler ve ses değişikliklerinin tümü farklı hususlar için esnektir; bu, sesi değiştiren bir eldiven yaratmanın sadece bir yolu!
Bu proje, Pomona Koleji öğrencileri ve Fremont Mühendislik Femineers Akademisi arasındaki topluluk ortaklığının bir parçasıydı. Elektronik mühendisliği ve elektronik müzik öğelerinin gerçekten eğlenceli bir karışımı!
Adım 1: Malzemeler
Parçalar:
- HexWear Mikrodenetleyici (ATmega32U4) (https://hexwear.com/)
- MMA8451 İvmeölçer (https://www.adafruit.com/product/2019)
- Kısa Flex Sensörler (x4) (https://www.adafruit.com/product/1070)
- Hafif koşu eldiveni
- #2 vida ve pullar (x8)
- Kıvrımlı terminal konektörleri; 22-18 ayar (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100pk)
- 50kΩ direnç (x4)
- Tel (~20 ölçü)
- Kendinden yapışkanlı emniyet pimi
- Keçe veya başka bir kumaş (~10 sq. inç)
- Dikiş ipliği
- fermuarlar
- dizüstü bilgisayar
- USB Mikrofon
Aletler
- Lehimleme kiti
- Tel sıyırıcılar ve tel kesiciler
- Elektrik bandı
- Sıcak hava silahı
- Tornavida
- Makas
- Dikiş iğnesi
Yazılım:
- Max by Cycling '74 (https://cycling74.com)
- Arduino yazılımı (https://www.arduino.cc/en/Main/Software)
Adım 2: Yazılımı Yükleme
Herhangi bir projenin gerçekten en heyecan verici kısmıyla başlıyoruz: kütüphaneler kurmak (ve daha fazlası).
Arduino:
Arduino yazılımını indirin ve kurun (https://www.arduino.cc/en/Main/Software).
Altıgen Aşınma:
1) (Yalnızca Windows, Mac kullanıcıları bu adımı atlayabilir) https://www.redgerbera.com/pages/hexwear-driver-installation adresini ziyaret ederek sürücüyü yükleyin. Sürücüyü indirin ve kurun (bağlantılı RedGerbera sayfasının en üstünde Adım 2'de listelenen.exe dosyası).
2) Hexware için gerekli kütüphaneyi kurun. Arduino IDE'yi açın. "Dosya"nın altında "Tercihler"i seçin. Ek Pano Yöneticisi URL'leri için sağlanan alana yapıştırın
github.com/RedGerbera/Gerbera-Boards/raw/master/package_RedGerbera_index.json.
Ardından "Tamam" ı tıklayın.
Araçlar -> Pano: -> Pano Yöneticisi'ne gidin. Sol üst köşedeki menüden "Katkıda Bulunanlar"ı seçin.
Arayın ve ardından Gerbera Boards'a tıklayın ve Install'a tıklayın. Arduino IDE'den çıkın ve yeniden açın.
Kitaplığın doğru şekilde kurulduğundan emin olmak için Araçlar -> Pano'ya gidin ve menünün en altına gidin. Altında en azından HexWear'ın (mini-HexWear gibi daha fazla pano değilse) görünmesi gereken “Gerbera Boards” başlıklı bir bölüm görmelisiniz.
ivmeölçer:
İvmeölçer kitaplığını indirin ve kurun (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)
Adım 3: İvmeölçerin Takılması
Bu projeyle etkileşimde bulunmak için iki ana sensör tipine ihtiyacımız var: bir ivmeölçer ve esnek sensörler. Bunları ivmeölçerden başlayarak teker teker inceleyeceğiz. İlk olarak, eşleştirmek için donanım bağlantılarına ihtiyacımız var.
Hex'inize zarar vermemek için, 2 numaralı vidayı ve rondelayı istenen bağlantı noktalarından geçirmenizi ve ardından tüm bağlantıları bu vidaya takmanızı öneririz. Eldivenle oynarken herhangi bir şeyin gevşemesini önlemek için bağlantılar lehimlenmeli ve/veya kıvrılmalıdır. Her bağlantı için birkaç inç tel kullanarak, Hex'ten ivmeölçere aşağıdaki bağlantıları yapın (referans için yukarıdaki pin çıkışlarına bakın):
GİRİŞ GERİLİMİ VINGROUND GNDSCL/D3 SCLSDA/D2 SDA
Her şey bağlıyken, test etmeye hazırız!
Bir test olarak, Arduino'da ivmeölçer örnek kodunu çalıştırın (Dosya->Örnekler->Adafruit_MMA8451->MMA8451demo), Seri monitöre çıktı verebildiğinden emin olun. Düz tutulduğunda yerçekimi ivmesini (~10m/s) z yönünde vermelidir. İvmeölçeri eğerek, bu ivme x veya y yönünde ölçülecektir; Bunu, kullanıcının elini çevirerek sesi değiştirmesine izin vermek için kullanacağız!
Şimdi ivmeölçer verilerini Max ile arayüzlenebilecek şekilde sunmamız gerekiyor. Bunu yapmak için, belki de istenen aralığa uyacak şekilde değiştirilmiş x ve y değerlerini yazdırmalıyız (bkz. Bölüm 6). Buraya ekli kodumuzda aşağıdakileri yapıyoruz:
//x-yönünü ve y-yönünü ölçün. MAX için doğru aralıklara ulaşmak için böler ve çarparız (x cinsinden 1000 aralığı ve y cinsinden 40 aralığı) xdir = event.acceleration.x/0.02; ydir = abs(event.acceleration.y)*2; //Her şeyi Max için okunabilir bir biçimde yazdırın - her sayı arasında boşluk bırakarak Serial.print(xdir); Seri.print(" ");
Bu, her satırda ivmeölçerin x ve y yönlerinin değiştirilmiş değerlerini basan Hex'e sahip olmalıdır. Artık esnek sensörleri eklemeye hazırız!
Adım 4: Esnek Sensörlerin Takılması
Eğer bükülen parmakları tespit edebilirsek, kullanıcı çok sayıda potansiyel ses kontrolü elde edebilir. Esnek sensörler tam da bunu yapacak. Her bir esnek sensör esasen bir potansiyometredir, burada bükülmemiş ~ 25KΩ, tamamen bükülmüş ise ~ 100KΩ dirence sahiptir. Her bir esnek sensörü, ilk resimde gösterildiği gibi 50K dirençli basit bir voltaj bölücüye yerleştirdik.
Yine oldukça kısa kablo uzunlukları kullanarak (bunların hepsinin bir eldivenin arkasına sığacağını unutmayın), dört voltaj bölücü modülü lehimleyin. Dört modül aynı Vin'i ve toprağı paylaşacak - tellerin soyulmuş uçlarını birlikte büktük, böylece lehim için sadece bir ucumuz olacak. Son olarak, dört modülü alın ve ikinci resimde gösterilen bağlantıları yapın (bunu korkunç bir karışıklık yaratmadan nasıl yapacağını bilen varsa, lütfen sırlarınızı açıklayın).
Şimdi, her sensörden gelen voltajları okumak için Arduino koduna ihtiyacımız var. Amaçlarımız için esnek sensörleri anahtarlar olarak ele aldık; ya açık ya da kapalıydılar. Bu nedenle, kodumuz basitçe bir voltaj eşiği belirler - bu eşiğin üzerinde, Seri bağlantı noktasına 1 veririz (sensörün büküldüğü anlamına gelir), aksi takdirde 0 veririz:
// bir dizi al
analog örnekler ve bunları her Flex sensörü için ekleyin
while (örnek_sayısı < NUM_SAMPLES) {
sum10 += analogRead(A10);
sum9 += analogRead(A9);
sum7 += analogRead(A7);
sum11 += analogRead(A11);
örnek_sayısı++;
// Çok hızlı almamak için kısa gecikme
gecikme(5);
}
// voltajı hesapla, hızlı numuneler üzerinden ortalama alma
// 5.0V ADC için 5.0 kullanın
referans voltajı
// 5.015V kalibre edilmiş
referans voltajı
voltaj10 = ((kayan)toplam10 /
(kayan)NUM_SAMPLES * 5.015) / 1024.0;
voltaj9 = ((kayan)toplam9/
(kayan)NUM_SAMPLES * 5.015) / 1024.0;
voltaj7 = ((kayan)toplam7 /
(kayan)NUM_SAMPLES * 5.015) / 1024.0;
voltaj11 = ((kayan)toplam11 /
(kayan)NUM_SAMPLES * 5.015) / 1024.0;
//Her bir esnek sensörün olup olmadığını kontrol edin
eşikten daha büyük (eşik) - öyleyse, sayıyı ayarlayın
//Küçük parmak
if (voltaj10 > harman)
{
//-5 yükseltmek
bir oktav ses perdesi
esnek10 = -10;
}
başka esnek10 = 0;
//Yüzük parmağı
if (voltaj9 >
(eşik-0.4)) {
//5 daha düşük
bir oktav ses perdesi
esnek9 = 5;
}
başka esnek9 = 0;
//Orta parmak
if (voltage7 > thresh) {
// ayarlamak için
yankı efekti
esnek7 = 1;
}
başka esnek7 = 0;
//İşaret parmağı
if (voltage11 > harman)
{
// 50 ayarlamak için
50'ye kadar döngü
esnek11 = 93;
}
başka esnek11 = 0;
// Tüm sayımı sıfırla
sonraki döngü için 0'a değişken
örnek_sayısı = 0;
toplam10 = 0;
toplam9 = 0;
toplam7 = 0;
toplam11 = 0;
Bu noktada, Seri port, ivmeölçer oryantasyonu için değerleri ve ayrıca her bir esnek sensörün bükülüp bükülmediğini göstermelidir. Arduino kodumuzu Max ile konuşmaya hazırız!
Adım 5: Max ile Arayüz Oluşturma
Artık Hex kodu Seri bağlantı noktasından çok sayıda sayı tükürdüğüne göre, bu sinyalleri okumak için Max yazılımına ihtiyacımız var. Yukarıda resmedilen kod bloğu tam da bunu yapıyor! Çok rica ederim.
Önemli not: Kodu Hex'e yükledikten sonra, tüm seri bağlantı noktası pencerelerini kapatın, ardından Max kodundaki daire içine alınmış harfi Hex bağlantı noktasına uyacak şekilde değiştirin. Hangi harfi ayarlayacağınızdan emin değilseniz, Max kodunun "yazdır" kısmına basmak tüm bağlı portları listeleyecektir.
Hex'in seri bağlantı noktasından yazdırılan satır, Max kod bloğu aracılığıyla okunur ve ardından boşluk sınırlayıcılara göre bölünür. Max bloğunun sonundaki çıktı, her bir sayıyı tek tek yakalamanıza izin verir, bu nedenle ilk çıktı alanını ivmeölçerin x yönünün gitmesini istediğimiz yere bağlayacağız, ikinci boşluk y yönü olacak, vb. şimdi, çalıştıklarından emin olmak için bunları sayı bloklarına bağlayın. İvmeölçer ve esnek sensörleri hareket ettirebilmeli ve Max yazılımında sayıların değiştiğini görebilmelisiniz.
Adım 6: Max Kodun Geri Kalanını Oluşturma
Max dilinin gücü göz önüne alındığında, sihirli güç eldiveninizle gelen ses sinyalini değiştirebileceğiniz tüm yollarla burada hayal gücünüzü gerçekten serbest bırakabilirsiniz. Yine de, fikirleriniz tükenirse, yukarıda Max kodumuzun ne yaptığı ve nasıl çalıştığının bir özeti bulunmaktadır.
Değiştirmeye çalıştığınız her parametre için, muhtemelen doğru hassasiyeti elde etmek için Arduino kodundan gelen değer aralığıyla uğraşmak isteyeceksiniz.
Diğer bazı Max sorun giderme ipuçları:
-
Ses duymuyorsanız
- Max'in mikrofonunuzdan ses alacak şekilde ayarlandığından emin olun (Seçenekler Ses Durumu Giriş Aygıtı)
- Max'teki Master Volume kaydırıcısının açık olduğundan ve kodunuzda olabilecek diğer ses kontrollerinin açık olduğundan emin olun.
- Kod hiçbir şey yapmıyor gibi görünüyorsa
- yamanızın kilitli olduğundan emin olun (sol alt köşedeki kilit sembolü)
- Max yamadaki okumalar aracılığıyla, Max yamanızın hala Arduino seri bağlantı noktasından veri aldığından emin olun. Değilse, seri bağlantı noktasını sıfırlamayı deneyin (5. Adımda özetlendiği gibi) ve/veya fiziksel kablo bağlantılarınızı kontrol edin.
-
Parametreleri değiştirirken garip kırpma sesleri
bu, ~tapin ve ~tapout'un nasıl çalıştığıyla ilgili bir şeydir; özellikle, değerlerini değiştirdiğinizde sıfırlanırlar ve bu da kırpılmaya neden olur. Programla ilgili sınırlı bilgimiz göz önüne alındığında, bunu Max'te yapmanın ve sorunu ortadan kaldırmanın daha iyi bir yolu olduğundan neredeyse eminiz…
Adım 7: Kelimenin Tam Anlamıyla Her Şeyi Bir Araya Getirmek
Şimdi geriye kalan tek şey devremizi eldivenimize bağlamak. Ek kumaşınızı alın ve esnek sensörlerden biraz daha büyük şeritler kesin. Ek kumaşı, bükülme sensörünün oturması için bir tür manşon bırakarak, parmak ekleminin büküldüğü yere eldivenin parmağına dikin (esnek sensörleri doğrudan eldivene yapıştıramayız çünkü parmaklar büküldükçe eldiven kumaşı esner). Kol çoğunlukla dikildikten sonra, esnek sensörü içeri kaydırın ve esnek sensörü yerine sabitleyerek uçları eldivene dikkatlice dikin. Bunu her esnek sensör için tekrarlayın.
Ardından, Hex'i eldivenin arkasına tutturmak için kendinden yapışkanlı emniyet pimini kullanın (aşınma sırasında çözülmediğinden emin olmak için pimin üzerine biraz sıcak tutkal koymak isteyebilirsiniz). İvmeölçeri eldivenin bileğine dikin. Son olarak, göze hoş gelmeyen kabloları güzelce temizlemek için fermuarlı bağların büyüsünü kullanın.
Nihai şarkı söyleme gücü eldiveninizi test etmeye hazırsınız! (Ses değiştirme yeteneklerinizi tam olarak göstermek için Daft Punk'ın "Harder Better Faster Stronger"ını şiddetle tavsiye edebilir miyiz?)
Önerilen:
Parkinson Hastalığı Giyilebilir Teknoloji: 4 Adım
Parkinson Hastalığı Giyilebilir Teknoloji: Dünya çapında 10 milyondan fazla insan Parkinson hastalığı (PD) ile yaşıyor. Sertliğe neden olan ve hastanın hareketini etkileyen ilerleyici bir sinir sistemi bozukluğu. Daha basit bir ifadeyle, birçok insan Parkinson hastalığından muzdaripti ama
Giyilebilir Teknoloji Final Projesi - DJ Kaskı: 6 Adım
Giyilebilir Teknoloji Final Projesi - DJ Kaskı: Bu projenin amacı, gösteri ve wow faktörü için müziğe tepki veren LED'li bir DJ kaskı yapmaktır. Amazon.com'dan adreslenebilir bir LED şeridin yanı sıra bir motosiklet kaskı, bir Arduino uno ve tel kullanıyoruz
Çocuklar için Giyilebilir Teknoloji: Kahraman Kol Bandı: 4 Adım
Çocuklar için Giyilebilir Teknoloji: Kahraman Kol Bandı: Bu talimat, giyildiğinde yanan bir 'kahraman kol bandının' nasıl yapıldığını ele alacaktır. İletken kumaş bant, iletken iplik ve dikilebilir LED'lerin kullanıldığı bu etkinlik, okul öğrencilerinin devrelerin ve giyilebilir teknolojinin temellerini öğrenmeleri için harika bir aktivitedir.
Giyilebilir Teknoloji: Hava Davulları: 5 Adım
Giyilebilir Teknoloji: Hava Davulları: Bu projedeki amacımız, bazı ivmeölçerler ve piezo disklerden giyilebilir bir bateri seti yapmaktı. Fikir, bir elin vurulması durumunda bir tuzak sesinin çalmasıydı; veya bir ayağa basıldığında, bir hi-hat veya bas davul sesi çalınır. Kontrol etmek
Infigo - (Yapay Zeka Destekli Giyilebilir Eldiven): 9 Adım
Infigo - (Yapay Zeka Destekli Giyilebilir Eldiven): Infigo, engelli toplumun üretkenliğini artıracak Yardımcı Teknoloji (AT) ilkelerine dayanan, AI (Yapay Zeka) ile güçlendirilmiş bir giyilebilir eldivendir.