Съдържание:
- Консумативи
- Стъпка 1: Подготовка на USB Mini Host Shield за управление на 5V Midi устройство
- Стъпка 2: Свържете USB Mini щита с вашия Arduino Nano
- Стъпка 3: Чипове някой? Добавяне на SN76489 с 4MHz Osc. и 595 Shift регистър
- Стъпка 4: Просто добавете код - Добавяне на библиотеки, Компилиране и качване на кода
- Стъпка 5: Свържете усилвател и високоговорител, свържете вашата USB midi клавиатура и тествайте
- Стъпка 6: Завършете веригата с 5V регулатор на напрежението, 12V конектор, превключвател за включване/изключване на захранването и светодиод за захранване
- Стъпка 7: Затворете в кутия, боядисвайте и се насладете на новия си синтезатор
Видео: Нека изградим SN76489 USB MIDI синтезатор с Arduino Nano: 7 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
Искали ли сте някога да създадете свой собствен синтезатор, базиран на стари чип мелодии от 80-те? Пускате прости полифонични мелодии, които звучат точно като тези стари видео игри Sega Master System и Megadrive?
Имам, затова поръчах няколко чипа SN76489 от ebay и midi хост интерфейс и го опитах. Е, за мен това не беше разходка в парка, но се наслаждавах на всеки момент.
Първо научих как директно да свързвам SN76489 и да вдигам шум с него. В това имаше някои объркващи елементи, но с помощта на The Oddbloke Geek Blog и няколко други примера, заедно с документа за спецификация на чипа, успях да разработя проста библиотека arduino.
След това трябваше да се науча как да свързвам midi клавиатура с USB мини хост щит. Това не беше толкова трудно, тъй като има налична документация и съществуват добри библиотеки с ясни примери.
След като разбрах как да контролирам чипа и как да свържа USB midi клавиатурата си, единственото нещо, което трябваше да направя, беше да напиша някакъв код, който да увие всичко това заедно и да ми позволи да използвам клавиатурата за управление на чипа.
По пътя научих, че звуците с по -ниска честота от тези, които се опитах да генерирам за 0x2f midi ноти, не звучат правилно, затова реших да използвам това, за да позволя изпращането на шум към генератора на шум за всякакви midi ноти между 0x28 и 0x2f и също така позволяват ноти за възпроизвеждане с ориенталски арабски допир до всичко по -ниско от midi 0x28.
Поглеждайки назад, беше много забавно и много интересно да се изгради.
Надявам се, че ще ви се стори толкова забавно и интересно, както направих аз, и че ако сами изградите такъв, ще бъдете достатъчно любезни да споделите някои негови снимки.
Ако този проект ви е харесал, моля, гласувайте за него по -долу, за да спечелите конкурса, в който участва
Консумативи
Добавих връзки към материали, които можете да закупите за този проект, но можете да намерите много налични елементи, които можете да изстържете от стара електроника.
Тези връзки са партньорски връзки, така че ако купувате, след като щракнете върху тях, получавам малка част (не богатство) и получавате продукт, който е подходящ за този проект. При използването им няма такса или допълнителни разходи, но можете да намерите подобни артикули, които могат да ги заменят доста лесно.
ebay.us/svA4z4 | 1 х платка за изпълнение
ebay.us/ZyEFNp | 1 x arduino nano
ebay.us/t1zy0v | 1 х USB мини щит
ebay.to/2QrHl1C | 1 x звуков чип SN76489
ebay.us/aaaj8p | 1 x регистър на смяна 595
ebay.us/DSvTHO | 1 х кристален осцилатор на 4MHz
ebay.us/XQeM0Q | 1 x 5V регулатор на напрежение 7805
ebay.us/6R6Fpf | 1 х радиатор за регулатора на напрежението
ebay.us/xkLbn4 | 3 x 10uF кондензатори
ebay.us/pnm2BH | проводници
ebay.us/PMbUfY | 1 x червен светодиод за захранване
ebay.us/zokHtc | 1 x 220 ома резистор за ограничаване на потока на светодиода
ebay.us/qjbesJ | 1 x конектор за захранване за 12v захранване
ebay.us/cS0wwv | 1 x превключвател за включване/изключване
подходяща кутия (моята я построих от старо чекмедже, което лежеше в моето хранилище години наред)
Стъпка 1: Подготовка на USB Mini Host Shield за управление на 5V Midi устройство
Тъй като USB мини хост щитът работи на 3.3V, а USB midi клавиатурите, които използвам, изискват 5V, е необходимо да се регулира изходното напрежение на щита, като се прекъсне 3.3V линията, която отива към USB изхода Vcc, така че по -късно можем да го свържем към 5V.
Има много уроци за това как да направите това и се оказа доста просто:
Просто отрежете линията между 2k2 резистора и Vcc линията (вижте приложеното изображение). Използвах отвертка, за да надраскам тази линия и тествах дали работи с измервател на непрекъснатост.
Стъпка 2: Свържете USB Mini щита с вашия Arduino Nano
За щастие, има много информация за това как да направите това, така че, като потърсим в „Arduino Nano и мини USB хост щит“, попаднах на тази нишка
В него се описва как да се свърже USB mini v2.0 щита и след като го последвах, направо отидох да тествам някои примери за USB midi.
Електрически инсталации:
Щит за домакин на Arduino
10--------------5
11--------------6
12--------------7
13--------------8
2----------------2
5V -------------- 1
3.3V ------------ 9
GND ----------- 3
RST ------------ 4
В тази тема беше споменато също, че те прерязват кабела 3.3V, така че USB може да получи 5V от VBUS.
Това описание и приложените изображения идват от тази тема.
BTW, има грешка в отпечатъка на тази дъска, така че това беше малко объркващо, но можете да видите моите отзиви за това (tyrkelko) и откъде съм го научил.
Стъпка 3: Чипове някой? Добавяне на SN76489 с 4MHz Osc. и 595 Shift регистър
Сега беше време да добавим чипа, който издава този невероятен звук.
Вече разработих библиотека за интерфейс на arduino с този чип и трябваше само да следвам инструкциите ми.
Библиотеката е пусната в github под GPLv3 (първата ми версия с отворен код).
github.com/tyrkelko/sn76489
Връзката на 76489 и 595 беше както в приложеното изображение, което е заснето от файла readme.txt на библиотеката
Записването на ниско ниво (NotWE) на 76489 е свързано с пин 3 на нано и може да се променя в кода.
#дефинирайте PIN_NotWE 3
595 е свързан към nano по следния начин и може също да се регулира чрез редактиране на номерата на пиновете:
#дефинирайте PIN_SER 7
#дефинирайте PIN_LATCH 6
#дефинирайте PIN_CLK 5
Осцилаторът, който използвах, беше 4MHz кристален осцилатор с 4 крака.
Той е конфигуриран в кода, както следва и можете да регулирате стойността му към всяка честота на осцилатора между 500kHz и 4MHz:
#дефинирайте ЧЕСТОТА 4000000.0
Свързването на осцилатора, който използвах, беше както следва:
щифт 1 - не е свързан
щифт 7 - маса
щифт 8 - свързан към 76489 пин 14 - часовник osc
Стъпка 4: Просто добавете код - Добавяне на библиотеки, Компилиране и качване на кода
Библиотеките, използвани в този проект, трябва да бъдат добавени към Arduino IDE, както следва:
Отворете Arduino IDE
Изтеглете следните библиотеки в библиотечната папка на вашата 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: Свържете усилвател и високоговорител, свържете вашата USB midi клавиатура и тествайте
Сега е време да тестваме дали всичко работи.
За да направим това, се нуждаем от:
1. Усилвател и високоговорител
2. USB midi клавиатура
Свържете SN76489 щифт 7, аудио изход към аудио входа на усилвателя.
Включете усилвателя и след това включете arduino nano. Сега би трябвало да чуете тестовия звук при включване за част от секундата.
Свържете USB midi клавиатурата и тествайте.
Ако всичко работи правилно, трябва да можете да възпроизвеждате 3 тона едновременно, а също така да възпроизвеждате 8 вида шум и дори някакъв четвърт тон от 24 EDO-Scale.
Ако не работи, преминете през стъпките, за да видите какво може да се е объркало.
Ако смятате, че това е резултат от неясни инструкции, моля, изпратете ми бележка, за да актуализирам инструкциите, за да го поправя.
Стъпка 6: Завършете веригата с 5V регулатор на напрежението, 12V конектор, превключвател за включване/изключване на захранването и светодиод за захранване
В тази стъпка трябва да можете да завършите веригата, след като я тествате, за да работи правилно.
1. Добавете регулатор на мощността с LM7805 и два 10uF кондензатора и 0.1uF. Има много уроци по това, можете да използвате следните инструкции, за да постигнете това-https://www.instructables.com/id/7805-Regulator-5V…
2. Добавете 12V захранващ конектор с Vcc през превключвател за включване/изключване
3. Добавете светодиод с резистор за ограничаване на тока, за да покажете кога захранването е включено.
Стъпка 7: Затворете в кутия, боядисвайте и се насладете на новия си синтезатор
След като веригата бъде тествана и работи по ваш вкус, не остава много да се направи, освен за изграждане на хубав корпус, боядисайте я със страхотни цветове и пуснете музика.
Надявам се да ви хареса да прочетете тази инструкция и че тя ви вдъхнови да създадете свой собствен синтезатор или да започнете с друг проект, върху който работите.
Моля, коментирайте по -долу с всякакви въпроси и ако сте изградили нещо подобно въз основа на този урок, би било чудесно, ако споделите това, което сте направили в „Аз направих това!“област или в раздела за обратна връзка.
Препоръчано:
Нека изградим (аналогов синтезатор): 5 стъпки
Let's Build (Analogue Synth): В тази поредица ще ви покажа как да изградите основен модулен аналогов синтезатор, използвайки както аналогови, така и цифрови компоненти. Връзка към схеми и компоненти: https://drive.google.com/open?id= 1mZX4LyiJwXZLJ3R56SDxloMnk8z07IYJ
Arduino MIDI Chiptune синтезатор: 7 стъпки (със снимки)
Arduino MIDI Chiptune Synthesizer: Преживейте забавлението на ранната музика на компютърни игри с автентичен 8-битов синтезатор на чиптън, който можете да контролирате MIDI от комфорта на всеки съвременен софтуер DAW. Тази проста схема използва Arduino за управление на AY-3- 8910 програмируеми звукови генератори
Нека направим вълшебна кристална топка с магически заклинания! ~ Arduino ~: 9 стъпки
Нека направим вълшебна кристална топка с магически заклинания! ~ Arduino ~: В това ще направим магическа топка, която използва сензор за движение и RFID скенер за управление на анимациите на LED светлините вътре
MIDI 5V LED лентов контролер за Spielatron или друг MIDI синтезатор: 7 стъпки (със снимки)
MIDI 5V LED Strip Light Controller за Spielatron или друг MIDI синтезатор: Този контролер мига трицветни LED ленти за 50mS на бележка.Синьо за G5 до D#6, червено за E6 до B6 и зелено за C7 до G7. Контролерът е ALSA MIDI устройство, така че MIDI софтуерът може да извежда към светодиодите едновременно с MIDI синтезатор
Micro Midi синтезатор: 5 стъпки (със снимки)
Micro Midi Synthesizer: Тази инструкция демонстрира използването на VLSI VS1053b Audio и Midi DSP чип в режима Midi в реално време. В този режим той действа като 64 гласов полифоничен GM (General Midi) Midi синтезатор. Самостоятелен микро Arduino Uno контролира OLED дисплей