Оглавление:
Видео: Рисование руки, управляемой звуком - проект школы Arduino: 4 шага (с изображениями)
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Я впервые работаю с Arduino и работаю с чем-то вроде этого, извините, если я допустил ошибки! У меня возникла эта идея, когда я подумал о своих увлечениях, а именно рисовании и музыке. Итак, я попытался объединить два в этом! Самостоятельно вытягивающаяся рука, на которую воздействует звук.
Шаг 1: Шаг 1: Материалы
- Ардуино Уно
- Макетная плата
- Звуковой детектор (Sparkfun sen-12642)
- 2 (мини) сервопривода
- Галстуки / завязки на молнии
- Немного дерева и бумаги
- что-то, чем можно рисовать / писать
Шаг 2: Шаг 2: Настройка
Сначала я подключил сервопривод, а затем детектор звука. Детектор звука Sparkfun sen-12642 имеет 3 выхода, я использовал только выход "конверт".
Сервопривод 1 = штырь ~ 9
Серво 2 = контакт ~ 10
Звуковой детектор = контакт A0
Красные линии (5 В) подключены к положительной стороне макета, а черные линии (земля) подключены к отрицательной стороне.
Шаг 3: Шаг 3: Неэлектроника
Убедитесь, что сервоприводы устойчивы и находятся в нужном месте. Я использовал бинты, чтобы закрепить их. После этого я использовал стяжки, чтобы привязать (сменные) верхние части сервопривода к деревянным рычагам. После этого вы можете соединить деревянные части рычага с сервоприводом. Подключите все провода к Arduino и макету.
После этого припаял провода к детектору звука.
Шаг 4: Шаг 4: Код
Я никоим образом не умею кодить, но я старался изо всех сил, и Интернет мне очень помог:)
#include Servo myservo1; Серво myservo2; int pos = 0; int PIN_ANALOG_IN = A0;
void setup () {Serial.begin (9600);
// Отображение статуса
Serial.println («Инициализировано»); myservo1.attach (9); myservo2.attach (10); }
пустой цикл ()
{значение int;
// Проверяем ввод конверта
значение = analogRead (PIN_ANALOG_IN);
// Значение конверта влияет на сервопривод
Serial.println (значение); if (значение 5) && (значение 10) && (значение 20) && (значение 30) && (значение 60)) {myservo1.write (random (0, 90)); myservo2.write (случайный (0, 90)); }
задержка (180);
}