Site Loader

Цветомузыка на микроконтроллере для RGB ленты | Festima.Ru

Товары для хобби

Таблица Список Лента

Цвeтoмузыкaльные пpиcтaвки нa микроконтрoллеpах обладают cамым большим набopoм paзличных светoвых эффектов. Имeют pазличныe peжимы pабoты: aвтонoмныe (cтaтическиe и динaмичecкиe) и cинхpoннo с музыкой (цветомузыкa). Удобный pадиoпульт не тpебуeт нaпрaвлeния непоcредcтвeнно на цветомузыку, мoжет рабoтать даже через стены. С пульта возможно включение/выключение устройства, переключение режимов, изменение яркости и скорости. Так как напряжение питания цветомузыки равно 12 V, то она прекрасно подходит для установки на автомобиль. Для монтажа вам не потребуется паяльник — все содинения выполнены на разъемах и клеммах «под винт». Интернет-магазин Мир Цветомузыки Количество каналов — 3 Максимальный ток канала — 4 А Питание — DС 12/24 V Мощность 1-го канала 48/96 W Мощность общая — 144/288 W Частота пульта — 433 МНz Количество программ — 13 Выход — общий анод (+) Встроенный микрофон Линейный вход — Аudiо Регулятор чувствительности Материал корпуса — алюминий Размеры — 130 х 64 х 24 мм Вес в упаковке — 205 гр

Мы нашли это объявление 2 года назад
Нажмите Следить и система автоматически будет уведомлять Вас о новых предложениях со всех досок объявлений

Перейти к объявлению

Тип жалобы ДругоеНарушение авторских правЗапрещенная информацияОбъявление неактульноПорнографияСпам

Комментарий

Показать оригинал

Еще объявления

Продам цветомузыку 12 м Много различных программ

26 дней назад Источник

На Работоспособность не проверял отправка в регионы по запросу оплата на карту сбербанка. В наличии только блок.  Устройство автоматическое светодинамическое «Альтаир» выпускалось с 1988 года. Устройство автоматическое светодинамическое «Альтаир» предназначено для сопровождения музыкальных произведений красочными световыми эффектами в динамическом, автоматическом и ручном режимах работы. Альтаир может быть использован в качестве цветных светильников с плавной регулировкой яркости свечения ламп. В динамическом режиме УАС работает совместно с моно или стереофонической радиоаппаратурой всех типов, а также микшерским пультом ансамбля электромузыкальных инструментов имеющих линейный выход. Устройство состоит из блока управления и 8 светильников 4 цветов.

месяц назад Источник

ЛЮКС цветомузыка из СССР. мощность 500W

месяц назад Источник

Работает Микрофонный усилитель в придачу Верхних стекол нет .

2 месяца назад Источник

цветомузыка «Илга-спектр», размер которого 43см на 33,5см на 11см.

2 месяца назад Источник

Цветомузыка перестала моргать. Требует профилактики. Комплект на фото.

2 месяца назад Источник

Ревизию не делали, работоспособность не проверял.

2 месяца назад Источник

Vestax cdx-05. Состояние очень хорошее, повреждений нет. Все функции работают. Блок питания в комплекте, не оригинал. Продаю тк приобрел пионеры. Рассмотрю варианты обмена на: DJ микшер с эффектами, можно сломанный, цветомузыку. Торг.

3 месяца назад Источник

Фонари для цветомузыки 8 шт. с лампами зеркальными Е27, 100 Вт. Возможность крепления на стену. Торг уместен.

3 месяца назад Источник

3шт, реагируют на звук и также в автоматическом режиме. Маленькие, с литровую банку. От 220 вольт

4 месяца назад Источник

Мощность: около 36 x3w Напряжение: 90-240 В Светильник источник света: светодиодный Светодиодный номер: 36 шт. Тип переключателя: Кнопка/контроллер DMX Каналы: 3 / 7 Каналы Режим управления: ручной/автоматический/режим Master — slave Применение: вечерние, диско, КТВ, паб, ресторан, сад, парк, Плаза и т. Д. Размеры: 19x14x19cm

4 месяца назад Источник

работает.колпачков нет.требуется замена электролитов

4 месяца назад Источник

Рабочая.Приобреталась в конце — 80х.Нет жолтого стекла на плафон. Торг

4 месяца назад Источник

Цветомузыка 2 штуки, цена за одну.

5 месяцев назад Источник

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

5 месяцев назад Источник

Цветомузыка самодельная 80 х годов. Вроде рабочая

5 месяцев назад Источник

Новый! При покупке двух — скидка Яркий мощный бюджетный заливной прибор * Есть авто режим на звук * Угол раскрытия: 40 градусов * DMX-Control-каналы: 7 каналов DMX * Материал: пластик * Масса: 0,9 кг * Производство: SHEHDS * Режимы работы: DMX512, автоматическое управление, звуковые эффекты, стробоскоп, автономный режим и ведущий / ведомый, с богатыми расширенными интегрированными программами Слова для поиска: Светодиодный дискотечный прибор Световое оборудование LЕD Дискотечные светодиодные для танцев.

Для клубной дискотеки для клуба Световой Moving Светомузыка свето музыка цветомузыка диско шар дискошар цвето музыка долговечный прибор для дискотеки танцев вечеринки дома LЕD РАR для баров и дискотек Прожектор заливного света Заливка LED Световое оборудование Лед пар Сценический свет Для дискотек бара ресторана кафе Световая заливка Заливка светом сцены Художественная подсветка помещении Подсветка декораций Подсветка рекламы Интерьерное освещение

5 месяцев назад Источник

Внимание! Festima.Ru является поисковиком по объявлениям с популярных площадок. Мы не производим реализацию товара, не храним изображения и персональные данные. Все изображения принадлежат их авторам Отказ от ответственности

продам цветомузыку времер СССР, плюс самодельный блок, цветомузыка бегущих огней

2 года назад Источник

Цветомузыка

2 года назад Источник

Цветомузыка в отличном состоянии

2 года назад Источник

Войти

Все сервисы становятся доступными без ограничений

Сможете пользоваться сервисом Festima. Ru на разных устройствах.

Это удобно и бесплатно

Цветомузыка без ПК

Предлагаю к сборке вариант автономной цветомузыки. Этот вариант цветомузыки, в отличие от варианта цветомузыки на Arduino, не требует для работы персонального компьютера. Всю обработку аудио потока выполняет микроконтроллер STM32F103C8T6.

Переключение музыкальных и динамических программ осуществляется кнопочками или по Bluetooth со смартфона.

Схема цветомузыки:

Для сборки контроллера вам потребуется:
Светодиодная лента

