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 п'ятьма дротами (рос.).

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

8. Програмна архітектура і багатозадачність

Думальний процес робота включає багато елементів. Це і логіка низького рівня (ввімкнути двигуни, блимнути світлодіодом, пропищати щось в динамік), і логіка середнього рівня (доїхати до перешкоди, зупинитися, помітивши край прірви - зупинитися, розвернутися, втекти), і логіка високого рівня (вибрати стратегію поведінки, дослідити і запам'ятати схему приміщень). Всі ці "думки" у вигляді програмного коду крутяться в "голові" робота постійно і одночасно. І буде дуже недобре, якщо, робот захопиться розрахунком маршруту, і гепнеться зі сходів не помітивши прірву перед собою. Можливість думати про багато речей одночасно називається багатозадачністю.

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

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

7. Генерування звуків

Отже наш робот навчився повзати. Прийшов час дати йому голос. Очевидно, що той же ж R2D2 не в останню чергу став знаменитістю через свої особливі трелі і свисти. Наш робот має бути не гіршим.

Для синтезу складних звукових ефектів є багато недорогих модулів, які легко інтегрувати з Arduino. Включно з модулями, які можуть відтворювати MP3 файли із внутрішньої пам'яті або micro-SD карт.

В нас поки нічого такого нема. Але завжди можна знайти якийсь вихід.

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

6. Нове шасі - перші рухи

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

Скажу чесно - спочатку були трохи побоювання. Заплатити відчутну суму грошей за покупку через Інтернет китайського виробу, який ми бачили тільки на фото і одному відеоролику…

На щастя - наші побоювання виявилися марними. Всі металеві деталі зроблені дуже якісно. Ніяких гострих країв, всі отвори і зрізи акуратно зашліфовані. Фарбування акуратне, рівномірне і стійке до протирання та подряпин. Деталі виконані точно - все сходиться і стикується ідеально. Всі коліщата монтуються на підшипники, тому опір тертя мінімальний.

Радості від складання шасі було не менше, ніж від складання хорошого конструктора Lego чи якоїсь шафки IKEA :-)

30 жовтня 2016 р.

5. Вибір шасі для робота

Підготовчі кроки можуть забрати багато часу. Ми з сином пройшли їх десь за два місяці. І от, нарешті все готово - стартовий набір куплено, курси початківців пройдено і є більш-менш розуміння що хочемо робити далі.

А хочемо ми створити робота, який зможе легко пересуватися по кімнатах, долаючи пороги висотою до 5 см. При цьому він має бути достатньо стійким, щоб носити на собі сенсори, відеокамеру, можливо мобільний телефон або TFT екран. В уяві зразу ж малюється платформа на гусеницях, висотою не менше 10 см, а шириною і довжиною десь 20x20 см і більше.

Пошук тривав досить довго. Виробники пропонують багато хороших варіантів платформ, і вибрати було важко. Гарний вибір шасі пропонує і DiyLab, але щось до таких моделей душа не лежала.

Аж поки ми випадково не наштовхнулися на це відео:


Сумніви відпали - ми таке хочемо. Тут дійсно не було ні краплі тверезого розрахунку. Лише емоції :-)

28 жовтня 2016 р.

4. Паяльна станція

Я завжди думав, що поганому радіотехніку - паяльник заважає. І вже зовсім змирився, що мабуть в мене не зовсім правильно руки ростуть, бо з паянням щось не складалося зовсім.

Один мій паяльник був великий і потужний. Коли він наближався до якоїсь плати - мікросхеми від страху розбігалися з неї, і всі інші деталі також. Коли я дізнався, що той паяльник в основному призначений для паяння відер - прикупив менший. Але він виявився настільки слабим, що не міг розплавити навіть сам припой (добротний, ще радянських часів). Не кажучи вже про те, щоб щось припаяти.

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

3. Середовища програмування

Як не крути, а інженеру-робототехніку таки доведеться писати програми. Тут для Arduino є вибір між багатьма варіантами. Розглянемо те, що годиться для початківців.
https://www.arduino.cc/en/Main/Software
  • Arduino IDE базове і дуже просте середовище, яке дозволяє писати програми на С/С++.  Ставити його треба в будь-якому випадку, бо має в комплекті USB драйвери для роботи з Arduino, які використовують всі інші оболонки. Для початкових експериментів підходить ідеально, бо створене максимально простим і надійним. Якщо ж проект великий і кількість файлів з текстами програми росте, використовувати стандартну оболонку стає незручно. 

27 жовтня 2016 р.

2. Стартовий набір

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

Перш ніж бігти купувати котрийсь із стартових наборів, дуже раджу зупинитися і подумати - а що ж саме ви збираєтеся робити. Не варто нагрібати великі купи електронного мотлоху, який, може, і вмикатися ніколи не буде.

Перш за все - подивіться кілька відеокурсів для початківців. Це дасть відчуття як виглядає вживу експериментування з Arduino і електронними схемами.

Робототехнікам [до]шкільного віку, або тим, хто має дуже небагато досвіду, раджу почати з курсу "Відеоуроки з Arduino для дошкільнят" (рос.)


Наступним рівнем можна вважати уроки Джеремі Блюма:  рос. або англ.

Подивилися? Не передумали? Тоді можна приступати до покупки стартового набору.

1. Початок


Якось так сталося, що захопилися ми з сином ідеєю створити свого робота. Ну, не зовсім вже суперрозумного і автономного як телята з Boston Dynamics, але такого, щоб повзав собі по будинку і око радував.

Саме про реалізацію цього проекту і буде даний цикл дописів.

Ясно, що спочатку ми уявляли свого робота десь так:

R2D2 - робот нашої мрії




Але історично склалося інакше, і вийшов він десь отаким:

робот, який у нас виходить