Mục lục:
Video: Vẽ cánh tay được điều khiển bằng âm thanh - Dự án trường học Arduino: 4 bước (kèm hình ảnh)
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Đây là lần đầu tiên tôi làm việc với Arduino và đã từng làm việc với những thứ như thế này, rất xin lỗi nếu tôi mắc phải bất kỳ sai sót nào! Tôi nảy ra ý tưởng này khi nghĩ về sở thích của mình, đó là vẽ và âm nhạc. Vì vậy, tôi đã cố gắng kết hợp cả hai vào điều này! Cánh tay tự vẽ bị ảnh hưởng bởi âm thanh.
Bước 1: Bước 1: Vật liệu
- Arduino Uno
- Bảng bánh mì
- Máy dò âm thanh (Sparkfun sen-12642)
- 2 (mini) Servo
- Cà vạt quấn / cà vạt zip
- Một số gỗ và giấy
- thứ gì đó bạn có thể vẽ / viết với
Bước 2: Bước 2: Thiết lập
Đầu tiên tôi cắm Servo's và sau đó là máy dò âm thanh. Máy dò âm thanh Sparkfun sen-12642 có 3 đầu ra, tôi chỉ sử dụng đầu ra "phong bì".
Servo 1 = pin ~ 9
Servo 2 = pin ~ 10
Máy dò âm thanh = chân A0
Các đường màu đỏ (5v) được kết nối với mặt tích cực trên breadboard, và các đường màu đen (mặt đất) được kết nối với mặt âm.
Bước 3: Bước 3: Phi điện tử
Đảm bảo rằng servo được ổn định và ở đúng vị trí. Tôi dùng cà vạt quấn để cố định chúng. Sau đó, tôi sử dụng dây quấn để buộc các phần trên (có thể thay thế) của servo vào các tay gỗ. Sau đó, bạn có thể kết nối các bộ phận cánh tay bằng gỗ với servo. Kết nối tất cả các dây với Arduino và breadboard.
Sau đó, tôi hàn dây vào máy dò âm thanh.
Bước 4: Bước 4: Mã
Tôi không giỏi lập trình bằng cách nào, nhưng tôi đã cố gắng hết sức và internet đã giúp ích rất nhiều:)
#include Servo myservo1; Servo myservo2; int pos = 0; int PIN_ANALOG_IN = A0;
void setup () {Serial.begin (9600);
// Trạng thái hiển thị
Serial.println ("Đã khởi tạo"); myservo1.attach (9); myservo2.attach (10); }
void loop ()
{giá trị int;
// Kiểm tra đầu vào phong bì
value = analogRead (PIN_ANALOG_IN);
// Giá trị phong bì ảnh hưởng đến
Serial.println (giá trị); if (giá trị 5) && (giá trị 10) && (giá trị 20) && (giá trị 30) && (giá trị 60)) {myservo1.write (random (0, 90)); myservo2.write (ngẫu nhiên (0, 90)); }
chậm trễ (180);
}