Китайский SDR + Arduino. Часть 3 — учимся командовать.

В первой части мы помечтали, чем может быть полезна 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 и выводит на форму значение, которое мы отправили.

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