Модуль микроконтроллера

Модуль bluetooth (если требуется управление со смартфона)

Модуль микрофонного усилителя

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

Можно использовать обе схемы. Вы можете выбрать контакт аналогового(аудио) входа A0 или A1 на модуле STM32 подключением вывода A15 к общему ( G ) выводу или оставив A15 не подключённым. После изменения входа требуется перезагрузка микроконтроллера.

Программа для микроконтроллера STM32 доступна для скачивания c google диска. Выберите прошивку MC_**led.HEX c номером совпадающим с количеством светодиодов в вашей ленте:
30,60,72,90,120,144,150,180,210,216,240
Программирование STM32 выполняется через переходник USB-UART с помощью программы Flash loader demonstrator. В интернете есть несколько описаний процесса программирования STM32. Вы можете выбрать описание которое вам покажется более понятным.

Если позднее у вас изменится количество светодиодов в ленте вы сможете настроить их количество с помощью кнопки подключённой к выводу B8. Нажмите и удерживайте кнопку пока все светодиоды не будут задействованы.
Сохраните режим после установки количества светодиодов в ленте !!!

Сохранение установленного режима производится кнопкой подключённой к выводу B9. Сохранённый режим будет устанавливаться при включении устройства. Для выполнения сохранения нажмите и удерживайте кнопку 3-4 секунды.

Назначение кнопок:
Кнопка(контакт) B9 – Сохранение установленного режима как режима при включении питания;
Кнопка(контакт) B8 – Установка количества активных светодиодов в ленте;
Кнопка(контакт) B7 – Выбор динамической программы;
Кнопка(контакт) B6 – Выбор музыкальной программы;
Кнопка(контакт) B5 – Включение/выключение режима перебора динамических программ;
Кнопка(контакт) B4 – Установка яркости ленты.
Кнопка(контакт) B3 – Установка темпа переключения.

Управление возможно и/или c кнопок или из приложения под Android.

Программа «Цветомузыка» под Android доступна для скачивания на Google Play.




Для подключения к контроллеру с модулем bluetooth просто коснитесь значка

При первом подключении, если устройство не обнаруживается, то выполните сопряжение c модулем в настройках bluetooth телефона!!!

Приятного отдыха.

Видео работы:
Музыкальные программы

Динамические программы

Добавить в избранное

Понравилось

+130 +204

Musical Microcontroller — Часть 8 Микроконтроллер…

Примечание: Microchip недавно внесла некоторые изменения, и их новые версии IDE используют компилятор XC8 для ассемблера, в то время как весь пример кода здесь создан для компилятора MPASM. Тем не менее, пример кода был портирован на XC8 пользователем tinyelect на нашем канале Discord (которому мы очень благодарны!), а версия кода для XC8 приведена в конце этого руководства для справки. Чтобы увидеть изменения, необходимые для перехода с MPASM на XC8, ознакомьтесь с процессом, которым он поделился.

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

Во-первых, вот решение домашнего задания:

 

#include "p10f200.inc"

__CONFIG _WDT_OFF & _CP_OFF ​​& _MCLRE_OFF

i EQU 10 ;определить регистр 0x10 как переменную контура ШИМ

limit EQU 11 ;определить регистр 0x11 как ограничение PWM

j EQU 12 ;определить регистр 0x12 как переменную задержки

dir EQU 13 ;определить регистр 0x13 как флаг направления яркости

ОРГ 0x0000

ИНИТ

MOVLW ~(1 << GP1) ;установить GP1 как выход

ТРИС GPIO

CLRF limit ;Сбросить ограничение PWM

CLRF dir ;Очистить регистр направления

КОНТУР

MOVLW 0xFF ;Установить начальное значение i

MOVWF i ; как 0xFF

BSF GPIO, GP1 ;Установить контакт GP1

INT_LOOP ;Начало внутреннего контура ШИМ

MOVF limit, W ;копировать предельное значение PWM регистра W

SUBWF i, W ;Вычесть W из i

СТАТУС BTFSS, Z ;если результат не 0

GOTO $+2 ;затем перейти на строку 22

BCF GPIO, GP1; в противном случае сбросить контакт GP1

CALL DELAY ;и вызвать подпрограмму DELAY

DECFSZ i, F ;Уменьшить i и проверить, равен ли результат 0

GOTO INT_LOOP ;Если нет, вернуться к началу внутреннего цикла ШИМ

BTFSS dir, 0 ;Если значение dir равно 0

GOTO DEC_BRIGHTNESS;Затем уменьшите яркость на следующей итерации

Предел DECFSZ, F ;в противном случае уменьшите предел ШИМ, проверьте, равен ли он 0

GOTO LOOP ;Если не 0, то вернуться к основному циклу

GOTO TOGGLE_DIR ;Иначе перейти к метке TOGGLE_DIR

DEC_BRIGHTNESS ;Здесь мы уменьшаем яркость

Предел INCF, F ;увеличить ШИМ

MOVLW 0xFF ;Проверить, если

Предел SUBWF, Вт ;предел

СТАТУС BTFSS, Z ;становится 255

GOTO LOOP ;Если нет, то вернуться к основному циклу

TOGGLE_DIR ;Иначе переключить направление

BTFSS каталог, 0 ;Если каталог равен 0

GOTO SET_DIR ;затем перейдите к метке SET_DIR

BCF dir, 0 ;иначе очистить бит 0 в dir

GOTO LOOP ;и перейти к основному циклу

SET_DIR ;Здесь мы устанавливаем регистр каталога

BSF dir, 0 ;Установить бит 0 в каталоге

GOTO LOOP ;и возврат к основному циклу

DELAY ;Здесь запустить подпрограмму DELAY

MOVLW 10 ;Загрузить начальное значение задержки

MOVWF j ;скопируйте значение в j

DELAY_LOOP ;Начать цикл задержки

DECFSZ j, F ;Уменьшить j и проверить, не равно ли оно нулю

GOTO DELAY_LOOP ;Если нет, то перейти к метке DELAY_LOOP

RETLW 0 ;Иначе возврат из подпрограммы

КОНЕЦ

Я не буду объяснять вам каждую строку, так как я не использовал никаких новых инструкций или логических конструкций, так что вы должны понять это. Общая идея заключается в добавлении новой переменной «dir» — для «направления» (строка 7). Если бит 0 этой переменной равен 0 (строка 27), то значение «предела» увеличивается на каждой итерации основного цикла (строка 33), пока не достигнет значения 255. Если это произойдет (строки 34-37), мы переключаем бит 0 в «dir» (строки 38-45). Если бит 0 в «dir» равен 1, то значение «limit» уменьшается на каждой итерации (строка 29).) до тех пор, пока не станет равным 0. Когда это происходит, «dir» снова переключается, и реализация повторяется.

