İçindekiler:

Giyilebilir - Bitirme Projesi: 7 Adım
Giyilebilir - Bitirme Projesi: 7 Adım

Video: Giyilebilir - Bitirme Projesi: 7 Adım

Video: Giyilebilir - Bitirme Projesi: 7 Adım
Video: RPA-2 Bitirme Projesi Sunumu | Cansel Aktaş 2024, Haziran
Anonim
Giyilebilir - Bitirme Projesi
Giyilebilir - Bitirme Projesi

GİRİŞ

Bu projede cyborg fonksiyonlarına dayalı fonksiyonel giyilebilir bir prototip yapma görevimiz vardı. Kalbinizin müziğin BPM'si ile senkronize olduğunu biliyor muydunuz? Ruh halinizi müzikle kontrol etmeye çalışabilirsiniz, peki ya teknolojinin sakinleşmemize yardım etmesine izin verirsek? Sadece bazı bileşenlere, bir Arduino'ya ve kulaklığınıza ihtiyacımız var. Hadi yenilik yapalım!

Marc Vila, Guillermo Stauffacher ve Pau Carcellé'nin projesi

Adım 1: Malzemeler ve Bileşenler

Malzemeler ve Bileşenler
Malzemeler ve Bileşenler

İnşaat malzemeleri:

- 3d baskılı bileklik

- M3 vidalar (x8)

- M3 somunlar (x12)

- Bel çantası

Elektronik malzemeler:

-Kalp Hızı Sensörü BPM

- Düğmeler (x2)

- Potansiyometre

- LCD C 1602 MODÜLÜ

- MODÜL DFPLAYER MİNİ MP3

- 3.5mm Jack Stereo TRRS KULAKLIK

- Mikro SD kart

- Arduino Uno Plakası

- Kaynakçı

- Bakalit tabak

2. Adım: Bir Bileklik Tasarlayın

Bir Bileklik Tasarlayın
Bir Bileklik Tasarlayın
Bir Bileklik Tasarlayın
Bir Bileklik Tasarlayın

İlk önce bileklikteki farklı bileşenleri düzenlemek için birkaç eskiz yapıyoruz.

Net bir fikirle, grup üyelerinin üç kolunun ölçümlerini aldık, ardından tasarım için en uygun ölçüyü bulmak için ortalamasını aldık. Son olarak ürünü 3d program ile tasarlayıp 3D yazıcı ile yazdırıyoruz.

. STL dosyalarını buradan indirebilirsiniz.

Adım 3: Elektronik Bağlantılar

Elektronik Bağlantılar
Elektronik Bağlantılar

3d tasarımımızın gerekli kontrollerini yapmaya devam ediyoruz, ölçülerin doğru olduğunu görmek için prototipteki tüm bileşenlerin ilk montajını yaptık.

Tüm bileşenleri Arduino kartına bağlamak için 0,5 metre kablolar kullanarak bileşenlerden farklı bağlantılar yaptık bu sayede panonun görünürlüğünü azaltmış ve prototipi daha iyi organize etmiş oluyoruz.

Adım 4: Kod

kod
kod
kod
kod
kod
kod

Bu proje bir cyborg prototipidir. Açıkçası, deri altındaki bileşenleri tanıtmadık, bu yüzden ortez olarak bir bilezikle simüle ettik (fonksiyonel yönleri değiştirmek için vücuda uygulanan harici cihaz).

Kodumuz, kullanıcının tuş vuruşlarını alır ve bunları LCD ekranı kullanarak gösterir. BPM'ye ek olarak, ekran, kullanıcının kalp atış hızı ile karşılaştırabilmesi için istenen yoğunluğu gösterir. Kendi BPM'nizi artırmanın veya azaltmanın ilginç olduğu birçok durum vardır. Örneğin, dayanıklılık sporcuları aşırı yorulmamak için nabzı kontrol etmelidir. Günlük bir örnek, gergin bir durumda uyumak veya sakinleşmek istemek olabilir. Otizmli kişilerin hissettikleri stresi azaltmak için terapötik bir yöntem olarak da uygulanabilir. Ekranın yanında, istenen yoğunluğu kontrol etmek ve kalp atış hızını artırmak veya azaltmak için iki düğme bulunur. Yoğunluğa bağlı olarak, daha önce çalışılan bir müzik türü çalınır. Müziğin BPM'yi değiştirebileceğini gösteren çalışmalar var. Şarkının Dakikadaki Vuruş Sayısına göre, insan vücudu bu BPM'yi taklit eder ve eşleştirir.

int SetResUp = 11; // Arduino'nun pin 10'u yoğunluk artışı ile button.int SetResDown = 12; // Arduino'nun pin 11'i ile yoğunluk azaltma butonu

int ResButtonCounter = 0;// direnç ayarını artıran veya azaltan zaman sayacı, 0 başlangıç değeri int ResButtonUpState = 0; // yoğunluk artırma düğmesinin mevcut durumu int ResButtonDownState = 0; // yoğunluk azaltma düğmesinin mevcut durumu int lastResButtonUpState = 0; // yoğunluk artırma düğmesinin son durumu int lastResButtonDownState = 0; // yoğunluk azaltma düğmesinin son durumu

