Arduino:Библиотеки/SerialControl
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Прошивка SerialControl[1]
SerialControl – это прошивка для платформы Arduino с открытым кодом (GPL2), позволяющая удаленно управлять платами Arduino через последовательный интерфейс. Протокол, реализованный в этой прошивке, также можно использовать для одноранговых сетей XBee. Адресация к модулям Arduino осуществляется при помощи ID (идентификаторов). Прошивка содержит в себе несколько IO-функций языка Arduino, которые «обернуты» в удобные команды (вроде «00dw0013HIGH» или «00dw0013 LOW»), позволяющие управлять выходными контактами на платах Arduino.
Загрузка
Скачать прошивку можно здесь. Кликните по зеленой кнопке «Clone or download», а затем на «Download ZIP».
Состав прошивки
Установка
Чтобы установить прошивку, просто скопируйте распакованную папку «SerialControl-master» в папку «libraries», которая находится по маршруту «Документы/Arduino/libraries». Теперь откройте IDE Arduino и загрузите нужный скетч. Появится окно «Moving», спрашивающее, нужно ли поместить открываемый скетч в отдельную папку – нажмите «OK». Поменяйте в скетче, если нужно, переменную ownID. Эта переменная должна быть уникальной для всех Arduino, к которым вы будете обращаться. Теперь прошивку можно компилировать и передавать на Arduino. Имейте в виду, что SerialControl для работы требуется библиотека String.
Использование
Теперь прошивкой можно пользоваться, передавая команды по последовательному интерфейсу (либо через провод, либо по XBee-сети). Для первых экспериментов можно использовать терминал, встроенный в IDE Arduino.
- 00dw0013HIGH – команда, включающая светодиод на 13-ом контакте Arduino с идентификатором (ID) «0».
- 00dw0013 LOW – команда, выключающая этот светодиод.
- 00al LOW – команда, переключающая все контакты в состояние LOW.
То есть, как вы уже наверно заметили, все эти команды имеют похожую структуру:
- Первые два символа определяют ID платы Arduino, к которой вы обращаетесь.
- Третий и четвертый символы формируют команду (pm – для функции pinMode(); dw – для функции digitalWrite(); aw – для функции analogWrite(); al – удобная функция, позволяющая поменять режим сразу у всех контактов)
- Символы с пятого по восьмой формируют первый аргумент
- Символы с девятого по двенадцатый формируют второй аргумент
- Если аргумент меньше четырех символов, первые позиции заполняются пробелами
- В конце получившейся строки ставится точка с запятой («;»)
Известные проблемы
- Нельзя считывать данные с входных контактов
- Касаемо работы с модулями XBee. Во-первых, в режиме реального времени способны работать только XBee-модули типа Series 1, потому что сетевой алгоритм модулей типа Series 2 очень сильно замеляет скорость передачи данных. Во-вторых, прошивка не справляется с конфликтами, возникающими при передаче данных, поэтому есть смысл повторять передачу данных через короткие промежутки времени.