В гостях у Самоделкина! » С сайтов » Спец » Пространственный синтезатор Kravox на Ардуино

Пространственный синтезатор Kravox на Ардуино



Мастер изобрел Kravox во время исследовательского проекта в Лундском университете (Швеция), целью которого было придание контроллерам цифровых музыкальных инструментов ощущения традиционных механических инструментов. Теперь мастер хочет сделать Kravox доступным для всех в качестве музыкальной платформы для экспериментов. Именно для этого он и создал этот подробный инструктаж, который позволит как можно большему количеству людей использовать этот новый интересный музыкальный инструмент.

Играть в Кравокс довольно просто. Представьте, что вы играете с обычным объектом, таким как метла, и то, как вы касаетесь его и перемещаете его в пространстве, контролирует, как генерируется звук. Посмотреть и услышать, как играть в Кравокс, а также процесс изготовления инструмента, можно в конце статьи в видеороликах.

Инструменты и материалы:
-Макетная плата 50 * 24 отверстия -1 шт;
-40-контактные штыревые разъемы -5 шт;
-40-контактные штекера - 5 шт;
-Потенциометры 10 кОм и ручки для них - 5 шт;
-Синие 5 мм стандартные светодиоды - 3 шт;
-Резисторы 150 Ом - 3 шт;
-Конденсатор 10 мкФ - 2 шт;
-Конденсатор 100 нФ - 2 шт;
-Радиомодуль NRF24L01 - 2 шт;
-Arduino nano -2 шт;
-Резисторы 220 Ом -3 шт;
-Платы сенсорных датчиков MPR121- 2 шт;
-Цифровой гироскоп GY-521 MPU 6050 - 1 шт;
- Кабели USB-A к USB-C;
-4 метра (минимум) медной ленты шириной 1 см;
-Повербанк;
-7 метров (минимум) провода разных цветов;
-0,2 метра, термоусадочной трубки ø = 3 мм;
-Паяльные принадлежности;
-Мультиметр;
-Линейка;
-Нож;
-Ножовка;
-Плоскогубцы;
-Картон;
-Клеевой пистолет;
-Скотч;
-Клей;
-Канцелярские резинки;
-Зажимы;




Шаг первый: теория
Kravox - это кроссплатформенный цифровой музыкальный инструмент с открытым исходным кодом, который состоит из трех компонентов - контроллера / контроллеров, приемника и программного обеспечения.

Можно подключить до трех беспроводных контроллеров. Каждый контроллер обрабатывает данные об ориентации и ускорении с цифрового гироскопа MPU-6050 и данные касания с двух плат сенсорных датчиков MPR121, подключенных к Arduino Nano. Контроллер отправляет данные на приемное устройство с помощью радиопередатчика nRF24L01. Если необходимо использовать более одного контроллера, второму и третьему контроллеру необходимо назначить индивидуальные адреса.

Приемник передает данные, полученные от контроллера (ов), на подключенный компьютер вместе с данными, собранными с нескольких потенциометров. Предоставленный код приемного устройства позволяет устанавливать связь с тремя контроллерами, но также будет работать только с одним или двумя без настроек.

Данные от приемника обрабатываются в программе, написанной на Pure Data Vanilla, которая выводит звук.
Красота Kravox заключается в том, что его форму, то, как он звучит и как на нем играть, можно регулировать. Это дало мастеру возможность разработать легкую для копирования версию Kravox для этого урока.


Шаг второй: создание платы контроллера
Дальше мастер объясняет, как сделать электронику контроллера шаг за шагом из упомянутых выше деталей.
Если вы сомневаетесь, куда паять кабель, вы всегда можете вернуться к принципиальной схеме и проверить, правильно ли подключены компоненты.


Первым шагом является нарезка макетной платы и разъемов и сборка их вместе с маленьким и большим конденсатором, которые помогают повысить надежность радиопередатчика.

Разрежьте доску с помощью универсального ножа
Разрежьте разъемы ножовкой (мастер положил их на книгу, чтобы выровнять их со стола)
Установите разъемы на макетку и припаяйте. Вы уже можете подключить каждую пару контактов двух
длинных разъемов, которые расположены рядом друг с другом. Для остальных достаточно просто прикрепить их небольшим припоем - предпочтительно контакты, которые в соответствии с принципиальной схемой не будут подключаться позже. При пайке конденсаторов обратите внимание на полярность электролитического конденсатора на 10 микрофарад (большего из двух). Одна его сторона будет иметь полосу и, как правило, более короткую ногу. Эта сторона должна быть подключена к земле. Меньший 100 нанофарадный конденсатор не поляризован и может быть спаян любым способом.





