- Wifi робот с камерой своими руками
- Кто сейчас на форуме
- Wi-Fi машинка с камерой своими руками
- ОПИСАНИЕ
- ВИДЕО
- КОМПОНЕНТЫ
- Робот на Arduino Uno, управляемый по WiFi
- Шаги для настройки приложения Blynk
- Необходимые компоненты
- Работа схемы
- Исходный код программы
- DIY: Сборка wi-fi робота-шпиона
- Функциональный вид робота
- Блок управления
- it_donnet
- Радиоуправляемая Wi-Fi машинка с камерой
- Начало
- Роутер
- Arduino и соединение
- Программная часть
- Заключение
- Примечания
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 показаны в видео в конце статьи.
Необходимые компоненты
- Плата Arduino Uno (купить на AliExpress).
- Wi-Fi модуль ESP8266 (купить на AliExpress).
- Драйвер двигателей L293D (купить на AliExpress).
- Электродвигатели постоянного тока.
- USB кабель.
- Источник питания.
- Соединительные провода.
- Батарейки.
- Потенциометр 10 кОм (опционально).
- Шасси робота с колесами.
- Мобильный телефон с Android.
- Приложение 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). Это значительно уменьшит бюджет.
Свой взгляд на теорию и проектирование современных роботов изложен здесь.
Функциональный вид робота
- Перемещение по поверхности согласно командам оператора,
- Трансляция видео с широким углом обзора.
Блок управления
Универсальный контроллер 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:
Демон [продолжение]
Заливаем на роутер наш демон, добавляем его в автозагрузку.
Теперь ставим 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.
Источник