Lazarus
1. Установка библиотеки 5dpo.
Для работы с последовательным портом в Lazarus’е необходимо установить библиотеку 5dpo. Скачать библиотеку можно отсюда http://wiki.lazarus.freepascal.org/5dpo. После распаковки архива появится папка Sdpo. Далее необходимо запустить Lazarus и добавить библиотеку. Для этого в пункте меню Package выберите Open package file (.lpk) и в папке Sdpo найдите файл sdposeriallaz.lpk, нажмите Open. В появившемся окне нажмите кнопку Install (рисунок 1).

На запрос разрешения на пересборку – отвечаем утвердительно. Пересборка займет некоторое время, затем Lazarus перегрузится. В панели компонентов Lazarus появится новая вкладка 5dpo и на ней элемент TSdpoSerial (рисунок 2).

2. Создаем простую программу в Lazarus, которая должна при нажатии на кнопку передовать что-нибудь на последовательный порт.
В меню Fail выбираем “New…” и в открывшемся окне – “Application”. На форме размещаем два компонента: SdpoSerial1 и Button1 (рисунок 3).


В инспекторе объектов (Object Inspector) для объекта SdpoSerial1 устанавливаем параметры, как на рисунке 4. (По умолчанию, последовательный порт Arduino это /dev/ttyACM0, но, возможно, у вас он имеет другое имя). Далее программируем действия наших объектов: дважды щелкаем по кнопке Button1 и в открывшемся редакторе кода пишем SdpoSerial1.Active:=true; (рисунок 5).

Пусть у нас при нажатии кнопки на порт передается "hello". Для объекта SdopSerial1 пишем код как на рисунке 6. Все, маленькая программа готова, компилируем. Осталось добавить скетч на Arduino.

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

Далее запустите прогамму в Lazarus (кнопка Run) и нажмите на кнопку Button1. Откройте консоль и дайте команду cat /dev/ttyACM0, вы увидете подробный побуквенный разбор нашего "hello" (рисунок 8).
