Среда разработки Arduino IDE на удивление ставится легко и без проблем в Ubuntu. В Windows тоже проблем не было Arduino Uno, но вот с Arduino Leonardo, на котором построен Romeo V2-All in one Controller я в Windows запарился и если одну доску удалось запустить, то вторую с тот же компьютер уже не получится вставить просто так - только в другой компьютер. Не знаю почему так - но я так и не нашел решения, благо два компьютера были под рукой.
Не советую ставить из репозитория т.к. на момент написания статьи там была версия 1.0.1, а текущая доступная 1.0.4.
Я скопировал этот архив в домашнюю директорию и распаковал:
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: http://www.ros.org/wiki/rosserial_arduino/Tutorials
Если в процессе компиляции у вас возникнет ошибка (У всех на Leonardo она возникнет т.к. связана с тем, что эта плата использует Serial1 для коммуникации через пины 0,1 (RX1,TX1) Arduino):
cannot convert 'Serial_*' to 'HardwareSerial*' in assignment
То во всех файлах где будет такая ошибка замените: