Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Просмотрите этот проект на моем веб-сайте, чтобы увидеть моделирование схемы и видео!
Акустическая левитация стала возможной благодаря тому, что звук ведет себя как волна. Когда две звуковые волны пересекаются друг с другом, они могут конструктивно или разрушительно мешать друг другу. (Так работают наушники с шумоподавлением)
В этом проекте используется ультразвуковой датчик расстояния для создания эффекта левитации. Это работает путем создания «карманов», в которых две противоположные звуковые волны интерферируют друг с другом. Когда объект помещается в карман, он остается там, как бы паря на месте.
Необходимые материалы:
- Плата Arduino:
- H-мост:
- Датчик расстояния:
- Макетная плата:
- Провода перемычки:
- Диод:
- Конденсаторы (возможно):
Оригинальный проект Ульриха Шмерольда из журнала Make Magazine.
Шаг 1: приобретите ультразвуковые передатчики
Вам нужно будет пожертвовать датчиком расстояния для этого шага (не волнуйтесь, они относительно дешевые):
- Отпаяйте и снимите оба передатчика с платы.
- Снимите и сохраните сетку экрана с одного
- Припаяйте провода к обоим передатчикам
Шаг 2: Создайте схему
Создайте приведенную выше схему и обратите внимание на следующее:
- Возможно, вам не обязательно включать два конденсатора по 100 нФ. (только если ваша плата по какой-то причине не может обрабатывать схему и продолжает отключаться)
- Батарея 9 В заменяет любой источник питания постоянного тока - мой отлично работал с литий-полимерным аккумулятором 7,5 В
Шаг 3: Код
Загрузите этот код в свой Arduino:
// исходный код из:
байт TP = 0b10101010; // Все остальные порты получают инвертированный сигнал void setup () {DDRC = 0b11111111; // Установить все аналоговые порты как выходы // Инициализировать Timer1 noInterrupts (); // Отключить прерывания TCCR1A = 0; TCCR1B = 0; TCNT1 = 0; OCR1A = 200; // Установить регистр сравнения (16 МГц / 200 = прямоугольная волна 80 кГц -> полная волна 40 кГц) TCCR1B | = (1 << WGM12); // Режим CTC TCCR1B | = (1 <без предварительного масштабирования TIMSK1 | = (1 << OCIE1A); // Включить прерывания по таймеру сравнения (); // Разрешить прерывания} ISR (TIMER1_COMPA_vect) {PORTC = TP; // Отправить значение TP для выходов TP = ~ TP; // Инвертируем TP для следующего прогона} void loop () {// Здесь нечего делать:)}
Шаг 4: Установите датчики и откалибруйте
Вы действительно можете использовать что угодно для этого, но в итоге я использовал набор рук помощи (купите здесь:
- Начните с размещения передатчиков на расстоянии 3/4 дюйма друг от друга.
- Возьмите небольшой кусок пенополистирола размером примерно половину горошины (он не должен быть круглым).
- Поместите пенополистирол на сетку из шага 1.
- Используя пинцет или плоскогубцы, поместите его между двумя передатчиками (он должен начать покачиваться, когда вы приблизитесь).
- Перемещайте передатчики (ближе и дальше друг от друга), пока пенополистирол не останется неподвижным.
Шаг 5. Устранение неполадок
Мне потребовалось около пятнадцати минут, чтобы заставить его работать в первый раз, но после этого было довольно легко запустить его снова. Вот несколько вещей, которые вы можете попробовать, если сначала это не сработает:
- Убедитесь, что вы все правильно подключили
- Увеличьте напряжение на H-мосту (другой аккумулятор)
- Возьмите кусок пенопласта меньшего размера.
- Попробуйте другое положение передатчиков
- Попробуйте добавить конденсаторы (если вы еще этого не сделали)
- Если он по-прежнему не работает, возможно, что-то сломалось: попробуйте другой комплект передатчиков или новую батарею.