Дальше спаиваются светодиоды-резисторы. Обратите внимание на полярность светодиода: одна его сторона обычно имеет более короткую ногу. Эта сторона должна быть подключена к земле в последующем шаге. К другой ноге припаивается провод голубого цвета. Второй конец провода припаивается к разъему, где будет подключен Arduino pin D3.


Далее монтируются все красные и синие кабели питания. Красный для 3.3 Вольт и синий для заземления (GND).


Три сенсорные платы обмениваются данными по протоколу I2C (интегральная схема). Это означает, что все они могут быть подключены к одним и тем же двум контактам Arduino, поэтому мы паяем желтый и зеленый провода к датчикам и контактами Arduino A4 и A5. Также нужно смонтировать белый кабель для подключения контактов прерывания гироскопа.


Радиопередатчик обменивается данными через SPI-протокол (последовательный
периферийный интерфейс), который требует больше соединений, чем I2C, мастер добавляет черный, серый, коричневый, фиолетовый и оранжевый провода.


Теперь пришло время подготовить компоненты. Помимо пайки на штыревых разъемах, если они не
спаяны, нужно обратить особое внимание на платы сенсорных датчиков! У дешевых моделей из Китая адресный штырь жестко заземлен без промежуточного резистора, поэтому необходимо физически разрезать это соединение в нижней части платы с помощью ножа. Разрезать между двумя контактными площадками рядом с местом, где написано ADD. Мастер рекомендует прозвонить мультиметром, чтобы убедиться, что контакты не соединены.


Когда все детали имеют припаянные разъемы и подготовлены платы сенсорных датчиков, можно подключить Arduino Nano, гироскоп, две платы сенсорных датчиков и радиомодуль к плате контроллера.


Шаг третий: загрузка кода
После двойной проверки, если все подключено правильно, следующим шагом является загрузка предоставленного кода Kravox-Controller в Arduino nano, но прежде чем вы сможете это сделать, вам нужно будет установить библиотеки для гироскопа, плат сенсорных датчиков и радиопередатчик. Если вы новичок в Arduino-библиотеках, узнайте, как их установить здесь.
Для гироскопа MPU6050 требуются библиотеки «I2Cdev.h» и «MPU6050_6Axis_MotionApps20.h» Джеффа Роуберга, которые можно загрузить здесь.
Для сенсорных плат MPR121 требуется библиотека MPR121.h от Bare Conductive, которую можно найти здесь. Существует как минимум две версии библиотеки. Обязательно установите версию, разработанную Bare Conductive, а не версию, разработанную Adafruit.
Для платы радиопередатчика NRF24L01 требуются библиотеки «nRF24L01.h» и «RF24.h» TMRh20, которые можно загрузить здесь. Обратите внимание: существуют также как минимум две версии этих библиотек с одинаковыми именами. Убедитесь, что вы установили разработанные TMRh20, а не maniacbug.
Как только библиотеки установлены, вы можете загрузить код Kravox-Controller.

Для того, чтобы проверить работает ли контроллер, можно разрешить ему выводить данные с сенсорных датчиков и гироскопа через последовательный монитор. Для этого необходимо отредактировать последний раздел кода получателя перед загрузкой: удалив отметки комментария в начале (/ *) и в конце (* /) его (см. Фото)

После загрузки кода с этим вариантом нужно открыть Serial Monitor и установить для него скорость передачи (скорость передачи данных) 115200. Теперь можно увидеть данные с датчиков, которые изменяются при перемещении платы контроллера и касании контактов, из MPR121-плат, которые помечены от 0 до 11.

Если ничего не работает или получаются только нули, нужно внимательно проверить проводку и сравните ее с приведенной выше схемой. Если получается неправильный сигнал от Serial Monitor, нужно проверить правильно ли установлена скорости передачи данных.


Шаг четвертый: питание платы

Для питания нужно подключить плату контроллера к повербанку.
Если повербанк не отключается автоматически через некоторое время, плата контроллера закончена, и можно перейти к плате приемника. В противном случае выполните следующий шаг.

Шаг пятый: решение проблемы питания
В принципе, плата контроллера готова, но некоторые повербанки автоматически отключаются через несколько секунд при подключении к плате контроллера, потому что она потребляет мало энергии. В качестве решения можно просто добавить три резистора 220 Ом параллельно между 5V и GND контактами Arduino.


