Частина 2.
Дана стаття як і більшість статей на «Плетиві» - не візія, не концепція, не філософська мета, а опис цілком практичного власного досвіду.
Ціль даної статті: допомогти початківцям купити і зібрати комплект обладнання (контролер + світлодіодна панель), встановити на комп'ютер програмне забезпечення, відкрити проєкт-шаблон, змінити код-приклад, скомпілювати код, залити все, що вийшло в контролер, порадіти )
Особисто я купую обладнання в Китаї, так зазвичай дешевше. Посилка з Китаю, зазвичай, приходить за три-чотири тижня. Якщо не хочеться чекати, все це є в Україні. Можна довго розписувати тонкощі купівель в Китаї та плутати недосвідчених. Тому дам посилання на готові сторінки на aliexpress, знімаючи з себе відповідальність. Я колись там купував, все було добре. Якщо щось прийде несправне або не прийде взагалі – напишіть мені будь ласка на Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її. , позабираю посилання. Я не отримую жодного центу з купівель за цими посиланнями. Вмієте шукати і обирати самі — краще так і зробіть.
Що треба купити?
1. Контролер NodeMCU
Наприклад, тут:
https://www.aliexpress.com/item/32665100123.html
Серед запропонованих пристроїв раджу вибрати таку версію: V3 Nodemcu-CH340
Чіп CH340 служить мостом між мікроконтроллером і USB-портом комп'ютера, що дозволяє завантажити прошивку в плату, а також передавати між собою дані. Ми далі будемо встановлювати драйвер саме для CH340.
Ціна контролера приблизно 70 грн.
2. Світлодіодний модуль MAX7219
Наприклад, тут:
https://www.aliexpress.com/item/32789160918.html
У цього продавця доступні модулі з світлодіодами зеленого і червоного кольору. Мені більше подобається спокійний зелений, а ви можете обрати модуль, який більше подобається вам. Необхідні для підключення проводи йдуть в комплекті.
Ціна приблизно 160 грн.
Все, купувати обладнання більше не треба.
Далі — виконуємо послідовно дану інструкцію і, може, все вийде.
— З’єднуємо контролер і світлодіодну панель згідно схеми проводами з комплекту світлодіодної панелі:
13 (D7) -> DIN
14 (D5) -> CLK
18 (D8) -> CS
+3,3 В або +5В -> VCC
G (земля) -> GND
— Скачуємо і встановлюємо драйвер для чіпа CH340G, що забезпечує зв’язок контролера з комп’ютером (для Windows).
— Після встановлення драйверу підключаємо NodeMCU до комп’ютера за допомогою кабеля для зарядки телефона з роз’ємом microUSB. Це дуже популярний кабель, сподіваюсь, знайдеться в господарстві, щоб не купувати.
— Після підключення контролера до комп’ютера треба знайти CH340G в списку пристроїв, що Windows визначила для NodeMCU (в прикладі це COM3):
Якщо при підключеному контролері ви бачите, що серед портів з’явився будь-який порт на CH340, то все коректно встановлено. На даному етапі можна відключити контролер від комп’ютера.
— Скачуємо Visual Studio Code з офіційного сайту і встановлюємо.
Для Windows 10 та Windows 11 скачуйте останню версію з сайту. Якщо у вас на комп’ютері встановлено версії Windows нижче 10, вам треба скачати більш стару версії Visual Studio code. Цитата з офіційного сайту: «VS Code will no longer provide product updates or security fixes on old Windows versions. VS Code version 1.70.3 is the last available release for Windows 7 users and version 1.79 will be the last available release for Windows 8 and 8.1 users».
— Запускаємо Visual Studio Code, переходимо в розширення (Extensions), в пошуку починаємо писати PlatformIO IDE, обираємо і встановлюємо розширення (шукайте кнопку Install). Якщо розширення вже встановлено, то ми побачимо, як у мене, Uninstall.
— Скачуємо архів, в якому проєкт-приклад зі всіма необхідними бібліотеками
— Розпаковуємо архів і запам’ятовуємо куди розпакували
— В Visual Studio Code обираємо «File – Open Folder» і обираємо папку, в яку щойно розпакували архів
— Обираємо файл main.cpp з папки src
Це і є скетч. Зверніть увагу на 21 рядок і далі.
Хочете засвітити світлодіод?
Визначаєте його координати і засвічуйте. Центр координат — в лівому верхньому куті. Ось як це просто:
matrix.drawPixel(1, 2, HIGH);
(з міркувань продуктивності пікселі відразу не надсилаються на світлодіодну панель. Змінюється лише внутрішній буфер растрового зображення)
matrix.write();
(відправка внутрішнього буферу растрового зображення на світлодіодну панель)
Хочете виключити цей світлодіод?
matrix.drawPixel(1, 2, LOW);
matrix.write();
Використання комбінації «Visual Studio Code + PlatformIO» зручно тим, що весь проект зберігається в одній папці. Тут і основний скетч і всі необхідні бібліотеки відповідних версій. Якщо перенести цю папку на інший комп’ютер, де встановлено «Visual Studio Code + PlatformIO» то все буде так само працювати.
Нашу програму будемо писати у файлі main.cpp
Програмуємо мовою програмування Arduino C. В інтернеті багато прикладів, можна розібратися з синтаксисом. Visual Studio Code підкаже помилки на етапі компіляції скетча.
Залишилось навчитися це все закидувати у контролер. Для цього треба скомпілювати бінарний файл. Натискаємо на «PlatformIO Bild».
Якщо немає помилок, то в результаті компіляції буде створено бінарний файл. Якщо в скетчі підключаються бібліотеки і в папці проєкту є ці бібліотеки, то все коректно скомпілюється. Дуже зручно. Про успішну компіляцію буде сповіщено чудовим зеленим SUCCESS:
Залишається залити вже скомпільований бінарний файл безпосередньо в контролер.
Для чого необхідно підключити до комп’ютера контролер і натиснути «PlatformIO Upload».
Можна пропустити «PlatformIO Bild» і відразу натискати «PlatformIO Upload», тоді спочатку буде скомпільовано бінарний файл і відразу залито його в контролер.
Це все )
Ось як мигає світлодіод на панелі з прикладу-скетчу.
При роботі в класі, не потрібно багато контролерів і панелей. Учень або група учнів можуть написати скетч і перевірити його на помилки, скомпілювавши бінарний файл. А після того, як звільниться контролер – підключити його до свого комп'ютера, залити в нього бінарний файл і перевірити роботу на реальному пристрої.
З використанням комбінації контролера і світлодіодної панелі можна розбирати цикли (робити усілякі біжучі вогні), крутити тексти (біжучі рядки). Розбирати роботу різних бібліотек. Для тих, хто цікавиться більш глибоко, в контролері NodeMCU є WiFi, тобто можна на контролері підняти вебсервер і керувати контролером по WiFi зі смартфона.
Або нехай контролер щось вимірює і результати роботи кудись відправляє в інтернет, підключившись до шкільного WiFi. Саме так в школі, де я працюю реалізована система моніторингу якості вуличного повітря німецького проєкту «sensor.community». Програмне забезпечення розповсюджується безкоштовно, в самій станції моніторингу, яку ми зібрали, не перший рік працює той самий NodeMCU.
До контролера можна підключати датчики, з контролера можна керувати механізмами управління.
Програмувати можна і на Windows (від версії 7 і далі) і на Лінукс і на MacOS. Visual Studio Code безкоштовна, переважна більшість бібліотек – також.
Кому сподобалось – пробуйте.
Для ознайомлення і старту, сподіваюсь, даної статті і папки-прикладу абсолютно достатньо.
Успіхів!
Анатолій Анатолійович,
липень 2023