int pulsePin = 0; // A0 portuna bağlı Darbe Sensörü // Bu değişkenler, ikinci sekmedeki kesme rutini sırasında kullanıldıklarından geçicidir. uçucu int BPM; // Dakikadaki vuruş sayısı uçucu int Signal; // Darbe sensörü veri girişi uçucu int IBI = 600; // Darbe süresi uçucu boole Darbe = yanlış; // Darbe dalgası yüksek olduğunda doğru, Düşük olduğunda yanlış boolean QS = yanlış;

# start_Byte 0x7E tanımlayın # Version_Byte 0xFF tanımlayın # Command_Length 0x06 tanımlayın # End_Byte 0xEF tanımlayın # 0x00 tanımlayın onaylayın // 0x41 komutuyla bilgi döndürür [0x01: bilgi, 0x00: bilgi yok]

//PANTALLA #include // LCD ekranın fonksiyonları için kütüphaneyi yükleyin #include #include

LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // LCD'nin bağlı olduğu portları bildir

//LECTOR #include #include // dfplayer mini MP3 modülünün fonksiyonları için kütüphaneyi yükleyin.

char serialData; int şarkı; televizyonda;

YazılımSeri iletişim(9, 10); // DFPlayer'ın bağlı olduğu bağlantı noktalarını bildirin DFRobotDFPlayerMini mp3;

geçersiz kurulum() { Serial.begin(9600); pinMode(SetResUp, INPUT); pinMode(SetResDown, INPUT);

//LCD (16x2) boyutlarını tanımlayın lcd.begin(16, 2); //Metnin hangi sütunda ve hangi satırda görüneceğini seçiyoruz //LECTOR comm.begin(9600);

mp3.begin(iletişim); //Bileşen serialData = (char)((' ')); mp3.start(); Serial.println("Oynat"); // Bir şarkı çal mp3.volume(25); //Sesi tanımla }

void loop() { if (digitalRead(11) == LOW){ mp3.next(); //Düğmeye basılırsa şarkı geçer } if (digitalRead(12) == LOW){ mp3.previous(); //Düğmeye basılırsa önceki şarkı } //if (SetResUp && SetResDown == LOW) {

int pulso = analogRead(A0); //A0 Analog bağlantı noktasına bağlı kalp atış hızı monitörünün değerini okuyun

Seri.println(darbeli/6); if (QS == true) { // Quantified Self bayrağı true, arduino araması gibi BPM QS = false; // Quantified Self bayrağını sıfırlayın }

lcd.setCursor(0, 0); //İstenen metni göster lcd.print("BPM:"); lcd.setCursor(0, 1); //İstenen metni göster lcd.print("INT:"); lcd.setCursor(5, 0); //İstenen metni göster lcd.print(pulso); lcd.setCursor(5, 1); //İstenen metni göster lcd.print(ResButtonCounter); gecikme(50); lcd.clear(); ResButtonUpState = digitalRead(SetResUp); ResButtonDownState = digitalRead(SetResDown);

// TempButtonState'i önceki durumuyla karşılaştırın

if (ResButtonUpState != lastResButtonUpState && ResButtonUpState == LOW) { // son durum değiştiyse sayacı artırın

ResButtonCounter++; }

// mevcut durumu son durum olarak kaydet, // döngünün bir sonraki çalıştırılışı için lastResButtonUpState = ResButtonUpState;

// butonun durumunu (artırma veya azaltma) son durumla karşılaştırın

if (ResButtonDownState != lastResButtonDownState && ResButtonDownState == DÜŞÜK) {

// son durum değiştiyse sayacı azalt

ResButtonCounter--; }

// mevcut durumu son durum olarak kaydet, // döngünün bir sonraki çalıştırılışı için lastResButtonDownState = ResButtonDownState; { Serial.println(ResButtonCounter);

if (ResButtonCounter >= 10) { ResButtonCounter = 10; }

if (ResButtonCounter < 1) { ResButtonCounter = 1; }

}

}

Adım 5: Toplam Montaj

Doğru programlanmış kodla ve prototipimizin iki parçası zaten bir araya getirildi. Tüm bileşenleri yerine yerleştirip bileziğe sabitlemek için bantla birleştiriyoruz. Bileklikteki bileşenler, Kalp Atış Hızı Sensörü BPM, iki düğme, potansiyometre ve LCD Ekrandır, her biri daha önce 3D dosyada tasarlanmış ilgili deliğindedir. İlk kısım yapıldığında, her bir konektör Arduino kartının doğru pininde bulunan protoboard'a odaklanıyoruz. Son olarak, her bir bileşenin doğrulanmış çalışmasıyla, kabloları gizlemek için onu bel çantasına koyduk.

6. Adım: Video

7. Adım: Sonuç

Bu projeyle ilgili en ilginç şey, insan vücudunu bilinçsizce müzikle taklit etmeyi öğrenmek. Bu, gelecekteki projeler için birçok seçeneğe kapı açar. Bunun eksiksiz bir proje olduğunu düşünüyorum, çalışılmış bir koda sahip oldukça çeşitli bileşenlerimiz var. Yeniden başlarsak, diğer bileşen alternatiflerini düşünürüz veya daha kalitelilerini satın alırdık. Kırık kablolar ve kaynaklarla ilgili çok sorun yaşadık, bunlar küçük ve çok hassas (özellikle BPM). Öte yandan bileşenleri bağlarken dikkatli olmalısınız, çok sayıda çıktıları vardır ve hata yapmak kolaydır.

Çok çeşitli Arduino donanım ve yazılım seçeneklerine değindiğimiz çok zenginleştirici bir projedir.

Önerilen: