Оглавление:
- Запасы
- Шаг 1: концепция
- Шаг 2: подготовьте акселерометр
- Шаг 3: создайте перчатку
- Шаг 4. Составьте текст в Ableton
- Шаг 5: Начните использовать Firmata
- Шаг 6: тестовые данные
- Шаг 7: влияйте на музыку движениями рук
- Шаг 8: Класс Track (бонус!)
- Шаг 9: длина трека, удары и многое другое (бонус!)
Видео: Танцевальная перчатка: 9 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
В этом уроке я расскажу вам, как создать перчатку, которая позволит вам взаимодействовать с музыкой через танец. Вы создадите перчатку с акселерометром, спроектируете композицию в Ableton, а затем соедините их таким сложным или простым способом, как захотите!
Запасы
- Ableton (или бесплатная пробная версия)
- Ардуино
- Соединительные кабели
- Паяльник
- Картон
- Пистолет для горячего клея
- Много воображения
Шаг 1: концепция
Этот проект создан для развлечения. Если то, как работает пример проекта в этом руководстве, вам не нравится, переделайте его!
Я рекомендую поставить некоторые из ваших любимых песен, поднести к ним руки и посмотреть, что из этого получится. Вы двигаете руками вверх-вниз? Бок о бок? Медленно или быстро? Какие аспекты музыки вызывают у вас желание пошевелить руками? Если у вас есть их список, вы, вероятно, сможете найти способы включить движения, которые вам нравятся, в ваши возможные алгоритмы.
Вот движения, которые я использовал:
- Быстрое движение вверх-вниз запускает начало песни, ударных или баса. (Это происходит в разных точках песни, не обязательно одновременно!)
- Медленное наклонное движение из стороны в сторону вызывает более эхо-высокий звук.
- В одном конкретном фрагменте песни, когда моя рука поднимается вверх, музыка притихает - так что я «поймал» ее в сжатом кулаке.
Используйте их или сделайте сами!
(Обратите внимание: в этом руководстве не рассматривается, как создавать музыку или мелодии вживую в Ableton! Если вы будете придерживаться этих инструкций, вы сможете только увеличивать / уменьшать громкость треков или применение звуковых эффектов.)
Шаг 2: подготовьте акселерометр
Во-первых, выясните, какой у вас акселерометр. Я использовал этот; любой трехосевой акселерометр подойдет. (Или попробуйте другой тип датчика, если хотите сходить с ума.) Убедитесь, что вы умеете считывать данные акселерометра с Arduino. Вам может потребоваться загрузить библиотеку для вашего акселерометра, если он использует что-то более сложное, чем аналоговый ввод.
После тестирования на макетной плате припаяйте короткие цветные провода к контактам акселерометра. Вставьте красный провод в контакт питания, черный провод в контакт заземления и любые другие необходимые провода для связи с акселерометром. (Если у вас есть акселерометр I2C, это будут контакты SCL и SDA. Если у вас аналоговый акселерометр, вероятно, будет по одному контакту для каждого из выходов x, y и z.) Убедитесь, что ваш припой прочный и чтобы бусинки не перекрывали соседние булавки.
Шаг 3: создайте перчатку
Вырежьте из тонкого картона или толстой бумаги прямоугольник размером чуть больше вашего акселерометра. Приклейте акселерометр к картону, убедившись, что вы нанесли клей на дно. Затем приклейте акселерометр с картонной подложкой к тыльной стороне перчатки. Свободно пришейте каждую проволоку к запястью перчатки, чтобы снять напряжение на акселерометре, и тогда ваша перчатка готова. Подключайте его к более длинным проводам, чтобы было достаточно места для движения руки, когда он подключен.
Шаг 4. Составьте текст в Ableton
Пришло время сочинить песню, которую вы в конечном итоге будете контролировать с помощью перчатки. Я рекомендую лупы Ableton, которые хорошо звучат вместе, но их можно использовать для постепенного наращивания: попробуйте мелодию, аккорды, бас и перкуссию. Вы сможете использовать свою перчатку, чтобы контролировать, когда каждый цикл воспроизводится или нет.
Если вы можете придумать какие-либо интересные звуки, которые можно иногда включать в песню, например, странный звуковой эффект или нетрадиционный инструмент, попробуйте добавить один или два из них! Вы можете связать их с менее распространенными движениями рук, чтобы время от времени приносить что-то интересное.
Вот ссылка на мою Arduino-совместимую композицию, если вы не хотите писать свою собственную:
(К сожалению, обучение Ableton выходит за рамки данного руководства. Однако есть много хороших обучающих видео, и у Ableton есть 90-дневная бесплатная пробная версия! Я рекомендую это видео.)
Шаг 5: Начните использовать Firmata
Чтобы ваш Arduino мог взаимодействовать с Ableton, вам понадобится библиотека под названием Firmata. Вам также необходимо загрузить комплект подключения для Ableton.
В Ableton щелкните Пакеты> Комплект для подключения> Устройства в меню в левом верхнем углу, а затем дважды щелкните первое устройство (Arduino), чтобы добавить его. Убедитесь, что вы помните, на какой трек Ableton вы добавили устройство!
Шаг 6: тестовые данные
Сначала мы проверим и убедимся, что ваш Arduino взаимодействует с Ableton. Загрузите этот фрагмент кода в свой Arduino и запустите его:
#include void analogWriteCallback (byte pin, int value) {if (IS_PIN_PWM (pin)) {pinMode (PIN_TO_DIGITAL (pin), OUTPUT); analogWrite (PIN_TO_PWM (контакт), значение); }} void setup () {Firmata.setFirmwareVersion (FIRMATA_FIRMWARE_MAJOR_VERSION, FIRMATA_FIRMWARE_MINOR_VERSION); Firmata.attach (ANALOG_MESSAGE, analogWriteCallback); Firmata.begin (57600);} void loop () {Firmata.sendAnalog (0, 800);}
Это минимум, необходимый для связи с Firmata. Он постоянно отправляет выходной сигнал 800 (из 1024) на порт 0 устройства Firmata в Ableton. Если вы загрузите этот код в свой Arduino, когда у вас открыто устройство Firmata в Ableton, он должен выглядеть, как на изображении выше. (Сопоставьте порт 0 с чем-либо в Ableton, чтобы видеть значения.)
Вы можете нажать кнопку «Карта», а затем любое устройство, совместимое с Firmata, в Ableton, чтобы добавить соответствие между входными данными, полученными на этот порт, и значением этого устройства Ableton. Простые примеры включают громкость любой дорожки или любой циферблат в звуковом эффекте. Исследуйте и посмотрите, что вы можете найти на карте!
Шаг 7: влияйте на музыку движениями рук
К этому времени у вас должна быть музыка в Ableton, скрипт Firmata на вашем Arduino и прикрепленная перчатка акселерометра. Сделаем музыку!
Сопоставьте порты устройства Arduino в Ableton с разными вещами (я предлагаю отслеживать объем), а затем добавьте строки кода для отправки данных на каждый порт из Arduino.
Firmata.sendAnalog (порт, volumeLevel);
Используйте такой код для каждого порта Firmata.
Если вы хотите сделать что-то простое, вы можете отправить необработанные значения акселерометра в порты Ableton и сопоставить их оттуда. Для более сложных задач вы можете решить: какие значения акселерометра должны вызывать звуки, как и когда?
Затем воспроизведите все свои циклы Ableton, запустите код Arduino и танцуйте!
(Отказ от ответственности: если вы планируете создать какой-либо сложный алгоритм для своей песни, на его точную настройку может уйти много времени. "Dance Away" может быть менее точным, чем ожидалось.)
Шаг 8: Класс Track (бонус!)
Если вы не против увеличения громкости или у вас есть другой способ уменьшить его, пропустите этот шаг. В противном случае читайте дальше!
Я заметил, что переключение громкости с приглушенного на полную за один раз создает неприятные хлопающие звуки, и приятно иметь возможность постепенно уменьшаться в громкости. Однако в среде синхронного программирования Arduino это сделать сложно. Итак, вот код, чтобы убрать всплывающие окна:
class Track {public: int volume; int volumeGoal; int updateSpeed; Track () {volume = 0; volumeGoal = 0; updateSpeed = 0; } void setVolumeGoal (int target) {volumeGoal = goal; } int getVolumeGoal () {return volumeGoal; } void setUpdateSpeed (int fastness) {updateSpeed = быстродействие; } int getVolume () {объем возврата; } void updateVolume () {if ((volume> volumeGoal) && ((volume - volumeGoal)> = updateSpeed)) {volume - = updateSpeed; } иначе, если ((volume = updateSpeed)) {volume + = updateSpeed; }} void mute (int fastness) {volumeGoal = 50; updateSpeed = стойкость; } полная пустота (int прочности) {volumeGoal = 950; updateSpeed = стойкость; }};
Каждый трек имеет текущий объем, целевой объем и скорость, с которой он движется к этому целевому объему. Если вы хотите изменить громкость дорожки, вызовите setVolumeGoal (). Каждый раз, когда вы запускаете функцию loop () в Arduino, вызывайте updateVolume () для каждой дорожки, а затем отправляйте эту информацию в Firmata с помощью getVolume (). Измените скорость обновления для более быстрого или более постепенного исчезновения! Кроме того, по возможности не устанавливайте громкость на 0; вместо этого установите очень низкое значение (по умолчанию в mute () установлено 100).
Шаг 9: длина трека, удары и многое другое (бонус!)
Вы можете многое сделать, чтобы звук вашего проекта было легче слушать. Вот несколько вариантов:
Вы можете отслеживать, как долго звучит песня. Для этого вам нужно выяснить, когда песня началась; Я рекомендую использовать цикл while в функции setup (), который задерживает выполнение вашего кода до тех пор, пока он не почувствует движение руки. Сохраните время начала песни в переменной с помощью millis () и проверяйте, сколько времени это длится каждый раз, когда вы выполняете loop (). Вы можете использовать это для включения или отключения определенных функций в определенное время песни.
Если вы знаете, как долго ваши петли в миллисекундах, вы также можете отслеживать, сколько петель вы прошли, для более детального понимания структуры песни!
Еще одна потенциальная проблема, с которой вы можете столкнуться, - это когда начинать и останавливать воспроизведение трека. Я решил эту проблему, отслеживая, в какой доле такта песня находится в данный момент. Затем я мог проигрывать треки для любого количества долей после жеста, вместо того, чтобы сразу его обрезать. Это делает процесс намного более плавным. Вот пример:
если (millis () - lastLoop> = 4000) {циклы + = 1; lastLoop = millis (); для (int j = 0; j <8; j ++) {beatNow [j] = false; }} beat = (millis () - lastLoop) / 250; если (бит! = lastBeat) {lastBeat = бит; beatsLeft - = 1; }
Убедитесь, что вы обновили громкость в соответствии со значениями beatNow [beat] и / или beatsLeft. Пример кода, включающий почти все в этом руководстве, а также некоторые из них, прилагается на тот случай, если вы хотите увидеть его на практике.
Рекомендуемые:
Танцевальная музыка для гроба с использованием Arduino: 6 шагов
Coffin Dance Music с использованием Arduino: в этом уроке я расскажу, как вы можете использовать Arduino для создания музыки, используя только динамик (модуль MP3 не требуется). Сначала посмотрите этот видеоурок
Перчатка мастера: перчатка с контроллером Arduino: 4 шага (с изображениями)
Wizard Glove: перчатка с контроллером Arduino: The Wizard Glove. В моем проекте я сделал перчатку, которую вы можете использовать, чтобы играть в свои любимые игры, связанные с магией, крутым и захватывающим способом, используя только несколько основных ресурсов Arduino и Arduino. вы можете играть в такие игры, как The Elder Scrolls, или вы
Еще одна дурацкая танцевальная площадка: 7 шагов
Еще один глупый танцевальный пэд: ничего особенного, просто деревянный USB-пэд на 25 фунтов (11,3 кг) на основе клавиатуры Microsoft YASDP
Светодиодная танцевальная комната: 7 шагов
Светодиодная танцевальная комната: это руководство по созданию светодиодного музыкального визуализатора на базе Arduino, также известного как полностью красивая цифровая танцевальная комната. Существуют различные руководства вокруг инструкций по визуализаторам чистых схем, но, как правило, они представляют собой своего рода усилители, позволяющие
Танцевальная площадка с цветным светодиодом с использованием Arduino: 5 шагов
Dance Pad с цветным светодиодом с использованием Arduino: Это мое первое руководство. Я сделал красочную танцевальную площадку, используя плату Arduino в качестве последовательного входа для компьютера. Это легко сделать и стоит несколько резисторов и светодиодов (вам не обязательно их использовать).