İçindekiler:

SASSIE: Garip Sessizlik Çözümü ve Etkileşim Artırıcı Sistemi: 5 Adım
SASSIE: Garip Sessizlik Çözümü ve Etkileşim Artırıcı Sistemi: 5 Adım

Video: SASSIE: Garip Sessizlik Çözümü ve Etkileşim Artırıcı Sistemi: 5 Adım

Video: SASSIE: Garip Sessizlik Çözümü ve Etkileşim Artırıcı Sistemi: 5 Adım
Video: Nasıl Daha Anlamlı Sohbetler Edebiliriz? - Psk. Dr. Lucy Foulkes (Çeviren: Psikolog Rabia Yavuz) 2024, Kasım
Anonim
Image
Image
Parçalar, Malzemeler ve Araçlar
Parçalar, Malzemeler ve Araçlar

SASSIE, hayatımızın bir noktasında tuhaf bir sessizlik sırasında hepimizin kendi kendimize sormuş olduğu “Sıradaki ben mi konuşayım?” sorusunun cevabıdır. Şimdi endişelenmenize gerek yok çünkü SASSIE, garip bir sessizliği tanımak ve ardından kimin konuşacağına rastgele karar vererek onu etkisiz hale getirmek için özel olarak tasarlandı. Artık SASSIE'nin arkanızda olduğunu bilerek, stressiz bir sohbete başlayabilirsiniz.

Adım 1: Parçalar, Malzemeler ve Araçlar

Arduino Parçaları

2 adet Arduino Uno R3

2 X Arduino Mikrofon

1 X XBee Kablosuz SD Kalkanı

1 X 1/2 w 8 Volt Hoparlör

1 X Yarım Boy Breadboard

1 X Arduino Step Motor

1X ULN 2003 Step Motor Sürücü Kartı

1 X Mikro Servo

Taban ve Muhafaza (Lazer Kesim Bileşenleri)

Aşağıda listelenen tüm bileşenler, Birch Ply Fullbed (32" X 18") üzerinde lazerle kesilebilir

1 - Baz

1 X Alt Taban Plakası

1 X Uzun Boy Kısa Yükseklik Düz Kafes Şerit

1 X Üst Taban Plakası

4 X Kısa Boy Uzun Boy Düz Kafes Yan Şerit Taban

2 - Ana

1 X Step Motor Yıkayıcı

1 X Alt Ana Plaka

1 X Orta boy Ortalama Yükseklik Düz Kafes Şerit

1 X Üst Ana Halka

1 X Kısa Boy Uzun Boy Düz Kafes Yan Şerit

1 X Üst Yan Şerit Plakası

1 X Küçük Dikdörtgen Plaka (Mikro Servo İçin)

3 - Mikrofon Standı

4 X Taban Plakası

1 X 13 cm 3/16 Dübel (yandan 30 derecede)

1 X Küçük Dikdörtgen Plaka (Mikrofon İçin)

2. Adım: Devre

Devre
Devre
Devre
Devre

Adım 3: Makine Yapımı (Mekanik ve Montaj)

Makine Yapımı (Mekanik ve Montaj)
Makine Yapımı (Mekanik ve Montaj)

1_Ön Montaj

  • (Opsiyonel) Tüm huş ağacı kat bileşenlerini kusursuz bir yüzey elde edene kadar zımparalayın
  • Tüm huş ağacı kat şeridini ıslatın ve ardından dairesel bir form oluşturmak için bükün.
  • Dairesel formu tutmak için maskeleme bandı kullanarak huş katlı şeridi sarın
  • Şeridin dairesel formu koruması için bir gece bekletin.

2_Gövde Montajı

Temel

  1. Alt Taban Plakasını Taban Kaplamasına Yapıştırın
  2. Dört Alt Kenar Şerit Plakasını birbirine yapıştırın ve ardından bu parçayı Üst Taban Plakasının kenarına yapıştırın
  3. Step motorunu Üst Taban Plakasının ortasına bantlayın (Yan Şerit Plakası ile aynı tarafa dokunmayı ve motorun gerçek dönen kısmını makinenin merkezine hizalamayı UNUTMAYIN)
  4. Step Motor Yıkayıcısını Step Motorun üzerine yerleştirin'

Ana

  1. Alt Ana Plakayı Ana Kaplamaya Yapıştırın
  2. Ana Kaplama Halkasını Ana Kaplamanın üstüne yapıştırın
  3. yan şeridi üst yan şerit sürgüsüne yerleştirin
  4. Servo Motor Plakasını üst yan şeride dik olarak yapıştırın

3_Meclis

  1. Breadboard'u ve SD Shield'li iki UNO R3'ü taban bölmesinin içine dikkatlice yerleştirin
  2. Üst Taban Plakasını hazneye yerleştirin ve tüm sensörlerin ve Aktüatörlerin üst plaka açıklıklarından geçtiğinden emin olun.
  3. Step motorunu Üst Taban Plakasının ortasına bantlayın (Yan Şerit Plakası ile aynı tarafa dokunmayı ve motorun gerçek dönen kısmını makinenin merkezine hizalamayı UNUTMAYIN)
  4. Step Motor Yıkayıcısını Step Motorun üzerine yerleştirin
  5. Ana Bileşeni yıkayıcıya yerleştirin
  6. Yan şerit bileşenini yan şerit taban sürgüsüne takın
  7. Servo Motoru, Servo Motor Plakasının üst ucundaki yan tarafına bantlayın (yanlara doğru çekilmelidir) ve ardından servo kablolarını yan şeridin içine doğru hafifçe vurun
  8. Üst işareti servo motora takın
  9. Ana Görünümdeki yan işarete dokunun

4_Mikrofon Standı Montajı

  1. Dört tabanı birbirine yapıştırın
  2. Dübelin düz tarafını tabana yapıştırın
  3. Mikrofon plakasını dübelin açılı tarafına yapıştırın
  4. mikrofonu mikrofon plakasına bantlayın

Adım 4: Programlama

Arduino Uno kartının sınırlı boyutu nedeniyle, bu projede iki Arduino kartı kullanılmıştır. Ana kart, sessizlik süresini sayma, ses verilerini işleme, kullanıcılarla konuşma ve ikinci kartla iletişim kurma gibi işlevlerin çoğu için kullanılır.

#include #include

#Dahil etmek

#Dahil etmek

//SD pin 11, 12, 13'e bağlanmalıdır. Anaditional pin 10

// gerekli veya SD.begin() ile çağrılır.

const int servoPin = 3;

const int micPin1 = 5; const int micPin2 = 6; const int AWKS = 4;

int hacim1;

int hacim2; kayan nokta sessizlikSüre = 0;

Servo afiş;

TMRpcm plr;

geçersiz kurulum() {

// bir kez çalıştırmak için kurulum kodunuzu buraya koyun: pinMode(servoPin, OUTPUT); pinMode(micPin1, INPUT); pinMode(micPin2, INPUT); Seri.başla(9600); Serial.println("SASSIE tanı portalına hoş geldiniz."); banner.attach(servoPin); banner.write(0); if (!SD.begin(10)) { Serial.println("SD başarısız"); } plr.speakerPin = 9; plr.setVolume(5); }

boşluk döngüsü () {

hacim1 = digitalRead(micPin1); hacim2 = digitalRead(micPin2); banner.write(0); if (hacim1 == 0 ve hacim2 == 0) { sessizlikSüresi += 0.05; Serial.print("Sessizlik süresi: "); Serial.println(silenceTime); } başka { sessizlikZamanı = 0; banner.write(0); } gecikme(50); if (silenceTime >= AWKS) {kurtarma(); sessizlikZaman = 0; } }

geçersiz kurtarma() {

for (int açı = 0; açı < 90; açı += 1) { banner.write(açı); gecikme(35); } Serial.println("Banner açık"); gecikme(100); Seri.yazma(1); Serial.println("Şarkı açık"); plr.play("4.wav"); gecikme (10000); plr.stopPlayback(); döngü(); gecikme (10000); gecikme (5000); plr.play("2.wav"); gecikme (5000); plr.play("3.wav"); }

İkinci kartın kodu basittir. Sadece ana kart kendisine bir sinyal gönderdiğinde step motoru çalıştırır.

#Dahil etmek

const int stepPin1 = 8;

const int stepPin2 = 9; const int stepPin3 = 10; const int stepPin4 = 11; const int motorAdımlar = 200;

bool motorState = yanlış;

Step stepMotor(motorSteps, stepPin1, stepPin2, stepPin3, stepPin4);

geçersiz kurulum() {

// bir kez çalıştırmak için kurulum kodunuzu buraya koyun: stepMotor.setSpeed(75); }

boşluk döngüsü () {

// tekrar tekrar çalıştırmak için ana kodunuzu buraya koyun: int incoming = Serial.read(); if (gelen == 1) { Serial.println("etkinleştirildi"); if (motorState == 0) { stepMotor.step(1000); gecikme (5000); } başka { stepMotor.step(-1000); } motorState = !motorState; } gecikme(500); }

Önerilen: