Среда разработки Arduino IDE на удивление ставится легко и без проблем в Ubuntu. В Windows тоже проблем не было Arduino Uno, но вот с Arduino Leonardo, на котором построен я в Windows запарился и если одну доску удалось запустить, то вторую с тот же компьютер уже не получится вставить просто так - только в другой компьютер. Не знаю почему так - но я так и не нашел решения, благо два компьютера были под рукой.
Не советую ставить из репозитория т.к. на момент написания статьи там была версия 1.0.1, а текущая доступная 1.0.4.
- Ставим библиотеки для IDE и JAVA:
sudo apt-get install gcc-avr avr-libc openjdk-6-jre
 - Качаем последнюю версию Arduino IDE с официального сайта:
 - Я скопировал этот архив в домашнюю директорию и распаковал:
 
tar -xzvf arduino-1.0.4-linux64.tgz
Исправим интерфейс Arduino IDE на классический, чтобы убрать баги в интерфейсе и тормоза:
cd ~/arduino-1.0.4/ gedit arduino # Комментируем последнюю строку: #java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel processing.app.Base # Меняем на эту: java processing.app.Base # Сохраняем, выходим.
Вставляем Arduino Leonardo (или вашу плату) в USB и смотрим на каком порту установилась плата:
dmesg | grep cdc_acm # У меня этот запрос выдал: [94918.887392] cdc_acm 2-1:1.0: ttyACM0: USB ACM device [94926.908525] cdc_acm 2-1:1.0: This device cannot do calls on its own. It is not a modem. [94926.908575] cdc_acm 2-1:1.0: ttyACM0: USB ACM device # Это означает, что Arduino установился в ttyACM0 # Даем полные права на этот порт нашему пользователю: sudo chmod a+rw /dev/ttyACM0 # Включаем в группу, которая имеет доступ к порту sudo usermod -aG dialout <username>
Перезагружаем компьютер, т.к. настройки группы вступают только после перезагрузки!
# Запускаем arduino: cd ~/arduino-1.0.4/ ./arduino # Обратите внимание на точку вначале - её тоже надо писать
В Arduino IDE в настркойках палты указываем нашу плату (Leonardo) и наш порт: ttyACM0.
Если вдруг настройка порта будет серая - то попробуйте запустить Arduino IDE от администратора:
sudo ./arduino
Дальше рекомендую пройти курс по rosserial_arduino: 
Если в процессе компиляции у вас возникнет ошибка (У всех на Leonardo она возникнет т.к. связана с тем, что эта плата использует Serial1 для коммуникации через пины 0,1 (RX1,TX1) Arduino):
cannot convert 'Serial_*' to 'HardwareSerial*' in assignment
То во всех файлах где будет такая ошибка замените:
_serial = &Serial;
на
_serial = &Serial1;


 Апрель 23rd, 2013 
 admin