Оглавление:

Создадим синтезатор MIDI SN76489 USB с Arduino Nano: 7 шагов
Создадим синтезатор MIDI SN76489 USB с Arduino Nano: 7 шагов

Видео: Создадим синтезатор MIDI SN76489 USB с Arduino Nano: 7 шагов

Видео: Создадим синтезатор MIDI SN76489 USB с Arduino Nano: 7 шагов
Видео: SN76489 MIDI implementation 2024, Июль
Anonim
Image
Image
Давайте создадим USB-MIDI-синтезатор SN76489 с помощью Arduino Nano
Давайте создадим USB-MIDI-синтезатор SN76489 с помощью Arduino Nano
Давайте создадим USB-MIDI-синтезатор SN76489 с помощью Arduino Nano
Давайте создадим USB-MIDI-синтезатор SN76489 с помощью Arduino Nano

Вы когда-нибудь хотели создать свой собственный синтезатор на основе старых чип-мелодий 80-х? Слушать простые полифонические мелодии, которые звучат так же, как звучали эти старые видеоигры Sega Master System и Megadrive?

У меня есть, поэтому я заказал несколько чипов SN76489 с ebay и интерфейс хоста midi и попробовал. Что ж, для меня это была не прогулка по парку, но я наслаждался каждым моментом.

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

Затем мне нужно было научиться сопрягать MIDI-клавиатуру с мини-панелью USB-хоста. Это было не так сложно, поскольку есть документация и хорошие библиотеки с наглядными примерами.

Как только я понял, как управлять чипом и как взаимодействовать с моей USB-MIDI-клавиатурой, мне оставалось только написать код, который бы все это объединил и позволил мне использовать клавиатуру для управления чипом.

Попутно я узнал, что звуки с частотой ниже, чем те, которые я пытался сгенерировать для midi-нот 0x2f, звучат неправильно, поэтому я решил использовать это, чтобы разрешить отправку шума на генератор шума для любых midi-нот между 0x28 и 0x2f. а также позволяет воспроизводить ноты с восточно-арабским оттенком для всего, что ниже midi 0x28.

Оглядываясь назад, можно сказать, что это было очень весело и очень интересно строить.

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

Если вам понравился этот проект, проголосуйте за него ниже, чтобы помочь выиграть конкурс, в котором он участвует

Запасы

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

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

ebay.us/svA4z4 | 1 х доска производительности

ebay.us/ZyEFNp | 1 х ардуино нано

ebay.us/t1zy0v | 1 х USB мини-экран

ebay.to/2QrHl1C | 1 звуковой чип SN76489

ebay.us/aaaj8p | 1 х сдвиговый регистр 595

ebay.us/DSvTHO | 1 кварцевый генератор 4 МГц

ebay.us/XQeM0Q | 1 x регулятор напряжения 5В 7805

ebay.us/6R6Fpf | 1 радиатор для регулятора напряжения

ebay.us/xkLbn4 | 3 конденсатора по 10 мкФ

ebay.us/pnm2BH | провода

ebay.us/PMbUfY | 1 красный светодиод для питания

ebay.us/zokHtc | 1 резистор 220 Ом для ограничения тока светодиода

ebay.us/qjbesJ | 1 x разъем питания для блока питания 12 В

ebay.us/cS0wwv | 1 переключатель включения / выключения

подходящая коробка (я построил свой из старого ящика, который годами хранился на моем складе)

Шаг 1. Подготовка экрана USB Mini Host Shield для работы с устройством Midi 5 В

Подготовка экрана USB Mini Host Shield для работы с устройством Midi 5 В
Подготовка экрана USB Mini Host Shield для работы с устройством Midi 5 В

Поскольку экран мини-хоста USB работает с напряжением 3,3 В, а используемые мною MIDI-клавиатуры требуют 5 В, необходимо отрегулировать выходное напряжение экрана, отключив линию 3,3 В, которая идет к выходу USB Vcc, чтобы мы могли позже подключить его. до 5В.

Есть много руководств о том, как это сделать, и это оказалось довольно просто:

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

Шаг 2. Подключите USB Mini Shield к Arduino Nano

Подключите USB Mini Shield к Arduino Nano
Подключите USB Mini Shield к Arduino Nano
Подключите USB Mini Shield к Arduino Nano
Подключите USB Mini Shield к Arduino Nano

К счастью, есть много информации о том, как это сделать, поэтому, поискав в Google "Arduino Nano и mini USB host Shield", я попал в эту ветку

В нем было описано, как подключить экран USB mini v2.0, и после его выполнения я сразу же приступил к тестированию некоторых примеров USB midi.

