Arduino и midi интерфейс

Midi - представляет собой специальный интерфейс, придуманный для обмена данными между музыкальными инструментами. В данном проекте мы будем подружим плату Arduino и midi интерфейс и будем передавать midi данные при помощи Arduino и обрабатывать данные на компьютере. Подключение Arduino к компьютеру мы будем осуществлять через mid-USB переходник. А обрабатывать данные через известную многим музыкантам программу FL studio.

Для начала давайте подключим Arduino к midi кабелю. Внешний вид midi-USB кабеля представлен на рисунке ниже. На данном кабеле есть 2 специальных разъема. Одни предназначен для ввода данных в компьютер а другой соответсвенно для вывода. Для подключения нам понадобиться всехо лишь один резистор номиналом в 2.2 кОм. 

Внешний вид midi-USB кабеля

midi-usb

На переходнике имеются 2 индикатора для отображения процесса переданных или полученных данных. Если все подключенно и настроенно правильно то они будут моргать в такт передаваемым midi-данным.

Схема подключения Arduino к midi-USB кабелю

midi-usb1

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

Настройка программы FL studio для работы с внешними midi-данными

Для настройки программы необходимо зайти в настройки самой программы, выбрать вкладку midi и нажать кнопку сканировать midi устройства (Rescan MIDI devices). подключенный шнур должен сразу определиться.

midi-USB3

Код программы на Arduino передающий midi-данные

void setup() 
{
  Serial.begin(31250);
}
void loop() 
{
 
  for (int note = 0x1E; note < 0x5A; note ++) 
  {
    noteOn(0x90, note, 0x45);
    delay(100);
    noteOn(0x90, note, 0x00);   
    delay(100);
  }
}
void noteOn(int cmd, int pitch, int velocity) 
{
  Serial.write(cmd);
  Serial.write(pitch);
  Serial.write(velocity);
}

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

После записи данной программы на Arduino и подключения midi-USB переходника, на нем сразу же должна заморгать лампочка INPUT, что говорит о том что все идет как надо и данные передаются. А в программе FL stuido должен сразу появиться звук. Ни каких настроек кроме сказанных выше делать не нужно. 

Таким образом при помощи Arduino можно получать данные с внешнего мира и преобразовавать их в цвуковые. 

Комментарии  

 
#1 костя 30.05.2016 14:15
Приветствую. А если у меня звуковая карта со входом миди и я хочу не через юсб это делать. Что-то нужно в коде менять?
Цитировать
 
 
#2 Miha 01.06.2016 08:41
Я думаю что ничего менять не нужно, USB шнурок в примере это просто переходник. Только в самой FL Studio придется как то выбрать это MIDI разъем на звуковой карте.
Цитировать
 
 
#3 Роман 20.04.2018 17:52
Питание, вероятнее всего нужно потому, что по спецификации миди цепи должны быть галбванически развязаны. Обычно стоит оптрон, на питание всего этого дела напряжение и подается.
Цитировать
 

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


Защитный код
Обновить

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

Последнии темы форума

  • Нет сообщений для показа