Проверочное задание № 2: Знакомство с микроконтроллерным модулем Arduino Uno и системой визуального программирования FLProg

Данное методическое пособие посвящено изучению основ работы с микроконтроллером Arduino Uno и средой визуального программирования FLProg. В материале подробно описаны этапы создания проектов на языке FBD, настройки функциональных блоков, сборки электрических схем с использованием тактовых кнопок и светодиодов, а также процессы компиляции и загрузки скетчей. Практическая часть включает примеры реализации логических функций и задания для самостоятельной работы.

Цель работы

  • знакомство с микроконтроллерным модулем Arduino Uno;
  • знакомство со средой визуального программирования FLProg;
  • приобретение базовых знаний и навыков создания базовых элементов и функциональных блоков в среде визуального программирования FLProg v6.3.1.

Необходимые детали и компоненты для выполнения проверочного задания

  • микроконтроллерный модуль Arduino Uno;
  • 3 тактовые кнопки;
  • беспаечная макетная плата;
  • провода (джамперы);
  • светодиод;
  • USB-кабель;
  • резисторы на 10 кОм и 220 Ом.

Пример

Создать в среде визуального проектирования FLProg схему, реализующую функцию алгебры логики вида:

.

Выполнение примера

Используя функции самого низкого уровня, необходимо создать т.н. базовые блоки, которые затем послужат функциональными блоками более высокого уровня.

Для реализации логической схемы, понадобятся логические элементы, реализующие: операцию НЕ (NOT); операцию И (AND) над двумя входными переменными.

Блоки, выполняющие указанные логические операции, необходимо реализовать в виде функциональных блоков в среде визуального проектирования FLProg. Затем при помощи указанных функциональных блоков собрать логическую схему. Проверить работоспособность схемы, используя микроконтроллерный модуль Arduino Uno, тактовые кнопки, светодиод.

2.1 Запуск FLProg и создание нового проекта

После того, как плата Arduino Uno подключена к компьютеру посредством USB-кабеля и подано питание, можно запустить пакет FLProg на персональном компьютере (программа бесплатная, ссылка на установку ПО: https://flprog.ru/downloads/distrutives/actualversion/versija-programmy-flprog-3-0-3/).

Рисунок 1 Создание нового проекта

В окне начальных настроек проекта выбираем язык программирования FBD, контроллер — Arduino Uno (FBD (англ. Function Block Diagram) — графический язык программирования стандарта МЭК 61131-3; предназначен для программирования логических контроллеров).

Рисунок 2 Вид окна программы в режиме языка программирования FBD

Сохраним проект: в диалоговом режиме создадим новую папку со своим именем (например «IVANOV»), в этой папке создадим папку «Lab01», в которую сохраним новый проект под именем Lab01.flp.

2.2 Создание функциональных блоков

Для выполнения лабораторной работы нам понадобятся логические элементы НЕ (NOT) [или инверсия(INV)] и И (AND). В FLProg имеется встроенная библиотека блоков (в правой части окна программы), где во вкладке «Базовые элементы» можно выбрать блоки, реализующие базовые логические операции.

Таким образом, в первую очередь необходимо выбрать функциональные блоки, реализующие необходимые нам логические операции И (AND).

Рисунок 3 Библиотека блока «Базовые элементы»

Выберите логический элемент AND и переместите его на рабочую область Платы 1. Скопируйте элемент AND (так, чтобы получилось два элемента).

В окне Tags выберите Входы→ Добавить вход.

Рисунок 4 Создание входа A_in

Настройка входов

В открывшейся вкладке Параметры задайте входу имя A-in, тип входа – Цифровой, номер контакта – 2. Кроме того, всегда рекомендуется ставить галочку «Защита от дребезга». В нижней левой части окна настроек имеется возможность, кликнув мышью на вкладку Информация, ознакомиться с принципом и режимами работы интересующего нас блока. Рекомендуем при использовании в проектах того или иного элемента начинать именно с ознакомления с информацией о нем.

Во вкладке Tags выберите созданный нами вход A_in и перенесите его на рабочую область Платы 1.

Рисунок 5 Соединение блоков

Завершение сборки логической схемы

Аналогично создайте второй элемент управления (для второго входа первого элемента AND) и присвойте ему имя B_in (номер контакта 4). Соедините выход первого элемента AND с первым входом второго элемента AND. Создайте третий элемент управления (для второго входа второго элемента AND) и присвойте ему имя С_in (номер контакта 6). Поскольку переменная входит в логическую функцию с инверсией, элемент С_in необходимо инвертировать. Для этого наведите курсор на выход данного элемента и правой кнопкой мыши произведите инверсию. В результате выход должен инвертироваться (элемент с кружочком на выходе).

Аналогично процессу создания входов, создайте выход для второго элемента AND и присвойте ему имя AND3_out (номер контакта 3).

Рисунок 6 создание выхода AND3_out

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

Рисунок 7 Блок-схема, реализующая логическую функцию

2.3 Экспериментальная проверка

Соберем схему для экспериментальной проверки созданного нами проекта. Для этого нам понадобятся (рисунок 8):

  • а) микроконтроллерный модуль Arduino Uno;
  • б) 3 тактовые кнопки;
  • в) беспаечная макетная плата;
  • г) провода (джамперы);
  • д) светодиод;
  • е) USB-кабель;
  • ж) резисторы на 10 кОм и 220 Ом.

