2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Ультразвуковой терменвокс - это проект Arduino, который использует дешевый терменвокс для обучения звуковым волнам. Изменяя расстояние руки до устройства, я изменяю частоту звуковых волн. Кроме того, перемещение потенциометра изменяет амплитуду волны. Это можно использовать как научный урок о звуковых волнах.
Шаг 1. Инструменты и расходные материалы
Запасы
- Arduino Uno с USB-шнуром
- Ультразвуковой датчик для изменения частоты (высоты тона)
- Пьезо-зуммер для воспроизведения звука
- Потенциометр для изменения амплитуды (громкости)
- Светодиод с резистором 220 Ом (визуально для частоты)
- Пенопласт для корпуса
- Провода перемычки
ПРИМЕЧАНИЕ. Большинство этих деталей поступило из комплекта Arduino.
Инструменты
- Компьютер с установленной Arduino
- Пистолет для горячего клея
- Лазерный резак для корпуса
- Power Bank, если вы хотите сделать его портативным
Шаг 2: Сборка
Электроника
На первых двух изображениях справа показана электроника в процессе тестирования, но на третьем я переместил компоненты, чтобы разместить корпус. Светодиод и ультразвуковой датчик используют перемычки длиной 40 см, которые определенно могут быть меньше, но это было то, что у меня было под рукой. Я просто обернул лишнее вокруг Arduino, прежде чем закрывать его.
Дело
Корпус был изготовлен MakerCase с небольшими размерами, поэтому моему прототипу потребовался дополнительный клей, чтобы собрать его вместе. После того, как вы измерили детали на верхней части Arduino, добавьте несколько миллиметров к своим значениям и вставьте их в MakerCase для файла, который затем можно вырезать лазером на пенопласте.
Шаг 3: Код
Код в основном контролируется переменной, называемой питчем. Шаг использует карту, чтобы скрыть значения от ультразвукового датчика до чего-то читаемого пьезо-динамиком и, в частности, до частот между A3 и C5. Ограничение гарантирует, что карта не предсказывает высокую частоту, когда видит большое расстояние (они раздражали). Остальная часть кода предназначена для чтения датчика, добавления светодиода и последовательных сообщений.
шаг = ограничение (карта (distanceCm, 1, 40, 256, 523), 220, 523);