robotev :: blog

октомври 8, 2011

Arduino като MIDI контролер

Публикувано в: Обучавам, Правя — Етикети:, , , , — robotev @ 15:46

(или  препрограмиране на ATmega8U2 чипа на Arduino Uno и Mega2560) 

ATmega8U2 чипът на Arduino Uno и Mega2560 играе ролята на посредник между USB порта на компютъра и главния микроконтролер на Arduino платката. На него има предварително инсталиран firmware, който може да се препрограмира през специален USB протокол наречен DFU (Device Firmware Update). 

Тъй като информацията на официалната страница на Ардуино как се препрограмира чипа ( http://arduino.cc/en/Hacking/DFUProgramming8U2 ) не е съвсем пълна в този пост ще се опитам да ви спестя някой от проблемите на които се натъкнах в опит да препрограмирам Atmega8U2 чипа с Windows машина. Целта беше да се „маскира“ Ардуино като MIDI усторйство и да може да си комуникира с други MIDI програми без нуждата от допълнителен хардуер или софтуер. Инструкциите са за препрограмиране с firmware за MIDI, но процесът за качване и на друг firmware е идентичен. 

Стъпките, които трябва да следвате са: 

1. Изтеглете FLIP програматора на Atmel от http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3886 . Версията, която ползвах е FLIP 3.4.3 for Windows (Java Runtime Environement included) .

2. Изтеглете firmware-a, който ще качвате на чипа. За да „маскирате“ вашето Ардуино и то да се разпознава от компютъра като MIDI устройство използвайте MocoLUFA firmware-a от http://web.mac.com/kuwatay/morecat_lab./MocoLUFA.html . Използвам 7-zip софтуера за разархивиране и при първия Extract от .tgz се получава .tar файл, който Extract-нат на свой ред дава папка с необходимите файлове.

3. Подгответе платката. Ако Arduino платката ви НЕ е Arduino UNO r2 или Arduino UNO SMD е необходимо да запоите резистор от 10к ома както е показано на снимката долу.

4. Свържете Ардуино платката към компютъра с USB кабел и вкарайте Atmega8U2 чипа в DFU режим като окъсите за около секунда Reset и GND пиновете му. Използвайте къс проводник за да направите мост между пиновете от снимката. При Arduino UNO r2 и Arduino UNO SMD има запоени рейки, но пиновете, който да се окъсят са на същите позиции.

5. Когато чипът влезе в DFU режим, Windows ще покаже съобщение, че е открил нов хардуер и ще се активира Install New Hardware Wizard-a. Изберете опцията, която ви дава възможност да посочите сами драйвера, който да се инсталира – No, not this time. На следващия екран изберете Install from a specific location, и на третия екран укажете пътеката до папката с драйвера. Драйверът, който трябва да инсталирате се намира в папката на FLIP софтуера. По подразбиране това е C:\Program Files\Atmel\Flip 3.4.3\usb

6. Стартирайте FLIP и в меню File>Load Hex File изберете MIDI.hex файла (намира се в MocoLUFA\HEX); в меню Device изберете АТ90USB82; и в меню Settings>Communication изберете USB.

7. Натиснете Run. Пропрограмирането на чипа отнема само няколко секунди.

8. Извадете USB кабела и го включете отново. Windows ще разпознае платката като MIDI устройство и ще инсталира необходимите драйвери.

За да можете да качвате скици Ардуино микроконтролера е необходимо на ATmega8U2 да е инсталиран Arduino firmware. Версиите на официалния firmware на Arduino се намират на https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares .

Примерна програма за Ардуино има в средата за програмиране – Files>Examples>Communication>MIDI.

Share and Enjoy:
  • Facebook
  • Twitter
  • Technorati
  • RSS
  • StumbleUpon
  • Print

8 Коментара »

  1. бих искал малко помощ относно това как да реализирам честотомер на база на ардуино

    Коментар от radiko — април 5, 2012 @ 13:52

  2. Здравейте, искам да попитам възможно ли е горепосочениия фирмуер LUFA Moco да се посатви (флашне) на Arduino Uno rev.3 ?

    Коментар от troy_4o — май 28, 2012 @ 17:01

  3. @troy_4o – Да, процедурата за флашване на Uno rev.3 е абсолютно същата като описаната в този пост.

    Коментар от robotev — май 29, 2012 @ 16:51

  4. Здравейте, отново се запалих по ардуиното (имаше период на бездействие независещ от мен )реших да си продължа проекта за направата на MIDI controler който управлява музикален софтуер като Abelton, VirtualDJ, Traktor и тн. Питането ми е тъй като опроводяването на гърбъt Uno rev.3 http://arduino.cc/en/uploads/Main/ArduinoUno_R3_Back.jpg се различава от окабеляването на Uno http://arduino.cc/en/uploads/Main/ArduinoUnoBack.jpg където са оставени ясни площадки за запояването на резистора 10кОма не разбирам къде трябва да се запои резистора на платката Uno rev.3. Извинявам се за може би глупавия въпрос но все още съм на Вие с електрониката (надявам се положението да се подобри ). Благодаря предварително.

    Коментар от troy_4o — ноември 1, 2012 @ 23:09

  5. На Уно rev3 няма нужда да се запоява този резистор.

    Коментар от robotev — ноември 1, 2012 @ 23:48

  6. Благодаря за бързия отговор.

    Коментар от troy_4o — ноември 2, 2012 @ 11:26

  7. levitra onlinelevitra 20 mg , http://ordercheaplevitranow.com/#ddhhm levitra online

    Коментар от SurnewexyNeer — април 10, 2013 @ 6:50

  8. http://helendunncounselling.com/coach-col-sig-sat-hobo/

    Коментар от http://helendunncounselling.com/Louis-Vuitton-M60507/ — октомври 27, 2015 @ 19:16

RSS хранилка за коментарите по тази публикация. Адрес за TrackBack

Вашият коментар

Задвижвано от WordPress