 |
Download
Download RoboHoby Software
SpyGear's 'Spy Robot'
Article about reconstruction RC toy 'Spy Robot'
How to make robot with web camera or
with cell phone on a board from it
Load to your phone
Download RoboHobbyJ2ME application
right to your Siemens S75 cell phone.
Now no need to load it to PC, unzip, etc.
RoboHobby Linux Live CD
RoboHobby Linux Live CD
is ready for download.
Projects
List of old and current RoboHobby projects.
Hardware
List of what we use as a hardware
Software
List of software, we use in our projects
Computer vision
Vision is the main sense of our robots.
See some Java algorithms we use
Tips-n-Tricks
Some advices about hardware and software tricks
PIC Programming
(firmware)
Assembler program for PIC16F628A
Communication program for sending
commands from cell phone to motors.
Driver for motor controller.
RoboHobbyPlugin
Open Source project on
SourceForge, Java brain
for the robot
Java to EXE
Article about how to compile Java
programs to native binary code
(EXE for Windows)
Range of Bluetooth, Wi-Fi, ZigBee
What is the a real connection distance
of typical Bluetooth and Wi-Fi,
ZigBee or other RF devices?
Sun SPOTs (in Russian)
Sun SPOT for hobby robotics.
Introduction lecture in Russian.
About
Some info about this site
About EATJ Java hosting
Some info about EATJ Java server-side
JSP/Servlet hosting
|
In German
Short description of www.RoboHobby.com
in German
In French
Short description of www.RoboHobby.com
in French
In Spanish
Short description of www.RoboHobby.com
in Spanish
In Italian
Short description of www.RoboHobby.com
in Italian
In Russian
Short description of www.RoboHobby.com
in Russian
|
|
|
www.RoboHobby.com
|
Sun SPOT устройства
Возможности и перспективы
Краткий обзор
Что такое Sun SPOT?
Фирма SUN Microsystems, один из мировых лидеров в производстве програмного
обеспечения, серверов, систем хранения данных и сервисов стала выпускать
портативные устройства,
работающие по протоколу ZigBee и
имеющие Java интерпретатор (J2ME), тесно интегрированный с аппаратной частью.
 Sun SPOT - внешний вид устройства с закрытой крышкой.
Sun SPOT - внешний вид устройства с открытой крышкой.
Устройства выпускаются в двух вариантах:
а) Имеющее только базовую (материнскую) плату
Обычно используется как базовая станция, соединённая с компьютером (под Windows, Linux, и т.д)
б) Имеющее и базовую плату и плату расширения с набором сенсоров и контактов для подключения
дополнительных устройств.
Sun SPOT - Разъём мини-USB. Sun SPOT - клиент USB.
Обратите внимание - текущая версия Sun SPOT поддерживает только
клиентскую часть протокола USB.
Как мне удалось понять Хост USB уже реализован аппаратно (есть сигналы Host USB)
Но текущая версия программного обеспечения (JVM) не поддерживает Хост режим.
Как говорится - связь есть, но она не работает.
Java
Интерпретатор Java (в версии «Java Micro edition» – J2ME) одна из важнейших составляющих Sun SPOT,
так как позволяет легко програмировать портативное устройство, используя один из лучших на
сегодняшний день объектно-ориентированных языков программирования высокого уровня — Java.
Фирма SUN использует в данных устройствах виртуальную машину Java собственного производства «Squawk».
Программировать устройства можно используя USB интерфейс или удалённо, через OTA (Over the Air)
– без непосредственного контакта с устройством, так как это делается например в сотовых телефонах,
когда пользователь загружает игру в телефон.
Однако тут (в Sun SPOT) загрузка новой управляющей программы происходит по команде извне,
от удалённого устройства, а не по нажатию клавиш на самом устройстве.
Сравнение J2ME Sun SPOT и J2ME JVM в сотовых телефонах
Можно сравнить Java в типовом сотовом телефоне и Java в Sun SPOT с точки зрения
программиста-разроботчика.
Обслуживание внешней периферии
Sun SPOT ориентирован на работу с подключаемыми устпрйствами.
У него есть множество путей взаимодействия с подключаемой периферией.
На сенсорной плате есть контакты для подключения цифровыз и аналоговых устройств.
Поддерживается и протокол SPI, последовательный (serial) интерфейс.
У сотовых телефонов это всегде одна из наибольших проблем.
Изначально эти устройства не были разработаны для подключения к ним периферии.
И даже заявленный в стандарте последовательный протокол по сериальному порту на самом деле как
правило не работает. Он просто не реализован большинством производителей.
Из известных фирм только Siemens (некоторые модели) и Sony-Ericson имеют эту возможность.
То есть на этих телефонах можно запускать Java программы, который выводят данные через
последовательный порт, для дальнейшего их использования уже вне телефона.
Обратите внимание — практически все современные телефоны можно подключить к компьютеру
(обычно это PC под Windows), но (!) далеко не все телефоны позволяют из Java выводить
что-либо в порт или принимать что-либо из порта.
Коннект со внешними утройствами из сотового телефона возможен так же с использование протокола BlueTooth.
Здесь снова та же проблема — многие телефоны позволяют доступ извне к их файловой системе,
однако далеко не все могут из Java передавать данные по Bluetooth.
А вот Sun SPOT всегда имеет возможность установления контакта с другим Sun SPOT.
Возможность работа по радио протоколу (для Sun SPOT это ZigBee) встроена во ВСЕ устройства
— и в полной конфигурации и в версии для базовой станции (без сенсорной платы и аккумулятора).
Так же у Sun SPOT всегда доступен во всех конфигурациях USB коннект — для работы с подключённым PC.
Безопасность
SUN использует в данных устройствах оптимизированную версию протокола RSA а так же
кодирование по элиптической кривой - ECC (Ecliptic Curve Cryptography).
ZigBee
ZigBee — стэк протоколов высокого сетевого уровня, разработанный для портативных
малогабаритных устройств с передатчиками небольшой мощности, использующими
стандарт IEEE 802.15.4-2006, разработанный для WPAN сетей (WPAN - Wireless Personal Area Network).
Скорость передачи данных — 250Kb.
Объявленная дальность связи Sun SPOT устройств: 10-75 метров.
Экспериментально замеренная дальность действия:
6-8 метров в помещении.
25 метров на открытом пространстве.
Информация о качестве приёма содержится прямо в заголовке пакета данных,
что позволяет динамически отслеживать качество связи как от станции к удалённому устройству,
так и в обратном направлении, что позволяет косвено судить о физическом удалении устройства
от станции и/или о радиопрозрачности среды (препятствий).
Теоретически все устройства, поддерживающие протокол ZigBee, произведённые всеми участниками
собщества ZigBee должны сопрягаться между собой.
То есть, например устройства Sun SPOT должны бы работать совместно с ZibBee устройствами
от других производителей, например устройства XBee от фирмы Digi.
Практически это не проверено.
Можно ли увеличить дальность действия?
Во-первых надо понимать, что ZigBee использует mesh технологию, которая позволяет вычислять
оптимальный маршрут прохождения пакетов из узла А в узел Б (это похоже на то как это делается
в сети Интернет).
То есть если у вас есть поле размером, например 500х500 метров, на котором установленно
множество устройств, то команда, посланная из устройства, установленого на одном краю для устройства,
физически установленного на другом конце поля, то она может туда дойти, если имеется проходимый путь.
Причём путь будет использован самый оптимальный.
Это работает автоматически, в фоновом режиме, прозрачно для программиста.
Однако, надо помнить, что чудес не бывает и если путь включает в себя множество переходов
или в условиях плохой связи, то связь будет идти с задержкой (так же как и в Интернете).
С этим связана и ещё одна проблема — проблема синхронизации.
Если необходимо выполнить одновременное действие на множестве устройств,
и послать одну комманду через механизм «бродкаст» сразу всем устройствам,
то эта «одновременность» будет очень относительной.
Это визуально заметно на некоторых демо роликах, где Sun SPOT-ы расположены на «танцующих мышках»
или подобных демо механизмах.
То есть тут так же как и в сетях типа Интернет сужествует проблема синхронизации времени.
И, наконец, в случае, если устройство не достижимо, будет выдано сообщение об ошибке,
смысл которогр «Путь не найден».
Что ещё можно сделать для увеличения дальности связи между двумя устройствами?
1)Использовать дополнительные антенны.
2)Дождаться (надеяться) когда выйдет новая версия устройств уже с поддержкой протокола ZigBee Pro
(у него дальность до 1500 метров по прямой)
Установка дополнительных антенн не предусмотрена конструкцией Sun SPOT.
Так же в документации сказано, что не следует подключать любый железные предметы к антенне устройства.
Но можно поэкспериментировать с подключением антен от спутникого телевидения.
Это не потребует разбора устройства (Sun SPOT-а).
Есть надежда, что используя небольшую антену можно увеличить дальность связи в несколько раз.
Можно так же использовать другие способы связи для коннекта удалённого пункта управления и территроии,
где установленны датчики. Например можно использовать передатчики на 433 МГц, сотовый телефон и т.д.
Сеть
Идеология технологии ZigBee очень похожа на идеологию сети, основанной на IP протоколе - Интернет,
локальные IP сети и др.
Но есть и отличия.
Каждое устройство имеет уникальный сетевой адрес, типа 0014.4F01.0000.153F.
Эти адреса не являются адресами сети Интернет.
Есть понятие «портов», но в отличие от IP сетей их 255.
В данном случае под портом понимается условное число, которое приписывается к адресу устройства и
позволяет посылать пакеты именно для приложения, прослушивающего данный порт на данном устройстве.
Так же как и в сетях IP есть возмжность быстрой передачи коротких сообщений (датаграм)
без гарантии и подтверждения доставки (аналог UDP из сетей на IP).
Так же имеется и возможность устанавливать постоянные соединения типа сокетов
(как соединения типа TCP/IP в IP сетях).
Так же как и сети на основе IP, сети на протоколе ZigBee обладают устойчивостью к частичным разрушениям
и способны перенаправлять трафик по наилучшему маршруту.
Сеть продолжает функционировать при потере части устройств и быстро включает в сеть вновь
добавленные дополнительные устройства.
Можно посылать broadcast – сообщения для всех.
Сопряжение сетей ZigBee и сетей на протоколе IP (типа Internet)
Так как сети на основе ZigBee сети на основе IP/Internet всё-таки разные, то не возможно
использовать привычные программые инструменты из арсенала системных аминистраторов.
Например нельзя послать пинг, используя ICMP. То есть утилита 'ping' не может послать
запрос на устройство ZigBee, даже если базовая станция ZigBee подключена физически (по USB)
к одному из компьютеров локальной сети.
Для сопряжения сети на основе протокола ZigBee и сети на основе IP требуется специальная
программа — шлюз, работающая на компьютере, подсоединённом и к IP сети и к сети ZigBee.
Сопряжение сетей возможно только на уровне приложений, не на нижних сетевых уровнях.
Тот же подход надо применять и при сопряжении с другими сетями — сотовый телефон,
подключённый к Sun SPOT устройству может служить шлюзом для сетей GSM.
Само по-себе устройство Sun SPOT не имеет возможности работать в сетях GSM.
Датчики и индикаторы
На сенсорной плате имеются:
1)Датчик света
2)Датчик температуры
3)Датчик наклонов (Акселерометер) по трём осям — X,Y,Z
4)8 трёхцветных диодов
Возможные области применения
Сети датчиков
Сети на протоколе ZigBee могут применяться для построения беспроводных сетей датчиков
в различных областях, где не требуется очень большая скорость передачи и где устройства могут
впадать в спячку, например в медицине, для автоматизации коммунальных систем (ЖКХ),
жилых помещений («умные дома»), промышленных объектов.
Устройства Sun SPOT так же применимы для создания систем безопасности — для систем с
датчиками пожара, наличия газов, радиации и т.п.
Акселерометер
Интересное прикладное значение имеет датчик наклонов - акселерометер.
Как правило возможности акселерометра Sun SPOT устройств используют для двух применений:
1)Как устройство ввода, когда пользователь держит устройство в руке и наклоняя его может манипулировать им,
как устройством вода — для игр или других динамичных программ.
2)Как устройство съёма имформации о наклонах с движущихся объектов или данных о вибрации с не подвижных объектов.
В Интернете есть множество примеров студенческих разработок, где Sun SPOT устройства применяются
как устройство ввода, для управления курсором и ходом выполнения программ.
Например — человек держит Sun SPOT в руке и, вращая им, управляет движением персонажа по
корридорам виртуального мира.
Можно и не держать Sun SPOT в руках а закрепить его например на кепке, на ботинке и т.д.
и получить «третью руку» для мантпуляций в игровом мире.
В процессе использования акселерометра обнаружились некоторые побочные эффекты.
Деле в том, что (как я понял) когда устройство получает численное значение от акселерометра,
то в этой цифре присуствуют сразу две значимые величины.
1)Наклон устройства относительно начального положения
2)Ускорение — производную скорости
На практике это означает, что если например устройство лежит в горизонтальном положении,
датчиками вверх, то значение по оси Z например 400 единиц.
Если начать медленно переводить устройство в вертикальное положение, то значение
по оси Z плавно возрастает до, например, 650.
А если из того же самого начального положения резко повернуть вертикально,
то можно видеть всплеск значений по оси Z до 700, потом падение до 650.
Если наша цель — получить текущее положение тела робота, где установлен Sun SPOT,
то для нас дополнительное значение, связанное с ускорение является шумом и наоборот
— если важной является информация об ускорении, то информация о повороте является
помехой для точности вычислений.
Биометрия
Так же это устройства имеют интересеные перспективы акселерометров для биометрии.
Например известно, что каждый человек имеет свои уникальные особенности тремора (дрожания рук).
А это значит, что по дрожанию рук можно отличить одного человека от другого,
то есть возможно распознание свой-чужой.
Так же возможно испоьзуя специальные алгоритмы отпределить текущее психическое состояние человека
(опьянение, волнение и т.д.).
Группы мобильных роботов
Интересное возможное применение Sun SPOT устройств — мобильные группы роботов.
Такие роботы могут применяться для обследования и постоянного патрулирования помещений типа шахт
и составления локальных карт, с отметками завалов, и других изменений обстановки
а так же для быстрой огранизации временной мобильной охраны и мониторинга периметра.
Интересная задача — координация положения роботов в пространстве и тестирование алгоритмов
совместной работы группы роботов.
В составе программного обеспечения для Sun SPOT есть 'Sun SPOT Robot Simulation' –
специальное ПО для симуляции работы группы роботов.
Ещё одно интересеное возможное применение Sun SPOT это управление рукой робота или управление
экзотическими роботами типа змеи, рыбы и пр.
Сенсор света и позиционирование роботов
Как это ни странно, но простейший датчик света, установленный на сенсорной плате
Sun SPOT-а представляет большой интерес для роботостроения как хобби.
Датчик воспринимает свет в градациях серого от 0 до 750.
Он достаточно чувствительный и даже при слабом електрическом свете может показывать
разумные (не шумовые) значения.
Используя этот датчик робот может не только отличать свет от темноты и забираться например
в самый темный угол, как тараканы или наоборот идти на свет, как мелкие рыбки .
Это датчик можно использовать и для более изощрённого поведения.
Например можно, особенно при оснащении хорошим объективом обнаруживать точечный источник света,
достаточно точно определить направление на него, то есть использовать для точного вычисления
позиции робота.
Точечным источником света можут быть, например специальные не подвижные маяки, которые позволят роботу
точноопределить текущее его положение по угасанию силы света и по углам между направленими на маяки.
Боле того — маяками могут служить другие роботы группы, просто используя их встроенные светодиоды,
либо используя дополнительные панорамные светодиоды повышенной светимости.
Сравнение датчика света Sun SPOT и камеры сотового телефона
На первый взгляд камера сотового телефона (даже простейшего) имеет сокрушительное
преимущество по сравнению со светосенсором. Судите сами — камера сотового тедефона воспринимает цвет,
даёт ощутимый размер изображения. Уже можно импользовать алгоритмы
по выделению границ зон, образов, обнаруживать изменения картинки и т.д.
Что бы получить картинку с датчика света надо долго вращать устройство, сканируя пространство
точка за точкой и собирать всё в одно изображение, что может занять несколько минут.
Но при ближайшем рассмотрении оказалось, что датчик света тоже имеет свои преимущества.
Например, он может помочь в точном наведении на точечный источник света.
Он может мгновенно (милисекунды) остследить изменение яркости источника.
Например сразу же обнаружить включённый в помещении фонарик, даже если его свет прямо не направлен
на светосенсор.
А для получения подобной информации с камеры сотового телефона может понадобиться гораздо большее время
- 200-500мс
С быстрой реакцией на изменение интенсивности освещения связано ещё одно возможное
применение датчика света.
Можно организовать канал передачи данных от одного робота к другим.
Имея один прожектор можно организовать световое вещание — broadcast и посылать команды
даже при отсуствии связи по радио каналу.
Известны примеры самодельных конструкций, где по лучу лазерной указки удавалось передать до 19Kb данных.
Можно предположить, что должна существовать возможность организации связи по каналу светодиод-датчик света.
Предположительная скорость — до 9600 бод.
Простые тестовые приложения
Карта комнаты
Приложение состоит из двух частей — Desktop приложение, работающее на настольном компьютере,
должно показывать текущее положение роботов относительно исходной точки.
Информация о расстоянии до робота определяется косвенно — по качеству связи с роботом
а так же по направлению на источник света.
Роботы символически отображаются на поле как маленькие машинки. Возле которых указана мощность сигнала.
Состояние отслеживается с частотой в 1-2 сек. Изображение поля сохраняется на диске.
Управление сервомоторами
Устройство имеет встроенную поддержку сервомоторов.
Приятно удивила лёгкость программирования работы сервомоторов Sun SPOT.
Просто и надёжно — заработало почти сразу (чего нельзя было сказать о других подобных по классу
устройствах).
Программировать сервомоторы на Sun SPOT очень просто — в одну строку.
Процедуры уже заранее отлажены и заработали «на ура».

Sun SPOT легко разбирается на части.
Стоит отвинтить один винт и можно снять все части - слой за слоем.
Так же легко он собирается обратно.
Sun SPOT - сенсорная плата (оборотная сторона).

Sun SPOT - слева сенсорная плата, справа основная плата (её вид спереди)

Sun SPOT - слева сенсорная плата, справа основная плата (её вид сзади)
Sun SPOT. Слева - сенсорная плата (лицевая сторона).
Sun SPOT. Лекция-Презентация в ЮФУ (Южном Федеральном Университете).



















| |
|
|