Эта программа использует 35 слов флэш-памяти, что делает ее в 1,5 раза больше исходной.

Здесь TOGGLE_DIR не оптимизирован, поэтому занимает так много места. Позже в этом уроке я объясню одну полезную инструкцию, которая может значительно сократить эту часть.

Теперь давайте переключимся на текущую задачу и на этот раз займемся чем-нибудь более практичным. Мы разработаем дверной звонок, который будет воспроизводить короткую мелодию при нажатии на кнопку, а затем переходить в спящий режим для экономии энергии. Я выбрал «К Элизе» Людвига Ван Бетховена, так как он очень известен и довольно прост в реализации с использованием ограниченных возможностей микроконтроллера.

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

Как вы, наверное, знаете, музыка состоит из нот. Есть семь основных нот — C, D, E, F, G, A, B (или H). Также есть некоторые «полуноты», которые располагаются между некоторыми из основных нот, их называют диезами или бемолями. Таким образом, у диезов (или бемолей) есть 12 «нот»: C, C#, D, D#, E, F, F#, G, G#, A, A#, B (или H).

В Германии, Центральной и Восточной Европе и Скандинавии нота B помечается как H, а A# или Bb помечается как B.

Каждая нота имеет свою частоту. В качестве основы возьмем «А» и его частота 440 Гц. Частоты соседних нот можно вычислить по формуле:

Да уж, музыка и математика очень тесно связаны между собой.

Если вы когда-нибудь видели пианино, то могли заметить, что на нем больше клавиш, чем 12. Да, ноты повторяются. Эти 12 нот образуют октаву. А октав на любом музыкальном инструменте может быть несколько. Частота одних и тех же нот в соседних октавах отличается вдвое. Например. Нота ля первой октавы составляет 440 Гц, а нота ля октавой выше — 880 Гц.

Чтобы воспроизвести музыку, нам нужно переключить пин, к которому подключен зуммер, с частотой, соответствующей нужной частоте нот. И чтобы музыка звучала хорошо, нам нужно сделать задержку очень точной, иначе ноты будут звучать «фальшиво».

Давайте рассчитаем время типичной подпрограммы задержки:

Здесь d1 и d2 — значения, загружаемые в регистры r1 и r2.

Как вы могли заметить, мы загружаем разные значения в оба регистра для повышения точности. Рассчитаем задержку в зависимости от значений d1 и d2.

DELAY(us) = 2(CALL) + 1*2(MOVLW) + 1*2(MOVWF) + 2(RETLW) + ((d1-1)+(d2-1)*256)*3

Пусть вас не беспокоит длина этого уравнения, в нем много частей, но оно очень простое. Первая часть формулы является постоянной, мы всегда используем CALL и RETLW и загружаем значения с помощью MOVLW и MOVWF (мы загружаем два значения, поэтому мы умножаем на 2). Другая часть зависит от значений d1 и d2. В формуле мы используем (d1-1) и (d2-1) из-за реализации инструкции DECFSZ. Когда значение равно 1 в текущей итерации, следующая строка пропускается, и, таким образом, мы теряем одну задержку.

Вы можете спросить: «Серьезно? Мы должны рассчитать задержку для каждой ноты вручную?» К счастью, я сделал это для вас и рассчитал задержки для целых двух октав. Вы можете увидеть их в таблице ниже:

Таблица достаточно понятна, за исключением, пожалуй, последнего столбца. Он показывает примерное количество периодов, которые необходимо сыграть каждой ноте, чтобы они длились одинаковое время. Это число может варьироваться в зависимости от темпа мелодии — как долго вы хотите, чтобы длилась каждая «стандартная» нота. Сразу хочу предупредить, что в программе ниже эти значения другие.

Давайте теперь посмотрим на «К Элизе», которую мы преобразуем в цифровую форму.

На рисунке 1 вы можете увидеть заметки этой части:

Рисунок 1 — Заметки начала «К Элизе»

Эти заметки я взял отсюда. Как видите, они адаптированы для новичков, поэтому внутри написано название каждой заметки. Вы также можете заметить, что заметки выглядят по-другому. У некоторых из них есть «хвост», а у других нет. «Хвост» говорит о том, что продолжительность воспроизведения ноты составляет ⅛ полной ноты, что является некоторой полупроизвольной величиной, зависящей от темпа. Ноты без «хвоста» имеют длительность ¼, а точка возле них показывает, что длительность нужно увеличить на 50%, поэтому полная их длительность составляет ⅜. Это означает, что эти ноты должны звучать в 3 раза дольше, чем ноты с хвостами или восьмые ноты. Вы можете сделать это, увеличив количество периодов в 3 раза или просто сыграть ноту три раза подряд (я буду использовать этот вариант). Итак, последовательность нот (одинаковой длительности и без пауз) для исполнения этой партии следующая:

E2 D#2 E2 D#2 E2 B1 D2 C2 A1 A1 A1 C1 E1 A1 B1 B1 B1 E1 G#1 B1 C2 C2 C2

Эта часть состоит из 23 нот, состоящих всего из девяти уникальных нот:

E2, D#2, B1, D2, C2, A1, C1, E1, G#1.

У нас есть их параметры в таблице, так что проблем не предвидится.

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

Рисунок 2 — Принципиальная схема дверного звонка.

Принципиальная схема, показанная на рисунке 2, может использоваться только в том случае, если у вас есть пьезоэлектрический зуммер. Если по какой-то причине вы приобрели электромагнитный зуммер (как у меня, спасибо на Aliexpress!), то вам нужно будет обновить схему и добавить к нему транзистор (вы можете использовать либо NPN BJT, как показано на рисунке 3, либо МОП-транзистор).

Рисунок 3 – Принципиальная схема дверного звонка с электромагнитным зуммером.

Вы можете спросить: «Как мне отличить зуммер?» Если у вас есть омметр или мультиметр, вы можете измерить сопротивление между его контактами. Если оно составляет несколько кОм, то у вас пьезоэлектрический зуммер, а если меньше 20 Ом, то вам «повезло» с электромагнитным зуммером. Если у вас нет омметра, вы можете собрать схему согласно рисунку 2 и запустить программу. Если вместо мелодии вы слышите шум и щелчки, то, скорее всего, у вас электромагнитный зуммер и вам необходимо обновить схему согласно рисунку 3.

Транзистор T1 на рис. 3 может иметь практически любой номер детали. Это просто должно быть типа npn. Лично я использовал BC639 только потому, что нашел его первым 🙂