Электропроводка:

Хост-щит Arduino

10--------------5

11--------------6

12--------------7

13--------------8

2----------------2

5 В -------------- 1

3,3 В ------------ 9

GND ----------- 3

RST ------------ 4

В этой ветке также упоминалось, что они перерезали провод 3,3 В, чтобы USB мог получать 5 В от VBUS.

Это описание и прилагаемые изображения взяты из этой ветки.

Кстати, на этой доске есть ошибка, так что это немного сбивало с толку, однако вы можете увидеть мой отзыв об этом (tyrkelko) и откуда я этому научился.

Шаг 3. Кто-нибудь чипсы? Добавление SN76489 с 4 МГц Osc. и 595 сдвиговый регистр

Кто-нибудь чипсы? Добавление SN76489 с 4 МГц Osc. и 595 сдвиговый регистр
Кто-нибудь чипсы? Добавление SN76489 с 4 МГц Osc. и 595 сдвиговый регистр

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

Я уже разработал библиотеку для взаимодействия Arduino с этим чипом, и мне оставалось только следовать моим инструкциям.

Библиотека выпущена на github под GPLv3 (мой первый релиз с открытым исходным кодом).

github.com/tyrkelko/sn76489

Соединение 76489 и 595 было таким, как на прилагаемом изображении, которое получено из файла библиотеки readme.txt.

Разрешение записи на низком уровне (NotWE) 76489 было подключено к контакту 3 nano и может быть изменено в коде.

#define PIN_NotWE 3

595 был подключен к nano следующим образом, и его также можно отрегулировать, отредактировав номера контактов:

#define PIN_SER 7

#define PIN_LATCH 6

#define PIN_CLK 5

В качестве генератора я использовал кварцевый генератор с частотой 4 МГц с 4 ножками.

Он был настроен в коде следующим образом, и вы можете настроить его значение на любую частоту генератора от 500 кГц до 4 МГц:

#define FREQUENCY 4000000.0

Подключение генератора, которое я использовал, было следующим:

контакт 1 - не подключен

пин 7 - земля

контакт 8 - подключен к 76489 контакт 14 - часы osc

Шаг 4: Просто добавьте код - добавление библиотек, компиляция и загрузка кода

Библиотеки, используемые в этом проекте, необходимо добавить в IDE Arduino следующим образом:

Откройте IDE Arduino.

Загрузите следующие библиотеки в папку библиотек вашей среды IDE (надеюсь вскоре увидеть их в меню «Управление библиотеками…» в меню «Инструменты» среды IDE):

github.com/felis/USB_Host_Shield_2.0

github.com/tyrkelko/sn76489

Используйте код из следующего проекта github:

github.com/tyrkelko/usb_midi_tone

Загрузите usb_midi_tone.ino, скомпилируйте и загрузите на свой Arduino nano.

Шаг 5. Подключите усилитель и динамик, подключите MIDI-клавиатуру USB и проверьте

Пришло время проверить, все работает.

Для этого нам понадобятся:

1. Усилитель и динамик

2. MIDI-клавиатура с интерфейсом USB.

Подключите SN76489 контакт 7, аудиовыход, к аудиовходу усилителя.

Включите усилитель, а затем включите arduino nano. Теперь вы должны услышать тестовый звук при включении на долю секунды.

Подключите MIDI-клавиатуру USB и проверьте.

Если все работает правильно, вы сможете играть 3 тона одновременно, а также воспроизводить 8 типов шума и даже какую-то четверть тона 24 EDO-Scale.

Если это не сработает, просмотрите шаги, чтобы увидеть, что могло пойти не так.

Если вы считаете, что это связано с нечеткими инструкциями, напишите мне, и я обновлю инструкции, чтобы исправить это.

Шаг 6: Завершите схему с помощью регулятора напряжения 5 В, разъема 12 В, переключателя включения / выключения и светодиода питания

На этом этапе вы сможете завершить схему после проверки, чтобы она работала правильно.

1. Добавьте стабилизатор мощности с LM7805 и двумя конденсаторами по 10 мкФ и 0,1 мкФ. Есть много руководств по этому поводу, вы можете использовать следующие инструкции для этого -

2. Добавьте разъем питания 12 В с Vcc, идущим через переключатель включения / выключения.

3. Добавьте светодиод с ограничивающим резистором тока, чтобы указать, когда питание включено.

Шаг 7. Поместите в коробку, раскрасьте и наслаждайтесь своим новым синтезатором

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

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

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

Рекомендуемые: