Wifi робот с камерой своими руками

Wifi робот с камерой своими руками

Так как моя статья WiFi Robot c WiFi Видео Камерой

Зависла ещё с октября на редактировании оставлю тут материал — может кому будет интересно

https://www.youtube.com/watch?v=9D6BdcozyGc
Видео заезда Котам понравилось.

Ну и блок схема этого робота (упрощённая)

Для управления используется TL-WR703N Wifi router (можно любой другой) с установленной прошивкой OPENWRT + Arduino Mega.

Программа управления и прошивка тут http://stalker-worlds.ru/files/56_wifi- . ramma.html (здесь выложить не могу — большой размер)

Для Arduino скетч прилагается (тестовый).


Обратите внимание что настройки управляющих клавиш в программе пустые (надо назначить самим).

Назначать клавиши нужно именно Те что, прописаны в прошивке Arduino платы.
Обязательно назначить клавишу стоп! (иначе ваш робот будет ездить безостановочно).
В поле Адрес вписать IP для доступа до Веб камеры робота.

Шасси брал готовое Rover 5 Гусеничная платформа — наберите в поисковике, полно в продаже.
Есть на 2 или 4 мотора. С энкодерами и без них.
Вебка самая обычная (дешёвая).
Поворотная платформа для вебки тоже есть в продаже.

Также есть монтажка с контролером двигателей и кучей других вкусностей

_________________
«Бить не нужно, а не вникнут — разъяснять» © В.С. Высоцкий
мой логин в скайпе — rus_did

Реклама
Страница 1 из 1 [ 1 сообщение ]

Часовой пояс: UTC + 3 часа

Кто сейчас на форуме

Сейчас этот форум просматривают: Treyr и гости: 38

Источник

Wi-Fi машинка с камерой своими руками

ОПИСАНИЕ

Машинка с камерой и управлением через интернет на Arduino. Основана на китайской IP камере =) Базируется на самом дешёвом шасси для роботов-машинок (платформа, два приводных колеса, одно ведомое), в связи с особенностями камеры, машинка управляется весьма необычно, но вполне адекватно для простоты и доступности своего устройства.

  • Фишки, унаследованные от камеры:
    • Картинка 1280×720
    • Ночной режим (с ИК подсветкой)
    • Запись видео и съёмка фото
    • Режим рации (двухсторонняя аудиосвязь)
  • Управление из родного приложения
  • Настройки скорости и продолжительности движения

ВИДЕО

КОМПОНЕНТЫ

Каталоги ссылок на Алиэкспресс на этом сайте:

Стараюсь оставлять ссылки только на проверенные крупные магазины, из которых заказываю сам. Также по первые ссылки ведут по возможности на минимальное количество магазинов, чтобы минимально платить за доставку. Если какие-то ссылки не работают, можно поискать аналогичную железку в каталоге Ардуино модулей . Также проект можно попробовать собрать из компонентов моего набора GyverKIT .

Источник

Робот на Arduino Uno, управляемый по WiFi

Роботы являются одними из самых популярных устройств, конструируемыми энтузиастами в микроконтроллерной технике. Мы на нашем сайте уже рассматривали проекты различных роботов на основе платы Arduino Uno:

А в этой статье мы рассмотрим создание робота на основе Arduino Uno, управляемого по WiFi со смартфона с помощью приложения Blynk App. Для демонстрации работы этого робота мы используем мобильное приложение для Android под названием “Blynk”. Blynk – это совместимое приложение с Arduino, удобное для создания различных проектов для интернета вещей (IoT based project). Это приложение можно скачать из Google Play Store, его легко установить и настроить.

Шаги для настройки приложения Blynk

1. Сначала скачайте его из Google Play Store и установите его на свой мобильный телефон с Android.

2. После этого необходимо создать аккаунт если у вас его нет. Также вы можете использовать Gmail аккаунт (если он у вас есть).

3. Теперь выберите Arduino Board и задайте имя для своего проекта.

4. Запишите код авторизации токена (Auth Token Code) или просто перешлите его на свой Email аккаунт и затем скопируйте и вставьте его в свою программу (скетч) для Arduino.

5. Запишите свой Auth Token Code в программе (скетче) для Arduino.

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = «caa17a11c0124d4083d0eaa995f45917»;

6. Затем кликните на «создать кнопку» (create button) в приложении Blynk.

7. Теперь выберите Joystick Widget, Click on Joystick, Configure the Joystick (более подробно смотрите в видео в конце статьи) и нажмите кнопку возвращения назад back button.

Читайте также:  Амуниция своими руками для собаки

8. После этого нажмите кнопку Play в верхнем правом углу экрана.

Более подробно процессы настройки приложения Blynk показаны в видео в конце статьи.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Wi-Fi модуль ESP8266 (купить на AliExpress).
  3. Драйвер двигателей L293D (купить на AliExpress).
  4. Электродвигатели постоянного тока.
  5. USB кабель.
  6. Источник питания.
  7. Соединительные провода.
  8. Батарейки.
  9. Потенциометр 10 кОм (опционально).
  10. Шасси робота с колесами.
  11. Мобильный телефон с Android.
  12. Приложение Blynk.

Работа схемы

Схема устройства представлена на следующем рисунке.

Основными элементами в ней являются плата Arduino Uno и Wi-Fi модуль ESP8266. Контакты Vcc и GND модуля ESP8266 непосредственно подключены к контактам 3.3V и GND платы Arduino, контакт CH_PD также подсоединен к контакту 3.3V. Контакты Tx и Rx модуля ESP8266 подключены к контактам 2 и 3 платы Arduino. Software Serial Library (библиотека последовательной связи) используется для осуществления последовательной связи на контактах 2 и 3 платы Arduino. В статье про передачу Email с использованием Arduino мы достаточно подробно останавливались на подключении WiFi модуля ESP8266 к плате Arduino, поэтому здесь эти вопросы рассматривать не будем.

Микросхема драйвера двигателей L293D используется для управления двигателями постоянного тока. Входные контакты микросхемы драйвера мотора непосредственно подключены к контактам 8, 9, 10 и 11 платы Arduino. Электродвигатели постоянного тока подключены к выходным контактам микросхемы L293D. Для питания схемы и двигателей постоянного тока мы использовали батарейку на 9 Вольт.

Структурная схема работы устройства показана на следующем рисунке.

Работа схемы достаточно проста – нам в приложении Blynk на смартфоне необходимо просто перемещать джойстик в том направлении, в котором мы хотим чтобы двигался робот. Если мы отпустим кнопку джойстика в приложении, то его рычаг переместится в центр и робот остановится.

Приложение Blynk передает значения двух осей джойстика плате Arduino при помощи Wi-Fi соединения. Плата Arduino принимает эти значения, сравнивает их с заранее определенными значениями и по результатам сравнения выдает команды на движения робота.

Исходный код программы

Код программы практически полностью готов в среде Arduino IDE. Нам необходимо просто скачать Blynk Library для Arduino. И после внесения ряда изменений мы получим программу для управления роботом по Wi-Fi.

В программе мы первым делом должны подключить все необходимые библиотеки, затем мы должны войти в строку авторизации (auth string) в токене авторизации (Auth Token) от приложения Blynk. Далее мы подсоединяем последовательный контакт модуля Wi-Fi к Arduino с помощью библиотеки последовательной связи. RX подсоединяем к контакту 2, а TX – к контакту 3.

#define BLYNK_PRINT Serial // поместите это в комментарий чтобы отключить печать и сэкономить пространство
#include
#include
// Set ESP8266 Serial object
#include
SoftwareSerial EspSerial(2, 3); // RX, TX
ESP8266 wifi(EspSerial);
// You should get Auth Token in the Blynk App (вы должны получить Auth Token в приложении Blynk)
// Go to the Project Settings (nut icon). (зайдите в настройки проекта)
char auth[] = «caa17a11c0124d4083d0eaa995f45917»;

Затем мы должны сконфигурировать контакты 8,9,10,11 в режим работы на вывод данных чтобы через них передавать инструкции роботу куда ему двигаться, а также запрограммировать функции для движения робота в заданных направлениях: void forward(), void backward(),void right() and void left() .

После этого в функции setup мы должны инициализировать все необходимые устройства, задать направление работы контактов, инициализировать последовательную связь, ввести имя пользователя и пароль для Wi-Fi соединения.

void setup()
<
// установить бодовую скорость передачи
Serial.begin(9600);
delay(10);
// установка бодовой скорости для ESP8266
// 9600 рекомендовано для библиотеки Software Serial
EspSerial.begin(9600);
delay(10);
Blynk.begin(auth, wifi, «username», «password»); // имя пользователя и пароль для wifi
pinMode(m11, OUTPUT);
pinMode(m12, OUTPUT);
pinMode(m21, OUTPUT);
pinMode(m22, OUTPUT);
>

После этого мы в программе должны проверить ряд условий для управления роботом. Здесь мы выбрали виртуальный контакт 1 (V1) чтобы получать информацию о требуемом направлении движения от приложения Blynk. Поскольку мы выбрали соответствующую опцию в приложении, то мы можем получать значения осей x и y на этом же самом контакте.

BLYNK_WRITE(V1)
<
int x = param[0].asInt();
int y = param[1].asInt();
if(y>220)
forward();
else if(y
backward();
else if(x>220)
right();
else if(x
left();
else
Stop();
>

Далее мы просто должны использовать функцию blynk в цикле loop.

Источник

DIY: Сборка wi-fi робота-шпиона

В сети выложено огромное количество инструкций по сборке различных моделей роботов. Попробуем собрать свою собственную модель домашнего Wi-Fi робота используя информацию с форума Cyber-place, детали частично с интернет-магазина Сarduino. Многие запчасти выгодно заказывать напрямую из Китая (Ebay, Aliexpress). Это значительно уменьшит бюджет.
Свой взгляд на теорию и проектирование современных роботов изложен здесь.

Читайте также:  Гель для посуды своими руками чтобы пенился

Функциональный вид робота

  1. Перемещение по поверхности согласно командам оператора,
  2. Трансляция видео с широким углом обзора.

Блок управления

Универсальный контроллер Carduino Nano V7

Микроконтроллер: ATmega328
Входное напряжение: от 5V до 30V
Тактовая частота: 16 МГц
Flash память: 32 KB
Оперативная память (SRAM): 2 Кб

Материнская плата робота «CyberBot»

Плата предназначена для подключения к ней различных устройств Arduino или аналогов устройств через стандартные интерфейсы.

Модуль управления двигателями — Motor Shield

К нему можно подключить и управлять двумя двигателями постоянного тока или 4 шаговыми двигателями. Содержит двухканальный драйвер двигателя HG7881.
Питание: 2.5V до 12V
Потребление тока на один канал:: до 800 мА

Редукторные двигатели

Мотор-редуктор с передаточным соотношением 1:48
Диапазон напряжения от 3V до 6V.
Скоростью вращения колеса 48 м/мин.
Ток холостого хода (6в): 120mA
Уровень шума:

it_donnet

Блог о сетевых устройствах, тестировании различных устройств. На сайте вы найдете инструкции для настройки различных устройств. А раздел «Путешествие» поможет познакомиться с интересными местами.

Источник

Радиоуправляемая Wi-Fi машинка с камерой

Начало

Роутер

Обнаружив в своем городе роутер D-Link DIR-320, у которого есть USB порт, сразу же его купил. Придя домой, узнал, что у этого роутера есть невыведенный UART-порт. Таким образом, у нас появляется канал связи между роутером и ардуиной.
Для роутера я выбрал прошивку OpenWrt. Можно скачать готовую прошивку с OpenWrt для DIR-320 это /brcm47xx/openwrt-brcm47xx-squashfs.trx»>здесь. Уже не помню почему, но я решил собрать прошивку сам (подробно описано тут). Для этого понадобится Linux (я собирал на Ubuntu 11.10). Для начала, скачаем исходники прошивки и соберем все, что нужно:

Выбираем следующие пакеты:

  • Target System —> Broadcom BCM947xx/953xx – ядро 2.6
  • Image configuration —> LAN IP Address —> – [не обязательно] Можно выбрать IP-адрес, который будет у роутера после загрузки ядра и всех модулей
  • Kernel modules —> Filesystems —> kmod-fs-ext3 — Об этом позже
  • Utilities —> Filesystem —> e2fsprogs – И об этом
  • Utilities —> disc —> block-extroot – И об этом тоже
  • Kernel modules —> USB Support —> kmod-usb-core – поддержка USB
  • Kernel modules —> USB Support —> kmod-usb-ohci – для USB-хаба. Зачем он? Об этом тоже позже
  • Kernel modules —> USB Support —> kmod-usb-storage – поддержка USB-флешек
  • Kernel modules —> USB Support —> kmod-usb2 – USB 2.0
  • Administration —> webif —> webif-applications – админка
  • Kernel modules —> Video Support —> kmod-usb-video-core – поддержка USB-video
  • Kernel modules —> Video Support —> kmod-usb-video-uvc – поддержка UVC-веб камер

Последний пункт выбирайте сами, у меня была UVC веб камера.
Так зачем же мы выбрали те пакеты, назначение которых я не объяснил? Проблема в том, что объём флэш-памяти установленной в роутере — 4МБ, что может помешать дальнейшей нашей работе. Мы же перенесем rootfs на флешку, и роутер будет грузиться с нее.
Кстати, про флэш-память: нужно не забыть следующее:
make kernel_menuconfig

  • Device Drivers —> Memory Technology Device (MTD) support —> RAM/ROM/Flash chip drivers —> [*] Flash chip driver advanced configuration options —> [*] Specific CFI Flash geometry selection —> [*] Support 8-bit buswidth
  • Device Drivers —> Memory Technology Device (MTD) support —> RAM/ROM/Flash chip drivers —> [*] Flash chip driver advanced configuration options —> [*] Specific CFI Flash geometry selection —> [*] Support 16-bit buswidth

И еще в Kernel Hacking’е нужно исправить console=/dev/ttyS0 на console=/dev/null , чтоб роутер не использовал этот порт как отладочный.

Компилируем и прошиваем

Теперь нужно ее прошить:
Для bash’а:

Настройка загрузки с флешки

После первого включения заходим на веб-интерфейс роутера и изменяем пароль. Теперь подключаемся к нему через SSH. Нужно настроить загрузку с флешки, для этого сначала нужно ее разметить. У меня было два раздела: первый – ext3-раздел для rootfs, второй – swap. Открываем /etc/config/fstab в vim’е и пишем то, что соответствует нашей фелшке. У меня так:

Сохраняем, перезагружаемся ( reboot ).

Демон

Управлять двигателями будет ардуина, поэтому напишем демон, который будет перенаправлять всё, что пришло на TCP порт 5554 в /dev/ttyS0.
Мой скомпилированный вариант демона искать в архиве (card)
Компилируем с помощью gcc, который был собран в процессе подготовки к сборке прошивки:

Небольшое отступление об удобстве организации работы с роутером
  • После каждого включения мне приходилось писать opkg update , поэтому я его добавил в /etc/rc.local
  • Довольно удобно использовать FTP-сервер. Я поставил pure-ftpd. Для этого пишем:

Добавим его в /etc/rc.local:

  • Удобно будет сменить веб-интерфейс на luci, для этого пишем:
  • Демон [продолжение]

    Заливаем на роутер наш демон, добавляем его в автозагрузку.
    Теперь ставим mjpg-streamer:

    Пишем в /etc/config/mjpg-stramer следующие:

    Пробуем подключить камеру. Если все нормально, то можно будет увидеть изображение тут:
    /?action=stream»>http:// /?action=stream.

    Arduino и соединение

    Для начала определимся со схемой подключения двигателей. Так как я брал корпус от уже готовой машинки, то мне с двигателями повезло – они уже там были. Передний отвечал за повороты (влево, вправо, прямо), а задний за движение (мне пришлось его поменять на двигатель кнопки блокировки дверей какого-то ВАЗа). Управлять нагрузками можно ардуиной с помощью полевых транзисторов (95N2LH5, но я использовал IRF 630, потому что и эти ели нашел в своём городе). Подключение такое: земля транзистора – к управляющему пину ардуины, source – к земле ардуины и минусу питания нагрузки, drain – к минусу нагрузки, плюс питания к плюсу нагрузки. Но таким образом мы сможем ездить только вперед и поворачивать только в одну сторону. Для того чтобы справиться с проблемой, к нам на помощь спешит реле с двумя группами контактов. У меня один двигатель (передний) питался 6 вольтами, а другой 12. При этом использовалось два 6 вольтовых аккумулятора (один из них — свинцово-кислотный от бесперебойника), учитывая, что минус роутера позже придется соединить с землей ардуины, то получить 6 вольт для роутера не получается (проверяйте сколько вольт подаёте на роутер — мне пришлось покупать еще один после того, как я подал на него 12 вольт). Поэтому пришлось использовать еще одну релюшку для подачи/неподачи питания на передний двигатель.

    Схему рисовал давно. Теперь там все транзисторы полевые и нет резисторов.
    Теперь о самом коде. У меня все довольно просто – есть 4 команды, у которых есть свой параметр размером 1 байт:

    • m – Отвечает за напряжение, а, следовательно, и за скорость, на двигателе значение от 0 до 255
    • r – Отвечает за повороты. “1” – поворачивать, “0” – не поворачивать
    • n – “1” – ехать назад, “0” – ехать вперед
    • e – “1” – поворачивать в другую сторону

    Вот мой код программы для ардуины:

    Как видно, задний двигатель у меня подключен к 3 пину, передний – к 7, реле заднего – к 2 пину, переднего – к 4. Так как 3 – это ШИМ-пин, то используя analogWrite(3, val);, где val от 0 до 255, мы можем управлять напряжением на двигателе.
    Разбираем наш маршрутизатор. Видим UART порт. Соединяем его с ардуиной.

    Теперь смотрим, как это все работает. Подключаемся телнетом к нашему порту и проверяем:

    • n1 – щелкает реле
    • m — колёса начинают немного вращаться
    • n0 – колеса вращаются в другую сторону
    • m0 – колеса перестают вращаться
    • r1 – поворачивают передние колеса
    • e1 – колеса поворачивают в другую сторону
    • r0 – колеса становятся прямо
    • e0 – щелкает реле

    Для отладки работы с ком портом на роутере можно использовать minicom ( opkg install minicom ).

    Программная часть

    В архиве моя программка для управления машинкой (rotate и power из архива нужно скопировать в /bin/ на роутере, card – мой демон). Работает только с джойстиком. На вкладке планирование вы можете написать bash скрипт (не забудьте opkg install bash на роутере) для его выполнения с помощью демона cron. Так как этот демон нужно после изменения его настроек перезапускать, моя программа запускает скрипт по адресу /cron-restart»>http:// /cron-restart. Поэтому нужно его создать (/www/cgi-bin/cron-restart) и не забыть сделать исполняемым. Код:

    Заключение

    К такому девайсу можно присоединить Bluetooth (не пробовал, но драйвера есть), 3G-модем (интернет получить у меня получилось, но похоже провайдер не выдаёт каждому клиенту собственный внешний ip-адрес, поэтому придется использовать что-то типа back-connect’а или vpn), gps приёмник (проблем возникнуть не должно – ведь он должен определиться как последовательный порт).

    Примечания

    Если вдруг роутер перезагружается, то стоит убрать от него подальше все провода или все их экранировать. Экспериментальным путем я понял, что роутер может перезагрузиться от наводок, поэтому пришлось обмотать хаб несколькими слоями изоляции и алюминиевой фольги.
    И вот еще. Вместо роутера можно использовать Raspberry Pi, а вместо транзисторов и реле — Arduino Motor Shield.

    Источник

    Читайте также:  Делаем вечный антикор своими руками
    Оцените статью