Turinys:
Video: Piešimo ranka, kurią valdo garsas - „Arduino“mokyklos projektas: 4 žingsniai (su nuotraukomis)
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Tai pirmas kartas, kai dirbu su „Arduino“ir dirbu su kažkuo panašiu, todėl atsiprašau, jei padariau klaidų! Ši mintis man kilo, kai galvojau apie savo pomėgius - piešimą ir muziką. Taigi aš bandžiau sujungti abu šiuos dalykus! Savarankiškai piešianti ranka, kurią veikia garsas.
1 žingsnis: 1 žingsnis: medžiagos
- Arduino Uno
- Bandomoji Lenta
- Garso detektorius (Sparkfun sen-12642)
- 2 (mini) servo
- Kaklaraiščių įvyniojimai / užtrauktukai
- Šiek tiek medžio ir popieriaus
- tai, ką galite piešti/rašyti
2 veiksmas: 2 veiksmas: sąranka
Pirmiausia prijungiau „Servo“, o paskui garso detektorių. „Sparkfun sen-12642“garso detektorius turi 3 išėjimus, aš naudojau tik „vokų“išvestį.
Servo 1 = kaištis ~ 9
Servo 2 = kaištis ~ 10
Garso detektorius = kaištis A0
Raudonos linijos (5v) yra sujungtos su teigiama duonos lentos puse, o juodos linijos (žemė) - su neigiama puse.
3 žingsnis: 3 žingsnis: neelektronika
Įsitikinkite, kad servo sistemos yra stabilios ir tinkamoje vietoje. Aš juos naudojau kaklaraiščių įvyniojimais. Po to aš naudoju kaklaraiščių įvyniojimus, kad pririščiau (keičiamas) viršutines servo dalis prie medinių rankų. Po to medines svirties dalis galite prijungti prie servo. Prijunkite visus laidus prie „Arduino“ir duonos lentos.
Po to laidus litavau prie garso detektoriaus.
4 žingsnis: 4 žingsnis: kodas
Man niekaip nesiseka mokėti koduoti, bet stengiausi iš visų jėgų ir internetas labai padėjo:)
#include Servo myservo1; Servo myservo2; int pos = 0; int PIN_ANALOG_IN = A0;
void setup () {Serial.begin (9600);
// Rodyti būseną
Serial.println („Inicijuota“); myservo1.attach (9); myservo2.attach (10); }
tuštumos kilpa ()
{int vertė;
// Patikrinkite vokų įvestį
value = analogRead (PIN_ANALOG_IN);
// Voko reikšmė veikia servo
Serial.println (vertė); if (5 vertė) && (10 vertė) && (20 vertė) && (30 vertė) && (vertė 60)) {myservo1.write (atsitiktinis (0, 90)); myservo2.write (atsitiktinis (0, 90)); }
vėlavimas (180);
}