Хорошо, теперь у нас есть все, чтобы программа могла реализовать текущую задачу. Хочу предупредить, что это очень долго. Но не пугайтесь, он построен из подобных блоков, просто их очень много. Вот так:

 

#include "p10f200.inc"

__CONFIG _WDT_OFF & _CP_OFF ​​& _MCLRE_ON

ОРГ 0x0000

d1       EQU   10   ;определить регистр 0x10 как младший байт задержки

d2       EQU   11   ;определить регистр 0x11 как старший байт задержки

периода    EQU 12   ;определить регистр 0x12 как количество периодов для воспроизведения

ИНИТ

MOVLW  ~(1<

ОПЦИЯ    

    MOVLW ~(1 << GP2)          ;установить GP2 как выход

    ТРИС GPIO

КОНТУР

    CALL E2   ;Играть ноту E 2-й октавы

    CALL D#2               ;Играть ноту D# 2-й октавы

    CALL E2                              ;и так далее, и так далее

    ЗВОНИТЕ D#2

    ЗВОНИТЕ E2

    ЗВОНОК h2

    ЗВОНИТЕ D2

    ЗВОНИТЕ C2

    ЗВОНИТЕ A1

    ЗВОНИТЕ A1

    ЗВОНИТЕ A1

    ЗВОНИТЕ C1

    ЗВОНОК E1

    ЗВОНИТЕ A1

    ЗВОНОК h2

    ЗВОНОК h2

    ЗВОНОК h2

    ЗВОНОК E1

    ЗВОНОК G#1

    ЗВОНОК h2

    ЗВОНИТЕ C2

    ЗВОНИТЕ C2

    ЗВОНИТЕ C2

    SLEEP   ;включить спящий режим

    GOTO LOOP     ;бесконечный цикл

E2  ;нота E второй октавы

    MOVLW D'255'               ;Загрузить количество периодов для игры

    Периоды MOVWF

LOOP_E2   ;Переключить контакт GP2 с указанной частотой

    MOVLW (1<

    XORWF GPIO, F      ;Переключить GP2

    MOVLW D'251'    

    MOVWF d1   ;Загрузить младший байт задержки

    MOVLW 1    

    MOVWF d2   ;Загрузить старший байт задержки

    ЗАДЕРЖКА ВЫЗОВА   ;Выполнить задержку

    Периоды DECFSZ, F             ;Уменьшите количество периодов и проверьте, равно ли оно 0

    GOTO LOOP_E2   ;Если нет, продолжайте переключать GP2

    RETLW 0   ;В противном случае возврат из подпрограммы

Д#2

    MOVLW D'240'

    Периоды MOVWF

КОНТУР_D#2

    MOVLW (1<

    XORWF GPIO, F     

    MOVLW D'10'

    MOVWF d1

    MOVLW 2

    MOVWF d2

    ЗАДЕРЖКА ВЫЗОВА

    Периоды DECFSZ, F

    ПЕРЕХОД К ЦИКЛУ_D#2

    RETLW 0

ч2

    MOVLW D'191'

    Периоды MOVWF

LOOP_h2

    MOVLW (1<

    XORWF GPIO, F     

    MOVLW D'80'

    MOVWF d1

    MOVLW 2

    MOVWF d2

    ЗАДЕРЖКА ВЫЗОВА

    Периоды DECFSZ, F

    ПЕРЕХОД К LOOP_h2

    RETLW 0

Д2

    MOVLW D'227'

    Периоды MOVWF

КОНТУР_D2

    MOVLW (1<

    XORWF GPIO, F     

    MOVLW D'26'

    MOVWF d1

    MOVLW 2

    MOVWF d2

    ЗАДЕРЖКА ВЫЗОВА

    Периоды DECFSZ, F

    ПЕРЕХОД К ЦИКЛУ_D2

    RETLW 0

С2

    MOVLW D'202'

    Периоды MOVWF

КОНТУР_C2

    MOVLW (1<

    XORWF GPIO, F     

    MOVLW D'61'

    MOVWF d1

    MOVLW 2

    MOVWF d2

    ЗАДЕРЖКА ВЫЗОВА

    Периоды DECFSZ, F

    ПЕРЕХОД К ЦИКЛУ_C2

    RETLW 0

А1

    MOVLW D'170'

    Периоды MOVWF

КОНТУР_А1

    MOVLW (1<

    XORWF GPIO, F       

    MOVLW D'121'

    MOVWF d1

    MOVLW 2

    MOVWF d2

    ЗАДЕРЖКА ВЫЗОВА

    Периоды DECFSZ, F

    ПЕРЕХОД К ЦИКЛУ_A1

    RETLW 0

С1

    MOVLW D'101'

    Периоды MOVWF

КОНТУР_С1

    MOVLW (1<

    XORWF GPIO, F       

    MOVLW D'123'

    MOVWF d1

    MOVLW 3

    MOVWF d2

    ЗАДЕРЖКА ВЫЗОВА

    Периоды DECFSZ, F

    ПЕРЕХОД К ЦИКЛУ_C1

    RETLW 0

Е1

    MOVLW D'127'

    Периоды MOVWF

LOOP_E1

    MOVLW (1<

    XORWF GPIO, F       

    MOVLW D'248'

    MOVWF d1

    MOVLW 2

    MOVWF d2

    ЗАДЕРЖКА ВЫЗОВА

    Периоды DECFSZ, F

    ПЕРЕХОД К ЦИКЛУ_E1

    RETLW 0

G#1

    MOVLW D'160'

    Периоды MOVWF

КОНТУР_G#1

    MOVLW (1<

    XORWF GPIO, F       

    MOVLW D'144'

    MOVWF d1

    MOVLW 2

    MOVWF d2

    ЗАДЕРЖКА ВЫЗОВА

    Периоды DECFSZ, F

    ПЕРЕХОД К LOOP_G#1

    RETLW 0

DELAY   ;Здесь запустить подпрограмму DELAY

    DECFSZ d1, F               ;Уменьшите значение регистра 0x10 и проверьте, не равен ли он нулю

    GOTO DELAY   ; Если нет, то перейти к метке DELAY_LOOP

    DECFSZ d2, F               ;Иначе уменьшите значение регистра 0x11, проверьте, не равен ли он 0

    GOTO DELAY   ; Если нет, перейдите к метке DELAY_LOOP

    RETLW 0   ;Иначе возврат из подпрограммы

    END

Потрясающе, не так ли? Я предупреждал тебя!

Итак, давайте рассмотрим, что здесь написано — явно не будем построчно.

Если вы внимательны, то можете заметить первое отличие от предыдущих программ в строке 2. Здесь мы используем _MCLRE_ON вместо _MCLRE_OFF. Это означает, что мы хотим использовать вывод MCLR/GP3 в качестве вывода сброса. Логика программы такова, что после перезагрузки она проигрывает музыкальный фрагмент, а потом уходит в спящий режим. И чтобы разбудить его, мы просто перезагружаем микроконтроллер, чтобы запустить программу с самого начала.

 

d1       EQU   10   ;определить регистр 0x10 как младший байт задержки

d2       EQU   11   ;определить регистр 0x11 как старший байт задержки

периодов     EQU 12   ;определить регистр 0x12 как количество периодов для воспроизведения

В строках с 5 по 7 мы определяем 3 значения «d1», «d2» и «периоды», их значение соответствует таблице выше. «d1» и «d2» обеспечивают правильную задержку, а «periods» указывает количество периодов для воспроизведения определенной ноты.

 

ИНИТ

MOVLW  ~(1<

ОПЦИЯ    

MOVLW ~(1 << GP2)         ;установить GP2 как выход

    ТРИС GPIO

LOOP

В строках с 9 по 14 нет ничего нового, мы уже знаем, как настроить GP2 как выходной контакт общего назначения (см. Часть 6, если вы забыли).

 

CALL E2   ;Воспроизвести ноту E 2-й октавы

CALL D#2       ;Воспроизвести ноту D# второй октавы

    CALL E2              ;и так далее и тому подобное

    ЗВОНИТЕ D#2

    ЗВОНИТЕ E2

    ЗВОНОК h2

    ЗВОНИТЕ D2

    ЗВОНИТЕ C2

    ЗВОНИТЕ A1

    ЗВОНИТЕ A1

    ЗВОНИТЕ A1

    ЗВОНИТЕ C1

    ЗВОНОК E1

    ЗВОНИТЕ A1

    ЗВОНОК h2

    ЗВОНОК h2

    ЗВОНОК h2

    ЗВОНОК E1

    ЗВОНОК G#1

    ВЫЗОВ h2

    ЗВОНИТЕ C2

    ЗВОНИТЕ C2

    CALL C2

В строках с 15 по 37 мы просто вызываем подпрограммы, которые проигрывают ноты в соответствии со списком из 23 нот, написанным выше. Здесь звучит музыка!

 

SLEEP ;Включить спящий режим

В строке 38 появилась новая инструкция — SLEEP. Он переводит микроконтроллер в спящий режим, в котором генератор выключается и, таким образом, все операции останавливаются. Согласно техническому описанию, потребление тока падает с 1,1 мА в активном режиме до 2,4 мкА в спящем режиме, что составляет примерно 1/500 от потребляемой мощности. Чтобы выйти из спящего режима, мы можем использовать функцию «пробуждение при смене контакта» или просто перезагрузить микроконтроллер, что мы и сделаем. «Пробуждение при смене контакта» позволяет вам просыпаться при любом изменении любого из контактов GP0, GP1, GP3.

 

E2  ;нота E 2-й октавы

MOVLW D'255'       ;Загрузить количество периодов для игры

    Периоды MOVWF

LOOP_E2       ;Переключить контакт GP2 с указанной частотой

    MOVLW (1<

    XORWF GPIO, F      ;Переключить GP2

    MOVLW D'251'    

    MOVWF d1       ;Загрузить младший байт задержки

    MOVLW 1    

    MOVWF d2       ;Загрузить старший байт задержки

    ЗАДЕРЖКА ВЫЗОВА   ;Выполнить задержку

    Периоды DECFSZ, F    ; Уменьшите количество периодов и проверьте, равно ли оно 0

    GOTO LOOP_E2       ;Если нет, продолжайте переключать GP2

    RETLW 0   ;В противном случае возврат из подпрограммы

В строках с 41 по 54 есть подпрограмма для воспроизведения ноты E2. Рассмотрим его подробнее.

В строки 42 и 43 мы загружаем начальное значение в регистр «периоды». Как я уже говорил, я изменил значения по сравнению с приведенными в таблице выше, чтобы сделать мелодию медленнее.

В строке 44 запускается цикл переключения вывода GP2 с нужной частотой.

Помните, я обещал вам показать инструкцию, которая может уменьшить пин-код? Я хочу представить его в строке 46 .

Инструкция XORWF (исключающее ИЛИ между регистрами W и F), как следует из ее названия, выполняет логическую операцию «исключающее ИЛИ» между файловым регистром, заданным в качестве операнда 1, и регистром W, и записывает результат обратно в F или в W в соответствии с операнд 2.

Исключающее ИЛИ возвращает 1, если число входных данных, равных 1, нечетное. В случае 2 входов это означает, что один из входов и ТОЛЬКО один из входов равен 1.

Итак, в строка 45, мы загружаем значение (1< Значение (1< XOR Таблица истинности

Как видите, если мы применим операцию XOR к «1» в X2, тогда значение Y будет противоположно X1. Эти линии я обозначил желтым цветом. То же самое происходит и в нашем случае. Если в регистре GPIO значение бита GP2 было 0, то после реализации строки 46 оно станет 1 и наоборот. Таким образом, мы можем выполнить небольшое переключение всего двумя строками, не нужно делать никаких проверок или устанавливать/сбрасывать его отдельно!

В строки 47-50 загружаем значения регистров «d1» и «d2» в соответствии с таблицей и затем вызываем подпрограмму DELAY в строке 51.

В этой программе мы перенесли инициализацию регистров задержки из подпрограммы DELAY, потому что эти значения должны быть разными для каждой ноты. Это делает программу длиннее, к сожалению, но это цена примитивности PIC10F200.

Обратите внимание, что в строке 51 мы вызываем подпрограмму DELAY из подпрограммы E2, что разрешено при двухуровневом стеке, и если бы мы хотели вызвать подпрограмму из подпрограммы DELAY, то стек переполнился бы и поведение станет непредсказуемым.

В строке 52 уменьшаем значение «периоды» и проверяем, равен ли результат инструкции DECFSZ. Если оно не равно нулю, то реализуется следующая строка 53, и мы возвращаемся к строке 44 с инструкцией GOTO. В противном случае эта строка пропускается и реализуется строка 54, возвращающаяся из подпрограммы.

 

Д#2

МОВЛВ Д'240'

периоды MOVWF

КОНТУР_D#2

    MOVLW (1<

    XORWF GPIO, F     

    MOVLW D'10'

    MOVWF d1

    MOVLW 2

    MOVWF d2

    ЗАДЕРЖКА ВЫЗОВА

    Периоды DECFSZ, F

    ПЕРЕХОД К ЦИКЛУ_D#2

    RETLW 0

Строки 56-69 содержат тот же код, но для ноты D#2 со значениями «периоды», «d1» и «d2». На самом деле все остальные подпрограммы просто реализуют одну из нот — h2 (строки 71-84), D2 (строки 86-99), C2 (строки 101-114), A1 (строки 116-129).), C1 (строки 131–144), E1 (строки 146–159), G#1 (строки 161–174).

 

DELAY   ;Здесь запустить подпрограмму DELAY

DECFSZ d1, F       ;Уменьшите значение регистра 0x10 и проверьте, не равен ли он нулю

    GOTO DELAY   ; Если нет, перейдите к метке DELAY_LOOP

    DECFSZ d2, F       ;Иначе уменьшить регистр 0x11, проверить, не равен ли он 0

    GOTO DELAY   ; Если нет, перейдите к метке DELAY_LOOP

    RETLW 0   ;Иначе возврат из подпрограммы

В строках 176-181, находится хорошо известная подпрограмма DELAY, но немного урезанная по сравнению с предыдущими программами. Я просто хочу обратить ваше внимание на то, что метка DELAY используется и как операнд функций CALL и GOTO, в зависимости от необходимости. Это свободно разрешено в языке ассемблера.


И все! Как видите, чем длиннее программа, тем короче ее описание. К этому моменту вы уже многое знаете и все меньше и меньше нуждаетесь в моих подсказках. Теперь вы можете скомпилировать программу, загрузить ее в микроконтроллер и наслаждаться классической музыкой в ​​том виде, в каком она реализована микроконтроллером.

Наша сегодняшняя статистика весьма скромна. Программа использует 142 слова, что составляет более половины доступной флэш-памяти. И мы выучили всего две новые инструкции — SLEEP и XORWF, так что теперь мы знаем 19 из 33!

Вашим домашним заданием для этого урока будет найти ноты вашей любимой песни и попытаться реализовать их с помощью микроконтроллера. Обратите внимание, что каждая подпрограмма музыкальной ноты использует 12 слов флэш-памяти, поэтому загрузить из таблицы все 24 нельзя — они просто не влезут в 256 слов. Итак, вам нужно найти музыкальный фрагмент, который требует всего 12-16 разных нот, и сыграть его.

Файлы проекта

XC8-PIC-Assembler-Musical-Microcontroller-Part-8-Microcontroller-Basics-PIC10F200. zip

Изучение микровселенной: создание музыки с помощью микроконтроллеров

Эта статья опубликована в Make: Vol. 76. Подпишитесь сегодня, чтобы узнать о других замечательных проектах и ​​руководствах.

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

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

Это не только инструменты. Вы можете думать о таких опорах классической музыки, как Стравинский, Штраус или Дебюсси, как о скучных композиторах из истеблишмента, но в свое время они считались авангардными и радикальными. Премьера «9» Стравинского.0753 Весна священная чуть не вызвала бунт, когда публику возмутили диссонирующие аккорды, пульсирующий ритм и современные артисты балета.

Даже музыкальные ноты, которые мы используем сегодня в западной музыке, не были высечены на камне в древние времена: на самом деле только в 1955 году середина ля была официально установлена ​​на частоте 440 Гц. До того, как 440 Гц были приняты в качестве стандарта для среднего ля, существовали региональные и национальные варианты настройки инструментов. Не все были в восторге от глобализации музыкальных нот, и люди до сих пор недовольны этим решением! Если вы потратите немного времени на поиски в Интернете, вы найдете множество теорий заговора о 440 Гц, а также кампании за изменение среднего A на 432 Гц, 438 Гц или даже 538 Гц.

Вся музыка придумана, а все инструменты изобретены, поэтому, как создатели, мы должны чувствовать себя вправе следовать по стопам музыкальных экспериментаторов, которые были до нас, и издавать любые звуки, какие захотим. Кто знает, куда заведет вас ваше мастерство?

Магнитофон положил начало революции электронной музыки в 1940-х годах.

Хакеры музыкальных технологий меняют историю

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

По мере того, как все больше людей получали доступ к этим машинам, некоторые начинали играть с ними неожиданным образом. В Париже горстка этих экспериментаторов с магнитофонами начала делиться своей работой, что привело к созданию культового движения под названием musique concrète .

Чтобы отредактировать запись на магнитной ленте, вам нужно было физически разрезать ленту лезвием и с помощью клейкой ленты прикрепить ее к следующей части магнитной ленты. Ребята из musique concrète отправлялись в мир и записывали интересные звуки на свои кассеты. Затем они брали части этой ленты, разрезали ее, переворачивали (чтобы воспроизвести звуки в обратном направлении), ускоряли или замедляли их (для более высоких или низких тонов), искажали их, склеивали вместе и перезаписывали. их для создания новых захватывающих новых звуков.

Возьмем в качестве примера защипывание струны на скрипке: звук начинается сразу, а затем постепенно затихает. В музыкальном производстве это будет называться резкой атакой и длинной выпуском или затуханием . Используя новые технологии и приемы от создателей musique concrète, вы можете перевернуть звук скрипки, чтобы получить новый звук с длинной атакой и коротким затуханием. Нам все это сейчас кажется вполне нормальным, а тогда это было революционно.

Прямо сейчас вы можете зайти на YouTube и послушать экспериментальную конкретную музыку 1940-х годов, но не ждите гармоничных композиций или грохочущих битов! Их музыка, возможно, не стала мейнстримом, но их техника, безусловно, сделала это. Их место в истории хакинга музыкальных технологий было закреплено в 1960-х годах, когда «Битлз» стали первой большой группой, которая использовала эти методы для создания потустороннего, психоделического звучания своего классического трека «Tomorrow Never Knows».

Композитор и музыкант Дафна Орам в 1950-х годах в легендарной радиофонической мастерской BBC впервые изобрела новые звуки электронной музыки с помощью синтезаторов и магнитофонных лупов.

The BBC Radiophonic Workshop

Еще одно длительное влияние, которое оказали на современную музыку musique concrète folks, оказала работа замечательной британки по имени Дафна Орам. Она была музыкантом и физиком, ставшим одной из знаковых фигур ранней электронной музыки. У нее была работа на BBC в качестве балансировщика музыки, которая включала настройку записывающего оборудования и подгонку виниловых пластинок для беспрепятственного вещания. Орам также был большим поклонником авангардной музыки, в том числе musique concrète. Она поняла, что сочетание магнитофонов и новых парижских технологий сулит огромные перспективы для новых звуков и музыки. Она записала тоны с генераторов синусоидальных волн на ленточные петли и экспериментировала с эффектами их воспроизведения на разных скоростях, создав одни из первых чисто электронных музыкальных произведений.

Коллеги Орам по BBC не были в восторге от ее работы: ей потребовалось восемь лет экспериментов и долгих уговоров, прежде чем она смогла убедить кого-нибудь позволить ей написать музыку для шоу BBC. Это произошло не только из-за дальновидного характера ее работы, но и из-за ее пола. «Они хотели мою работу, — сказал Орам, — но не меня». После того, как она объединилась со своим коллегой Десмондом Бриско, BBC наконец уступила ее просьбам о создании отдела, посвященного электронному звуку. Этот отдел назывался BBC Radiophonic Workshop, который стал одной из ведущих студий экспериментального звукового дизайна в мире.

Есть ряд документальных фильмов о радиофонической мастерской BBC и ее выпускниках, которые вы можете посмотреть, чтобы глубже изучить этот увлекательный период истории музыкальных технологий, в том числе Sisters with Transistors и The Delian Mode .

Музыкант, хакер и изобретатель Сэм Бэттл, он же Look Mum No Computer, прославился благодаря Furby Organ — 45 поющим игрушечным роботам, управляемым клавиатурой, и 90 микроконтроллерам. Он активно занимается сборкой и распространением синтезаторов и схем «сделай сам» на YouTube и на сайте lookmumnocomputer.com.

Изобретение инструментов с помощью современных микроконтроллеров

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

Все более доступным становится не только аппаратное обеспечение, но и знания, необходимые для его использования. Во времена Орама вам нужно было отправиться на конференцию или подписаться на очень нишевый набор журналов, чтобы найти информацию о новых музыкальных технологиях. В наши дни у нас есть такие люди, как Look Mum No Computer, которые показывают нам, как создавать синтезаторы на YouTube (например, его безумный Furby Organ, изображенный выше), мастерские с группами музыкальных хакеров, такими как Hackoustic из London Hackspace, и образовательные семинары на таких мероприятиях, как Конгресс CCC.

Самое лучшее время, чтобы начать создавать музыку и экспериментировать со звуком!

Modern Music Hackers

Несколько фаворитов от группы Hackoustic в London Hackspace, hackoustic. org.

Sound Stitcher Брендана О’Коннора
Sound Stitcher — интерактивная старинная швейная машина. Вращение колеса создает шумы швейной машины с цифровым усилением, а взаимодействие с ее рычагами, ползунками и зажимами приводит к искажению и ухудшению звука.

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

Springything Тома Фокса
Springything — это экспериментальный инструмент, состоящий из пружин, магнитов, мотка проволоки и усилителя. Диапазон и разнообразие шумов и звуковых текстур, которые исходят от этого инструмента, впечатляют! Построй свой собственный.

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

Отличные микроконтроллеры для музыкальных инструментов

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

Makey Makey

Всем нравится беззаботное очарование Makey Makey. Настройка занимает несколько секунд без кода или пайки, после чего он превращает обычные предметы в сенсорные панели, которые можно использовать для любых забавных изобретений, которые вы можете придумать, от печально известного бананового пианино до необычных игровых контроллеров. В схеме Makey Makey вы подключаете проводящий объект (например, металлический предмет или предмет с высоким содержанием воды, например фрукты или люди) к плате с помощью зажимов типа «крокодил», а затем замыкаете цепь, подключая ее к земле. Затем Makey Makey подключается к вашему компьютеру, чтобы контролировать все, что вы ему скажете.

Один из лучших способов использовать Makey Makey — использовать его как инструмент. Я использовал доску, чтобы играть на пианино с бананами, играть на бонго с желе и запускать сэмплы, делая глоток чая. Идеально подходит для начинающих или семейного отдыха.

Bare Conductive Touch Board

Если вы задумали проект, который сочетает в себе сенсорный экран и звук, вам стоит попробовать использовать Bare Conductive Touch Board. Подсоедините электроды на плате к токопроводящему материалу (например, к медной ленте, проводу или токопроводящей краске), и ваше прикосновение активирует один из 12 аудиосэмплов на встроенной SD-карте, которые очень легко переключать на сэмплы по вашему выбору. .

Эти привлекательные платы, совместимые с Arduino, надежны и просты. Вам не нужно смотреть какой-либо код, если вам нужны только базовые функции «нажми и воспроизведи», и вам не нужно подключать его к компьютеру, чтобы он мог воспроизводить ваши звуки. Если вы чувствуете себя комфортно, написав немного кода, вы можете использовать сенсорную панель Bare Conductive Touch Board, чтобы чувствовать близость — отлично подходит для всех видов музыкальных приложений! Недавно я использовал эту доску, чтобы сделать большое плюшевое щупальце, которое мурлычет, когда я его глажу.

Teensy

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

Создатель, исследователь и музыкальный энтузиаст Оскар Ооменс соединил Teensy с Raspberry Pi, чтобы создать прекрасный синтезатор SENSEI. Синтезатор оснащен настраиваемым сенсорным интерфейсом и носимым гироскопом, которые позволяют пользователю «формировать» звук в нескольких измерениях. Помимо перемещения джойстика, вы можете управлять звуковыми характеристиками с помощью трех чувствительных к силе резисторов на рукоятке.

Бела

Один из лучших способов сделать более совершенный музыкальный инструмент со встроенной технологией — Бела (рис. ). Бела — это не микроконтроллер, а дополнение к одноплатному компьютеру BeagleBone (SBC) [полное раскрытие: мой муж, Дрю Фустини, является добровольным членом правления фонда BeagleBoard.org]. Bela использует программное и аппаратное обеспечение с открытым исходным кодом, специально разработанное для создания прекрасно звучащих инструментов. Если вы серьезно относитесь к созданию инструментов, это отличный выбор.

Я соединил Bela с емкостным сенсорным датчиком Trill, чтобы сделать серию музыкальных металлических скульптурных существ, включая сабвуфер и арфу.

Чтобы узнать больше об этом, давайте с помощью Белы создадим синтезатор резинового утёнка!

Синтез звука: создание цифрового резинового утёнка

Вам потребуется:

  • Плата Bela или Bela Mini BeagleBone для этого проекта.
  • Материал
  • Джампер -провода, мужской до мужчин (4)
  • СПИСАНСКИЙ РЕСТИСОНЕР (FSR)
  • Резистор, 10Kω
  • Резистор, 10Kω
  • Резистор.
  • Динамик и дополнительный кабель 1/8″ (3,5 мм)

Создание интерактивных звуков утят

Созданные в лаборатории дополненных инструментов Лондонского университета королевы Марии, Bela и Bela Mini основаны на открытом исходном коде BeagleBone Black и SBC PocketBeagle. У большинства SBC и микроконтроллеров есть надстройки: у Raspberry Pi есть шляпы, у Arduino есть щиты, а у BeagleBone есть накидки, такие как Bela. Он использует высокоскоростные возможности BeagleBone для создания суперчувствительных инструментов с малой задержкой.

Что делает Bela действительно захватывающим для меня, так это то, как она работает не только с C++, но и с рядом программ синтеза звука с открытым исходным кодом, включая Pure Data и Super Collider. Вы можете использовать эти мощные аудиопрограммы для создания собственных шумов, а затем встраивать их в инструмент, на котором вы сможете играть вечно без подключения к компьютеру. Pure Data — отличный способ делать со звуком всевозможные сложные и красивые вещи.

В этом проекте мы собираемся использовать Bela и Pure Data для запуска синтезированной резиновой уточки на основе физическая модель . При физическом моделировании физика определенного типа звукового взаимодействия воссоздается в коде, что позволяет нам более реалистично синтезировать звуки. Код в этом примере использует физическую модель игрушки резиновой уточки, созданную Кристианом Хайнрихсом. Создание физической модели включает в себя анализ объекта и попытку понять, а затем синтезировать все различные способы, которыми он издает звук — все его различные атаки и выбросы, интенсивность и другие звуковые качества, в различных игровых условиях, таких как быстрое выдавливание воздуха или медленно, пропуская воздух обратно, сжимая слишком сильно и так далее. В этом разница между простым семплом уточки и реалистично взаимодействующим цифровым утятином, который может воспроизводить весь спектр звуков в зависимости от того, как вы его играете.

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

1. Подключите FSR

Рисунок A

Начните с подключения силового резистора (FSR). FSR — это датчики, которые обнаруживают физическое давление, такое как вес или сдавливание. Мы будем манипулировать этим FSR, чтобы задействовать звуки уточки (настоящая резиновая уточка, показанная выше, приведена только для иллюстрации).

Вставьте два металлических штифта в основании FSR в два отдельных ряда макетной платы. Затем возьмите резистор на 10 кОм и вставьте одну из его ножек в тот же ряд, что и одна из ножек вашего FSR. Вставьте другой конец резистора 10 кОм в шину заземления макетной платы (, рис. A, ).

2. Подключите Bela

Рисунок B

Затем подключите FSR к Bela, который еще не должен быть подключен к источнику питания или вашему компьютеру. С помощью перемычек соедините шину заземления макетной платы с контактом заземления на Bela, затем подключите шину питания макетной платы к контакту Bela 3,3 В. Найдите ветвь FSR, которую вы соединили с заземляющей шиной на шаге 1.

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

3. Подключите компьютер и динамик

Подключите кабель дополнительного адаптера, прилагаемый к Bela, к контактам аудиовыхода, затем используйте обычный дополнительный кабель 1/8″ (3,5 мм) для подключения динамика. Для начала уменьшите уровень звука на динамике, так как тон, который мы собираемся использовать для тестирования нашей настройки, может быть громким!

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

Рисунок C

Подключите Bela к компьютеру с помощью кабеля micro-USB-USB-A, который входит в комплект поставки платы ( Рисунок C ).

4. Проверьте настройку Bela

Одна из приятных особенностей Bela заключается в том, что вы получаете доступ к IDE (среде разработки, в которой вы программируете свою доску) с помощью веб-браузера. Это означает, что как только ваш Bela будет подключен к компьютеру, все, что вам нужно сделать, это открыть браузер и начать кодирование — загрузка программного обеспечения не требуется! Вам даже не нужно быть в сети, потому что ваш компьютер распознает вашу Белу как локальную сеть. После загрузки Bela перейдите по адресу http://bela.local в веб-браузере, чтобы загрузить IDE Bela. Если http://bela.local не вызывает IDE, попробуйте IP-адреса 192. 168.6.2 или 192.168.7.2.

Среда IDE состоит из четырех основных частей. Редактор — это место, где вы пишете свой код: C++, Csound, язык программирования Supercollider (sclang), JavaScript или Pure Data. Вы останавливаете и запускаете свой код, используя панель инструментов внизу, где вы также можете найти осциллограф и визуализатор графического интерфейса. Консоль дает вам отзывы о вашем Bela, такие как данные датчиков и сообщения об ошибках. Наконец, tabs — это место, где вы управляете проектами и настройками, а также где вы найдете примеры кода, интерактивную диаграмму выводов и все библиотеки.

Рисунок D

Проверьте свои настройки, перейдя в раздел вкладок IDE и запустив звуковую версию «Blink»: синусоидальный тон. Щелкните значок лампочки в разделе вкладок, чтобы открыть папку «Примеры». Нажмите «Основы», затем нажмите на пример проекта под названием sinetone , чтобы открыть его в редакторе ( Рисунок D ). Нажмите на значок круглой стрелки «создать и запустить» на панели инструментов; ваш код должен начать работать на плате, и если все в порядке, вы услышите синусоидальный сигнал.

5. Запрограммируйте уточку Bela

Вернитесь на вкладку Examples в Bela IDE и прокрутите вниз, пока не найдете раздел Pure Data. Разверните этот раздел, нажав на +, затем откройте эскиз резинового утёнка . Минимальный код, который вы видите в области редактора, является основным файлом коллекции файлов, составляющих патч Pure Data. В отличие от кода C++ из примера sinetone, вы не можете редактировать патчи Pure Data непосредственно в браузере. Мы более подробно рассмотрим код Pure Data на следующем шаге, а пока вы можете запустить код резиновой уточки, щелкнув значок сборки и запуска на панели инструментов.

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

6.

Исследуйте и экспериментируйте

Если вы хотите больше узнать о том, как создаются эти сложные для синтеза интерактивные звуки, вы можете начать с изучения файла Pure Data. Pure Data (часто называемая Pd) — это бесплатная среда визуального программирования с открытым исходным кодом для звука, изображений и других медиа. Это прекрасный инструмент для создания сложного звукового синтеза. Вы не можете редактировать Pd-файлы прямо в браузере, поэтому, если вы хотите более подробно посмотреть на (действительно очень интересный!) код примера, вам нужно открыть его с помощью Pd.

Сначала щелкните значок папки в разделе вкладок Bela IDE, чтобы открыть Project Explorer, затем загрузите свой проект и разархивируйте папку. Затем загрузите и установите Pd на свой компьютер с сайта puredata.info. Доступны две версии Pd: Pd Vanilla или Purr Data. Любой из них будет работать нормально, но я склонен использовать Pd Vanilla.

Рисунок E Рисунок F

Перейдите в разархивированную папку, загруженную из IDE Bela, и откройте _main.

alexxlab

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *