Arduino:Библиотеки/SerialControl

Материал из Онлайн справочника
Версия от 12:26, 8 июля 2023; EducationBot (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.



Прошивка 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.

То есть, как вы уже наверно заметили, все эти команды имеют похожую структуру:

  1. Первые два символа определяют ID платы Arduino, к которой вы обращаетесь.
  2. Третий и четвертый символы формируют команду (pm – для функции pinMode(); dw – для функции digitalWrite(); aw – для функции analogWrite(); al – удобная функция, позволяющая поменять режим сразу у всех контактов)
  3. Символы с пятого по восьмой формируют первый аргумент
  4. Символы с девятого по двенадцатый формируют второй аргумент
  5. Если аргумент меньше четырех символов, первые позиции заполняются пробелами
  6. В конце получившейся строки ставится точка с запятой («;»)

Известные проблемы

  • Нельзя считывать данные с входных контактов
  • Касаемо работы с модулями XBee. Во-первых, в режиме реального времени способны работать только XBee-модули типа Series 1, потому что сетевой алгоритм модулей типа Series 2 очень сильно замеляет скорость передачи данных. Во-вторых, прошивка не справляется с конфликтами, возникающими при передаче данных, поэтому есть смысл повторять передачу данных через короткие промежутки времени.

Прочее

См.также

Внешние ссылки