Home of www.RoboHobby.com Java robotics project www.CubesAndCrosses.com
Train your logic skills in geometry
Create and delete one-color crosses
Play for free right in your browser!
Home-made CNC machine
Our new project -
How to make home-made CNC router
PICkit2 - Tutorials, Experiments
PICkit 2 - Small size USB programmer
from Microchip.
How to use it as a demo device for
USB programming in C language

www.RoboHobby.com
Home of www.RoboHobby.com
Java robotics project


Portable Notebook Table
How to make Portable Notebook Table.
Do it yourself!

Control robot on-line (GWT)
Control our robot on-line,
using GWT-based Web interface

Web-based (GWT) remote control for Java robotics.

Control robot on-line
Control our robot on-line,
using simple Web interface
(Old JSP-based version)

Web-based (JSP) remote control for Java robotics.

Sun SPOTs for robotics
Sun SPOT for hobby robotics.
How to use Sun SPOT devices
comunication of group of robots


Sun SPOT Accelerometer + Servo
Sun SPOT Balancing robot
Draft of new article


PICkit2 - Tutorials, Experiments
PICkit 2 - Small size USB programmer
from Microchip.
How to use it as a demo device for
USB programming in C language


Java SE SWING JSR-296 Example
How to run background task in
JSR-296 SWING application
with 'busy animation' in the status bar.
Useful addition to Netbeans template.

Java ME Code Examples
Java ME Source code examples
for robotics projects


Run Java ME Code Examples
How to run our Java ME code examples
for robotics projects


Java - work from home
Draft for article
'Java work from home.
(Java and self-employment)
Where and how to get
remote (telecommuting) job'


ScreenShots
See some screenshots of RoboHobby
Java/SWING application

See some screenshots of www.RoboHobby.com Java SWING application

Where programmers go
after age of 35?

Article in Russian
about job discriminationin
in IT industry:
'Where programmers go
after age of 35'?




Atmel NGW100 for
Java Hobby robotics

Set of articles about
Atmel NGW100 for
Java Hobby Robotics




Canon A570 IS + CHDK for
Kite Aerial Photography

How to use photo camera Canon A570 IS
with CHDK for kite aerial photography

Plastic box for Canon A570 IS
for Kite Aerial Photography (KAP)

How to make plastic box for Canon A570 IS

Kite Aerial Photography
Create your own hand-made kite for KAP
and do snapshots from a kite

Create your own hand-made kite for Kite Aerial Photography (KAP) and do snapshots from a kite, using cell phone or camera.

RoboHobby Kite
How to install and use
J2ME program on your cell phone,
make spy camera from it
and do snapshots from a kite

Picavet Suspension
Hand-made 'Picavet Suspension' for
Kite Aerial Photography (KAP).
How to make it by yourself.

Compact Picavet Suspension
Aluminum Home-made compact
'Picavet Suspension' for
Kite Aerial Photography (KAP).
You can fold it and make it
portable.

How to fly 'Flow form' kite in calm (No Wind) condiction.
Green Island KAP photos
Photo views from kite of
'Green Island'

Green Island
Some views from the ground
of rectreation zone
'Green Island'

KAP Wind Maps
Web-Map-based project
for local win measurement



Simple Spam Protection
Simple Spam Email Protection -
GWT-based code example


Under Linux
Install and Run RoboHobby application under
KNOPPIX 5.0


Under Windows
Install and Run RoboHobby application under
MS Windows XP


Platforms for Java Robotics
Which hardware/os platform to choose
for hobby robotics?



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

How to update Java
on KNOPPIX 5.0

Set of articles about how to remove
old version of Java (JRE or JDK)
on KNOPPIX and install new one
on remastered CD
Part 1 (Just test new Java)

Part 2
(Place new Java on Linux Live CD)



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?



What is inside?

What is inside web camera
'Genius Look 312P'?
How to re-construct it,
improve and use in robotics.

What is inside web camera
'Genius VideoCAM GE111'?
How to re-construct it,
improve and use in robotics.

What is inside web/photo camera
'Genius G-Shot D612'?
How to use it for
Kite Aerial Photography (KAP).


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



Short description of www.RoboHobby.com in German In German
Short description of www.RoboHobby.com
in German


Short description of www.RoboHobby.com in French In French
Short description of www.RoboHobby.com
in French


Short description of www.RoboHobby.com in Spanish In Spanish
Short description of www.RoboHobby.com
in Spanish


Short description of www.RoboHobby.com in Italian In Italian
Short description of www.RoboHobby.com
in Italian


Short description of www.RoboHobby.com in Russian 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 - внешний вид устройства с закрытой крышкой.


Sun SPOT - внешний вид устройства с открытой крышкой
Sun SPOT - внешний вид устройства с открытой крышкой.




Устройства выпускаются в двух вариантах:
а) Имеющее только базовую (материнскую) плату
Обычно используется как базовая станция, соединённая с компьютером (под Windows, Linux, и т.д)
б) Имеющее и базовую плату и плату расширения с набором сенсоров и контактов для подключения
дополнительных устройств.



Sun SPOT - Разъём мини-USB. Sun SPOT - клиент USB.
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.
Практически это не проверено.

Можно ли увеличить дальность действия?

Sun SPOT - встроенная мини антенна.

Во-первых надо понимать, что 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 бод.

Простые тестовые приложения

Карта комнаты
Sun SPOT - Карта комнаты с роботом.
Sun SPOT - Карта комнаты с роботом.

Приложение состоит из двух частей — Desktop приложение, работающее на настольном компьютере,
должно показывать текущее положение роботов относительно исходной точки.
Информация о расстоянии до робота определяется косвенно — по качеству связи с роботом
а так же по направлению на источник света.

Роботы символически отображаются на поле как маленькие машинки. Возле которых указана мощность сигнала.
Состояние отслеживается с частотой в 1-2 сек. Изображение поля сохраняется на диске.

Управление сервомоторами

Устройство имеет встроенную поддержку сервомоторов.
Приятно удивила лёгкость программирования работы сервомоторов Sun SPOT.
Просто и надёжно — заработало почти сразу (чего нельзя было сказать о других подобных по классу
устройствах).
Программировать сервомоторы на Sun SPOT очень просто — в одну строку.
Процедуры уже заранее отлажены и заработали «на ура».







Sun SPOT разобранный на части

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

Sun SPOT - сенсорная плата (оборотная сторона).
Sun SPOT - сенсорная плата (оборотная сторона).


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

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

Sun SPOT. Слева - сенсорная плата (лицевая сторона).
Sun SPOT. Слева - сенсорная плата (лицевая сторона).


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


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

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

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

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

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

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


Sun SPOT Presentation

Sun SPOT Presentation

Sun SPOT Presentation

Sun SPOT Presentation

Sun SPOT Presentation

Sun SPOT Presentation

Sun SPOT Presentation

Sun SPOT Presentation

Sun SPOT Presentation

Sun SPOT Presentation

Sun SPOT Presentation

Sun SPOT Presentation

Sun SPOT Presentation