İçindekiler:
Video: Sesle Kontrol Edilen Kol Çekme - Arduino Okul Projesi: 4 Adım (Resimli)
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Arduino ile ilk kez çalışıyorum ve şimdiye kadar böyle bir şeyle çalışıyorum, herhangi bir hata yaptıysam çok özür dilerim! Bu fikir, hobilerim olan çizim ve müzik hakkında düşündüğümde aklıma geldi. Bu yüzden ikisini burada birleştirmeye çalıştım! Sesten etkilenen kendi kendini çeken bir kol.
Adım 1: Adım 1: Malzemeler
-Arduino Uno
- Ekmek tahtası
- Ses dedektörü (Sparkfun sen-12642)
- 2 (mini) Servo
- Kravat sarar / zip bağları
- Biraz tahta ve kağıt
- çizebileceğiniz/yazabileceğiniz bir şey
Adım 2: Adım 2: Kurulum
Önce servoları ve ardından ses dedektörünü taktım. Sparkfun sen-12642 ses dedektörünün 3 çıkışı var, ben sadece "zarf" çıkışını kullandım.
Servo 1 = pin ~9
Servo 2 = pin ~10
Ses dedektörü = pin A0
Kırmızı çizgiler(5v) devre tahtasında pozitif tarafa bağlanır ve siyah çizgiler(toprak) negatif tarafa bağlanır.
Adım 3: Adım 3: Elektronik olmayanlar
Servoların sabit ve doğru yerde olduğundan emin olun. Onları sabitlemek için kravat sargısı kullandım. Daha sonra servonun (değiştirilebilir) üst kısımlarını ahşap kollara bağlamak için kravat sargısı kullandım. Daha sonra ahşap kol kısımlarını servolara bağlayabilirsiniz. Tüm kabloları Arduino ve breadboard'a bağlayın.
Bundan sonra kabloları ses dedektörüne lehimledim.
4. Adım: 4. Adım: Kod
Kodlama konusunda hiçbir şekilde iyi değilim ama elimden gelenin en iyisini yaptım ve internet çok yardımcı oldu:)
#include Servo myservo1; Servo myservo2; int konum = 0; int PIN_ANALOG_IN = A0;
geçersiz kurulum(){ Serial.begin(9600);
// Durumu göster
Serial.println("Başlatıldı"); myservo1.attach(9); myservo2.attach(10); }
boşluk döngüsü()
{ int değeri;
// Zarf girişini kontrol edin
değer = analogRead(PIN_ANALOG_IN);
// Zarf değeri servonun değerini etkiler.
Seri.println(değer); if(değer 5) && (değer 10) && (değer 20) && (değer 30) && (değer 60)) { myservo1.write(rastgele(0, 90)); myservo2.write(rastgele(0, 90)); }
gecikme(180);
}