Рисунок 8 Детали и компоненты для сборки электрической схемы проекта

С помощью указанных компонентов соберите схему, представленную на рисунке 9.

Рисунок 9 Схема проекта

Настройка подтягивающих резисторов

Следует отметить, что при подключении тактовых кнопок можно не соединять внешние резисторы на 10 кОм, вместо этого можно программно подключить к цифровым пинам встроенные в плату резисторы номиналом 20 кОм. В среде визуального программирования FLProg это производится в настройках соответствующего входа проставлением галочки «Включить подтягивающий резистор». Однако работа кнопки при этом будет инвертирована и это надо учитывать в проектах.

Рисунок 10 Программное включение подтягивающего резистора

Компиляция и загрузка

После завершения работы над проектом производится его компиляция (трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком к машинному коду).

Для этого сначала проект проверяется на наличие ошибок (рисунок 11).

Рисунок 11 Проверка проекта на наличие ошибок

Затем производится его компиляция.

Рисунок 12 Компиляция проекта

После компиляции автоматически откроется программа «Arduino IDE 1.8.11» с загруженным скетчем (программой) вашего проекта. В программе «Arduino IDE 1.8.11» вам необходимо будет указать номер COM-порта, к которому подключен ваш контроллер, выбрать его тип, и произвести загрузку скетча в микроконтроллерный модуль. В случае, если COM-порт не определяется, необходимо обновить драйверы посредством Диспетчера устройств.

Рисунок 13 Загрузка программы (скетча) в микроконтроллерный модуль

Таблица истинности

Экспериментально составим и заполним таблицу истинности для разработанных функциональных блоков, реализующих логическую функцию. Количество входных переменных n = 3, таким образом, строк будет — 2^3 = 8. Количество выходных переменных m = 1, т.е. количество столбцов — m+n = 1+3 = 4.

x2 (C_in) x1 (B_in) x0 (A_in) z (AND3_out)
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 0

Экспериментальное заполнение таблицы истинности: Например, значение переменной x0 = 0 означает отсутствие сигнала на входе A_in (кнопка не нажата). При принятии переменной истинного значения x0 = 1, необходимо подать сигнал (нажать кнопку A_in). Итак, в первой строке таблицы истинности все переменные ложны (равны нулю), соответственно все три тактовые кнопки должны быть разомкнуты, при этом, в рассматриваемом примере, светодиод AND3_out не горит, поэтому в первой строке таблицы истинности функции z присваивается значение 0. После экспериментального заполнения таблицы истинности, полученный набор значений функции z (8-мизначный двоичный код) отправляется обучающимся для проверки (в нашем случае сгенерированный для проверки код: 00010000.

2.4 Задание на самостоятельную работу

1. Создать в среде визуального проектирования FLProg схему, представленную на рисунке 14, реализующую функцию алгебры логики вида:

.

Рисунок 14 Структурная схема логического устройства

2. Экспериментально составить и заполнить таблицу истинности для разработанных функциональных блоков, реализующих заданную логическую функцию.

x2 (C_in) x1 (B_in) x0 (A_in) z (AND3_out)
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1

3. После экспериментального заполнения таблицы истинности, полученный набор значений функции z (8-мизначный двоичный код) отправить для проверки.

Оцените статью
Сессия под ключ дистанционно
Добавить комментарий

Заявка на расчет