Inhoudsopgave:
Video: Tekenarm die wordt bestuurd door geluid - Arduino School Project - Ajarnpa
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Dit is mijn allereerste keer dat ik met Arduino werk en ooit met zoiets werk, dus sorry als ik fouten heb gemaakt! Ik kreeg dit idee toen ik dacht aan mijn hobby's, tekenen en muziek. Dus ik probeerde de twee hierin te combineren! Een zelftrekkende arm die wordt beïnvloed door geluid.
Stap 1: Stap 1: Materialen
- Arduino Uno
- Broodplank
- Geluidsdetector (Sparkfun sen-12642)
- 2 (mini)servo's
- Tie-wraps / ritssluitingen
- Wat hout en papier
- iets waarmee je kunt tekenen/schrijven
Stap 2: Stap 2: Installatie
Ik heb eerst de servo's aangesloten en daarna de geluidsdetector. De Sparkfun sen-12642 geluidsdetector heeft 3 uitgangen, ik heb alleen de "envelop" uitgang gebruikt.
Servo 1 = pin ~9
Servo 2 = pin ~10
Geluidsdetector = pin A0
De rode lijnen (5v) zijn verbonden met de positieve kant op het breadboard en de zwarte lijnen (aarde) zijn verbonden met de negatieve kant.
Stap 3: Stap 3: Niet-elektronica
Zorg ervoor dat de servo's stabiel en op de juiste plaats staan. Ik gebruikte tie-wraps om ze te stabiliseren. Daarna heb ik met tie-wraps de (vervangbare) bovenste delen van de servo aan de houten armen vastgemaakt. Daarna kunt u de houten armdelen op de servo's aansluiten. Sluit alle draden aan op de Arduino en het breadboard.
Daarna heb ik de draden aan de geluidsdetector gesoldeerd.
Stap 4: Stap 4: Coderen
Ik ben nog lang niet goed in coderen, maar ik heb mijn best gedaan en het internet heeft veel geholpen:)
#include Servo myservo1; Servo-myservo2; int pos = 0; int PIN_ANALOG_IN = A0;
void setup(){ Serial.begin(9600);
// Weergavestatus
Serial.println("Geïnitialiseerd"); mijnservo1.attach (9); mijnservo2.attach(10); }
lege lus()
{ int-waarde;
// Controleer de envelopinvoer
waarde = analoog lezen (PIN_ANALOG_IN);
// Envelopwaarde beïnvloedt de servo's
Serial.println(waarde); if(waarde 5) && (waarde 10) && (waarde 20) && (waarde 30) && (waarde 60)) { myservo1.write(random(0, 90)); myservo2.write(willekeurig (0, 90)); }
vertraging (180);
}