Daftar Isi:
Video: Menggambar Lengan yang Dikendalikan oleh Suara - Arduino School Project: 4 Langkah (dengan Gambar)
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Ini adalah pertama kalinya saya bekerja dengan Arduino, dan bekerja dengan sesuatu seperti ini, jadi maaf jika saya membuat kesalahan! Saya mendapat ide ini ketika saya memikirkan hobi saya, yaitu menggambar dan musik. Jadi saya mencoba menggabungkan keduanya menjadi ini! Lengan menggambar sendiri yang dipengaruhi oleh suara.
Langkah 1: Langkah 1: Bahan
-Arduino Uno
- Papan tempat memotong roti
- Detektor suara (Sparkfun sen-12642)
- 2 (mini) Servo
- Bungkus dasi / dasi zip
- Beberapa kayu dan kertas
- sesuatu yang bisa kamu gambar/tulis
Langkah 2: Langkah 2: Pengaturan
Saya pertama-tama mencolokkan Servo dan kemudian detektor suara. Detektor suara Sparkfun sen-12642 memiliki 3 output, saya hanya menggunakan output "amplop".
Servo 1 = pin ~9
Servo 2 = pin ~ 10
Detektor suara = pin A0
Garis merah (5v) terhubung ke sisi positif pada papan tempat memotong roti, dan garis hitam (ground) terhubung ke sisi negatif.
Langkah 3: Langkah 3: Non-elektronik
Pastikan servo stabil dan di tempat yang tepat. Saya menggunakan bungkus dasi untuk menstabilkan mereka. Setelah itu saya menggunakan tie wrap untuk mengikat bagian atas (yang dapat diganti) servo ke lengan kayu. Setelah itu Anda dapat menghubungkan bagian lengan kayu ke servo. Hubungkan semua kabel ke Arduino dan papan tempat memotong roti.
Setelah itu saya menyolder kabel ke detektor suara.
Langkah 4: Langkah 4: Kode
Saya sama sekali tidak pandai dalam pengkodean, tetapi saya mencoba yang terbaik dan internet banyak membantu:)
#sertakan Servo myservo1; Servo myservo2; int pos = 0; int PIN_ANALOG_IN = A0;
void setup(){ Serial.begin(9600);
// Menampilkan status
Serial.println("Inisialisasi"); myservo1.attach (9); myservo2.attach(10); }
lingkaran kosong()
{ nilai int;
// Periksa masukan amplop
nilai = analogRead(PIN_ANALOG_IN);
// Nilai amplop mempengaruhi servo's
Serial.println(nilai); if(nilai 5) && (nilai 10) && (nilai 20) && (nilai 30) && (nilai 60)) { myservo1.write(random(0, 90)); myservo2.write(random(0, 90)); }
penundaan(180);
}