Cuprins:

SASSIE: Sistemul pentru soluția de tăcere incomodă și îmbunătățirea interacțiunii: 5 pași
SASSIE: Sistemul pentru soluția de tăcere incomodă și îmbunătățirea interacțiunii: 5 pași
Anonim
Image
Image
Piese, materiale și instrumente
Piese, materiale și instrumente

SASSIE este răspunsul la întrebarea pe care ne-am pus-o pe noi toți în timpul unei tăceri incomode la un moment dat în viața noastră: „Vorbesc în continuare?” Ei bine, acum nu trebuie să vă faceți griji, deoarece SASSIE este conceput special pentru a recunoaște o tăcere incomodă și apoi pentru a o neutraliza, decidând aleatoriu cine ar trebui să vorbească în continuare. Acum puteți intra într-o conversație fără stres, știind că SASSIE vă are spatele.

Pasul 1: Piese, materiale și instrumente

Piese Arduino

2 X Arduino Uno R3

2 X microfon Arduino

1 X XBee Wireless SD Shield

1 X 1/2 w difuzor de 8 volți

1 x panou de jumătate de dimensiune

1 X motor pas cu pas Arduino

Placă de acționare a motorului pas cu pas 1X ULN 2003

1 X Micro Servo

Baza și carcasa (componente tăiate cu laser)

Toate componentele enumerate mai jos pot fi tăiate cu laser pe un strat complet de mesteacăn (32 "X 18")

1 - Baza

1 X placa de bază inferioară

1 X lungime lungă, înălțime scurtă, bandă de zăbrele drepte

1 X placă de bază superioară

4 X Lungime scurtă, înălțime înaltă, dreaptă, latură cu bandă laterală

2 - Principal

1 X mașină de spălat cu pas cu pas

1 X placa principală inferioară

1 X lungime medie înălțime medie bandă de zăbrele drepte

1 X inel principal superior

1 X lungime scurtă, înălțime înaltă, bandă laterală dreaptă

1 X placă laterală superioară

1 x placă dreptunghiulară mică (pentru micro servo)

3 - Suport pentru microfon

4 X Placă de bază

1 x 13 cm diblă 3/16 (cu partea laterală la 30 de grade)

1 x placă dreptunghiulară mică (pentru microfon)

Pasul 2: Circuit

Circuit
Circuit
Circuit
Circuit

Pasul 3: Fabricarea mașinilor (mecanică și asamblare)

Fabricarea mașinilor (mecanică și asamblare)
Fabricarea mașinilor (mecanică și asamblare)

1_Pre-asamblare

  • (Opțional) Șlefuiți toate componentele stratului de mesteacăn până la un finisaj curat
  • Udați întreaga bandă de strat de mesteacăn și apoi îndoiți-o pentru a crea o formă circulară.
  • Înfășurați banda de straturi de mesteacăn folosind bandă de mascare pentru a menține forma circulară
  • Lăsați-l să stea peste noapte pentru ca banda să păstreze forma circulară

2_Asamblarea locuinței

Baza

  1. Lipiți placa de bază de jos pe pielea de bază
  2. Lipiți cele patru plăci laterale inferioare împreună și apoi lipiți acea parte pe marginea plăcii de bază superioare
  3. Bandați cu motor motorul pas cu pas pe centrul plăcii de bază superioare (REȚINEȚI-vă să atingeți pe aceeași parte cu placa laterală a benzii și aliniați partea rotativă reală a motorului la centrul mașinii)
  4. introduceți șaiba motorului pas cu pas pe motorul pas cu pas '

Principal

  1. Lipiți placa principală inferioară pe pielea principală
  2. Lipiți inelul principal al pielii pe partea superioară a pielii principale
  3. introduceți banda laterală în banda laterală superioară glisată
  4. Lipiți placa servomotor perpendicular pe banda laterală superioară

3_Adunarea

  1. Așezați cu grijă placa și cele două UNO R3 cu scutul SD în coșul de bază
  2. Așezați placa de bază superioară pe coș și asigurați-vă că toți senzorii și actuatoarele trec prin deschiderile plăcii superioare
  3. Fixați cu bandă motorul Stepper pe centrul plăcii de bază superioare (REȚINEȚI-vă să atingeți pe aceeași parte cu placa laterală a benzii și aliniați partea rotativă reală a motorului la centrul mașinii)
  4. Introduceți șaiba motorului pas cu pas pe motorul pas cu pas
  5. Așezați componenta principală pe șaibă
  6. Atașați componenta benzii laterale în baza glisantă a benzii laterale
  7. Bandați cu servomotorul pe partea laterală a plăcii servomotorului la capătul superior (ar trebui să fie lovit lateral) și apoi apăsați cablajul servo în interiorul benzii laterale
  8. Atașați semnul de sus la servomotor
  9. Atingeți semnul lateral de pe pielea principală

4_Asamblare suport microfon

  1. Lipiți cele patru baze împreună
  2. Lipiți partea plană a diblului pe bază
  3. Lipiți placa microfonului pe partea unghiulară a diblului
  4. lipiți microfonul pe placa microfonului

Pasul 4: Programare

Datorită dimensiunii limitate a plăcii Arduino Uno, două plăci Arduino sunt utilizate în acest proiect. Placa principală este utilizată pentru majoritatea funcțiilor, inclusiv numărarea timpului de tăcere, procesarea datelor sonore, vorbirea cu utilizatorii și comunicarea cu a doua placă.

#include #include

#include

#include

// SD trebuie să se conecteze la pinul 11, 12, 13. Pinul suplimentar 10 este

// obligatoriu sau apelat cu SD.begin ().

const int servoPin = 3;

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

int volum1;

int volum2; float silenceTime = 0;

Servo banner;

TMRpcm plr;

configurare nulă () {

// puneți codul de configurare aici, pentru a rula o dată: pinMode (servoPin, OUTPUT); pinMode (micPin1, INPUT); pinMode (micPin2, INPUT); Serial.begin (9600); Serial.println („Bine ați venit la portalul de diagnostic SASSIE.”); banner.attach (servoPin); banner.write (0); if (! SD.begin (10)) {Serial.println ("SD fail"); } plr.speakerPin = 9; plr.setVolume (5); }

bucla nulă () {

volum1 = citire digitală (micPin1); volum2 = citire digitală (micPin2); banner.write (0); if (volum1 == 0 și volum2 == 0) {silenceTime + = 0,05; Serial.print ("Timpul tăcerii:"); Serial.println (silenceTime); } else {silenceTime = 0; banner.write (0); } întârziere (50); if (silenceTime> = AWKS) {rescue (); silenceTime = 0; }}

salvare nulă () {

for (int angle = 0; angle <90; angle + = 1) {banner.write (angle); întârziere (35); } Serial.println („Banner activat”); întârziere (100); Serial.write (1); Serial.println ("Song on"); plr.play ("4.wav"); întârziere (10000); plr.stopPlayback (); buclă(); întârziere (10000); întârziere (5000); plr.play ("2.wav"); întârziere (5000); plr.play ("3.wav"); }

Codul celei de-a doua plăci este simplu. Acționează motorul pas cu pas numai când placa principală îi trimite un semnal.

#include

const int stepPin1 = 8;

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

starea motorului bool = fals;

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

configurare nulă () {

// puneți codul de configurare aici, pentru a rula o dată: stepMotor.setSpeed (75); }

bucla nulă () {

// puneți codul principal aici, pentru a rula în mod repetat: int incoming = Serial.read (); if (de intrare == 1) {Serial.println ("activat"); if (motorState == 0) {stepMotor.step (1000); întârziere (5000); } else {stepMotor.step (-1000); } motorState =! motorState; } întârziere (500); }

Recomandat: