(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Easy-программирование танка-шпиона

Источник: habrahabr
0xy

Хочу рассказать Вам, как можно управлять айГаджетами с PC, да еще и программировать их. Все, что описано в статье применимо как к Brookstone Rover Spy Tank, так и к AR Drone Parrot. На "Хабре" уже ни раз были статьи о серии высокотехнологичных гаджетов AR Drone Parrot. Как-то мало интереса проявляется Brokstone Rover Spy Tank, хотя, как ни странно, эта игрушка хоть и не такая эффектная, в силу того, что не летает, зато более практичная. Во первых заряда 6 элементов пиатния серии АА хватает на несколько часов непрерывной работы. Во вторых, его можно использовать как гиковскую веб-камеру, с помощью которой можно следить за тем, что происходит дома с любого другого компьютера, ну и, как бонус, гонять своих домашних животных. Настроив доступ по RDP к домашнему компьютеру, можно управлять этим изделием, как мобильной веб-камерой, которая не просто показывает картинку, но еще и передвигается по помещению.

Начнем с того, что такое Brookstone Rover Spy Tank


Brookstone Rover Wireless Spy Tank - это беспроводной управляемый танк. В качестве пульта управления выступает iPhone или iPad Связь происходит напрямую, через созданную Wi-Fi точку. Устройство оснащено вмонтированной видео-камерой, с помощью которой вы сможете наблюдать за окружающими. Так же на устройстве находится микрофон и инфракрасный излучатель, для съемок в полной темноте. Питается чудо-танк от шести батареек АА. Для владельцев устрйоств на Android есть реализация RoverOpen и доступна для скачивания в GooglePlay маркете по адресу play.google.com/store/apps/details?id=org.almende.roveropen

Недавно на рынке появились танки второй версии. В них добавили пару улучшений. Добавлен сервопривод, с помощью которого угол поворота видеокамеры управляется из приложения и динамик, через который Вы можете воспроизводить звуки. Помимо всего перечисленного, в вездеход добавили встроенные фонари, яркостью которых так же можно управлять дистанционно через приложение. Для данной версии танка существуют официальные приложения в App Store и в Google Play.

Управляем с PC

Если у Вас нет айфона или андроид устройства, то Вы, скорее всего, вряд ли приобретет такой гаджет. Но если очень хочется? Что тогда?

Есть такой прекрасный программный комплекс - EZ-Builder, инструмент канадского товарища. В нем уже реализован протокол обмена с AR Drone Parrot и Brookstone Rover Spy Tank. Программа написана на C#. Управление проще паренной репы. Качаем софт отсюда

www.ez-robot.com/EZ-Builder/

Установка проста и не требует описания.

Easy программирование на EZ-Script

В EZ-Builder есть возможность писать простые скрипты на встреонном скриптовом языке. Он чем-то напоминает бейсик. EZ-Builder позволяет запрограммировать поведение игрушки, не будучи профессиональным роботостроителем и инженером-программистом. На языке EZ-Script можно писать простейшие программы, с помощью которых можно управлять нашим ровером. Чтобы освоить их и понять принцип, добавляем на рабочий стол EZ-Builder консоль управления: "Script Console". Для этого достаточно нажать F3 либо выбрать ее в пункте Add Control -> Scripting -> Script Console.

Разберем несколько команд:

  • Sleep (milliseconds) - Задать паузу в миллисекундах. Пример паузы на 1 секунду: Sleep(1000)
  • SleepRandom (lowMilliSec, highMilliSec) - Пауза на случайную величину. Пример: SleepRandom(1000, 5000)
  • Forward( [speed], [milliSeconds] ) - команда двигаться вперед. Принимает значение скорости от 0 до 255 и время работы двигателя в миллисекундах. По умолчанию - бесконечно. Примеры: Forward(), Forward(50), Forward(255, 5000)
  • Reverse( [speed], [milliSeconds] ) - обратное действие комнды Forward, т.е. движение назад.
  • Stop() - остановиться.
  • Left( [speed], [milliSeconds] ) - поворот влево. Принимает значение скорости и время работы в милисекундах..
  • Right( [speed], [milliSeconds] ) - поворот вправо
  • # - комментарии
  • :Label - метка для команды GOTO(LABEL). Пример: :MyLabel
  • Goto( label ) - переход на метку
  • Return() - выход из GOTO на продолжение программы
  • Halt() - прекратитьв ыполнение скрипта
  • HTTPGet( url ) - послать GET запрос по заданному адресу
  • Print( txt ) - вывести текст в отладочную консоль
  • Exec( EXE/Bat File, [parameters] ) - вызвать внешнюю программу Windows
  • Browser( url ) - запустить браузер по заданному адресу
  • Tweet( message ) - послать сообщение в сервис Twitter.com. Для этого нужно сконфигурировать Твит-модуль: File->Twitter Settings. Пример: Tweet("I Love EZ-Robot!"). Пример отправки скриншота с камеры устроства в твиттер: ControlCommand( "Camera", CameraTweet, "Our New Image" )
  • ControlCommand(windowName, ControlCommandParameter, [values]) - выполнить команду, обратившись к компоненте по ее имени, где windowName - имя окна на рабочем столе EZ-Builder, ControlCommandParameter - команда, [values] - дополнительные необязательные параметры, зависящие от контекста вызова.

Получить справку по всем командам всегда можно на специальных вкладках либо вызвав соответствующий хелп через:

Help -> Print Script Manual

Учим следить за объектами

В разделе Tracking Types ставим галочку у пунтка Color. Кладем перед камерой нашего устройства яркий предмет (лучше всего красного цвета). Переключаемся во вкладку Color, выбираем минимальный размер детектируемого предмета (Min Object Size) и выставляем яркость объекта (Object Brightness). Как только предмет будет опознан, наш танк начнет поворачиваться в его сторону, если мы попытаемся его передвинуть. Я бы посоветовал в настройках в разделе Tracking Quadrant Settings сдвинуть вертикальные линии немного ближе к краю, чтобы робот более адекватно реагировал на передвижения объекта. Далее, играясь разными параметрами Вы сможете самостоятельно добиться нужных настроек и оптимальных значений.

Простая программа


Теперь, агрегируя полученную информацию, связываем все воедино. Добавляем на рабочий стол EZ-Builder компоненту Script Manager: Ad Control -> Scripting -> EZ-Script Manager. В открывшемся окне нажимаем кнопку Add Script. В поле Name пишем: PursuitTarget. Это будет название нашей программы, отвечающей за движение. Она будет очень проста и состоять из одной строчки. Вообще надо сказать что в EZ-Builder все компоненты между собой связываются по именам окон и названиям скриптов. Пишем программу следующего содержания:

forward(255)

Это нам нужно только для того, чтобы выставить скорость движения вперед на максимум, так как в программе поиска цели мы ее снизим. Снова жмем Add Script, в поле Name пишем: FindTarget и, соответственно сам текст программы:

$findTargetSpeed = 100
$iteration = 0

:Loop1

 reverse($findTargetSpeed,1000)

 # Процесс осмотра
 left($findTargetSpeed, 2000)
 right($findTargetSpeed, 4000)
 left($findTargetSpeed, 2000)

 $iteration = $iteration + 1

 if ($iteration > 4)
   return()

goto(Loop1)

stop()

Теперь жмем кнопку Config на панели Camera, переходим на вкладку Scripts и в разделе Tracking Scripts в поле Tracking Start пишем вызов нашего срипта PursuitTarget:

ControlCommand( "Script Manager", ScriptStart, "PursuitTarget" )

а в поле Tracking End вписываем:

ControlCommand( "Script Manager", ScriptStart, "FindTarget" )

Переходим на вкладку Tracking Settings в раздел Movement Tracking и ставим галочку у соответствующей надписи. Так же ставим галочку у надписи Allow Left/Right Movement. Сохраняем. Жмем Refresh Device List, выбираем Video Device: Brookstone_Rover, ставим галочку на Debug и на Color. Переходим на вкладку Color и выставляем размер и яркость преследуемого объекта. Теперь достаточно кинуть красный мячик перед "носом" нашего терминатора, как он тут же распознает его и активируется. После чего он начнет его преследование. Как только робот будет наталкиваться на него, то мячик, скорее всего, будет откатываться в сторону. Робот будет поворачиваться в его строну, а если он его вовсе потеряет из виду, то он начнет отъезжать назад, поворачиваясь из стороны в сторону и пытаясь найти преследуемую цель.

Программирование AR Drone Parrot

Оно ничем не отличается. Добавляются только команды запуска двигателей и посадки.

Что дальше?

В следующей статье есть желание описать пример работы на C#, при этом прикручиваем лазерный фонарик и в купе с вебкамерой превращаем его в лазерный дальномер.

 

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 11.12.2012 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
CAD Import .NET Professional пользовательская
TeeBI for RAD Studio Suite with source code single license
IBM RATIONAL Quality Manager Quality Professional Authorized User Single Install License + Sw Subscription & Support 12 Months
Dr.Web Security Space, продление лицензии на 1 год, 1 ПК
Купить Антивирус Dr.Web Server Security Suite для сервера
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Программирование в AutoCAD
СУБД Oracle "с нуля"
Adobe Photoshop: алхимия дизайна
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100