Innehållsförteckning:

SASSIE: Systemet för besvärlig tystnadslösning och interaktionsförbättring: 5 steg
SASSIE: Systemet för besvärlig tystnadslösning och interaktionsförbättring: 5 steg

Video: SASSIE: Systemet för besvärlig tystnadslösning och interaktionsförbättring: 5 steg

Video: SASSIE: Systemet för besvärlig tystnadslösning och interaktionsförbättring: 5 steg
Video: Störig granne 2024, Juli
Anonim
Image
Image
Delar, material och verktyg
Delar, material och verktyg

SASSIE är svaret på frågan som vi alla har ställt till oss själva under en besvärlig tystnad vid ett tillfälle i våra liv, "Talar jag nästa?" Nu behöver du inte oroa dig för SASSIE är speciellt utformad för att känna igen en besvärlig tystnad och sedan neutralisera den genom att slumpmässigt bestämma vem som ska tala nästa. Nu kan du gå in i en konversation utan stress, i vetskap om att SASSIE har din rygg.

Steg 1: Delar, material och verktyg

Arduino delar

2 X Arduino Uno R3

2 X Arduino -mikrofon

1 X XBee trådlös SD -skärm

1 X 1/2 W 8 Volt högtalare

1 X brödbräda i halv storlek

1 X Arduino Stepper Motor

1X ULN 2003 Stepper Motor Drive Board

1 X Micro Servo

Bas och hölje (laserskurna komponenter)

Alla komponenter som anges nedan kan bara laserskäras på en Birch Ply Fullbed (32 "X 18")

1 - Bas

1 X bottenplatta

1 X Lång längd Kort Höjd Rak Gitterlist

1 X toppplatta

4 x kort längd hög höjd rak lister sidolist bas

2 - Main

1 X Stegmotorbricka

1 X bottenplatta

1 X Medellängd Medelhöjd Rak gitterlist

1 X toppring

1 x kort längd hög höjd rak lister sidolist

1 X övre sidoremsplatta

1 X liten rektangulär platta (för mikroservo)

3 - Mikrofonstativ

4 X basplatta

1 X 13 cm 3/16 plugg (med 30 ° på sidan)

1 X liten rektangulär platta (för mikrofon)

Steg 2: Krets

Krets
Krets
Krets
Krets

Steg 3: Maskinframställning (mekanik och montering)

Maskinframställning (mekanik och montering)
Maskinframställning (mekanik och montering)

1_Förmontering

  • (Valfritt) Slipa alla björkskiktskomponenter till en perfekt finish
  • Blöt hela björklagsremsan och böj den sedan för att skapa en cirkulär form.
  • Vira runt björkskiktremsan med maskeringstejp för att hålla den cirkulära formen
  • Låt den sitta över natten så att remsan behåller den cirkulära formen

2_Husmontering

Bas

  1. Limma bottenplattan på bashuden
  2. Limma ihop de fyra bottenplattorna och limma sedan den delen på kanten av den övre basplattan
  3. Tejpa stegmotorn på mitten av den övre basplattan (KOM ihåg att knacka på samma sida som sidolistplattan och rikta in den verkliga roterande delen av motorn mot maskinens mitt)
  4. sätt in stegmotorbrickan på stegmotorn '

Main

  1. Lim den nedre huvudplattan på huvudhuden
  2. Limma huvudhudringen ovanpå huvudhuden
  3. sätt in sidolisten på den övre sidoremsan
  4. Limma servomotorplattan vinkelrätt mot den övre sidolisten

3_Församlingen

  1. Placera försiktigt brödbrädan och de två UNO R3 med SD -skölden inuti facket
  2. Placera den övre basplattan på papperskorgen och se till att alla sensorer och ställdon går genom topplattans öppningar
  3. Tejpa stegmotorn på mitten av den övre basplattan (KOM ihåg att knacka på samma sida som sidolistplattan och rikta in den verkliga roterande delen av motorn mot maskinens mitt)
  4. Sätt in stegmotorbrickan på stegmotorn
  5. Placera huvudkomponenten på brickan
  6. Fäst sidolistkomponenten i sidoremsans basglid
  7. Tejp servomotorn på sidan av servomotorplattan vid den övre änden (ska knackas i sidled) och knacka sedan på servokablarna på insidan av sidolisten
  8. Fäst den övre skylten på servomotorn
  9. Knacka på sidoskylten på huvudhuden

4_Mikrofonstativmontering

  1. Limma ihop de fyra baserna
  2. Limma den platta sidan av pluggen till basen
  3. Limma mikrofonplattan på den vinklade sidan av pluggen
  4. tejpa mikrofonen på mikrofonplattan

Steg 4: Programmering

På grund av den begränsade storleken på Arduino Uno -kortet används två Arduino -brädor i detta projekt. Huvudkortet används för de flesta funktioner, inklusive att räkna tystnadstid, bearbeta ljuddata, tala med användare och kommunicera med det andra kortet.

#inkludera #inkludera

#omfatta

#omfatta

// SD måste ansluta till stift 11, 12, 13. Ytterligare stift 10 är

// krävs eller kallas med SD.begin ().

const int servoPin = 3;

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

int volym1;

int volym2; float silenceTime = 0;

Servobanner;

TMRpcm plr;

void setup () {

// lägg din installationskod här för att köra en gång: pinMode (servoPin, OUTPUT); pinMode (micPin1, INPUT); pinMode (micPin2, INPUT); Serial.begin (9600); Serial.println ("Välkommen till SASSIE diagnosportal."); banner.attach (servoPin); banner.write (0); om (! SD.begin (10)) {Serial.println ("SD misslyckas"); } plr.speakerPin = 9; plr.setVolume (5); }

void loop () {

volume1 = digitalRead (micPin1); volume2 = digitalRead (micPin2); banner.write (0); if (volym1 == 0 och volym2 == 0) {silentTime += 0,05; Serial.print ("Tystnadstid:"); Serial.println (silenceTime); } annat {silenceTime = 0; banner.write (0); } fördröjning (50); if (silenceTime> = AWKS) {rescue (); silentTime = 0; }}

void rescue () {

för (int vinkel = 0; vinkel <90; vinkel += 1) {banner.write (vinkel); fördröjning (35); } Serial.println ("Banner på"); fördröjning (100); Serial.write (1); Serial.println ("Song on"); plr.play ("4.wav"); fördröjning (10000); plr.stopPlayback (); slinga(); fördröjning (10000); fördröjning (5000); plr.play ("2.wav"); fördröjning (5000); plr.play ("3.wav"); }

Koden för det andra kortet är enkel. Den driver bara stegmotorn när huvudkortet skickar en signal till den.

#omfatta

const int stepPin1 = 8;

const int stepPin2 = 9; const int stepPin3 = 10; const int stepPin4 = 11; const int motorSteps = 200;

bool motorState = false;

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

void setup () {

// lägg din installationskod här för att köra en gång: stepMotor.setSpeed (75); }

void loop () {

// lägg din huvudkod här för att köra upprepade gånger: int inkommande = Serial.read (); if (inkommande == 1) {Serial.println ("aktiverad"); if (motorState == 0) {stepMotor.step (1000); fördröjning (5000); } annat {stepMotor.step (-1000); } motorState =! motorState; } fördröjning (500); }

Rekommenderad: