Маленький саморобний робот. Створюємо робота в домашніх умовах Прості роботи своїми руками для початківців

Зробити роботадуже просто Давайте розберемося, що потрібно буде щоб створити роботав домашніх умовах, щоб зрозуміти основи робототехніки.

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

Вступ

Отже. Що таке робот? У більшості випадків це автоматичний пристрій, який реагує на будь-які дії довкілля. Роботи можуть керуватися людиною або виконувати заздалегідь запрограмовані дії. Зазвичай на роботі розташовують різноманітні датчики (відстань, кут повороту, прискорення), відеокамери, маніпулятори. Електронна частина робота складається з мікроконтролера (МК) – мікросхема, в яку укладено процесор, тактовий генератор, різна периферія, оперативна та постійна пам'ять. У світі існує безліч різноманітних мікроконтролерів для різних областей застосування і на їх основі можна збирати потужних роботів. Для аматорських будівель широке застосуваннязнайшли мікроконтролери AVR. Вони, на сьогоднішній день, найдоступніші та в інтернеті можна знайти багато прикладів на основі цих МК. Щоб працювати з мікроконтролерами, тобі потрібно вміти програмувати на асемблері або на Cі і мати початкові знання в цифровій та аналоговій електроніці. У нашому проекті ми будемо використовувати Cі. Програмування для МК мало чим відрізняється від програмування на комп'ютері, синтаксис мови такий самий, більшість функцій практично нічим не відрізняються, а нові досить легко освоїти і зручно ними користуватися.

Що нам потрібно

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

Робимо плату з МК

У нашому випадку мікроконтролер виконуватиме функції мозку, але почнемо ми не з нього, а з живлення мозку робота. Правильне харчування- Запорука здоров'я, тому ми почнемо з того, як правильно годувати нашого робота, тому що на цьому зазвичай помиляються роботобудівники-початківці. А для того, щоб наш робот працював нормально, потрібно використовувати стабілізатор напруги. Я віддаю перевагу мікросхемі L7805 - вона призначена, щоб на виході видавати стабільну напругу 5В, яка і потрібна нашому мікроконтролеру. Але через те, що падіння напруги на цій мікросхемі становить близько 2,5В до нього потрібно подавати мінімум 7,5В. Разом з цим стабілізатором використовуються електролітичні конденсатори, щоб згладити пульсації напруги і в ланцюг обов'язково включають діод для захисту від переполюсування.

Тепер ми можемо зайнятися нашим мікроконтролером. Корпус у МК - DIP (так зручніше паяти) і має сорок висновків. На борту є АЦП, ШИМ, USART та багато іншого, що ми поки що використовувати не будемо. Розглянемо кілька важливих вузлів. Висновок RESET (9-а нога МК) підтягнутий резистором R1 до «плюсу» джерела живлення – це потрібно робити обов'язково! Інакше твій МК може ненавмисно скидатися або, простіше кажучи, глючити. Також бажаним заходом, але не обов'язковим є підключення RESET'а через керамічний конденсатор C1 до «землі». На схемі ти також можеш побачити електроліт на 1000 мкФ, він рятує від провалів напруги при роботі двигунів, що теж сприятливо позначиться на роботі мікроконтролера. Кварцовий резонатор X1 та конденсатори C2, C3 потрібно розташовувати якомога ближче до висновків XTAL1 та XTAL2.

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

Управління двигунами

Не менш важливим компонентом нашого робота є драйвер двигунів, який полегшує нам завдання в управлінні ним. Ніколи і в жодному разі не можна підключати двигуни безпосередньо до МК! Взагалі потужними навантаженнями не можна керувати безпосередньо з мікроконтролера, інакше він згорить. Використовуйте ключові транзистори. Для нашого випадку є спеціальна мікросхема – L293D. У таких нескладних проектах завжди намагайтеся використовувати саме цю мікросхему з індексом «D», оскільки вона має вбудовані діоди для захисту від перевантажень. Цією мікросхемою дуже легко керувати та її просто дістати в радіотехнічних магазинах. Вона випускається у двох корпусах DIP та SOIC. Ми будемо використовувати у корпусі DIP через зручність монтажу на платі. L293D має роздільне живлення двигунів та логіки. Тому саму мікросхему ми живитимемо від стабілізатора (вхід VSS), а двигуни безпосередньо від акумуляторів (вхід VS). L293D витримує навантаження 600 мА на кожен канал, а цих каналів у неї два, тобто до однієї мікросхеми можна підключити два двигуни. Але щоб перестрахуватися, ми об'єднаємо канали, і тоді буде потрібно по одній мікро на кожний двигун. Звідси випливає, що L293D зможе витримати 1.2 А. Щоб цього досягти потрібно об'єднати ноги мікро, як показано на схемі. Мікросхема працює наступним чином: коли IN1 і IN2 подається логічний «0», але в IN3 і IN4 логічна одиниця, то двигун обертається однією сторону, і якщо інвертувати сигнали - подати логічний нуль, тоді двигун почне обертатися у інший бік. Висновки EN1 та EN2 відповідають за включення кожного каналу. Їх ми з'єднуємо та підключаємо до «плюсу» живлення від стабілізатора. Так як мікросхема гріється під час роботи, а установка радіаторів проблематична на цей тип корпусу, то відведення тепла забезпечується ногами GND - їх краще розпаювати на широкому контактному майданчику. Ось і все, що спочатку тобі потрібно знати про драйвери двигунів.

Датчики перешкод

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


Прошивка робота

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

#include
#include

Наступні рядки умовні, тому що значення PORTC залежать від того, як ти підключив драйвер двигунів до свого мікроконтролера:

