Работа с Arduino

На плате размещен микроконтроллер ATMega 2560 с обвязкой, индентичной таковой на плате Arduino Mega. Контроллер поставляется с прошитым бутлоадером Arduino. Таким образом, микроконтроллер полностью готов к запуску скетчей Arduino IDE и работе со стандартными шилдами для Ардуино.

Для работы с МК необходимо скачать и запустить Arduino IDE с сайта arduino.cc. В настройках IDE выбрать плату Arduino Mega 2560.

Библиотека Arduino ros_lib

Для работы с Arduino через ROS необходимо установить библиотеку ros_lib <ros.h>.

Скачать библиотеку можно здесь: https://yadi.sk/d/BcI1126boKkf-A

Инструкция по установке библиотек для Arduino IDE https://www.arduino.cc/en/guide/libraries

Но если вы используете кастомные сообщения или у вас появляются ошибки при сборке скетчей, вам необходимо "пересобрать" библиотеку ros_lib самостоятельно с помощью команды (выполнив ее на роботе)

rosrun rosserial_arduino make_libraries.py .

Вызванная утилита rosserial_arduino соберет новую библиотеку на основе настроек ROS вашего робота и положит ее в корневую директорию пользователя /home/pi/. Дальше вам надо переписать ros_lib с робота на ваш компьютер и поместить его в директорию библиотек Arduino в соответствии с инструкцией по установке библиотек для Arduino IDE.

Взаимодействие с ROS

Arduino Mega подключена к Raspberry через порт Serial1. Со стороны ROS запущен сервис rosserial который организует взаимодействие МК и ROS.

Для подключения к ROS со стороны Arduino необходимо инициализировать библиотеку ros_lib <ros.h> отвечающую за коммуникацию между Arduino и ROS, указав параметры Serial1 и скорость 115200, как показано ниже.

#include <ros.h>
class NewHardware : public ArduinoHardware
{
public:
NewHardware():ArduinoHardware(&Serial1, 115200){};
};
ros::NodeHandle_<NewHardware> nh;

Примеры можно посмотреть в официальной документации rosserial http://wiki.ros.org/rosserial_arduino/Tutorials

Дополнительные возможности Arduino

В передней части системной платы робота расположены две кнопки, подключенные к ножкам D24 и D23 МК Arduino и два переключателя, подключенные соответственно к D22 и D25. При нажатии кнопки или переключателя на пине Arduino будет сингал HIGH Для чтения значения необходимо использовать Arduino функцию digitalRead(pin)

С левой стороны системной платы находятся пины D44 D45 D46, которые можно использовать для подключения сервомашинок.

ВНИМАНИЕ: на сервомашинки подается напряжение 5В от отдельного источника питания! Ни в коем случае нельзя соединять пины питания сервомашинок с пинами питания, выведенными на колодку Ардуино.

Перед лидаром расположены 4 светодиода, подключенные к пинам D26, D27, D28, D29.

Работа со светодиодной лентой

Под платой расположено 24 RGB светодиода модели WS2812. Для работы со светодиодной лентой используйте библиотеку FastLED https://github.com/FastLED/FastLED Управляющий пин для ленты D30.