İçindekiler:

Titreşim Geri Beslemeli Uzatılabilir Düğme Uygulaması: 7 Adım (Resimlerle)
Titreşim Geri Beslemeli Uzatılabilir Düğme Uygulaması: 7 Adım (Resimlerle)

Video: Titreşim Geri Beslemeli Uzatılabilir Düğme Uygulaması: 7 Adım (Resimlerle)

Video: Titreşim Geri Beslemeli Uzatılabilir Düğme Uygulaması: 7 Adım (Resimlerle)
Video: Otorite Programı 29 08 2014 Tarihli Bölüm 2024, Kasım
Anonim
Titreşim Geri Beslemeli Genişletilebilir Bir Düğme Uygulaması
Titreşim Geri Beslemeli Genişletilebilir Bir Düğme Uygulaması
Titreşim Geri Beslemeli Genişletilebilir Bir Düğme Uygulaması
Titreşim Geri Beslemeli Genişletilebilir Bir Düğme Uygulaması

Bu eğitimde, ilk önce size genişletilmiş bir düğme aracılığıyla bir titreşim motorunu kontrol etmek için Arduino Uno'nun nasıl kullanılacağını göstereceğiz. Basmalı düğmelerle ilgili eğitimlerin çoğu, fiziksel devre tahtasındaki düğmeyi içerirken, bu eğitimde düğme, devre tahtasına bunun yerine atlama kabloları ile bağlanacak şekilde değiştirildi. Bu düğme, motorun gücünü ve titreşim düzenini kontrol etmenizi sağlar. Bunu takiben, bu kurulumdan yararlanan giyilebilir bir teknolojinin olası bir prototipini göstereceğiz. Bu giyilebilir cihaz, basılan belirli düğmeye dayalı olarak kullanıcıya benzersiz titreşim geri bildirimi vermek üzere programlanmış, ucuna düğmeler takılı olan uzatılabilir parmak uçlarına sahip bir eldivendir.

Adım 1: Düğmeden Titreşim Motoru Kurulumu için Gerekli Bileşenler

Düğmeden Titreşime Motor Kurulumu İçin Gerekli Bileşenler
Düğmeden Titreşime Motor Kurulumu İçin Gerekli Bileşenler
  • Arduino Uno'su
  • ekmek tahtası
  • Para Vibratör Titreşim Motoru
  • Koru Düğmesi
  • Erkek-Erkek Jumper Telleri (x10)
  • Jumper Tel 4 Pin
  • Dokunsal Motor Sürücüsü
  • Erkek-Dişi Kenar Konektörü
  • Havya

Adım 2: Düğmeden Titreşim Motoru Kurulumuna İlişkin Şemalar

Düğmeden Titreşime Motor Kurulumu için Şemalar
Düğmeden Titreşime Motor Kurulumu için Şemalar

Önceki diyagram Fritzing.org ile oluşturulmuştur.

Adım 3: Titreşim Motoru Kurulumu Düğmesinin Kurulumu

Adım 1: Kenar konektörünü titreşim motoru sürücüsüne lehimleyin. Bozuk para vibratörünün tellerini titreşim motoru sürücüsünün terminallerine lehimleyin.

Adım 2: 4 pinli jumper kablosunu düğme çıkışına bağlayın.

Adım 3: Jumper kablolarından birini kullanarak Arduino üzerindeki GRD pinini breadboard üzerindeki bir sıraya bağlayın.

Adım 4: Başka bir jumper kablosu kullanarak Arduino üzerindeki Volt 3.3 pinini breadboard üzerinde farklı bir sıraya bağlayın.

Adım 5: Şimdi titreşim motor sürücüsünü Arduino'ya bağlayacağız. Üçüncü bir atlama teli kullanarak, titreşim motoru sürücüsündeki GND pimini, Arduino'dan gelen GRD pimi ile devre tahtasındaki aynı sıraya bağlayın. Aynısını, titreşim motoru sürücüsündeki VCC (volt) için devre tahtasının volt satırına başka bir tel ile yapın.

Adım 6: Titreşim motoru sürücüsündeki SDA pinini doğrudan Arduino üzerindeki SDA pinine bağlamak için başka bir kablo kullanın. Yine, her ikisinde de SCL pinleri ile aynısını yapın. Alternatif olarak, 5. adıma benzer bir yaklaşım izleyin ve Arduino'daki SDA ve SCL pinlerini jumper kabloları aracılığıyla devre tahtasındaki kendi sıralarına bağlayın. Ardından devre tahtasındaki SDA pininin bağlı olduğu sıradan motor sürücüsündeki SDA pinine bir kablo çekin. Aynı işlemi devre tahtasındaki SCL satırı için motor sürücüsündeki SCL pinine yapın.

Adım 7: Şimdi butonu vibrasyon motoru sürücüsüne ve Arduino'ya bağlayarak bitireceğiz. GRD'yi, buton kopmasına bağlı 4 pinli atlama telinden, devre tahtasındaki diğer GRD telleriyle aynı sıraya bağlamak için başka bir atlama teli kullanın. Aynısını volt ile bir kez daha yapın (VCC).

Adım 8: Düğme koparmadaki SIG'den son bir yazıyı Arduino'daki bir pime bağlayın (kodumuzun amaçları için pim 7'yi kullandık).

Adım 9: Arduino'yu takın ve kodu yükleyin ve çalışmasını izleyin!

Adım 4: Kod

Düğme-Titreşim-Motor.c

/* https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide?_ga=2.227031901.1514248658.1513372975-1149214600.1512613196 adresinden uyarlanan kod */
#Dahil etmek//SparkFun Dokunsal Motor Sürücü Kitaplığı
#Dahil etmek//I2C kitaplığı
SFE_HMD_DRV2605L HMD; //dokunsal motor sürücü nesnesi oluştur
int düğmesi = 7; // buton için giriş pini 7'yi seçin
int düğme_değeri = 0; // pin durumunu okumak için değişken
geçersiz kurulum()
{
/* Haptic Motor Driver Object'i başlat */
HMD.begin();
Seri.başla(9600);
HMD. Modu(0); // Dahili tetik giriş modu -- Oynatmayı tetiklemek için GO() işlevini kullanmalıdır.
HMD. MotorSelect(0x36); // ERM motoru, 4x Frenleme, Orta döngü kazancı, 1.365x geri EMF kazancı
HMD. Library(2); // ERM motorlar için //1-5 & 7, LRA motorlar için 6
}
boşluk döngüsü()
{
/* Titreşim motorunu çalıştır */
HMD.go();
button_val = digitalRead(button);
if(button_val== YÜKSEK) {
/* Bu, düğmeye basıldığını günlüğe kaydetmek için çıktı, hata ayıklama için kullanın*/
Serial.println("Düğmeye basıldı.");
/* Dalga formu kitaplığında 0-122 farklı dalga türü vardır */
HMD. Dalga formu(0, 69);}
Başka{
/* Düğmeye basılmazsa titreşim motorunu durdurun */
HMD.stop();
}
}

GitHub tarafından ❤ ile barındırılan rawButton-Vibration-Motor.c'yi görüntüleyin

Adım 5: Düğmeden Titreşim Motoru Kurulumu Videosu

Image
Image

Adım 6: Uzatılabilir Eldiven Prototipi

Uzatılabilir Eldiven Prototipi
Uzatılabilir Eldiven Prototipi
Uzatılabilir Eldiven Prototipi
Uzatılabilir Eldiven Prototipi

Düğmenin titreşim motoruna olası bir uygulaması, yukarıda gösterilen eldivendir. Uzatılabilir "parmak uçları" yapmak için şırınga gibi ucuz erişilebilir malzemeleri değiştirdik. Modifiye edilmiş şırıngaların uçlarına cırt cırtlı oluk düğmelerini tutturduk, bir eldivenin parmak uçlarında delikler açtık ve her şırıngayı deliklere yerleştirdik. Düğmelerin 4 pinli atlama telleri şırıngaların içinden geçirilir ve şırıngaları tam boylarına kadar uzatabileceğiniz kadar uzundur. Arduino ve breadboard, cırt cırt ile eldivenin üst kısmına takılır, bu da düğmelerin kablolarının her parmak ucunun tabanındaki küçük bir yarıktan kolayca bağlanmasına izin verir. Motor sürücüsü, vibrasyon motorunu eldivenin iç kısmına yapıştırmak için açıklıktan eldivenin alt tarafına takılır. Kullanıcı eldiveni giydiğinde, titreşim motoru kullanıcının bileğinin alt tarafına oturur. Kullanıcı bir yüzeye dokunduğunda ve düğmelerden birine bastığında, motor aracılığıyla benzersiz bir geri bildirim titreşimi verilir.

Böyle bir eldivenin arkasındaki düşünce süreci, onu giyen birinin normal parmak uçlarının ötesindeki şeylere "dokunmasına" ve bu yüzeylere dokunduğuna dair geri bildirim almasına izin vermek olacaktır. Titreşim geri bildirimi, yüzeye hangi parmağın dokunduğuna bağlı olarak değişir, böylece kullanıcının titreşim modeline göre yüzeye hangi parmağın dokunduğunu söylemesi mümkün olur.

Prototipi daha ileri götürmenin, parmakları daha uzatılabilir hale getirmek veya dokunulan yüzey türüne göre geri bildirim değişikliği yapmak gibi birçok yolu vardır. İdeal olarak, daha iyi teleskop seçenekleri için 3D baskı yoluyla uzatılabilir parmaklar oluşturulabilir. Kullanıcının dokunduğu yüzeyin ne kadar sıcak olduğu konusunda geri bildirim sağlamak için düğmelerin yerine bir sıcaklık sensörü veya benzer amaçlar için bir nem sensörü kullanılabilir. Kullanıcının dokunduğu nesnenin ne kadar uzakta olduğunu bilmesini sağlamak için "parmağın" ne kadar uzatıldığını algılamanın bir yolu uygulanabilir. Bunlar, bu prototipi daha ileriye götürmek için yalnızca birkaç olası seçenek.

Bu eldiven, duyularınızı genişletmenin ve kullanıcının hissedip anlayabileceği geri bildirim oluşturmanın kolay bir yolu olarak yaygın malzemelerden yapılabilir.

7. Adım: Eşsiz Titreşim Çıkışlı Çoklu Düğmeler İçin Kod

mutliple_buttons_to_vibmotor.ino

/* SparkFun'dan Uyarlanan Kod https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide */
#Dahil etmek//SparkFun Dokunsal Motor Sürücü Kitaplığı
#Dahil etmek//I2C kitaplığı
SFE_HMD_DRV2605L HMD; //dokunsal motor sürücü nesnesi oluştur
int button_middle = 7;
int button_index = 5; // buton için giriş pinini seçin
int button_ring = 9;
int button_pinky = 3;
geçersiz kurulum()
{
HMD.begin();
Seri.başla(9600);
HMD. Modu(0); // Dahili tetik giriş modu -- Oynatmayı tetiklemek için GO() işlevini kullanmalıdır.
HMD. MotorSelect(0x36); // ERM motoru, 4x Frenleme, Orta döngü kazancı, 1.365x geri EMF kazancı
HMD. Library(2); // ERM motorlar için //1-5 & 7, LRA motorlar için 6
}
boşluk döngüsü()
{
HMD.go(); // titreşim motorunu çalıştır
/* Hangi düğmeye basıldığını ve çıkış dalga biçimini 0-122 kontrol edin */
if(digitalRead(button_middle)== YÜKSEK) {
Serial.println("Düğmeye basıldı.");
HMD. Dalga formu(0, 112);}
elseif(digitalRead(button_index) == YÜKSEK){
HMD. Dalga formu(0, 20);
}
elseif(digitalRead(button_ring) == YÜKSEK){
HMD. Dalga formu(0, 80);
}
elseif(digitalRead(button_pinky) == YÜKSEK){
HMD. Dalga biçimi(0, 100);
}
/* Hiçbir tuşa basılmazsa dur */
Başka{
HMD.stop();
}
}

GitHub tarafından ❤ ile barındırılan rawmutliple_buttons_to_vibmotor.ino'yu görüntüle

Önerilen: