22 січня 2017 р.

15. Ультразвуковий сенсор відстані

Принцип дії

Прийшов час нарешті навчити робота орієнтуватися на місцевості і відправити його у "вільне плавання" по кімнаті. Ще раніше ми поставили на робота кронштейн із ультразвуковим сенсором відстані HC-SR04, але до цього моменту він виконував виключно декоративну функцію.


 кронштейн із ультразвуковим сенсором відстані HC-SR04


Як саме працює такий сенсор відстані тут описувати не будемо - раджу почитати спеціалізовані статті Ultra-Sonic "Ping" Sensor (англ.) або Ультразвуковой датчик измерения расстояния HC-SR04 (рос.).

Суть проста - в якийсь момент часу сенсор випромінює ультразвуковий імпульс. Той імпульс біжить вперед, відбивається від перешкоди (якщо вона є) і повертається назад в приймач сенсора. Знаючи швидкість звуку в повітрі (~300 м/с) легко порахувати яку відстань пробіг імпульс від сенсора до перешкоди.

23 грудня 2016 р.

14. Як нагодувати робота

Постановка задачі


Для живлення робота необхідно використати надійну батарею, яку би було легко заряджати та обслуговувати.

Ємність - не менше 2000 mAh, а бажано більше.
Робоча напруга - 7-8V (ідеальна для Arduino, досить непогана для наших двигунів).  Батарея не повинна сильно втрачати напругу в процесі розряджання. При зниженні напруги суттєво нижче 7V, Arduino може працювати нестабільно.
Робочий струм - поки не знаємо. Робот не до кінця готовий - важко  сказати який струм він буде споживати. З того, що видно зараз - варто розраховувати на навантаження між 1 і 2 А.

Здавалось би - параметри є, береш Гугл - і вперед. Що може бути простіше, ніж батарейку купити?

14 грудня 2016 р.

13. Драйвер двигунів

Вибір

Вибираючи плату з драйвером двигунів, ми зробили ще одну помилку. Здавалося би - що тут думати. Береш перший-ліпший оптимальний по ціні модуль - і двигуни їдуть. Але виявилося, що варто було подумати трохи грунтовніше.

Ми спокусилися на найдешевшу версію, виконану у вигляді шилда: Motor Drive Shield L293D For Arduino Duemilanove Mega UNO

Motor Drive Shield L293D For Arduino Duemilanove Mega UNO


11 грудня 2016 р.

12. Перехід на Arduino MEGA 2560

Вибір

Arduino MEGA 2560 до певної міри ідентична з Arduino UNO. Як мінімум перші 7 сантиметрів :-)

Arduino MEGA 2560 проти UNO

Спроектована вона так, щоб на тих перших семи сантиметрах контакти були ті ж, і розміщені таким самим чином. Тому всі шилди, спроектовані для Arduino UNO, ідеально підходять і для Arduino MEGA.

7 грудня 2016 р.

11. Переосмислення проекту: від прототипу до зрілості

Отже, станом на сьогодні, ми маємо досить цікавого робота. Він вміє рухатися вперед і повертати вправо та вліво, вміє виконувати якісь нескладні сценарії а також може керуватися віддалено через Wi-Fi. Для краси ми до нього приліпили ще кронштейн із ультразвуковим сенсором відстані HC-SR04. Що робити з тим сенсором - ще не розібралися. Але після його встановлення наш робот перетворився із злісного червоноокого термінатора Т400 на досить няшне створіння в стилі Wall-E.

Робот з декоративним сенсором відстані - 1

Робот з декоративним сенсором відстані - 2

Робот з декоративним сенсором відстані - 3

25 листопада 2016 р.

10. Дистанційне керування

Нарешті дійшли руки до модуля ESP13, якого нам помилково прислали разом із шасі і який до цього часу припадав пилюкою в надійному місці. Цей модуль ідеально підійшов для реалізації дистанційного керування нашим роботом.


ESP13 Arduino WiFi Shield

23 листопада 2016 р.

9. Діодне освітлення з використанням регістра зсуву

Відколи ми почали додавати до робота нові і нові пристрої, серйозною проблемою  стала обмежена кількість виводів Arduino Uno. І то наш проект ще зовсім далекий до завершення. Що ж буде далі?

Варіантів вирішення є досить багато, аж до використання кількох плат Arduino, кожна з яких має свою спеціалізацію. Але погодьтеся, ставити додаткову плату Arduino щоб просто поблимати діодами - то якось звучить зовсім неправильно.

Є прості і давно пророблені рішення, які дозволяють легко оминути такі обмеження. Найпоширенішими з них є протоколи I2C та SPI, які підтримуються Arduino зразу "з коробки".

Гарний огляд цих протоколів дає Джеремі Блум у своїх уроках Arduino (англ. або рос.). Лаконічний і дуже конкретний опис також можна почитати в статті Розширяємо порти (рос.). Глибше в деталі можна пірнути тут: Підключаємо купу пристроїв до  Arduino п'ятьма дротами (рос.).