Вступление.
Сегодня у каждого из нас дома присутствует выделенная линия с весьма «толстым» каналом. Так же у большинства есть wifi роутер, и опять таки большинство из нас не заботится о его отключе��ии когда уходим из дома. И действительно зачем? Протоколы защиты wifi весьма надежны, потребление роутера ничтожно. Следовательно ваш дом часто или всегда on-line. Но что это нам дает? Торентокачалки, личные разнообразные сервера и т.д.
Особо продвинутые из нас имеют умный дом с разнообразными «плюшками» и дистанционным мониторингом посредством интернета. Это правильное, но дорогое решение. Но все это есть смысл устанавливать только в своем жилье. В случае со съемным это абсурд.
Тем не менее обострения паранойи, гиперответственность или схожие факторы (вспомним классическую ситуацию – «А выключил ли я утюг?») создают нам определенный дискомфорт когда мы оставляем свое жилище. Особенно на длительный срок. Возникает вопрос – как так получается что квартира все время on-line, а я ничего не вижу и не контролирую. Странно.

Самое бюджетное решение вопросы поставить просто вебкамеру. Но одной будет мало, а развитая сеть видеонаблюдения это уже серьезная инфраструктура и весьма не дешевая. Были рассмотрены разные варианты и взвешены все плюсы и минусы. Оказалось что проще всего взять все-таки одну вебкамеру, но приделать к ней колеса (или гусеницы).
Я хорошо отдаю себе отчет что в этом месте мнения читателей разделятся на две большие группы. Первая будет утверждать что подобных проектов море в том числе и тут, а вторая группа будет утверждать что для реализации подобного нужно дружить с паяльником.
Вот так мы и подошли к основной цели этого материала – как реализовать этот проект максимально дешево и на уровне доступном многим без погружения в дебри электроники.
Забегая в перед могу сказать что бюджет минимален от 70$ и до пределов здравого смысла. И он сильно зависит от того насколько доступны составляющие и насколько запаслив конкретный человек. Этот ценник сформировался в Донецке (Украина), городе хоть и прогрессивном, но где достать определенные вещи все еще проблема.
Компоненты.
Все компоненты нашего wifi-бота подбирались исходя из отношения цена \ доступность. Готовые дорогие пластмасски для любителей рафинированного Arduino-строения были отметены сразу. Иначе бюджет был бы равен половине бюджета лунохода.
1. Шасси. Тут все просто – берем первый понравившийся «джип» на радио управлении (его мы выкинем поэтому можно и сломанный). Там, как правило, уже есть маршевый двигатель (который толкает вперед) и поворотный двигатель на переднем «мосте». Смело выдираем схему РУ (радио управления) оставив только провода к двигателями и провода из отсека с батарейками. Можно для общего развития потыкать батарейкой в моторы и посмотреть куда они крутятся при конкретной полярности. Вот таким образом наша тележка и будет перемещается.

Рис. 1 Шасси.
2. Мозги. Устройство для трансляции видеопотока и команд нашему шасси. Нам нужно устройство с wifi и портом для управления шасси. И поскольку малинки (Raspberry Pi) еще доступны далеко не всем остановимся на роутерах. На них лепят подобное потому что там есть Wifi, USB и возможность кастомизации благодаря кастомным прошивкам. Тут много издевались над D-link DIR-320, чем он только не трудился, но тут речь пойдет не о нем. Пора ему на пенсию. Прогресс не стоит на месте и теперь функции «пенсионера» на свои плечи может взвалить малыш TP-LINK TL-MR3020, хотя не факт что когда вы это прочтете будет более удачный вариант. Преимущества этой модели прежде всего в размере, во вторых он более шустрый. Также надо упомянут что вам не придется долго и нудно пилить прошивку, все уже сделано вот тут roboforum.ru/wiki/OR-WRT. Огромное спасибо ребятам с roboforum.ru за огромный вклад в домашнее роботостроение. Поэтому все что придется сделать это прошить роутер и немного сконфигурировать под ваши конкретные условия.

Рис. 2 Роутер TP-LINK TL-MR3020.
3. Всевидящее око. Вебкамера подойдет не любая, но этот тернистый пусть выбора уже пройден не единожды. Во первых она должна поддерживать UVC ( USB Video Class) вот тут www.ideasonboard.org/uvc есть список. И во вторых хорошо если она сама будет сжимать поток. Оптимальной является Logitech Webcam C100, дешево и качественно. С самой камерой ничего делать не надо, просто установить и подключить к USB роутера.

Рис. 3 Logitech Webcam C100
4. Драйвер управления двигателями L293D. Это схема с 16 ногами. Делает она следующее – если на один вход подать напряжение то моторчик крутится в одну сторону, а если на второй то в другую. Схема поддерживает как раз два моторчика. Если ее не использовать то придется заморачиваться с Н-мостами, но я обещал вас не грузить электроникой. Стоит она копейки, а головной боли на себя берет прилично.

Рис. 4 Драйвер управления двигателями L293D.
5. Микроконтроллер. Можно использовать любой который вы уже освоили. Главное чтоб он мог принять пару байт через UART и в зависимости от них выставить 0 или 1 на соответствующих ногах. Я использовал Arduino Mini Pro китайского разлива (прошу не бить ногами). Просто для начинающих это проще всего.

Рис 5. Микроконтроллер.
6. И последнее – аккумуляторы. Много ломал голову над питанием и пришел к выводу что проще всего взять четыре аккумулятора AA NiMh. Они достигают емкости 2500mAh, стоят дешево и не боятся перезаряда. Последнее нам важно потому что наш бот должен уметь дозаряжаться так как заряжать его может быть просто некому. Проще всего это организовать подключив аккумулятор напрямую к БП у которого нужное напряжение (6.4В) и который может обеспечивать ток равный потреблению всей тележки + еще 50-100мА для неспешной зарядки аккумулятора. Таким образом тележка будет кушать ток от БП, а излишек будет «стикать» в аккумулятор. И никакие схемы заряда тут не применяются! Да, матерые электронщики уже точат клинки, но все это работает уже неск��лько месяцев без видимого ущерба. Главное подобрать правильный БП. Ток можно ограничить резистором. Также я поставил диод и избавился от вероятного КЗ или переплюсовки (если какой-то Шумахер воткнется в зарядку в верх ногами). Такое возможно из-за особенностей конструкции, например можно просто упереться контактами в железную дверь. Вот тут peugeot-citroen.net/viewtopic.php?f=11&t=7332&p=104602 человек сделал исчерпывающий тест аккумуляторов за что ему отдельное спасибо.

Рис. 6. Зарядка.
Сборка.
На шасси устанавливаются аккумуляторы и для простоты монтажа делаем две длинные шины из жести которые проходят вдоль шасси. (Жесть от кофейных банок просто восхитительно паяется.) К одной подключаем «+» аккумуляторов через тумблер, которым будем обесточивать всю конструкцию. Минус естественно подключаем ко второй шине. Таким образом всех потребителей легко можно припаивать к шинам и не устраивать вакханалию проводных соединений. К этим же шинам припаиваем упругие контакты чтобы «упираться» в зарядку.

Рис. 7 Контакты для дозарядки.
Далее допиливаем роутер. Нам надо его внутренний UART вывести наружу и сделать так чтоб было легко туда подключать микроконтроллер. Припаивать намертво не советую потому что программировать микроконтроллер вы будете несколько раз пока не удовлетворитесь результатом. Подключать надо так: землю к земле, плюс питания к плюсу, RX к TX и TX к RX. Распиновка есть тут wiki.openwrt.org/toh/tp-link/tl-mr3020 Далее заливаем туда прошивку OR-WRT, подробнейшая инструкция есть по ссылке на wiki выше, и настраиваем ее под свою сеть. С роутером покончили.

Рис. 8 Подключение ардуины к роутеру.
Теперь инсталлируем драйвер двигателей. Четыре ноги к плюсу и 4 к минусу и еще 4 провода которые уже припаяем к ногам микроконтроллера («RA0», «RA1», «RA2», «RA3»), а к оставшимся припаиваем наши двигатели.

Рис. 9 Подключение L293D.
Это будет работать следующим образом если микроконтроллер устанавливает высокий уровень например на ноге к которой припаян провод RA0 мотор №1 крутится например в лево, а если RA1 то в право. Опережу вопрос что будет если установить две единицы – ничего страшного не случится, мотор будет крутится в обе стороны одновременно. Шутка. Двигатель не будет крутится. В случае с Н-мостом это было бы КЗ, но наша схема этого не боится, она дуракоупорная.
Микроконтроллер должен в непрерывном цикле просто устанавливать высокий уровень на ногах в соответствии с полученным байтом. И все.
Вот программа для микроконтроллера Arduino Mini Pro.
HomeBot1_min.pde
Для его прошивки нужен обычный UART адаптер для компа (не путать с RS232, это тоже самое но тут напряжения другие), я использую вообще старый дата кабель от телефонов сименс. Назначение контактов теже что и при подключении к роутеру но нам надо еще один контакт DTR из разъема RS232, он подключается к пину «GREEN» на микроконтроллере и когда начинается прошивка устанавливается в «0», благодаря чему контроллер понимает что его щас будут прошивать. Если этот контакт взять не откуда можно вовремя просто нажать на Reset самого МК, у меня это так и не получилось, но в интернетах есть живые очевидцы.
Главное следите что пины в программе совпадали с пинами физически. Если мотор не крутится или крутится не туда то просто проверите пайку, скорее всего перепутали. Протестировать можно это все очень просто – после прошивки не отключать МК от компа и просто посылать нужные байты в соответствующий порт.
Сам процесс прошивки прост до безобразия. Открываем скетч в Arduino IDE, в меню выбираем соответствующий порт и версию платы МК. Жмем ��нопку Upload и все. Не буду на этом останавливаться подробнее потому как тут полно статей на тему Arduino.
Итак на этом этапе у нас уже есть шасси которое ворочает моторами по приказам от МК который? в свою очередь? получает команды по UART. B у нас есть роутер который прошит и настроен на подключение к домашней сети по wifi.
Теперь надо немного изменить веб интерфейс сделать так чтоб команды с него отправлялись прямиком во внутренний UART роутера. Ну а из него соответственно в МК.
Я не стал заморачиваться и назначил для управления всем нам известные кнопки “A”,”S”,”D”,”W”, то есть если например МК получает байт «W» (0x57) он установит единицу на ноге к которой припаян провод отвечающий за движение вперед и т.д.
Необходимые файл:
index.html
serial.cgi
Или все вместе
И еще набор разных версий скетчей, в том числе и последнии версии с сервой.
Изменено там только то что ява скрипты обрабатывающие нажатие кнопок в вебинтерфейсе теперь посылают “A”,”S”,”D”,”W” в зависимости от нажатой кнопки. А сам скрипт который занимается отправкой перенаправлен на внутренний UART роутера. Файлами нужно заменить оригинальные файлы в директории WWW.
Проще всего это сделать с помощью замечательной программы winSCP winscp.net/eng/docs/lang:ru по SSH.
Вот пожалуй и все. Получив wifi бота вы можете доработать его по своему усмотрению. Добавить разное оборудование. Например заменить поворотный двигатель на сервопривод. Это поможет держать колеса повернутыми без затраты энергии, но можно обойтись и без этого.

Рис. 10 Сервопривод.
Зарядка выполнена и обычного трансформатора и выпрямителя. В качестве каркаса используется старая видеокассета, а контакты сделаны из «кофейной жести». Все что надо сделать это вырулить и упереться контактами в зарядку. Даже при перезаряде лишнее будет уходить через тепло.
Понимаю что все охватить все равно не смог и если будет достаточно вопросов могу сделать расширенную статью.
Напоследок немного видео.
