# Практические задания

1. "Соберите" библиотеку `ros_lib` на своем роботе и перепишите ее на компьютер
2. Загрузите и запустите на Arduino примеры **Издателя** и **Подписчика** из этого урока.

Напишите различные программы для Arduino микроконтроллера:

1. Скетч, создающий Подписчика (Subscriber) на топик ***/led\_control*** c типом сообщения std\_msgs/Int32. При получении в данный топик различных значений должна выполняться следующая логика:

* При получении значения "0" - все светодиоды D26 - D29 - не горят
* При получении значения "1" - все светодиоды D26 - D29 -  горят
* При получении значения "26" - "29" - загорается светодиод, в зависимости от введённого номера.

2\. Скетч, создающий Издателя (Publisher) для топика ***/button\_cmd*** с типом сообщения std\_msgs/Int31. При нажатия на кнопки D22/D25 должна выполняться следующая логика:

* Когда обе кнопки отжаты - в топик ***/led\_control*** (из прошлой программы) публикуется значение "0" - все светодиоды D26-D29 не горят
* Когда нажата кнопка D22 -  в топик ***/led\_control*** публикуется значение "15" - все светодиоды D26-D29 мигают одновременно с частотой 4 Гц
* Когда нажата кнопка D25 - в топик ***/led\_control*** публикуется значение "69" - все светодиоды D26-D29 мигают попарно ( D26 и D28 / D27 и D29) с частотой 10 Гц
* Когда обе кнопки нажаты - в топик ***/led\_control*** публикуется значение "1" - все светодиоды D26-D29 - горят

Продемонстрируйте работу программ при помощи утилит `rostopic`

## Дополнительные материалы

1. Библиотека [rosserial](http://wiki.ros.org/rosserial)
2. Библиотека [rosserial\_arduino](http://wiki.ros.org/rosserial_arduino)
3. Примеры использования [rosserial\_arduino](http://wiki.ros.org/rosserial_arduino/Tutorials)
