Програмна інженерія в системах управління. Лабораторний практикум. Автор і лектор: Олександр Пупена
<- до лаборних робіт | на основну сторінку курсу |
---|---|
<-1 частина |
Рекомендується попередньо ознайомитися з матеріалами лекції по RPI за посиланням.
Перелік апаратних засобів, необхідних для лабораторної роботи.
Найменування | Кількість | Примітка |
---|---|---|
Raspberry PI | 1 | У комплекті з блоком живлення та картою пам'яті |
Макетна плата 170 | 1 | або аналогічна |
Ультразвуковий датчик відстані HC-SR04 | 1 | |
Датчик температури на 1-Wire DS18B20 | 1 | |
Світлодіод | 1 | |
Резистор 1 кОм | 1 | |
Резистор 10 кОм | 1 | |
Провід dupont (мама-тато) | 6 | бажано 2 чорні, червоний, зелений і білий |
Завантажте на ПК безкоштовну бета-версію середовища проектування Fritzing за даним посиланням або офіційну платну версію з офіційного сайту
Завантажте на ПК бібліотеку RPI3 з іменем Raspberry Pi 3_3.fzpz
для Fritzing за [посиалнням](https://fritzing.org/media/fritzing-repo/projects/r/raspberry-pi-3/fritzing/Raspberry Pi 3_3.fzpz). Обговорення бібліотеки на форумі доступне за посиланням
Розпакуйте архів та запустіть Fritzing.exe
. Імпортуйте файл з іменем Raspberry Pi 3_3.fzpz
з панелі Parts
, як це показано на рисунку
Через меню Edit->Prefernces
Ви можете вибрати найзручнішу для Вас мову інтерфейсу
Активуйте режим відображення макетної плати через менюView->Show BreadBoard
, або натиснувши відповідну вкладку. На панелі Parts перейдіть в розділ Mine, перенесіть туди RPI3
У розділі CORE
панелі інструментів Parts
виберіть два елементи:
У налаштуваннях резистора вкажіть опір 1 Ком (Resistance = 1kΩ).
Перейдіть на вкладку Shematic View->Show Schematic
, або натиснувши відповідну вкладку. Розмістіть на схемі елементи, щоб схема була більш читабельною, використовуючи команди з контекстного меню Flip vertical
, Rotate
і т.п. З'єднайте елементи на схемі, як показано на рисунку.
У налаштуванні провідників виберіть колір, для підключення GPIO4
до LED1
- червоний, для підключення R1
до GND
- чорний.
Перейдіть на режим відображення макетної плати. З'єднайте контакти, які обозначені пунктиром. Змініть кольори провідників.
Використовуючи Edit -> Add Note
добавте коментар до схеми Схема Прізвище Ім''я
, де вкажіть своє прізвище.
Збережіть файл проекту з іменем Diod_Name
, де замість Name вкажіть своє прізвище латинськими літерами.
У папці проекту Git, яка була створена для лабораторної роботи 3, що має зв'язок з GitHub (наприклад C:\Users\username\.node-red\projects\project1
) , створіть папку Lab4
а в ній папку Schemas
.
Експортуйте у папку Lab4
кілька файлів з проекту:
- перемкніть на панель макетної плати
Breadboard
та експортуйте список деталейFile -> Export -> List of Parts
- та експортуйте схему у вигляді PNG
File -> Export -> as Image -> PNG...
- перемкніть на панель схеми
Schematic
та експортуйте схему у вигляді PNGFile -> Export -> as Image -> PNG...
Вимкніть Raspberry PI, якщо він включений.
Подивіться уважно на реальне розміщення контактів GPIO:
Попросіть у викладача необхідні елементи, та підключіть їх, відповідно до розробленої схеми. Уважно перевірте підключення.
Покличте викладача, щоб він перевірив схему. Якщо схема одобрена, перейдіть до наступного пункту.
Увімкніть RPI. За допомогою VNC зайдіть на робочий стіл RPI.
Зайдіть в меню Налаштування -> Raspberry Pi Configuration
і на вкладці Interfaces
активуйте Remote GPIO.
Для запуску Node-RED на RPI3 використовується команда у вікні терміналу
node-red-start
Якщо закрити вікно терміналу (або натиснути Ctrl + C), то Node-RED все одно продовжить працювати, але в фоновому режимі. Щоб зупинити Node-RED, запустіть команду
node-red-stop
Також Node-RED припинить свою роботу після перезавантаження RPI3.
Щоб відкрити вікно редактора в браузері необхідно прописати IP-адресу та номер порту 127.0.0.1:1880.
Автозапуск Node-RED краще робити за допомогою вбудованого демона systemd. Попередньо встановлена версія робить це за допомогою файлу «nodered.service», а також за допомогою скриптів запуску і зупинки. Їх можна встановити за допомогою наступних команд:
sudo wget https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/nodered.service -O /lib/systemd/system/nodered.service
sudo wget https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/node-red-start -O /usr/bin/node-red-start
sudo wget https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/node-red-stop -O /usr/bin/node-red-stop
sudo chmod +x /usr/bin/node-red-st*
sudo systemctl daemon-reload
Ці команди запускаються користувачем root
(sudo
). Вони завантажують три файли , роблять два скрипта виконуваними, а потім перезавантажують демона systemd.
Далі, щоб налаштувати автозапуск Node-RED при кожному завантаженні виконайте команду:
sudo systemctl enable nodered.service
Відключити автозапуск можна за допомогою такої команди:
sudo systemctl disable nodered.service
Перезавантажте RPI3 і переконайтесь що Node-RED запускається автоматично при старті системи. Якщо ні повторіть попередні пункти.
Зайдіть на сторінку програмування Node-RED на RPI3. Створіть програму для керування діодом.
Перевірте роботу програми натискаючи Inject TRUE
а потім Inject FALSE
Встановіть бібліотеку node-red-dashboard
, якщо вона ще не була встановлена.
Самостійно реалізуйте керування кнопками вкл/откл з графічного Веб-інтерфейсу.
Зробіть копію екрану програми. Використовуючи графічний редактор виріжіть робочу частину програми і збережіть в форматі PNG на ПК в папці проектуLab4
.
Зробіть експорт потоку як форматований JSON та завантажте через кнопку Download. Збережіть в папці проекту Lab4
з назвою diod.json
.
Завантажте та встановіть MarkDown редактор Typora або аналогічний.
-
завантажте редактор (Typora для Windows)
-
встановіть редактор
У папці проекту Lab4
на ПК створіть файл з назвою README.MD. Зміст файлів, які так називаються автоматично відображаються в GitHub. Цей файл буде звітом з лабораторної роботи.
Повторіть матеріал лекції по MarkDown.
Відкрийте приклад оформлення лабораторної роботи та зробіть аналогічне оформлення для зробленої частини.
Зробіть коміт та завантажте (push) проект на GitHub.
Зайдіть на GitHub в репозиторій проекту. Зайдіть в папку Lab4, там повинен відображатися Ваш звіт. Перевірте, що він дійсно відображається коректно.
За необхідності зробіть виправлення та повторіть коміт та завантаження до GitHub.
Нижче наводяться кроки для підключення ультразвукового датчика відстані HC-SR04, та його використання в Node-RED.
Вимкніть живлення Raspberry PI.
Зберіть нову схему, як показано на рисунку. Уважно перевірте правильність.
Зверніть особливу увагу на найменування контактів підключення ультразвукового датчика відстані. На монтажній схемі він зображений повернуто до плати, по факту його зручніше розміщувати повернуто від плати.
Контакти датчика відстані підключені до контактів RPI:
RPI | Датчики HC-SR04 |
---|---|
+5V (pin 2) | Vcc |
GPIO27 (pin 13) | Trig |
GPIO17 (pin 11) | Echo |
Gnd (pin 9) | Gnd |
Попросіть викладача перевірити схему і у випадку підтвердження правильності, переходьте до виконання наступного пункту.
У node-RED для RPI встановіть бібліотеку node-red для роботи з ультразвуковим датчиком: node-red-node-pisrf
Видаліть старий фрагмент програми керування світлодіодом.
Використовуючи вузол rpi srf
з розділу інструментів Raspberry PI
реалізуйте програму, показану на рисунку:
Зробіть розгортання проекту та первірте роботу.
Активувавши вузол Debug можна побачити данні які йдуть від датчика відстані.
Виведіть значення на Веб-інтерфейс, використовуючи dashboard
. Проаналізуйте в яких одиницях показує значення відстані.
Створіть програму, яка показана на рисунку.
Ця програма керує яскравістю свічення світлодіоду в залежності від відстані до об'єкту. Від 1 метру тьмяне світіння, чим ближче, тим яскравіше.
Зробіть розгортання, підводячи якийсь предмет до датчика наближення перевірте роботу програми.
-
Зробіть копію екрану програми. Використовуючи графічний редактор виріжіть робочу частину програми і збережіть в форматі PNG на ПК в папці проекту
Lab4
під назвоюUsonic.png
. -
Зробіть експорт потоку як форматований JSON та завантажте через кнопку Download. Збережіть в папці проекту
Lab4
з назвоюUsonic.json
. -
Зробіть оформлення у файлі README.md, який Ви редагували до цього.
-
Зробіть коміт та завантажте (push) проект на GitHub.
-
Зайдіть на GitHub в репозиторій проекту. Зайдіть в папку Lab4, там повинен відображатися Ваш змінений звіт. Перевірте, що він дійсно відображається коректно.
-
За необхідності зробіть виправлення та повторіть коміт та завантаження до GitHub.
- Видаліть стару програму на RPI.
- Вимкніть живлення Raspberry PI.
- Відключіть усі проводи з попередньої частини роботи.
- Увімкніть живлення на RPI.
- Зайдіть через VNC на робочий стіл RPI та через налаштування активуйте 1-Wire інтерфейс.
- Вимкніть живлення Raspberry PI.
Підключіть датчик температури відповідно до вказаної схеми.
Зверніть увагу, що використовується живлення 3,3 В а резистор номіналом 10 кОм.
- Увімкніть RPI.
- Інсталюйте в node-red потрібну бібліотеку:
node-red-contrib-sensor-ds18b20
Ця бібліотека спрощує роботу з датчиками температуриds18b20
- перезавантажте систему
- Створіть програму, наведену на рисунку. Ідентифікатор датчика температури вибирається зі списку (повинен знайтися автоматично) .
- Зробіть розгортання та перевірте її роботу.
Оформіть дану частину аналогічно як в п.2.23.