İçindekiler:
Video: Vibrotactile Duyusal Yer Değiştirme ve Büyütme Cihazı (SSAD): 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
Bu proje, Duyusal Yer Değiştirme ve Büyütme alanındaki araştırmaları kolaylaştırmayı amaçlamaktadır. Yüksek lisans tezimde vibrotaktil SSAD prototipleri oluşturmanın farklı yollarını keşfetme olanağım oldu. Duyusal Yer Değiştirme ve Büyütme, yalnızca bilgisayar bilimcilerini değil, aynı zamanda bilişsel bilim gibi diğer alanlardan araştırmacıları da ilgilendiren bir konu olduğundan, adım adım bir talimat, elektronik ve bilgisayar bilimlerinde uzman olmayanların bu prototipi kendi başlarına bir araya getirmelerini sağlamalıdır. Araştırma nedenleri.
Tek bir marka/ürün için reklam yapmak niyetinde değilim. Bu proje herhangi bir şirket tarafından desteklenmedi. Kullandığım malzeme teknik özellikler ve kolaylık (hız/teslimat maliyeti, bulunabilirlik vb.) nedeniyle seçildi. Bu Talimatta belirtilen tüm ürünler için eşit derecede uygun alternatifler mevcuttur.
Mevcut Instructable, 4 adede kadar motor ve analog sensör ile temel bir SSAD prototipinin nasıl oluşturulacağına dair adım adım talimatlar içerir.
Bu Eğitilebilir Dosyaya ek olarak üç uzantı oluşturdum: İlk olarak, bu SSAD prototipiyle dörtten fazla motorun nasıl kullanılacağına ilişkin talimatlar yayınladım (https://www.instructables.com/id/Using-More-Than-4…). İkinci olarak, bu prototipin nasıl giyilebilir hale getirileceğine (https://www.instructables.com/id/Making-the-SSAD-W…) ve kapsüllenmiş döner kütlesi olmayan ERM motorlarının nasıl kaplanacağına (https:/ /www.instructables.com/id/Covering-Rotating…). Ayrıca, analog sensörler dışındaki sensörlerin (bu durumda bir yakınlık sensörleri) prototipe nasıl entegre edileceğine dair bir örnek de yayınlanmıştır (https://www.instructables.com/id/Including-a-Proxi…).
"Duyusal Yer Değiştirme ve Büyütme" nedir?
Duyusal Değiştirme ile bir duyusal modalite (örneğin görme) tarafından toplanan bilgiler başka bir duyu (örneğin ses) aracılığıyla algılanabilir. İnsanların duyusal kayıp veya bozulmanın üstesinden gelmesine yardımcı olan umut verici bir non-invaziv tekniktir.
Çevrilen duyusal uyaran normalde insanlar tarafından algılanamıyorsa (örneğin UV ışığı), bu yaklaşıma Duyusal Artırma denir.
Bu prototipi oluşturmak için hangi becerilere ihtiyaç var?
Temel olarak, aşağıda verilen talimatları takip etmek için gelişmiş programlama becerilerine gerek yoktur. Bununla birlikte, lehimleme konusunda yeniyseniz, bu tekniği öğrenmek için fazladan zaman planlayın. Daha önce hiç programlama yapmadıysanız, programlama konusunda daha deneyimli birinden yardım almanız gerekebilir.
Pahalı veya kolayca bulunamayan gerekli makineler veya aletler var mı?
İnternetten veya bir sonraki ev mağazasından kolayca satın alamayacağınız bu prototipi oluşturmak için havya dışında hiçbir makine veya alet gerekmez. Bu SSAD, hızlı prototip oluşturmaya izin verecek şekilde tasarlanmıştır; bu, hızlı bir şekilde yeniden üretilebilir olması ve fikirlerin ucuz bir şekilde keşfedilmesine olanak sağlaması gerektiği anlamına gelir.
Gereçler
Ana bileşenler (4 motor için yaklaşık 65 £, lehimleme ekipmanı hariç)
- Arduino Uno (ör. https://store.arduino.cc/arduino-uno-rev3, 20£)
- Adafruit Motorshield v2.3 (ör. https://www.adafruit.com/product/1438, 20£) ve erkek istifleme başlıkları (normalde motor kalkanı satın alırken dahildir)
- Silindirik ERM motorları (ör. https://www.adafruit.com/product/1438, 5, 50£ / motor)
- Havya ve havya teli
- teller
İsteğe bağlı (bkz. Uzantılar)
ERM motoru açıkta dönen kütleli satın alınırsa:
- vinil tüp
- İnce yumuşak tahta
- 3D yazıcı (Arduino kasası için)
4'ten fazla motor kullanmak istiyorsanız (8'den fazla aynı zaman için):
- Adafruit Motorshield v2.3 ve erkek istifleme başlıkları
- Dişi istifleme başlıkları (ör.
- 6'dan fazla motor için Arduino Mega (ör.
Adım 1: Lehimleme
Pimleri motor kalkanına lehimleyin
Adafruit, başlıkların bir motor kalkanına nasıl lehimleneceğine dair çok kapsamlı bir eğitim sunuyor (https://learn.adafruit.com/adafruit-motor-shield-v…):
- Öncelikle stacking başlıklarını Arduino Uno üzerindeki pinlere yerleştirin,
- Ardından, koruyucuyu pimlerin kısa tarafı dışarı çıkacak şekilde üstüne yerleştirin.
- Bundan sonra, tüm pimleri kalkana lehimleyin ve lehimin pimin etrafından aktığından ve bir yanardağ şekli oluşturduğundan emin olun (https://cdn.sparkfun.com/assets/c/d/ adresinden alınan yukarıdaki resme bakın) a/a/9/523b1189…).
Lehimlemeye yeni başlıyorsanız, https://learn.sparkfun.com/tutorials/how-to-solder… gibi daha fazla öğretici ile kendinize yardımcı olun.
Daha uzun kabloları motora lehimleyin
Motorların çoğu telsiz veya çok kısa ve ince tellerle geldiğinden, onları daha uzun ve daha sağlam tellere lehimleyerek uzatmak mantıklıdır. Bunu şu şekilde yapabilirsiniz:
- Tellerin ucundaki plastiği çıkarın ve resimdeki gibi açıktaki teller boyunca birbirleriyle temas edecek şekilde konumlandırın.
- Her iki telin dişlerine dokunarak ve lehimin üzerlerinden akmasına izin vererek bunları birbirine lehimleyin.
Adım 2: Kablolama
- Arduino'nun üzerine motor kalkanı yerleştirin.
- Motorları motor muhafazasına vidalayın.
- Analog sensörleri Arduino'ya bağlayın (resimde bu, ışık sensörleriyle yapılır, ancak aynı devre diğer analog sensörler için aynı görünüyor).
Adım 3: Kodlama
1. İndir
Aşağıda eklenmiş olan zip klasörünü (SSAD_analogueInputs.zip) indirin. Açın.
Arduino IDE'yi indirin (https://www.arduino.cc/en/main/software).
Açılan klasörün içindeki Arduino dosyasını (SSAD_analogueInputs.ino) Arduino IDE ile açın.
2. Kitaplıkları Yükleyin
Sağlanan kodu çalıştırmak için bazı kütüphaneler kurmanız gerekir. Bu nedenle, bu makalenin sonunda ekli olan Arduino dosyası Arduino IDE'nin içinde açıksa aşağıdakileri yapın:
- Tıklayın: Araçlar → Kitaplıkları Yönet…
- Aramanızı filtreleyin alanında "Adafruit Motor Shield V2 Kitaplığı" arayın
- Yükle Düğmesine tıklayarak yükleyin
Bu kitaplıkları indirdikten sonra, şimdi sağlanan kodlardaki #include ifadeleri çalışmalıdır. "Doğrula" Düğmesine tıklayarak bunu kontrol edin (Sol üstteki işaretleyin). Programın en altında "Derleme tamamlandı" mesajını alırsanız, tüm kütüphanelerin çalıştığını bilirsiniz. Aksi takdirde kırmızı bir çubuk görünür ve neyin yanlış gittiğine dair bir mesaj alırsınız.
3. Kodu Değiştirin
Aşağıdaki talimatları izleyerek kodu kullanım durumunuza göre değiştirin:
Başlatma Motorları ve Duyusal Çıktıları
Her şeyden önce, motorların hangi pimleri kullandığını ve ayrıca motorların hangi aralıkta çalıştığını belirtin. Örneğin, M4'e bağlı ve (hız) 25 ile 175 aralığında çalışan bir motor şu şekilde bildirilir (ANA yorumun altında):
Motor motor1 = Motor(4, 25, 175);
3V'a kadar bir aralıkta sürülen küçük titreşim motorlarıyla çalışırken, motor koruması 4.5VDC ila 13.5VDC arasında çalışan motorlar için yapıldığından dikkatli kullanılmalıdır. 3V motorlara zarar vermemek için, blendajın Volt çıkışını programlı olarak maksimum 3V (tam olarak 2.95V) ile sınırlandırdım. Bunu, 255'in maksimum hızının Volt cinsinden ne kadar olduğunu ölçerek yaptım ve bunun 4.3V olduğunu bir multimetre ile ölçtüm. Bu nedenle motorlara asla 175'ten, yani yaklaşık 3V'dan daha yüksek bir hıza izin vermedim.
Her motor bir SensoryOutput ile bağlanacaktır.
Bir Duyusal Çıktı, bir veya daha fazla duyusal uyarandan oluşur. Örneğin, bir motor ya tek bir sensöre göre titreşebilir ya da birden çok, farklı şekilde konumlandırılmış sensörün ortalamasına göre titreşebilir.
Bu nedenle öncelikle her motor için bir SensoryOutput bildirilmelidir. Parantez içindeki sayılar sensörün (grubun) algılayabileceğinin minimum ve maksimum değeridir. Analog sensörler için bu çoğunlukla 0 ve 1023'tür:
DuyusalÇıkış çıkışı1 = DuyusalÇıkış(0, 1023);
loop() işlevinde her motor daha sonra bir çıkış değerine atanır. Buraya her motor için aşağıdaki ifadeyi yazın ve "output1" yerine SensoryOutput değeri ne olursa olsun ona bağlanın. Bunun için başka bir ad kullanıyorsanız, bu satırdaki tüm "çıkış1" adlarını da değiştirmeyi unutmayın.
motor1.drive(output1.getValue(), output1.getMin(), output1.getMax());
İsterseniz birden fazla motora (ör. motor1 ve motor2) aynı Duyusal Çıkışı (ör. çıkış1) verebilirsiniz.
Ayrıca, bir motora birden fazla sensörün değerlerini verebilirsiniz (bir sonraki bölüme bakın).
Sensörleri Tanımlama
setup() işlevinde, hangi sensörlerin hangi motor titreşiminin (SensoryOutput) parçası olacağı bildirilmelidir. Arduino Pin A0'a bağlı sensörün motor1 ve dolayısıyla çıkış1 ile titreşimlere dönüştürülmesi gerektiğini nasıl tanımladığınıza bir örnek:
çıktı1.include(A0);
Bir motor titreşiminde birden fazla duyusal çıkışın birleştirilmesi gerekiyorsa, çıkış1'e başka bir analog giriş pini ekleyebilirsiniz:
çıktı1.include(A1);
Aksi takdirde, bir sonraki çıktıyla devam edin:
çıktı2.include(A1);
Birden Fazla Sensörü Birleştirme
Yukarıda bahsedildiği gibi, birden fazla sensör girişi (örn. A0, A1 ve A2'den) bir motora yönlendirilebilir. Sağladığım kod, dahil edilen tüm sensörler tarafından okunan değerlerin ortalamasını hesaplıyor. Bu nedenle, kullanım durumunuz için bu yeterliyse ve örneğin düşük bir duyusal girdiyi düşük bir titreşime doğrudan eşlemek istiyorsanız, işiniz bitti ve aşağıdakileri düşünmek zorunda değilsiniz:
Bununla birlikte, bir veya daha fazla ham duyusal girdiyle ne yapmak istediğinize dair başka fikirleriniz varsa, SensoryOutput sınıfındaki int getValue() işlevindeki değişikliklere göre yapabilirsiniz:
int getValue(){
finalOutput = 0; // TODO duyusal değerlerle ne istersen yap // burada birden fazla değer birleştirilirse ortalama oluşturulur for (int i = 0; i < curArrayLength; i++) { finalOutput += analogRead(valueArray); } finalOutput / curArrayLength döndür; }
4. Kodu Arduino Prototipinize Yükleyin
Arduino Prototipini (2. Adımdan) PC'nize takın.
Araçlar → Bağlantı Noktası → Arduino/Genuino Uno'nun parantez içinde yazıldığı Bağlantı Noktasını Seç'i tıklayın.
Araçlar → Anakart → Arduino/Genuino Uno'ya tıklayın
Artık motorlar analog sensörlerin girişlerine göre çalışmalıdır. İsterseniz Arduino'yu PC'nizden ayırabilir ve 9V pil gibi başka bir güç kaynağına takabilirsiniz.
4. Adım: Olası Uzantılar
Yeni oluşturduğunuz prototip, yalnızca analog girişlere izin verir ve dört adede kadar motoru çalıştırabilir. Ayrıca, henüz giyilebilir değil. Bu özellikleri genişletmek istiyorsanız, aşağıdaki talimatlara göz atın:
- ERM Motorlarının Dönen Kütlelerini Kapatma:
- SSAD'yi Giyilebilir Hale Getirmek:
- 4'ten Fazla Motor Kullanma - Birden çok motor kalkanını istifleme:
- SSAD girişi olarak bir ultrasonik yakınlık sensörü kullanma:
Önerilen:
Duyusal Boyama: 5 Adım
Duyusal Resim: Duyusal Resim, tüm proyecto diseñado para que alguien no vidente pueda pintar veya dibujar dentro de bordes que uno pueda sınırlayıcı. En este caso utilizaremos ve Kultrun de la cultura ve pueblo mapuche. SP te avisará mediante sonidos de un Trompe,
Duyusal Duvar: 6 Adım
Duyusal Duvar: Duyusal Duvar, stresi azaltmanıza ve dokunuş, renkli ışık ve sesle ruh halinizi iyileştirmenize yardımcı olmak için tasarlanmış etkileşimli bir heykeldir. Kaygıyı azaltmaya yardımcı olmak için evlere, okullara veya çalışma alanlarına yerleştirilebilir. Halka kişisel bir deneyim sunmak
Kedi Bıyığı Duyusal Uzatma Giyilebilir (2.0): 6 Adım (Resimlerle)
Kedi Bıyığı Duyusal Uzatma Giyilebilir (2.0): Bu proje, eski iş arkadaşımın (metaterra) "Bıyık Duyusal Uzatma Giyilebilir" projesinin devamı ve yeniden tasavvur edilmesidir. Bu projenin amacı, yeni, hesaplama açısından zenginleştirilmiş “duyusal uzantıların” yaratılmasına odaklanmaktı
IPhone 6 Plus Pil Değiştirme: Dahili Pili Değiştirme Kılavuzu: 12 Adım (Resimlerle)
IPhone 6 Plus Pil Değiştirme: Dahili Pili Değiştirme Kılavuzu: Merhaba arkadaşlar, bir süre önce bir iPhone 6 pil değiştirme kılavuzu hazırladım ve pek çok kişiye yardımcı oldu gibi görünüyor, bu yüzden işte iPhone 6+ için bir kılavuz. iPhone 6 ve 6+, bariz boyut farkı dışında temelde aynı yapıya sahiptir. var
3 'AA' Pil Kullanan Altoids IPOD Şarj Cihazı Değiştirme Modu: 7 Adım
Anahtar Modu Altoids IPOD Şarj Cihazı 3 'AA' Pil Kullanarak: Bu projenin amacı, 3 adet (şarj edilebilir) 'AA' pil ile çalışan verimli bir Altoids teneke iPod (firewire) şarj cihazı oluşturmaktı. Bu proje, PCB tasarımı ve yapımı konusunda Sky ile ortak bir çaba olarak başladı ve ben devre ve ilk