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.

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