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.

септември 23, 2011

Processing и Android

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

Още с обявяването на Google Accessory Development Kit (Google ADK) видях много интересни възможности и потенциал. Наскоро се сдобих с Андроид телефон и в този блог ще опиша опита си по свързването му към платката на Ардуино за Андроид разработки. Надявам се, че информацията ще е полезна.

Първата стъпка е да се свърже телефона към компютър и да се качи написано от нас приложение. Тъй като имам известен опит с Processing  реших да използвам него. Инструкциите по-долу работят със Samsung Nexus S апарат, но са приложими и за други телефони. Не се колебайте да споделите вашия опит (или проблеми) в коментарите.

В следващ пост ще опиша и свързването на телефона към платката на Ардуино.

1. Инсталирайте Android SDK от http://developer.android.com/sdk/index.html. За помощ или подробна информация вижте http://developer.android.com/sdk/installing.html. Запомнете в коя папка инсталирате този софтуер защото по-късно ще трябва да укажете пътеката към нея. След инсталация софтуерът се стартира и дава възможност да се изберат допълнителни пакети за инсталиране. Уверете се, че са избрани следните компоненти:

  1. SDK Platform Android 2.1, API 7
  2. Google APIs by Google Inc., Android API 7 . Няма да навреди ако допълнително инсталирате и други версии на Android API, включително версия 8 или по-висока, но задължително ви трябва и версия 7.
  3. Google USB Driver package. Този пакет е подходящ ако имате Nexus One или Nexus S телефон. За други апарати може да инсталирате съответните драйвери на по-късен етап. За подробности вижте http://developer.android.com/sdk/win-usb.html

След като изберете горните пакети и натиснете Install, те първо ще се свалят и след това ще се инсталират. В края на инсталацията, програмата ще ви каже, че е нужен рестарт. Натиснете Yes. Ако инсталацията е преминала успешно ще имате (поне) тези пакети в Installed Packages:

 

2. Изтеглете Processing от http://processing.org/download/ и разархивирайте файла (не е нужна инсталация). Използвайте версия 1.5 или по-висока.

3. Стартирайте Processing и сменете изгледа от Standard на Android. При тази операция, Processing ще покаже съобщение, че не намира инсталация на Android SDK, и ще ви каже ако сте инсталирали софтуера да натиснете Yes. Изберете Yes и укажете пътя до папката в която сте инсталирали Android SDK.

4. Изберете някоя програма за проба. Този пример за изчертаването на линия от координати 0, 0 до 100, 100 е подходящ:

void setup(){
size(400, 300);
}

void draw(){
line(0, 0, 100, 100);
}

Изпробвайте я в емулатора като натиснете бутона Run in Emulator или с Ctrl+R. Това ще компилира програмата и ще я изпрати към емулатора. При мен първият опит е нуспешен и получавам грешка „Device killed or disconnected.“ но малко след като се появи тази грешка се стартира и емулатора. След като веднъж емулаторът е стартирал програмите се качват коректно. Имайте предвид, че емулаторът реагира бавно и може да мине известно време докато тръгне програмата. Бъдете търпеливи, стартирането на програмата може да отнеме до няколко минути.

5. Време е да качим програмата и на телефона. След като свържете телефона към компютъра ще се стартира Found New Hardware Wizard-а. Изберете опцията, която ви дава възможност да изберете драйвера, който да се инсталира – No, not this time. На следващия екран изберете Install from a specific location, и на третия екран укажете пътеката до папката с драйвера. При мен това е android-sdk\extras\google\usb_driver, но ако вашия телефон е различен от Nexus One или Nexus S вижте http://developer.android.com/sdk/win-usb.html за повече информация къде да намерите подходящ драйвер.

6. Подгответе и телефона за качване на приложения. В меню Settings/Applications/Development позволете USB debugging.

7. Качете програмата с линията от Processing на телефона. Това може да стане от меню Sketch/Run on Device или с клавишна комбинация Ctrl+Shift+R. Възможно е при първото качване на програма на телефона да трябва да прекъснете връзката на Processing с емулатора от меню Android/Reset Connections.

