Давно мріяв зробити Wi-Fi робота, яким можна було б керувати віддалено. І ось нарешті настав той день коли я зміг управляти роботом через інтернет, бачити і чути все що відбувається навколо нього.
Зацікавлених запрошую під кат
Для створення робота використовувалися наступні комплектуючі:
Набір для зборки платформи робота
Материнська плата робоконтроллера
Arduino Nano v.7
драйвер двигунів
Маршрутизатор TP-Link TL-WR703N
Мініатюрний USB 2.0 Hub
Купував комплектуючі тут.
Ось так виглядає зібраний мною робот, без верхньої кришки.
Тепер все по порядку:
Збірка платформи робота
Розташування компонентів на материнській платі
Я встановив тільки Arduino Nano, драйвер двигунів і звуковий випромінювач HC.
Роутер wr703N прикріпив до нижньої частини платформи робота на двосторонній скотч
Веб камера прикріплена на меблевий куточок, до штанів отворів платформи, передбачених для сервомоторів.
Прошив роутер прошивкою CyberWrt.
СyberWrt - це прошивка зібрана на базі OpenWrt і призначена в першу чергу для роботів, розумного будинку і інших пристроїв побудованих на базі популярних моделей роутерів Tp-Link mr3020 b Wr703N. У СyberWrt максимально можливий обсяг вільного місця для інсталяції пакетів - 1.25Мб. За замовчуванням встановлено веб сервер і всі операції можна проводити через вбудований веб інтерфейс. Відразу після перепрошивки, роутер доступний в мережі по кабелю і по WiFi, як точка доступу. Через веб-інтерфейс можна працювати в режимі «командного рядка» - через веб термінал і в файловому менеджері, в якому можна редагувати, завантажувати, видаляти, створювати, копіювати файли і багато іншого.
Після прошивки роутера, він доступний як WiFi точка доступу з ім'ям «CyberBot», підключаємося до нього заходимо на головну сторінку роутера
Ось так виглядає веб інтерфейс відразу після прошивки
Встановлюємо модулі Драйвер FTDI, Драйвер video і CyberBot-2
Прошиваємо контролер Ардуіно.
Код програми робота вийшов досить простим, але його досить для того що б віддалено управляти роботом через локальну мережу або інтернет
Код адаптований під контролери Arduino з ATmega168 / 328 на борту і використовує бібліотеку CyberLib
Ця бібліотека допомагає з контролера вичавити максимум його можливостей і зменшити обсяг кінцевого коду
У коді використовується WDT, для того що б робот не зміг зависнути.
Так само код підтримує управління камерою по осях X і Y, але у мене не було вільних сервомоторів і я не зміг скористатися цією функцією
Код для Arduino
Все зібрано і прошито, тепер включаємо робота і управляємо їм віддалено.
На PC крім клавіш на екрані можна керувати ще з клавіатури, клавішами W, A, D, S, X
Надалі планую навчити робота орієнтуватися в просторі і малювати карту приміщення.