Закрыть
Введение в протокол Firmata

Введение в протокол Firmata

Firmata — это базовый протокол, который предоставляет возможность для коммуникации между микроконтроллером и ПО, работающим на компьютере. Любое программное обеспечение на любом компьютере, которое совместимо с Serial-соединением может обмениваться данными с микроконтроллером, используя Firmata. Firmata дает полный доступ к Arduino прямо из ПО и исключает процессы модификации и загрузки скетчей Arduino

Используя протокол Firmata, разработчик может загрузить скетч, который поддерживает протокол с клиентом Arduino. После этого, появляется возможность писать собственное ПО на управляющем компьютере и выполнять сложные задачи. Это ПО передает команды через последовательный порт в плату Arduino, по протоколу Firmata, что позволяет изменять логику работы  программы на управляющем компьютере, не сбрасывая Arduino.

Более подробно узнать о протоколе Firmata и его последней версии и скачать тестовое ПО можно на официальном сайте.

 

Загрузка скетча Firmata в плату Arduino

Лучшим способом начать тестировать протокол Firmata является загрузка стандартной программы Firmata в плату Arduino и использование тестового ПО на управляющем компьютере.

Реализация протокола Firmata требует последней версии прошивки Firmata и вам не нужно беспокоится по поводу ее написания. Arduino IDE уже имеет стандартную версию прошивки Firmata.

Для загрузки программы в плату Arduino:

  • В Arduino IDE открываем меню ФайлОбразцыFirmataStandardFirmata

Примеры протокола Firmata в Arduino IDE

  • Компилируем и загружаем его в свою плату Arduino

 

Тестирование протокола Firmata

Существует множество способов для коммуникации платы Arduino с управляющим компьютером, используя протокол Firmata. Например, можно написать собственную программу на Python, используя библиотеку, поддерживающую этот протокол или же воспользоваться уже готовой тестовой программой. Пока пойдем самым простым путем: используем готовое тестовое ПО, загрузив его с официального сайта Firmata.

На главной страничке сайта Firmata находим раздел Firmata Test Program и загружаем инструмент под названием firmata_test для своей операционной системы.

Подключаем свою плату Arduino и запускаем приложение firmata_test. В открывшемся окошке в меню Port выбираем тот порт, к которому подключена Arduino.

Выбор порта в программе firmata_test

Как только вы выберете соответствующий порт Arduino, на экране появится окошко со множеством кнопок и меню выбора с названиями пинов.

Я использую Arduino Mega 2560, поэтому доступных пинов у меня достаточно много. Это цифровые пины с Pin 2 по Pin 53 и аналоговые пины с Pin 54 по Pin 69.

Установка пина в программе firmata_test

В первом столбце указан номер пина вашей платы Arduino, во втором столбце напротив названия каждого пина можно выбрать режим его работы: Input, Output, Analog, PWM, Servo (доступный режим зависит от конкретного вывода). В третьей колонке можно задать состояние этого пина.

Режимы пинов firmata_test

Для проверки найдем пин под номером 13 (к нему подключен встроенный в плату светодиод) и зададим ему состояние High. Светодиод должен загореться. Теперь вернув состояние этого пина в Low можно вновь выключить светодиод. Аналогично можно изменять состояние любых пинов.

Итак, нам удалось изменять состояние любого пина в реальном времени, используя эту простенькую тестовую программу. В реальных приложениях нам необходимо использовать методы Firmata в собственном коде, который в дополнение к изменению состояния выводов также включает некоторую логику и алгоритмы, взаимодействие с другими компонентами и так далее. Я собираюсь использовать язык программирования Python для этих приложений. Но это будет другая история.

Следите за новостями. Продолжение уже скоро!

[add_ratings]

Оставить ответ

Ваш email не будет опубликован.Обязательны поля помечены *