После повторного присоединения компонентов (определенно) законченная плата контроллера выглядит так.


Шаг шестой: создание платы приемника
В этом шаге мастер покажет, как сделать плату приемника. Процесс очень похож на изготовление платы контроллера


Сначала нужно обрезать макетную плату и разъемы. Затем произвести монтаж конденсаторов. Можно сравнить этот шаг с первым шагом создания платы контроллера для получения дополнительной информации.


Дальше нужно добавить все красные и синие провода. Красный для 3.3 Вольт и синий для заземления (GND).


Монтаж проводов для связи SPI.


Плата приемника уже готова, но прежде чем загрузить код Kravox-Receiver в Arduino Nano, нужно сначала создать интерфейс для приемника.


Дальше мастер показывает, как сделать интерфейс с 4 потенциометрами и светодиодом для приемника. Интерфейс подключен, как на первом рисунке, и будет подключен к плате приемника, как видно на втором рисунке.


Порядок действия следующий, сначала нужно взять жгут из 8 кабелей и припаяйте 5 из них к средним контактам потенциометров. Желательно использовать те же цвета, что и на диаграмме, чтобы не запутаться.

Затем, нужно отрезать макетку 2 ряда по 17 отверстий и 17-контактный штыревой разъем. Присоединит кабели и контактный разъем к плате. Обратите внимание на схему выше, чтобы убедиться, что вы подключаете кабели в нужных местах.


Теперь нужно припаять к одному из контактов всех потенциометров синие провода (земля). Припаивает синий светодиод с резистором ограничения тока 150 Ом.

Припаивает зеленые провода.

Готовый интерфейс должен выглядеть примерно так (фото 1) и может быть подключен к плате приемника вот так (фото 2).

