В первой части мы пофантазировали, чем может быть полезна Arduino китайскому SDR приемнику.

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

В этой, третьей части, мы научимся правильно отдавать команды.

Опытный образец, который мы будем разбирать выглядит вот так. 

 

Для реализации примера, я не буду использовать какие-либо коммерческие инструменты. Весь инструментарий доступен для скачивания и 

использования совершенно бесплатно.  Так как многие в школах изучали язык программирования Pascal, а те кто не застал изучение информатики в школе, наверняка сами в свое время на нем программировали. Поэтому мы отталкиваемся от того, что с Pascal-ем у нас знакомо большинство и понять смысл нескольких строк кода все смогут.

В настоящее время живет и развивается диалект выросший из Borland Pascal, более известного как Turbo Pascal, и называется он Free Pascal. Достоинством является его кросс-платформеность (Windows, Linux, Mac, Android и т.д.) - www.freepascal.org. Но писать в текстовом интерфейсе не всегда удобно, да и мир не стоит на месте, поэтому под этот язык программирования энтузиастами разработана графическая среда разработки - LAZARUS, которая так-же позволяет разрабатывать приложения под различные платформы. Вот на ней то мы и будем строить свой интерфейс. А уж на какой операционной системе вы будете его эксплуатировать, уже ваше личное дело :) .

Для работы с последовательным портом, мы воспользуемся бесплатным модулем 5DPO. Его необходимо будет скачать и добавить к установленной среде LAZARUS. Накидываем на нашу форму кнопки и бегунки. У меня получилось как-то вот так.

 

Теперь беремся за программирование.

ВНИМАНИЕ !!! Предложенный здесь вариант не является догмой и приведен в ознакомительных целях. Если у вас, в отличии от автора, руки растут из нужного места, вы можете запрограммировать любой функционал, который посчитаете нужным.

Так как при запуске программы, мы еще не знаем, на каком порту у нас подключена наша плата Arduino, то я решил, что его можно будет выбрать из списка, внизу формы, и нажать кнопочку "Соединить". После этого все будет готово для отправки команд в нужный порт ввода-вывода. Код этой функциональности довольно таки прост.

 

 

После того, как у нас установлено соединение между нашей программой и Arduino, можно начинать отдавать ей команды.

 

 

Это пример "переключателя" для аттенюатора. Команда для Arduino отправляется с помощью метода - SdpoSerial1.WriteData(). Соответственно тут мы анализируем текущее состояние аттенюатора и отправляем нужную нам команду.

 

 

Еще они вариант подачи команды на включение ДПФ на 7 МГц. Отправляем команду Arduino, а на форме ставим текстовую отметку напротив нажатой нами кнопки, остальные отметки убираем, чтобы не путаться.

 

 

Ну и последняя команда, это вращение сервопривода. Как только у нас изменяется положение указателя на линейке, мы тут-же отправляем соответствующую команду на Arduino и выводит на форму значение, которое мы отправили.

 

Как видите, все просто. Исходный текст программы можно скачать ОТСЮДА.

Добавить комментарий

Защитный код
Обновить