Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Приветствую всех, Я хотел бы показать вам мой собственный музыкальный цифровой интерфейс. Я сделал это во время учебы в области технического звука, это мои исследовательские работы. Для начала я спросил меня, как я могу сочинять музыку без DAW, с переработанными расходными материалами и возможностью играть в автономном режиме.
В этом руководстве я научу вас, как использовать последовательную связь для отправки / получения информации от датчиков (аналоговых и цифровых) от Arduino до Raspberry pi к программным чистым данным для запуска звука.
Требуются следующие материалы:
x1 Малина PI3
x1 Ботинок защиты PI3
x1 Micro SD (32 ГБ)
x1 Arduino UNO
x1 ИК-датчик Sharp GP2Y0E02B
x1 Breadbord
x1 пластинчатый калибр (0,2)
x28 Сопротивление 10 МОм
x2 Сопротивление 1,8 кОм
x1 Сопротивление 10 кОм
x20 клеммные наконечники, папа / мама
x1 Держатель припоя
x1 рулон олова (1 метр)
x1 Паяльник
x25 Гибкие ремни Мужской / Мужской
Шаг 1: датчики
Я использовал 4 пьезоэлектрических элемента, идущих от пульта Harmonix XBOX 360 "Guitar Hero". Я использовал кнопку включения / выключения, потому что герконовый переключатель магнитной педали гитарного пульта "Guitar Hero" отсутствовал.
Я использовал ИК-датчик Sharp GP2Y0E02B. Для всех этих датчиков я сделал подтягивающую сборку для эффективной работы…
Таким образом, эмпирическим путем я нашел значение сопротивления датчика кнопки и ИК-датчика. Однако я протестировал пьезоэлектрик, чтобы узнать полную шкалу этого, а также фиксированное значение сопротивления, необходимое и применимое для 4 аналоговых датчиков.
Шаг 2: Монтаж с подтягиванием
После тестирования пьезоэлектрика с генератором напряжения я зафиксировал значение сопротивления на уровне 7 МОм.
Повышение сопротивления узла кнопки составило 10 кОм.
Для ИК-датчика я использовал два сопротивления 1, 8 кОм между соответственно напряжением питания и SDA (данные) и SCL (часы).
Будьте осторожны, потому что эти значения сопротивления предназначены для RTX Arduino UNO; кое-что, что нужно знать о входе импеданса Arduino: 10 МОм.
Вы можете увидеть подтягивающий монтаж на последней картинке этого шага; Я закрепил пьезоэлектрические перемычки на 0 1 2 3 контактах на UNO, ремешок кнопок на 2 цифровых контактах, но передаю значение на 6 контактах на UNO и ремешке ИК-датчика на 4 5 контактов на UNO, всех аналоговых входах Arduino Uno.
Шаг 3: код Arduino
Чтобы убедиться, что операция была эффективной, я протестировал отправку / получение информации датчиков в Arduino.
Я поместил файлы в описание, но вы можете найти их в разделе примеров программирования Arduino Genuino, за исключением ИК-датчика, потому что он не завершен, я изменил несколько информации в разделе «определение», например «сдвиг», и я изменил расчет измерений на регулярный в вариациях расстояния. Вы, наверное, видели «Wire» в коде ИК-датчика. Действительно, я использовал протокол I2C для общения. Я приглашаю вас посмотреть протокол I2C, очень интересно, вы можете использовать его для передачи в реальном времени всех цифровых датчиков, которые вы хотите.
Шаг 4: Последовательная связь обоих Arduino Raspberry
Ага: D
Как вы можете видеть на первом рисунке, ссылка Arduino-Raspberry - это USB-штекер.
Я нашел способ получать информацию с датчиков напрямую через PureData Extented, установленный в Raspberry PI. Почему PureData Extended? Поскольку версия Vanilla не использует ту же библиотеку, что и приложение в среде Raspbian.
Так что запустите StandardFirmata в Arduino Genuino, чтобы правильно исправить изменения ввода-вывода и значения!
Для получения информации о значениях в Raspberry PI существует 2 протокола: Firmata и Msg.
Я выбрал Firmata по одной причине: было проще получать информацию в PureData через патч Pduino, одно окружение.
Я приглашаю вас открыть для себя Msg, если вы используете протокол OSC.
Шаг 5: получен патч PureData
Действительно, после нескольких недель кодирования на Genuino мне удалось получить всю информацию о моем датчике на одной странице, что позволило видеть изменения в реальном времени благодаря Pduino, патчу в Puredata, дополнительному разделу библиотек.
С этого шага мы больше не касаемся кода Arduino. Информация о стоимости читается.
Как я заметил на шаге 3, я получил информацию от цифровой кнопки в 6-контактном аналоговом, было просто увидеть эффективную работу связи. Все в одной строке.
Шаг 6: Разработка PureData
PureData - это особый язык, и вы должны тратить свое свободное время, чтобы преуспеть в создании хороших пэчворков.
Некоторые патчи PureData будут доступны на GitHub.
Я надеюсь, что то, что я написал здесь, помогло вам начать свой собственный проект, близкий к моему.