Шаг седьмой: код
Теперь можно загрузить код Kravox в Arduino Nano приемника.
Для проверки нужно снова внести небольшую корректировку в код перед загрузкой. По умолчанию приемник выводит свои данные в формате, который можно интерпретировать как чистые данные, но не отображает полезную информацию на последовательном мониторе. Однако вы можете изменить это поведение в коде, редактируя (добавляя // перед) строкой #define WRITE_AS_BYTES и (удалить // перед) строкой // #define PRINT_VIA_SERIAL_MONITOR.


Шаг восьмой: корпус
Дальше из медной полосы, мастер делает сенсор.


Для изготовления корпуса мастер использует пустые коробки.

Мастер расчерчивает картон. Отрезает 24 медные полоски и закрепляет на картонке.



Дальше мастер отрезает картон шириной 2 * 24 отверстия и 24-контактный штыревой разъем под размер и припаивает к нему 24 провода. Провода посередине должны быть длиной не менее 10 см. По мере удаления от центра длина проводов увеличивается. Например, если используется медная лента шириной 1 см и расстояние между электродами 3 мм, длина провода должна увеличиться на 1,3 см, как показано ниже: 10 / 11,3 / 12,6 / 13,9 / 15,2 ...

Теперь можно припаять вторые концы проводов к медным полосам и заклеить полоски скотчем.



Вклеивает сенсор в корпус, а затем приклеивает к ней другую корпус (для повербанка).


Закрывает заднюю часть платы контроллера картоном.

Устанавливает светодиоды и повербанк. Повербанк нужно расположить таким образом, чтобы можно было подключить и отключить USB-кабель, потому что именно так включается и отключается контроллер. Также подключите сенсорный интерфейс к плате контроллера и поместите его в коробку.

Делает вырез для кабеля USB-A-USB-C в месте соединения двух коробок, протягивает его и подключите к Arduino Nano.

Теперь контроллер готов.

Мастер фиксирует корпус с помощью канцелярских резинок. Если впоследствии возникнут проблемы с датчиками, распознающими прикосновение, когда их нет, нужно положить изоляционный материал, например, пленку, или тому подобное между корпусом, чувствительным к прикосновению, платой и проводами. Подключать питание, нужно не прикасаясь к сенсорам.


Шаг девятый: создание корпуса приемника
Теперь нужно сделать корпус для приемника. Мастер вырезает несколько круглых отверстий для потенциометров и светодиода.


Приклеивает плату приемника, светодиод, прикручивает потенциометры. Устанавливает ручки.




Шаг десятый: завершение
Теперь, когда все оборудование смонтировано, пришло время сыграть музыку! Для этого вам нужно программное обеспечение, к которому можно подключить оборудование. Для Kravox это программное обеспечение Pure Data Vanilla, которое вы можете скачать здесь бесплатно

После установки Pure Data на компьютер, нужно запустить его и открыть файл Kravox.pd. Обратите внимание, что он должен быть сохранен на вашем компьютере в той же папке, что и папка drumsamples, с которой он поставляется - в противном случае Pure Data не сможет найти файлы.
Как только программный интерфейс Kravox.pd откроется, нужно открыть окно, как на фото и установить четыре так называемых внешних устройства, которые перечислены в этом окне. Установка их проста, просто нажмите «help» в меню «Чистые данные», выберите «Find additional objects on the internet» (может быть несколько иначе), найдите «comport», «zexy», «freeverb» и «arraysize». "один за другим и установите самую последнюю версию. Теперь четыре объекта, помеченные как comport, repack, freeverb и arraysize, должны иметь сплошной контур, как на рисунке ниже. Возможно, вам придется перезапустить Pure Data для этого.

После установки внешних устройств вы можете подключить приемник через USB. Если вы изменили код в части 4, чтобы использовать Receiver с Arduino Serial Monitor, то необходимо сначала отменить это изменение и загрузить исходный код в Arduino Nano приемника перед подключением и закрытием Arduino Serial Monitor.

Теперь взгляните на окно Pure Data. Если вы видите быстро обновляемый поток данных, это здорово, но, скорее всего, вместо этого он покажет вам красное сообщение, подобное изображенному на первом рисунке, которое обновляется каждые две секунды.

Красное надпись может быть немного другая, но все равно это означает, что, Pure Data еще не удалось подключиться к вашему приемнику. Это потому, что программе нужно указать, какой USB-порт подключить. На разных устройствах USB-порты могут обозначаться по-разному, на MacBook Pro 2014 года Pure Data распознает оба USB-порта как последовательный порт 3, независимо от того, к какому ресиверу вы подключаете. Затем мастер использовал Kravox с Lenovo Yoga Pad только с одним работающим USB-портом, к который обозначался, как последовательный порт 6. На Windows порты обозначаются, как 8 и 9. Мастер советует просто попробовать узнать, какой номер работает USB-портом на вашем устройстве. Он создал диалог как часть интерфейса Kravox.pd (второе фото), где можно просто нажимать на цифры, пока устройство не заработает. Также можно попробовать «Показать доступные порты» и кнопки «Показывать подключенные USB-устройства».
Пространственный синтезатор Kravox на Ардуино


Дальше нужно нажать «Сохранить», чтобы Pure Data попытался подключиться к этому порту в следующий раз автоматически.
Если код контроллера редактировался, то нужно заново загрузить код.

Осталось подключить плату контроллера к блоку питания. Когда вы будете делать это, корпус сенсорного интерфейса вокруг платы должен быть закрыт, а сенсорная часть корпуса не должна касаться ваших рук или чего-либо еще.

Все готово, дополнительную информацию можно посмотреть на видео.



Источник
Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.
5.5
Идея
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
5.5
Описание
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
5.5
Исполнение
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
Итоговая оценка: 5.5 из 10 (голосов: 2 / История оценок)

Добавить комментарий

    • smilesmilesxaxaokdontknowyahoonea
      bossscratchfoolyesyes-yesaggressivesecret
      sorrydancedance2dance3pardonhelpdrinks
      stopfriendsgoodgoodgoodwhistleswoontongue
      smokeclappingcraydeclarederisivedon-t_mentiondownload
      heatirefullaugh1mdameetingmoskingnegative
      not_ipopcornpunishreadscarescaressearch
      tauntthank_youthisto_clueumnikacuteagree
      badbeeeblack_eyeblum3blushboastboredom
      censoredpleasantrysecret2threatenvictoryyusun_bespectacled
      shokrespektlolprevedwelcomekrutoyya_za
      ya_dobryihelperne_huliganne_othodifludbanclose

Привет, Гость!


Зарегистрируйтесь

Или войдите на сайт, если уже зарегистрированы...

Войти

Добавьте самоделку

Добавьте тему

Онлайн чат

Опрос
А Вы уже рассказали на сайте о своей самоделке?

Последние комментарии

Все комментарии
Новые самоделки на почту

Введите электронную почту и получайте письма с новыми самоделками. Не более одного письма в день.