PORTC.0 = 1; PORTC.1 = 0; PORTC.2 = 1; PORTC.3 = 0; Значення 0xFF означає, що на виході буде балка. "1", а 0x00 - лог. "0". Наступною конструкцією ми перевіряємо, чи є перед роботом перешкода і з якого боку: if (!(PINB & (1)<

Якщо на фототранзистор потрапляє світло від ік-діода, то на нозі мікроконтролера встановлюється балка. "0" і робот починає рух назад, щоб від'їхати від перешкоди, потім розвертається, щоб знову не зіткнутися з перепоною і потім знову їде вперед. Так як у нас два датчики, то ми перевіряємо наявність перешкоди двічі - праворуч і ліворуч і тому можемо дізнатися з якого боку перешкоду. Команда delay_ms(1000) вказує на те, що пройде одна секунда, перш ніж почне виконуватися наступна команда.

Висновок

Я розглянув більшість аспектів, які допоможуть тобі зібрати твого першого робота. Але на цьому робототехніка не закінчується. Якщо ти збереш цього робота, то в тебе з'явиться безліч можливостей для його розширення. Можна вдосконалити алгоритм робота, як, наприклад, що робити, якщо перешкода не з якогось боку, а перед роботом. Також не завадить встановити енкодер - простий пристрій, який допоможе точно розташовувати і знати розташування твого робота в просторі. Для наочності можливе встановлення кольорового або монохромного дисплея, який може показувати корисну інформацію - рівень заряду акумулятора, відстань до перешкоди, різну інформацію налагодження. Не завадить і вдосконалення датчиків – установка TSOP (це іч-приймачі, які сприймають сигнал лише певної частоти) замість звичайних фототранзисторів. Крім інфрачервоних датчиків існують ультразвукові, коштують дорожче, і теж не позбавлені недоліків, але останнім часом набирають популярності роботобудівники. Щоб робот міг реагувати на звук, було б непогано встановити мікрофони з підсилювачем. Але по-справжньому цікавим, я вважаю, встановлення камери та програмування на її основі машинного зору. Є набір спеціальних бібліотек OpenCV, за допомогою яких можна запрограмувати розпізнавання осіб, рухи кольоровими маяками та багато всього цікавого. Все залежить тільки від твоєї фантазії та вмінь.

Список компонентів:

    ATmega16 у корпусі DIP-40>

    L7805 у корпусі TO-220

    L293D у корпусі DIP-16 х2 шт.

    резистори потужністю 0,25 Вт номіналами: 10 кОм х1 шт., 220 Ом х4 шт.

    конденсатори керамічні: 0.1 мкф, 1 мкф, 22 пф

    електролітичні конденсатори: 1000 мкФ х 16 В, 220 мкФ х 16В х2 шт.

    діод 1N4001 або 1N4004

    кварцовий резонатор на 16 МГц

    ІЧ-діоди: підійдуть будь-які в кількості двох штук.

    фототранзистори, теж будь-які, але реагують тільки на довжину хвилі ик-променів

Код прошивки:

/************************************************* **** Прошивка для робота Тип МК: ATmega16 Тактова частота: 16,000000 MHz Якщо у тебе частота кварцу інша, то це потрібно вказати в налаштуваннях середовища: Project -> Configure -> Закладка "C Compiler" ****** ***********************************************/ #include #include void main(void) ( //Настроюємо порти на вхід //Через ці порти ми отримуємо сигнали від датчиків DDRB=0x00; //Включаємо підтягуючі резистори PORTB=0xFF; //Настроюємо порти на вихід //Через ці порти ми керуємо двигунами DDRC =0xFF;//Головний цикл програми. = 0; if (! (PINB & (1)<Про мій роботу

На даний момент мій робот практично завершено.


На ньому встановлено бездротову камеру, датчик відстані (і камеру і цей датчик встановлено на поворотній вежі), датчик перешкоди, енкодер, приймач сигналів з пульта та інтерфейс RS-232 для з'єднання з комп'ютером. Працює у двох режимах: автономному та ручному (приймає сигнали керування з пульта дистанційного керування), камера також може вмикатися/вимикатися дистанційно або самим роботом для економії заряду батарей. Пишу прошивку охорони квартири (передача зображення на комп'ютер, виявлення рухів, об'їзд приміщення).

Як зробити робота в домашніх умовах, щоби все вийшло? Потрібно починати з простого та поступово ускладнювати! Інструкції зі створення роботів своїми руками в домашніх умовах буквально заполонили інтернет. Не залишиться осторонь цього автор статті. Загалом цей процес можна розділити на три частини: теоретичну, підготовчу та безпосередньо складання. У рамках статті будуть розглянуті всі вони, а також описано загальну схему розробки чистильника.

Створення робота в домашніх умовах

Щоб розробити з нуля, необхідні знання про струм, напругу, функціонування різних елементів як тригери, конденсатори, резистори, транзистори. Також слід навчитися паяти все це на схемах та використовувати з'єднувальні дроти. Необхідно опрацювати кожен аспект руху та виконання дій, домагаючись максимальної деталізації дій для досягнення своєї мети. І ці знання необхідні, якщо вас дійсно цікавить, як зробити робота в домашніх умовах, а не просто цікавість.

Підготовчі процеси

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

Складання

Необхідно продумати «кістяк» конструкції, на якому все будуватиметься. Зазвичай вибирають одну деталь, і вже до неї припаюються всі інші. Говорячи про якість паяння, слід сказати, що місця, де вона проводитиметься, повинні бути очищені. Також, залежно від товщини проводів і ніжок, необхідно підібрати достатню кількість припою, щоб елементи не відпадали під час експлуатації. Для спрощення процесів передачі сигналів і недопущення можливості замикання можна витравити Потім на неї наносяться всі необхідні елементи, конструкція, що вийшла, підключається до джерела живлення і при необхідності здійснюється доопрацювання пристрою.

Простий робот

Як зробити в домашніх умовах щось нескладне? Та ще й корисне? Свій будинок необхідно тримати у чистоті, і цей процес бажано автоматизувати. Звичайно, створити повноцінного робота-прибирача складно, але мінімальна конструкція, яка забезпечить збирання пилу з підлог кімнат – це цілком під силу. Якщо чесно - то буде розглянуто який працює на одному місці і одночасно прибирає дрібне сміття, розташоване в зоні дислокації. Щоб створити таку конструкцію, необхідно мати такі матеріали:

  1. Пластикову тарілку.
  2. Три невеликі щітки, які використовуються для чистки взуття або підлоги.
  3. Два вентилятори, які можна взяти з комп'ютерів, що віджили своє.
  4. Батарея на 9В та роз'єм для неї.
  5. Стяжка або хомути, які можуть самі замикатися.
  6. Болти та гайки.

Просвердліть на рівній відстані отвори для щіток. Прикріпіть їх. Бажано, щоб усі щітки розміщувалися на рівній віддаленості від інших та центру тарілки. Використовуючи болти та гайки, до кожної з них слід прикріпити регулювальне кріплення, та й вони самі фіксуються за їх допомогою. Повзунки регулювальних кріплень слід встановити у середнє положення. Для руху використовуватимемо вентилятори. Їх підключаємо до батареї та розміщуємо паралельно, щоб вони забезпечували обертання робота по колу. Дана конструкція буде використовуватися як вібромотор. Накиньте клеми та конструкція вже готова до використання. Якщо під час процесу чищення робот йтиме убік, попрацюйте з регулювальними кріпленнями. Представлена ​​у статті конструкція не потребує значних грошових витрат чи наявності навичок та досвіду. Під час створення робота використовувалися недорогі матеріали, дістати які є значною проблемою. За бажання ускладнити конструкцію і змусити її цілеспрямовано рухатися знадобляться поліпшення у вигляді додаткових моторів та мікроконтролерів. Ось як зробити робота у домашніх умовах. А лише подумайте, скільки можна тут удосконалити! Найширше поле для конструкторської діяльності.

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

Вступ

Отже. Що таке робот? У більшості випадків це автоматичний пристрій, який реагує на будь-які дії довкілля. Роботи можуть керуватися людиною або виконувати заздалегідь запрограмовані дії. Зазвичай на роботі розташовують різноманітні датчики (відстань, кут повороту, прискорення), відеокамери, маніпулятори. Електронна частина робота складається з мікроконтролера (МК) - мікросхема, в яку укладено процесор, тактовий генератор, різна периферія, оперативна та постійна пам'ять. У світі існує безліч різноманітних мікроконтролерів для різних областей застосування і на їх основі можна збирати потужних роботів. Для аматорських будівель широкого застосування знайшли мікроконтролери AVR. Вони, на сьогоднішній день, найдоступніші та в інтернеті можна знайти багато прикладів на основі цих МК. Щоб працювати з мікроконтролерами, тобі потрібно вміти програмувати на асемблері або на Cі і мати початкові знання в цифровій та аналоговій електроніці. У нашому проекті ми будемо використовувати Cі. Програмування для МК мало чим відрізняється від програмування на комп'ютері, синтаксис мови такий самий, більшість функцій практично нічим не відрізняються, а нові досить легко освоїти і зручно ними користуватися.

Що нам потрібно

Для початку наш робот вмітиме просто об'їжджати перешкоди, тобто повторювати нормальну поведінку більшості тварин у природі. Все, що нам знадобиться для будівництва такого робота, можна буде знайти в радіотехнічних магазинах. Вирішимо, як наш робот пересуватиметься. Найвдалішим я вважаю гусениці, які застосовуються в танках, це найбільш зручне рішення, тому що гусениці мають більшу прохідність, ніж колеса машини і зручніше керувати ними (для повороту достатньо обертати гусениці в різні боки). Тому тобі знадобиться будь-який іграшковий танк, у якого гусениці обертаються незалежно один від одного, такий можна купити в будь-якому магазині за розумною ціною. Від цього танка тобі знадобиться лише платформа з гусеницями та мотори з редукторами, решту ти можеш сміливо відкрутити та викинути. Також нам знадобиться мікроконтролер, мій вибір упав на ATmega16 – у нього достатньо портів для підключення датчиків і периферії і взагалі він досить зручний. Ще тобі потрібно купити трохи радіодеталей, паяльник, мультиметр.

Робимо плату з МК



Схема робота

У нашому випадку мікроконтролер виконуватиме функції мозку, але почнемо ми не з нього, а з живлення мозку робота. Правильне харчування – запорука здоров'я, тому ми почнемо з того, як правильно годувати нашого робота, тому що на цьому зазвичай помиляються роботобудівники-початківці. А для того, щоб наш робот працював нормально, потрібно використовувати стабілізатор напруги. Я віддаю перевагу мікросхемі L7805 – вона призначена, щоб на виході видавати стабільну напругу 5В, яка і потрібна нашому мікроконтролеру. Але через те, що падіння напруги на цій мікросхемі становить близько 2,5В до нього потрібно подавати мінімум 7,5В. Разом з цим стабілізатором використовуються електролітичні конденсатори, щоб згладити пульсації напруги і в ланцюг обов'язково включають діод для захисту від переполюсування.
Тепер ми можемо зайнятися нашим мікроконтролером. Корпус у МК – DIP (так зручніше паяти) та має сорок висновків. На борту є АЦП, ШИМ, USART та багато іншого, що ми поки що використовувати не будемо. Розглянемо кілька важливих вузлів. Висновок RESET (9 нога МК) підтягнутий резистором R1 до «плюсу» джерела живлення – це потрібно робити обов'язково! Інакше твій МК може ненавмисно скидатися або, простіше кажучи, глючити. Також бажаним заходом, але не обов'язковим є підключення RESET'а через керамічний конденсатор C1 до «землі». На схемі ти також можеш побачити електроліт на 1000 мкФ, він рятує від провалів напруги при роботі двигунів, що теж сприятливо позначиться на роботі мікроконтролера. Кварцовий резонатор X1 та конденсатори C2, C3 потрібно розташовувати якомога ближче до висновків XTAL1 та XTAL2.
Про те, як прошивати МК, я не розповідатиму, оскільки про це можна прочитати в інтернеті. Писати програму ми будемо на Cі, як середовище програмування я вибрав CodeVisionAVR. Це досить зручне середовище та корисне новачкам, тому що має вбудований майстер створення коду.


Плата мого робота

Управління двигунами

Не менш важливим компонентом нашого робота є драйвер двигунів, який полегшує нам завдання в управлінні ним. Ніколи і в жодному разі не можна підключати двигуни безпосередньо до МК! Взагалі потужними навантаженнями не можна керувати безпосередньо з мікроконтролера, інакше він згорить. Використовуйте ключові транзистори. Для нашої нагоди є спеціальна мікросхема – L293D. У таких нескладних проектах завжди намагайтеся використовувати саме цю мікросхему з індексом «D», оскільки вона має вбудовані діоди для захисту від перевантажень. Цією мікросхемою дуже легко керувати та її просто дістати в радіотехнічних магазинах. Вона випускається у двох корпусах DIP та SOIC. Ми будемо використовувати у корпусі DIP через зручність монтажу на платі. L293D має роздільне живлення двигунів та логіки. Тому саму мікросхему ми живитимемо від стабілізатора (вхід VSS), а двигуни безпосередньо від акумуляторів (вхід VS). L293D витримує навантаження 600 мА на кожен канал, а цих каналів у неї два, тобто до однієї мікросхеми можна підключити два двигуни. Але щоб перестрахуватися, ми об'єднаємо канали, і тоді буде потрібно по одній мікро на кожний двигун. Звідси випливає, що L293D зможе витримати 1.2 А. Щоб цього досягти потрібно об'єднати ноги мікро, як показано на схемі. Мікросхема працює наступним чином: коли на IN1 та IN2 подається логічний «0», а на IN3 та IN4 логічна одиниця, то двигун обертається в один бік, а якщо інвертувати сигнали – подати логічний нуль, тоді двигун почне обертатися в іншу сторону. Висновки EN1 та EN2 відповідають за включення кожного каналу. Їх ми з'єднуємо та підключаємо до «плюсу» живлення від стабілізатора. Так як мікросхема гріється під час роботи, а установка радіаторів проблематична на цей тип корпусу, то відведення тепла забезпечується ногами GND – їх краще розпаювати на широкому контактному майданчику. Ось і все, що спочатку тобі потрібно знати про драйвери двигунів.

Датчики перешкод

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


Перший варіант датчиків мого робота

Прошивка робота

Щоб оживити робота, для нього потрібно написати прошивку, тобто програму, яка знімала б показання з датчиків і керувала двигунами. Моя програма є найпростішою, вона не містить складних конструкцій і всім буде зрозуміла. Наступні два рядки підключають заголовні файли для нашого мікроконтролера та команди для формування затримок:

#include
#include

Наступні рядки умовні, тому що значення PORTC залежать від того, як ти підключив драйвер двигунів до свого мікроконтролера:

PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;

Значення 0xFF означає, що на виході буде балка. "1", а 0x00 - лог. "0".

Наступною конструкцією ми перевіряємо, чи є перед роботом перешкода і з якого боку:

If (! (PINB & (1< {
...
}

Якщо на фототранзистор потрапляє світло від ік-діода, то на нозі мікроконтролера встановлюється балка. "0" і робот починає рух назад, щоб від'їхати від перешкоди, потім розвертається, щоб знову не зіткнутися з перепоною і потім знову їде вперед. Так як у нас два датчики, то ми перевіряємо наявність перешкоди двічі – праворуч та ліворуч і тому можемо дізнатися з якого боку перешкоду. Команда delay_ms(1000) вказує на те, що пройде одна секунда, перш ніж почне виконуватися наступна команда.

Висновок

Я розглянув більшість аспектів, які допоможуть тобі зібрати твого першого робота. Але на цьому робототехніка не закінчується. Якщо ти збереш цього робота, то в тебе з'явиться безліч можливостей для його розширення. Можна вдосконалити алгоритм робота, як, наприклад, що робити, якщо перешкода не з якогось боку, а перед роботом. Так само не завадить встановити енкодер – простий пристрій, який допоможе точно розташовувати та знати розташування твого робота у просторі. Для наочності можливе встановлення кольорового або монохромного дисплея, який може показувати корисну інформацію – рівень заряду акумулятора, відстань до перешкоди, різну інформацію налагодження. Не завадить і вдосконалення датчиків - установка TSOP (це іч-приймачі, які сприймають сигнал лише певної частоти) замість звичайних фототранзисторів. Крім інфрачервоних датчиків існують ультразвукові, коштують дорожче, і теж не позбавлені недоліків, але останнім часом набирають популярності роботобудівники. Щоб робот міг реагувати на звук, було б непогано встановити мікрофони з підсилювачем. Але по-справжньому цікавим, я вважаю, встановлення камери та програмування на її основі машинного зору. Є набір спеціальних бібліотек OpenCV, за допомогою яких можна запрограмувати розпізнавання осіб, рухи кольоровими маяками та багато всього цікавого. Все залежить тільки від твоєї фантазії та вмінь.
Список компонентів:
  • ATmega16 у корпусі DIP-40>
  • L7805 у корпусі TO-220
  • L293D у корпусі DIP-16 х2 шт.
  • резистори потужністю 0,25 Вт номіналами: 10 кОм х1 шт., 220 Ом х4 шт.
  • конденсатори керамічні: 0.1 мкф, 1 мкф, 22 пф
  • електролітичні конденсатори: 1000 мкФ х 16 В, 220 мкФ х 16В х2 шт.
  • діод 1N4001 або 1N4004
  • кварцовий резонатор на 16 МГц
  • ІЧ-діоди: підійдуть будь-які в кількості двох штук.
  • фототранзистори, теж будь-які, але реагують тільки на довжину хвилі ик-променів
Код прошивки:
/*****************************************************
Прошивка для робота

Тип МК: ATmega16
Тактова частота: 16,000000 MHz
Якщо у тебе частота кварцу інша, то це потрібно вказати в налаштуваннях середовища:
Project -> Configure -> Закладка "C Compiler"
*****************************************************/

#include
#include

Void main(void)
{
//Налаштовуємо порти на вхід
//Через ці порти ми отримуємо сигнали від датчиків
DDRB = 0x00;
//Включаємо підтягуючі резистори
PORTB = 0xFF;

//Налаштовуємо порти на вихід
//Через ці порти ми керуємо двигунами
DDRC = 0xFF;

//Головний цикл програми. Тут ми зчитуємо значення з датчиків
//і керуємо двигунами
while (1)
{
// Їдемо вперед
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;
if (! (PINB & (1< {
//Їдемо назад 1 секунду
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms(1000);
//Загортаємо
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms(1000);
}
if (! (PINB & (1< {
//Їдемо назад 1 секунду
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms(1000);
//Загортаємо
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 1;
PORTC.3 = 0;
delay_ms(1000);
}
};
}

Про мій роботу

На даний момент мій робот практично завершено.


На ньому встановлено бездротову камеру, датчик відстані (і камеру і цей датчик встановлено на поворотній вежі), датчик перешкоди, енкодер, приймач сигналів з пульта та інтерфейс RS-232 для з'єднання з комп'ютером. Працює у двох режимах: автономному та ручному (приймає сигнали керування з пульта дистанційного керування), камера також може вмикатися/вимикатися дистанційно або самим роботом для економії заряду батарей. Пишу прошивку охорони квартири (передача зображення на комп'ютер, виявлення рухів, об'їзд приміщення).

За побажаннями викладаю відео:

UPD.Перезалив фотографії та зробив невеликі поправки у тексті.

Кому не хотілося б мати універсального помічника, готового виконати будь-яке доручення: помити посуд, закупити продуктів, поміняти колесо в автомобілі та й відвезти дітей у садок, а батьків на роботу? Ідея створення механізованих асистентів займає інженерні уми ще з давніх часів. А Карел Чапек навіть вигадав слово, що означає механічного слугу – робота, який виконує обов'язки замість людини.

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

Але виявляється, можна спробувати зробити робота за допомогою підручних засобів. Так, можна сконструювати оригінальний механізм із телефонної трубки, комп'ютерної мишки, зубної щітки, старого фотоапарата або всюдисущої пластикової пляшки. Розмістивши кілька датчиків на платформі, можна запрограмувати такого робота на виконання простих операцій: регулювання освітленості, подачу сигналів, рух по кімнаті. Звичайно, це далеко не багатофункціональний помічник із фантастичних фільмів, зате таке заняття розвиває винахідливість та творче інженерне мислення, і беззастережно викликає захоплення у тих, хто вважає роботобудування абсолютно не кустарною справою.

Кіборг із коробки

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

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

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

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

Мобільний механізм власного виготовлення

Навіть без спеціалізованих, і зазвичай дорогих наборів, цілком можливо зробити механічний маніпулятор підручними засобами. Отже, спалахнувши задумом створення робота, слід уважно проаналізувати запаси домашніх засіків на наявність незатребуваних запчастин, які можуть бути використані в цій творчій задумі. У хід підуть:

  • моторчик (наприклад від старої іграшки);
  • колеса від іграшкових автомобілів;
  • деталі конструкторів;
  • картонні коробки;
  • стрижні авторучок;
  • скотч різних видів;
  • клей;
  • гудзики, бусинки;
  • гвинтики, гайки, скріпки;
  • всілякі дроти;
  • лампочки;
  • батарейка (придатна моторчику за напругою).

Порада: «Незайвою навичкою при створенні робота буде вміння поводитися з паяльником, адже він допоможе надійно скріпити механізм, особливо електричні компоненти».

За допомогою цих загальнодоступних компонентів можна створити справжнє технічне диво.

Отже, щоб зробити свого робота з доступних у домашніх умовах матеріалів, слідує:

  1. підготувати знайдені деталі механізму, перевірити їх працездатність;
  2. намалювати макет майбутнього робота з огляду на готівкове обладнання;
  3. скласти корпус для робота з конструктора чи картонних деталей;
  4. приклеїти або спаяти запчастини, що відповідають за рух механізму (наприклад, скріпити моторчик робота з колісною базою);
  5. забезпечити електроживлення двигуна, приєднавши його провідником до відповідних контактів батарейки;
  6. доповнити тематичний декор приладу.

Порада: «Намистинки очей для робота, декоративні ріжки-вусики з дроту, ніжки-пружинки, діодні лампочки допоможуть одушевити навіть найнудніший механізм. Ці елементи можна кріпити за допомогою клею чи скотчу».

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

Відомі розумні автомати

Милий робот Валл-І має у своєму розпорядженні глядача однойменного фільму, змушуючи співпереживати його драматичним пригодам, тоді як Термінатор демонструє міць бездушної непереможної машини. Персонажі Зоряних воєн – вірні дроїди R2D2 і C3PO, супроводжують у подорожах далекою-далекою Галактикою, а романтичний Вертер навіть жертвує собою в сутичці з космічними піратами.

За межами кінематографа також є механічні роботи. Так, світ захоплюється вміннями робота-гуманоїда Асімо, який вміє ходити сходами, грати у футбол, подавати напої та ввічливо вітатись. Марсоходи Спіріт та К'юріосіті обладнані автономними хімічними лабораторіями, що дозволили зробити аналіз зразків марсіанських ґрунтів. Безпілотні автомобілі-роботи можуть пересуватися без участі людини, навіть складними міськими вулицями з високими ризиками непередбачених подій.

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

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

Адам

Німецький студент-нейробіолог зібрав андроїда на ім'я Адам. Його ім'я розшифровується як Advanced Dual Arm Manipulator або удосконалений дворучний маніпулятор. Руки робота мають п'ять ступенів свободи. Їх наводять на дію суглоби Robolink німецької компанії Igus. Для обертання суглобів Адама використовують зовнішні троси. Крім того, на голові Адама встановлено дві відеокамери, гучномовець, синтезатор мови, а також РК-панель, що імітує рухи губ робота.

MPR-1

Робот MPR-1 примітний тим, що він сконструйований не із заліза чи пластику, як більшість його побратимів, а з паперу. Як стверджує творець робота художник Kikousya, матеріали для MPR-1 – папір, кілька дюбелів та пара гумових стрічок. При цьому робот впевнено рухається, хоча його механічні елементи також виготовлені з паперу. Кривошипно-шатунний механізм забезпечує рух ніг робота, а його ступні створені так, що їхня поверхня завжди знаходиться паралельно підлозі.

Робот-папараці Boxie

Робот Boxie створений американським інженером Олександром Ребеном із Массачусетського технологічного інституту. Boxie, схожий на героя відомого всім мультфільму Валл-І, повинен допомогти співробітникам засобів масової інформації. Маленький та юркий папарацці повністю зроблений з картону, пересувається він за допомогою гусениць, а орієнтується на вулиці за допомогою ультразвуку, що допомагає йому долати різноманітні перешкоди. Інтерв'ю робот бере забавним дитячим голосом, а респондент будь-якої миті може перервати розмову, натиснувши на спеціальну кнопку. Boxie може записати близько шостої години відео і відправити зняте своєму господарю, використовуючи найближчу точку Wi-Fi.

Morphex

Норвезький інженер Каре Халворсен створив шестиногого робота Morphex, який вміє перетворюватися на м'яч і назад. Крім того, робот здатний пересуватися. Рух робота відбувається з допомогою двигунів, які штовхають його вперед. Робот рухається дугою, а не по прямій лінії. Через свій дизайн Morphex не може самостійно виправити траєкторію свого руху. Наразі Халворсен працює над тим, щоб вирішити це питання. Очікується цікаве оновлення: автор робота хоче додати 36 світлодіодів, які дозволили б Morphex змінювати кольори.

Truckbot

Американці Тім Хіс та Райан Хікмен вирішили створити невеликого робота, в основі якого знаходиться телефон Android. Створений ними робот Truckbot досить простий у плані його конструкції: телефон HTC G1 знаходиться на вершині робота, будучи його "мозком". На даний момент робот вміє пересуватися по плоскій поверхні, вибирати напрямки руху та супроводжувати усілякими фразами зіткнення з перешкодами.

Робот-пайовик

Одного разу американець Браян Дорі, який займається розробкою плат розширення, зіткнувся з наступною проблемою: запаювати дворядний гребінець пінів своїми руками дуже складно. Брайану був потрібен помічник, тому він вирішив створити робота, який умів би паяти. На розробку робота у Брайана пішло два місяці. Зроблений робот обладнаний двома паяльниками, які можуть запаювати два ряди контактів одночасно. Керувати роботом можна через ПК та планшет.

Mechatronic Tank

У кожній родині є своє улюблене хобі. Наприклад, у сім'ї американського інженера Роберта Бітті конструюють роботів. Роберту допомагають його дочки-підлітки, а дружина та новонароджена дочка надають їм моральну підтримку. Найбільш значний їх витвір - самохідна установка Mechatronic Tank. Завдяки 20-кілограмовій броні цей робот-охоронець – гроза будь-якого злочинця. Вісім ехолокаторів, встановлених на вежі робота, дозволяють йому розрахувати дистанцію до об'єктів, що знаходяться в полі зору, з точністю до дюйма. Робот ще стріляє металевими кулями зі швидкістю тисячу пострілів за хвилину.

Робобака

Американець на ім'я Макс створив міні-копію знаменитого. Несучу конструкцію робота Макс зробив з обрізків п'ятиміліметрового акрилового скла, а для скріплення всіх частин докупи їм були використані звичайні різьбові болти. Крім того, при створенні робота були використані мініатюрні сервоприводи, що відповідають за рух його кінцівок, а також деталі набору Arduino Mega, що координують руховий процес механічного пса.

Робот-куля

Робот-колобок був сконструйований Джером Демерс, працює він на сонячних батареях. Усередині робота є конденсатор, який з'єднаний із деталями живлення від сонця. Він потрібний для накопичення енергії в негоду. Коли сонячної енергії достатньо, куля починає котитися вперед.

Роборука

Спочатку викладачем Технологічного інституту Джорджії Джилом Вайнбергом було сконструйовано роборуку для барабанщика, якому ампутували руку. Потім Джил створив автоматизовану технологію синхронізації, завдяки якій дворукий барабанщик міг би користуватися роборукою як додаткова рука. Роборука реагує на манеру гри барабанщика, створюючи власний ритм. Також роборука вміє імпровізувати, аналізуючи у своїй ритм, у якому грає барабанщик.