Приложението стартирано в емулатора

 

Приложението стартирано на телефона

Полезни връзки

http://wiki.processing.org/w/Android
http://labs.arduino.cc/ADK/Index
http://developer.android.com/guide/topics/usb/adk.html

юни 16, 2011

Ателие „Интерактивни обекти с Ардуино“ в малкия сезон на Сфумато

Публикувано в: Обучавам — Етикети:, , — robotev @ 9:28

Театрална работилница Сфумато и Роботев предлагат отлична възможност да се докоснете до микроконтролерите Ардуино и да направите първите си стъпки в света на интерактивните обекти и среди.

Ателието ще се проведе на 1, 2 и 3 юли, като участието е безплатно. Срокът за кандидатстване е 20 юни 2011. Побързайте, местата са ограничени. Заявки за участие се приемат на sfumato1@mbox.contact.bg и robotev@robotev.com.

Целта на ателието е да запознае участниците с основните теоретични и практически способи и похвати при създаването на интерактивни обекти и среди, като така предостави идеи, умения и стабилна основа за по-нататъшно развитие. Вярваме, че най-добрият начин за усвояване на нови знания е практическият и затова теорията ще бъде представена чрез редица практически експерименти и задачи.

В рамките на това тридневно ателие всеки участник ще изготви интерактивна RGB лампа реагираща на промяна в заобикалящата среда като например промяна в температурата, нивото на осветеност, приближаване, допир и др. В процеса на реализация на лампата, участниците ще се запознаят с хардуерните характеристики на микроконтролерите Ардуино, възможностите на средата за програмиране на тези микроконтролери, както и основните команди и синтаксиса на езика за програмиране.

През първия ден ще покрием основните характеристики и възможности на микроконтролерите Ардуино и на средата за програмиране. Участниците ще усвоят най-често използваните команди за управление на Ардуино, ще напишат първите си програми (наричани „скици“) и ще се запознаят с начините на работа на компонентите от комплекта за уъркшопа.

Втория ден участниците ще изготвят еднакви интерактивни RGB лампи като в процеса ще се запознаят с по-сложни софтуерни команди и със способите за управление на потока на програмата. Третия ден всеки ще персонализира своята лампа като я накара да реагира на препочитаните от него промени в заобикалящата среда и й придаде външен вид по свой вкус.

Предварителни познания по електроника и/или програмиране не са необходими. Ателието е отворено за всички желаещи като предпочитаните от нас участници са учениците и студентите от художествени учебни заведения. Предишен опит в създаването на макети от хартия е предимство.

Такса за участие в ателието няма, необходимо е единствено закупуването на следните компоненти и да носите свой лаптоп за да бъде участието пълноценно:

1 х Ардуино Uno
1 х USB кабел А към В
1 х Бредборд с 840 места за крачета
1 х Комплект проводници
1 х Мосфет IRF530
1 х DC Електромотор размер 130
5 х Обикновени светодиода (различни цветове)
2 х Супер ярки светодиода (червени)
2 х Супер ярки светодиода (зелени)
2 х Супер ярки светодиода (сини)
2 х Бутона
1 х Сензор за наклон
1 х Термистор
1 х Фоторезистор (LDR)
1 х Пиезо излъчвател
3 х Потенциометъра 10к ома
10 х Резистора 220 ома
10 х Резистора 10к ома

Цената на комплекта за участниците в уършопа е 89.00 лв и след приключване на събитието всички компоненти остават за вас.

Ателието се води от Симеон Янчев, основател на онлайн магазин robotev.com и лектор по “Електроника за Художници” в Националната Художествена Академия в София. Симеон е автор на превода на книгите „Запознанство с Ардуино“ и „Книжка за програмиране на Ардуино“. Помогнал e за реализацията на редица проекти като Ортомен (отличен с награда за съвременно Българско изкуство от М-Тел за 2009) и Универсална среща 2010 (отличен с първа награда в конкурса за съвременно изкуство на галерия ESSL за 2011).

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