Sisällysluettelo:

SASSIE: järjestelmä hankalaan hiljaisuuden ratkaisuun ja vuorovaikutuksen tehostajaan: 5 vaihetta
SASSIE: järjestelmä hankalaan hiljaisuuden ratkaisuun ja vuorovaikutuksen tehostajaan: 5 vaihetta

Video: SASSIE: järjestelmä hankalaan hiljaisuuden ratkaisuun ja vuorovaikutuksen tehostajaan: 5 vaihetta

Video: SASSIE: järjestelmä hankalaan hiljaisuuden ratkaisuun ja vuorovaikutuksen tehostajaan: 5 vaihetta
Video: Part 1 - The Adventures of Tom Sawyer Audiobook by Mark Twain (Chs 01-10) 2024, Marraskuu
Anonim
Image
Image
Osat, materiaalit ja työkalut
Osat, materiaalit ja työkalut

SASSIE on vastaus kysymykseen, jonka me kaikki olemme esittäneet itsellemme jossakin vaiheessa elämäämme hankalassa hiljaisuudessa: "Puhunko minä seuraavaksi?" Nyt sinun ei tarvitse huolehtia, koska SASSIE on erityisesti suunniteltu tunnistamaan hankala hiljaisuus ja neutraloimaan se päättämällä satunnaisesti, kuka puhuu seuraavaksi. Nyt voit aloittaa keskustelun ilman stressiä tietäen, että SASSIE tukee sinua.

Vaihe 1: Osat, materiaalit ja työkalut

Arduino -osat

2 X Arduino Uno R3

2 X Arduino -mikrofoni

1 X XBee Wireless SD Shield

1 X 1/2 w 8 voltin kaiutin

1 X puolikokoinen leipälauta

1 X Arduino -askelmoottori

1X ULN 2003 askelmoottorin käyttölauta

1 X Micro Servo

Pohja ja kotelo (laserleikatut komponentit)

Kaikki alla luetellut komponentit voidaan laserleikata koivukerroksella (32 "X 18")

1 - Pohja

1 X Pohjalevy

1 X Pitkä pituus Lyhyt korkeus Suora hilanauha

1 X Yläpohjalevy

4 X Lyhyt pituus Korkea korkeus Suora hila sivupalkki

2 - Pää

1 X askelmoottorin aluslevy

1 X Pohjalevy

1 X Keskipitkä Keskimääräinen korkeus Suora hilanauha

1 X Päärengas

1 X Lyhyt pituus Korkea korkeus Suora ristikkosivu

1 X Yläsivulevy

1 X pieni suorakulmainen levy (mikro -servolle)

3 - Mikrofoniteline

4 X Pohjalevy

1 X 13 cm 3/16 tappi (sisäpuolella 30 astetta)

1 X pieni suorakulmainen levy (mikrofonille)

Vaihe 2: Piiri

Piiri
Piiri
Piiri
Piiri

Vaihe 3: Koneen valmistus (mekaniikka ja kokoonpano)

Koneen valmistus (mekaniikka ja kokoonpano)
Koneen valmistus (mekaniikka ja kokoonpano)

1_Esikokoonpano

  • (Valinnainen) Hio kaikki koivukerrososat koskemattomaksi
  • Kostuta koko koivukerros ja taivuta sitten pyöreä muoto.
  • Kääri koivukuituliuskan ympärille käyttämällä teippiä pyöreän muodon pitämiseksi
  • Anna seistä yön yli, jotta liuska säilyttää pyöreän muodon

2_Kotelokokoonpano

Pohja

  1. Liimaa pohjalevy pohjakuoreen
  2. Liimaa neljä pohjasivulevyä yhteen ja liimaa sitten osa ylemmän pohjalevyn reunaan
  3. Teippaa askelmoottori ylemmän pohjalevyn keskelle (MUISTA, että napautat samalla puolella sivulevylevyä ja kohdistat moottorin pyörivän osan koneen keskelle)
  4. aseta askelmoottorin aluslevy askelmoottoriin '

Pääasiallinen

  1. Liimaa alempi päälevy päänahkaan
  2. Liimaa päänahan rengas päänahan päälle
  3. aseta sivuliuska yläsivulevyn liukukiskoon
  4. Liimaa servomoottorilevy kohtisuoraan yläreunaan nähden

3_Kokoonpano

  1. Aseta leipälauta ja kaksi UNO R3 -laitetta SD -suojalevyn kanssa alustan sisään
  2. Aseta ylempi pohjalevy astiaan ja varmista, että kaikki anturit ja toimilaitteet kulkevat ylälevyn aukkojen läpi
  3. Teippaa askelmoottori ylemmän pohjalevyn keskelle (MUISTA, että napautat samalla puolella sivulevylevyä ja kohdistat moottorin pyörivän osan koneen keskelle)
  4. Aseta askelmoottorin aluslevy askelmoottoriin
  5. Aseta pääkomponentti pesukoneen päälle
  6. Kiinnitä sivuliuskakomponentti sivuliuskan pohjalevyyn
  7. Teippaa servomoottori servomoottorilevyn sivulle yläpäässä (napauta sivuttain) ja napauta sitten servojohdot sivuliuskan sisäpuolelle
  8. Kiinnitä ylämerkki servomoottoriin
  9. Napauta pääkuvion sivumerkkiä

4_Mikrofoniteline

  1. Liimaa neljä pohjaa yhteen
  2. Liimaa tapin tasainen puoli pohjaan
  3. Liimaa mikrofonilevy tapin kulmikkaalle puolelle
  4. teippaa mikrofoni mikrofonilevyyn

Vaihe 4: Ohjelmointi

Arduino Uno -levyn rajoitetun koon vuoksi tässä projektissa käytetään kahta Arduino -levyä. Emolevyä käytetään useimpiin toimintoihin, mukaan lukien hiljaisuusajan laskeminen, äänidatan käsittely, käyttäjille puhuminen ja kommunikointi toisen levyn kanssa.

#Sisällytä #Sisällytä

#sisältää

#sisältää

// SD: n on liitettävä nastaihin 11, 12, 13. Lisätappi 10 on

// vaaditaan tai kutsutaan SD.begin (): lla.

const int servoPin = 3;

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

int tilavuus1;

int tilavuus2; float silentTime = 0;

Servo banneri;

TMRpcm plr;

void setup () {

// laita asennuskoodi tähän, jotta se suoritetaan kerran: pinMode (servoPin, OUTPUT); pinMode (micPin1, INPUT); pinMode (micPin2, INPUT); Sarja.alku (9600); Serial.println ("Tervetuloa SASSIE -diagnoosiportaaliin."); banner.attach (servoPin); banner.write (0); if (! SD.begin (10)) {Serial.println ("SD fail"); } plr.kaiutinPin = 9; plr.setVolume (5); }

void loop () {

volume1 = digitalRead (micPin1); volume2 = digitalRead (micPin2); banner.write (0); if (volume1 == 0 ja volume2 == 0) {silentTime += 0,05; Serial.print ("Hiljaisuusaika:"); Serial.println (silentTime); } else {silentTime = 0; banner.write (0); } viive (50); if (silentTime> = AWKS) {pelastus (); hiljaisuusaika = 0; }}

mitätön pelastus () {

for (int kulma = 0; kulma <90; kulma += 1) {banner.write (kulma); viive (35); } Serial.println ("Banneri päällä"); viive (100); Sarja.kirjoitus (1); Serial.println ("Song on"); plr.play ("4.wav"); viive (10000); plr.stopPlayback (); silmukka (); viive (10000); viive (5000); plr.play ("2.wav"); viive (5000); plr.play ("3.wav"); }

Toisen levyn koodi on yksinkertainen. Se käyttää askelmoottoria vain, kun emolevy lähettää sille signaalin.

#sisältää

const int askelPin1 = 8;

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

bool motorState = epätosi;

Askelmoottori (motorSteps, stepPin1, stepPin2, stepPin3, stepPin4);

void setup () {

// laita asennuskoodi tähän, jotta se suoritetaan kerran: stepMotor.setSpeed (75); }

void loop () {

// laita pääkoodisi tänne toistettavaksi: int saapuva = Serial.read (); jos (saapuva == 1) {Serial.println ("aktivoitu"); if (motorState == 0) {stepMotor.step (1000); viive (5000); } else {stepMotor.step (-1000); } motorState =! motorState; } viive (500); }

Suositeltava: