Cuprins:
Video: Braț de desen controlat de sunet - Proiectul școlii Arduino: 4 pași (cu imagini)
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Este pentru prima dată când lucrez cu Arduino și lucrez cu așa ceva, așa că îmi pare rău dacă am greșit! Am avut această idee când m-am gândit la hobby-urile mele, care sunt desenul și muzica. Așa că am încercat să-i combin pe cei doi în asta! Un braț auto-desenat care este afectat de sunet.
Pasul 1: Pasul 1: Materiale
- Arduino Uno
- Pană de pâine
- Detector de sunet (Sparkfun sen-12642)
- 2 (mini) Servo's
- Cravate / cravate cu fermoar
- Niște lemn și hârtie
- ceva cu care poți desena / scrie
Pasul 2: Pasul 2: Configurare
Am conectat mai întâi Servo-ul și apoi detectorul de sunet. Detectorul de sunet Sparkfun sen-12642 are 3 ieșiri, eu am folosit doar ieșirea „plic”.
Servo 1 = pin ~ 9
Servo 2 = pin ~ 10
Detector de sunet = pinul A0
Liniile roșii (5v) sunt conectate la partea pozitivă a panoului, iar liniile negre (la sol) sunt conectate la partea negativă.
Pasul 3: Pasul 3: non-electronice
Asigurați-vă că servo-ul este stabil și la locul potrivit. Am folosit cravate pentru a le stabiliza. După aceea am folosit cravate pentru a lega părțile superioare (înlocuibile) ale servo-ului de brațele de lemn. După aceea, puteți conecta părțile de braț din lemn la servo. Conectați toate firele la Arduino și panoul de măsurare.
După aceea am lipit firele la detectorul de sunet.
Pasul 4: Pasul 4: Cod
Nu sunt deloc aproape de a fi bun la codificare, dar am încercat din răsputeri și internetul a ajutat foarte mult:)
#include Servo myservo1; Servo myservo2; int pos = 0; int PIN_ANALOG_IN = A0;
void setup () {Serial.begin (9600);
// Afișează starea
Serial.println ("Initializat"); myservo1.attach (9); myservo2.attach (10); }
bucla nulă ()
{valoare int;
// Verificați intrarea plicului
valoare = analogRead (PIN_ANALOG_IN);
// Valoarea plicului afectează servo-ul
Serial.println (valoare); if (valoarea 5) && (valoarea 10) && (valoarea 20) && (valoarea 30) && (valoarea 60)) {myservo1.write (aleatoriu (0, 90)); myservo2.write (aleatoriu (0, 90)); }
întârziere (180);
}