Управление Arduino из Lazarus

Материал из Mageia Russian Community Wiki
Перейти к: навигация, поиск

Установка пакета lazarus-sdpo.

Нам потребуются пакеты lazarus, arduino. Для работы с последовательным портом в Lazarus’е необходимо установить пакет lazarus-sdpo. В панели компонентов Lazarus'а появится новая вкладка 5dpo и на ней элемент TSdpoSerial (рисунок 1).

Sdpo1.png

Создаем простую программу в Lazarus.

Создаем простую программу в Lazarus'е, которая должна при нажатии на кнопку передавать что-нибудь на последовательный порт.

В меню Файл выбираем Создать ... и в открывшемся окне – Приложение. На форме размещаем два компонента: SdpoSerial1 и Button1 (рисунок 2).

Sdpo2.png

В Инспекторе объектов для объекта SdpoSerial1 устанавливаем параметры, как на рисунке 3. (По умолчанию последовательный порт Arduino - это /dev/ttyACM0, но, возможно, у вас он имеет другое имя).

Sdpo3.png

Далее программируем действия наших объектов: дважды щёлкаем по кнопке Button1 и в открывшемся редакторе кода пишем (рисунок 4):

SdpoSerial1.Active:=true;

Sdpo4.png

Теперь выбираем для объекта SdpoSerial1 в События событие OnRxData и щёлкаем на кнопку ... (обведена красным кружком на рисунке 5) - появится заготовка кода.

Sdpo9.png

Пусть у нас при нажатии кнопки на порт передается "hello". Для объекта SdpoSerial1 пишем код как на рисунке 6.

Sdpo5.png

Всё, маленькая программа готова, компилируем. Осталось добавить скетч на Arduino.

Скетч на Arduino.

Мы просто воспользовались одним из предложенных в Arduino примеров, который разбирает то, что было передано на последовательный порт: File -> Examples -> Strings -> CharacterAnalysis. Загрузите этот пример в Arduino. (рисунок 7).

Sdpo6.png

Далее запустите программу в Lazarus (кнопка Запуск) и нажмите на кнопку Button1. Откройте консоль и дайте команду

cat /dev/ttyACM0

Вы увидете подробный побуквенный разбор нашего "hello" (рисунок 8).

Sdpo7.png

Дополнение.

В пакете lazarus-sdpo вы найдёте ещё один пример работы с последовательным портом. Для этого надо скопировать папку /usr/lib{64}/lazarus/components/SdpoSerial/test в домашнюю директорию и открыть в Lazarus'е проект sertest.lpi (рисунок 9).

Sdpo8.png