Каталог
|
Перший пристрій на Arduino2020-04-22 Все статьи →
Готові? Сьогодні ми з вами створимо наш перший девайс на Arduino. Це буде не лише безкорисна забавка, він внесе свою невеличку частку в боротьбі з поширенням коронавірусу. Якщо ви не знаєте, що таке Arduino, раджу ознайомитися з першою частиною. Там також є перелік всього необхідного для сьогоднішнього “заняття”.
Згадаємо, Arduino – це платформа, яка дозволяє навіть дітям створювати власні електронні пристрої. При цьому вона достатньо потужна і функціональна, підтримує велику кількість датчиків, сервомоторів, дисплеїв і багато чого іншого. Тільки ваша фантазія може обмежити те, що можна з її допомогою зібрати! В першій статті ми писали, що нам знадобиться для пристрою. Продублюємо цей перелік і нагадаємо, що за посиланням нижче ви можете придбати все необхідне у наших партнерів. А по промокоду intRobots отримати знижку!
Отже, зараз ми крок за кроком пройдемо всі етапи створення власного пристрою на Arduino. Постановка задачі. Доцільність і актуальність пристрою.
Що зараз? Коронаві… да ви і так в курсі. Карантину дотримуєтесь? В масках ходите? Руки миєте? Поверхні обробляєте? Фейки не розповсюджуєте? Молодці! Наш пристрій буде в стильному компактному корпусі, працюватиме від однієї батарейки три роки, зможе керуватися по Bluetooth 5.0 зі смартфону і буде частиною екосистеми вашого розумного будинку. І ми обов’язково створимо такий пристрій, але… не сьогодні. Зараз ми обмежимося прототипом, мета якого навчити вас і познайомити зі світом любительської електроніки. Насправді це вже не мало. Але поступово ми оновлюватимемо його, доки не навчимося робити професійні пристрої, тож залишайтесь із нами. Але звичайно, у будь-який момент ви зможете зупинитися і сказати: “стоп, це хобі, я не хочу бути професіоналом в цьому, мені достатньо і такого рівня”. Підбір платформи і компонентів.ПлатформаПростіше за все, як ми вже знаємо, реалізувати задумане на Arduino. Яка саме, їх же існує багато варіантів? З цією задачею впорається будь-яка, ми ж візьмемо Arduino Uno або Nano, вони найпростіші. Але наступною окремою статтею ми розглянемо всі основні типи плат Arduino і різницю між ними. Інші компоненти
Датчик відстані
Модуль реле з оптроном 1. Оскільки доведеться комутувати електрику освітлення, а зазвичай це наруга 220 вольт, нам знадобиться модуль реле – це пристрій, який за допомогою низької напруги з Arduino може комутувати контакти високої напруги і відносно великі струми. При виборі такого модуля зверніть увагу, щоб у ньому була оптична гальванічна розв’язка – такий підхід робить фізичне “розділення” низьковольтної і високовольтної частин. Це забезпечить додаткову безпеку. 2. Безконтактний датчик. Це може бути будь-що, аби на відстані фіксувало піднесення руки. Візьмемо ультразвуковий датчик відстані HC-SR04. ЖивленняБлок батарейок AA або AAA (від чотирьох до восьми) або роз’єм для батарейки “крона” 9 вольт. Але кращим був би блок живлення на 5 – 12 вольт або USB-зарядка від смартфонів якщо поряд є розетка: не розрядиться і для екології краще.
МонтажЙого проводитимемо на бредборді – макетній платі з отворами для монтажу без пайки, (дивіться попередню статтю), а кріпити все за допомогою клейкої стрічки біля вимикача. КорпусНебезпечну частину 220 вольт, тобто реле, заховаємо під корпусом вимикача. Решту залишимо в безкорпусному варіанті. Але ви можете придумати щось креативне самостійно. ЗбіркаУВАГА! Не підключайте пристрій одразу до мережі 220 вольт! Спочатку знеструмте приміщення і переконайтеся, що напруги немає. Якщо у вас не має досвіду роботи з електрикою або ви сумніваєтесь, попросіть про допомогу у компетентних людей або працюйте з освітленням низької напруги, наприклад 24 вольта. Пам’ятайте! При недотриманні техніки безпеки вас може вдарити током, а погано закріплені контакти можуть призвести до пожежі! Перед тим, як збирати, розберемо дуже важливий момент: вам необхідно зрозуміти, як влаштований і як працює бредборд. Отвори на бредборді промарковані вертикально буквами (рядки) і горизонтально цифрами. Підключивши якийсь із виводів (Arduino, датчика, дисплея, чи будь-чого) безпосередньо або через перемичку до отвору на бредборді, усі сусідні з ним отвори, які мають таку ж цифру, теж до нього під’єднані. Тобто щоб з’єднати два чи більше виводів, їх відповідно треба підключити до отворів бредборду, які мають СПІЛЬНІ цифри та РІЗНІ букви. Виключення складають лінії живлення, вони позначені синьою та червоною лініями. Різниця лише в тому, що вони з’єднані не по цифрам, а вздовж всієї лінії. 1. Почнемо. Якщо у вас Arduino Uno, Mega, Leonardo або інша з виводами у вигляди роз’ємів (пластикові колодки по периметру плати), просто помістіть її біля бредборду. Якщо це Nano, Pro Mini, де виводи у вигляді набору штирків, вставте її у бредборд.
Зробили? Тоді клікніть сюди і перевірте себе.
Якщо все правильно, розберіть (це був приклад) і приступимо.
2. Arduino має “поділитися” напругою з датчиком відстані та з реле. В попередній статті вже було про схему підключення, а зараз реалізуємо її практично. Вивід Земля (мінус, від’ємний потенціал, нуль) на Arduino позначено як GND (тобто Ground) і їх може бути кілька. Знайдіть один з них і підключіть на шину “-” на бредборді, яка позначена синьою лінією. Те саме зробимо з виводом живлення (плюс, позитивний потенціал), який на Arduino позначено як 5V. Його підключіть на шину “+” на бредборді, яка позначена червоною лінією. Клікніть сюди і перевірте, чи ви все зробили вірно.
Тепер ми можемо під’єднати будь-які пристрої до отворів біля синьої і червоної ліній (GND до синьої, а Vcc до червоної) і отримати 5 вольт живлення з Arduino. Це і потрібно зробити з модулем реле та датчиком відстані. Причому останній має бути розміщений на самому бредборді, і вже від нього треба під’єднуватись до живлення, а реле має бути окремо на проводках. Це необхідно, щоб заховати його під корпус вимикача, так як воно буде пов’язано з небезпечною напругою. Спробуйте зробити це самостійно, і перевірте себе тут.
3. Тепер підключимо решту. На Arduino є виводи позначені цифрами, це програмовані порти вводу-виводу, які ви можете налаштувати працювати (майже) як завгодно. До чого тут підключати виводи реле і дальноміра? В одній із статей ми розглянемо детально всі виводи Arduino, їх позначення, можливості і особливості. Зараз же лише скажу, що підійдуть будь-які, але є кілька нюансів, чому краще обрати наступні: Підключіть все і перевірте. Має вийти так.
4. Живлення. Воно не знадобиться нам на етапі програмування, так як здійснюватиметься через USB порт вашого ПК. Коли ж пристрій відправиться у самостійне життя, про живлення доведеться все ж потурбуватись. Найпростіше зробити це через роз’єм USB від блоку для зарядки телефонів, якщо поряд є розетка. В інакшому випадку наступні варіанти. Якщо ваш вибір плати Uno, Mega, Leonardo або інша, вона має великий чорний роз’єм до якого можна підключити:
Якщо ж ваша платка з штирками, така як Nano, і розміщується на бредборді, це все також можливо, але роз’єму живлення там немає, і доведеться підключати напругу зачистивши провідники від джерела живлення і під’єднати їх через бредборд: “-” до GND (зазвичай чорний провід) і “+” до Vin (звичайно червоний, або маркований білим провід). В кінці статті є фото. Зібрали? Перевірте все ще раз і го кодити. ПрограмуванняМи вже трохи розбирали це в першій частині, зараз же давайте пройдемо все крок за кроком.
1. Завантажте на сайті Arduino IDE – це середовище розробки – і встановіть його на свій ПК. 2. Для підтримки деяких плат завантажте драйвер чіпу CH340/CH341 і встановіть його. 3. Запустіть Arduino IDE і перейдіть в меню Інструменти->Порт (в англ. версії Tools->Port). Ви побачите там список портів пристрої, які вже є у вашій системі. 4. Підключіть Arduino по USB до ПК. 5. Повторіть крок 3 і ви побачите, що до вже існуючих портів додався ще один. Це і є наша плата, оберіть її. Якщо новий порт не з’явився, щось не так з платою або драйвером. Спробуте перевірити USB кабель, під’єднання, на Arduino повинен світитися світлодіод. Спробуйте ще раз перевстановити драйвер. 6. Перейдіть в меню Інструменти->Плата (в англ. версії Tools->Board) і оберіть тип плати (Nano, Uno, Mega, пам’ятаєте? Дивіться попередню статтю). 7. Для деяких плат треба обрати ще Інструменти->Процессор (в англ. версії Tools->Processor). Уважно подивіться маркування чіпу на платі. 8. Нічого не змінюючи в коді, натисніть на кнопку завантаження (зелена стрілка стрілка згори). Якщо код ви вже редагували, виберіть меню Файл->Створити (в англ. версії File->New) і відкриєтся нове вікно і вже в ньому виберіть кнопку завантажити. Якщо ви все зробили вірно, IDE скомпілює код і завантажить його на плату. Якщо виникатимуть помилки – перевірте чи все зробили вірно. Спробуйте також в Інструменти->Процессор (Tools->Processor) обрати Atmega328P Old Bootloader. Переходимо до програмування. Сьогодні ми не будемо детально розбирати цю тему, можете просто скопіювати код, вставити його в IDE і завантажити. Але уважно продивіться його і почитайте коментарі, щоб хоч приблизно розуміти, що там до чого. Для початку просто поклацаємо релешкою, щоб ви зрозуміли, як працює код на Arduino.
// Це коментар. Кожна строка, яка починається з // ігнорується.
// Почнімо з того, що "запам'ятаємо" до якого вивода що підключено
// Наступний код виконається лише один раз після включення. Тут зазвичай налаштування.
// Наступний код виконуватиметься постійно. Це і є основна робота Arduino.
// Таким чином даний код буде то вмикати то вимкати реле. Якщо все завантажилося, але реле не клацає, на платі має замиготіти світлодіод з позначкою L. Перевірте, чи правильно ви підключили реле.
10. Спробуйте змінити програму так, щоб поклацати релешкою раз в секунду. Що для цього треба змінити? // Тут будуть коментуватися лише зміни відносно попередньої версії
#define TRIG 2
void setup() {
// Serial - це послідовний порт, за допомогою якого, Arduino вміє
void loop() {
// Тепер ультразвукова хвиля розповсюджується у просторі і,
// Для цього ми створимо змінну distance, яка вміє зберігати числа.
// Тепер запишемо в distance час, коли на ECHO прийде сигнал (HIGH)
// Тпере передамо значення, яке "запам'ятала" distance на комп'ютер.
// Тепер залишилося дочекатися, поки запущена раніше ультразвукова Після завантаження оберіть Інструменти->монітор послідовного порту (в англ. версії Tools->Serial Monitor). З’явиться вікно відображення даних отриманих з Arduino. Спробуйте приблизити до датчика відстані долоню і переконайтеся, що результат показує реальну відстань до датчика. Якщо ви не бачите результату, або замість цифр невідомі символи – справа знизу вікна виберіть потрібну швидкість 9600. Якщо замість дальності ви бачите лише нулі – ще раз перевірте правильність підключення датчика відстані. 12. Спробуйте змінити код, щоб отримувати дальність у сантиметрах. Напишіть в коментах чи вийшло? 13. Настав час об’єднати дві написані вище програми в “бойову” версію! Ви можете спробувати зробити це самостійно, або скористайтеся готовим результатом. Як завжди, подивіться його уважно і спробуйте зрозуміти логіку його роботи. // Тут будуть коментуватися лише зміни відносно попередньої версії
#define TRIG 2
void setup() {
Serial.begin(9600);
void loop() {
int distance;
// Цей умовний оператор if перевіряє чи відстань буде менша за 1000 МонтажМи на фінішній прямій! Лишилося прикріпити пристрій біля вимикача світла і під'єднати замість нього реле. Ще раз нагадую про техніку безпеки при підключенні до вимикача світла! Спочатку знеструмте приміщення і переконайтеся, що напруги немає. Тільки після цього демонтуйте вимикач і під'єднайте замість нього реле. І ще раз: якщо у вас не має досвіду роботи з електрикою або ви сумніваєтесь, попросіть про допомогу у компетентних людей або під'єднайте реле до освітлення низької напруги. Ось кілька порад:
Приклад на Arduino Mega і Arduino Nano. Реле під'єднано замість вимикача. Дякуємо за увагу! Пишіть коментарі, якщо виникатимуть питання чи щось не вийде. В наступній статті розглянемо, що знаходиться на платах Arduino і навіщо, а також які бувають плати Arduino, для чого і коли обрати ту чи іншу з них. До зустрічі!
Благодарим Вас за обращение! Ваш отзыв появится после модерации администратором.
Василь
05.09.2024 15:58:54
Боже, яке страшне!
віталій
06.06.2023 23:52:10
задум прікольний тіки небезпечний
|