понедельник, 3 декабря 2012 г.

Наш блог переезжает

Блог оказался очень полезной штукой, а теперь и его мало. Здесь можно устраивать обсуждения, но очень неудобно хранить знания. А часть постов этого блога – это уже не обсуждение, а информация – "статья". Для статей нужен удобный классификатор, и не очень-то нужны комментарии.

Так созрела мысль о собственном сайте. Примерно месяц я занимался переносом информации на новый сайт. Ещё осталась масса проблем с его настройкой, но, пожалуй, я готов сказать что мы перехали! На нашем сайте есть раздел для статей и есть блог. В блоге мы можем обсуждать новые идеи, а когда они созреют, превратим их в статьи. Сейчас всё ещё много недочётов и ошибок, сайт – это новый для меня опыт – поэтому на сайте есть форма обратной связи. Пишите обо всём что не нравится или неудобно. Или открывайте пост в блоге. Обсудим вместе.

Добро пожаловать на наш новый сайт www.robot-mitya.ru.

воскресенье, 7 октября 2012 г.

И снова о дистанционном управлении

Дистанционное управление
Что-то никак я не отойду от этой темы. Но у Алексея появилась прекрасная идея. Сейчас для дистанционного управления нашим роботом требуется Windows-клиент. Да, он не сложный и его содержимое можно портировать на любые ОС, включая мобильные. Но Алексей предложил использовать в качестве клиента браузер. Если получится, то погонять своим  роботом по квартире можно будет с любого компьютера и из любой точки, где есть интернет. Давно хотел, чтобы друзья могли виртуально сходить ко мне в гости.

Трансляция видео и аудио у нас сейчас выполняются посредством Android-приложения  IPWebcam, а оно и предполагает воспроизведение в браузере. Эта часть работает, я проверял. Правда, воспроизведение звука кэшируется браузером и есть очень существенное отставание. Но наверняка это можно побороть. Остаётся передача команд роботу. Управление, по возможности, оставить бы прежним. Где это невозможно, обсудим и приведём к общему знаменателю.

Прелесть задачи в том, что робот пока не нужен. Достаточно Android-смартфона с нашим приложением. На первом этапе можно поработать с командами, выполняющимися на уровне смартфона: смена мордочек, например. А позже хорошо бы сделать какой-то эмулятор для тестов. Ну и могу предоставить Митю для опытов.

Есть желающие взяться за такую задачку?

среда, 3 октября 2012 г.

Обсудим планы?


Наблюдение с выставки: очень многие посетители подходя к Мите махали перед его лицом рукой и ждали какой-нибудь ответной реакции. Зря. Ничего он пока не умеет. Мордочки, хвост, рефлексы, всё это хорошо и очень пригодилось для презентации. Дистанционное управление и трансляция видео и звука тоже очень интересно и может найти Мите хоть какую-нибудь работу по дому, но надо признать – мозг у Мити только спинной.
Предлагаю замахнуться на наше всё – на интеллект. Я очень давно ждал этого момента и, наконец, Митя достаточно окреп, чтобы можно было заняться его головой.

Давайте поделимся идеями на этот счёт. Я пока накидаю темы из того, что уже где-то обсуждалось нами:
  • распознавание голосовых команд;
  • слежение за цветовым пятном;
  • узнавание предметов;
  • распознавание лиц;
  • автоматический поиск и подключение к зарядному устройству;
  • ориентация в квартире.

Что интересного я забыл? Можно обсудить в комментариях, по ходу я буду подправлять статью. Только есть одно предложение: давайте двигаться от простого к сложному, причём в первую очередь я бы выбирал именно зрелищные задачи. Мне бы хотелось не забывать о привлечении новых участников в наш проект, значит будут видео, статьи, пиар и было бы здорово, если бы наши первые опыты в части ИИ были бы интересны не только нам.

вторник, 2 октября 2012 г.

Робот Митя на YaC2012

Недавно Luke_skypewalker показал нашего робота на фестивале Chaos Construction 2012 в Питере, а теперь и я могу похвастаться как мы с Алексеем поучаствовали в робототехнической выставке в рамках Yet another Conference 2012 (YaC2012). Большое спасибо моему другу Михаилу за помощь в подготовке к выставке и за фотографии и видео с конференции.

От выставки я получил огромное удовольствие. Подготовка началась за две недели и ужасно вымотала, но результат, определённо превзошёл мои ожидания. Основной упор я делал на презентационную часть. Внешне мой Митя обзавёлся шерстяной шкуркой, которую сшила любимая жена и собственным шарфом, связанным любимой тёщей. Внутренне Митя получил несколько новых поведенческих рефлексов. Более того, эти рефлексы теперь можно описывать на РобоСкрипте и сохранять в конфигурационном файле управляющего Windows-приложения, чтобы вызывать по горячим клавишам. Так мы с Митей разучили пару танцев, заготовили музыку и всё это продемонстрировали на выставке. Кстати, Luke_skypewalker говорил после Хаос Констракшн, что было бы очень здорово, если б Митя умел реагировать на поглаживание или демонстрировать своё раздражение, например. Я добавил реакции на почёсывание лба Мити и тыканье в глаз и в нос. Пригодился РобоСкрипт, потому что реакция это не просто смена мордочки, но набор движений головой, хвостом, колёсами. И действительно, это очень оживило нашего робота. Некоторые девушки подходили по несколько раз, приводили подруг! Предупреждали бы заранее, я бы ещё что-нибудь такое сделал.

Алексей тоже напрягся и успел собрать своего такого же робота. Это было кстати, потому что мне очень хотелось представить не просто робота, которого собрал один робототехник-любитель, а Платформу, которую могут собирать и другие любители. Я думаю, что пока наша платформа – это идеальная игрушка для программиста. Мы добились её низкой стоимости и простоты сборки. Все детали серийные, да и могут быть заменены при желании. Наверняка с такой сборкой справится любой программист, а вот дальше перед ним открывается возможность делать всё что угодно. Важно только поддержать наш простой протокол для связи между уровнями: контроллер – смартфон – ПК.

Сейчас моя главная цель – привлечь в наш проект больше участников с разной, скажем так, аппаратной базой. Я имею в виду смартфоны на разных ОС, контроллеры и тележки самых разных конструкций.

Вот эти мысли я старался донести до наших посетителей. Уже стало совершенно очевидно –  проекту нужен свой сайт, и я обязательно его сделаю в ближайшее время. Интерес к нашим роботам на выставке, неожиданно для меня, оказался очень живой. 120 визиток, заготовленных нами, исчезли вмиг, а выставка только началась.

Очень приятно, что люди встречали наших роботов улыбками, и я определённо переполнен положительными эмоциями от этой презентации и готов к новым техническим подвигам.

А теперь небольшой "телефонный" фото- и видеоотчёт моего друга Михаила.

понедельник, 1 октября 2012 г.

Добро пожаловать!


Знакомьтесь – робот Митя



Совершенно не предполагал, куда заведёт меня тихое домашнее помешательство на робототехнике. Ничем не обязывающий спор в офисе около года назад не только привёл к тому, что пришлось сделать робота, но и многое для меня открыл.

Оказывается, общий интерес притягивает близких по духу людей. Мысль очевидная, но она не приходила мне в голову раньше. Занимаясь своим проектом, я приобрёл новых замечательных знакомых, и это был совершенно неожиданный для меня приз. Мы объединили свои усилия и серьёзно изменили мой первоначальный проект. Как результат, робот стал проще в сборке, дешевле, при этом, как ни удивительно, функциональней. И роботов стало больше. Сейчас их три и на подходе четвёртый. Интересно, что живём мы в разных городах, а общему делу это никак не мешает.

Для тех кто хочет познакомиться с нашим проектом поближе, предлагаю почитать мою статью о том, как всё начиналось. За ней была статья про настройку среды программирования для нашего проекта, а потом про Митино зрение и слух.

Ну а теперь я хотел бы описать, что изменилось с момента написания тех трёх статей и куда бы нам хотелось направлять проект дальше.

вторник, 25 сентября 2012 г.

Рефлексы и РобоСкрипт


Идея создания простого языка для записи набора действий робота родилась спонтанно. Началось всё с рефлексов. Захотелось выполнить сразу несколько действий по одной команде пользователя. Если ткнуть робота Митю в глаз, он отпрыгнет и разозлится. Это безусловный рефлекс. Если погладить, он улыбнётся и приподнимет голову. Это тоже у него безусловный рефлекс. Для реализации задумки состав команд пришлось расширить и продумать структуру хранения программы. Получился язык программирования Мити. Я назвал его РобоСкрипт. Возможно, к  вопросу о выборе языка программирования робота надо было подойти более системно, можно было бы вооружиться каким-нибудь готовым языком, но изначально я не ставил цели изобретать велосипед. Он сам изобрёлся шаг за шагом.

четверг, 30 августа 2012 г.

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

Первый вариант управления роботом Митей я делал ориентируясь на геймпэд XBOX360. Когда мы решили модернизировать нашу платформу и уже на практике использовать одно ПО для всех наших роботов, появилась необходимость переделки управления подо что-то более распространённое. Это я о клавиатуре. Сейчас задействовано уже много всяких кнопок, поэтому давно пора описать управление роботом.

суббота, 18 августа 2012 г.

Chaos Construction 2012

Сегодня в Питере стартовал ежегодный компьютерный фестиваль Chaos Construction 2012 - и конечно же мы с Ромкой не могли его пропустить :
организаторы даже устроили нам стенд с диванчиком -)

Ромка - это тот который робот!

Кто живет в Питере и завтра свободен - обязательно приходите, буду рад с Вами увидится !

пятница, 17 августа 2012 г.

Подготовка к травлению и лужение печатных плат

Сергей Китель нашёл замечательное видео по подготовке печатной платы к травлению. Здесь утюг эволюционировал в ламинатор! Всё просто, коротко и внятно за кадром. Спасибо автору!


С травлением более-менее понятно: хлорное железо и вперёд. Поэтому вторая часть сразу про лужение. Не менее интересный способ! Не знал о таком (правда это не удивительно – я тут всё ещё из ХХ века пишу).


А ещё в конце автор видео раскрывает назначение этих плат – тоже здорово. Ничего больше не скажу, чтобы сохранить интригу.

понедельник, 13 августа 2012 г.

Электропроводка робота Мити


Электропроводка в Мите несложная, но чтобы было куда подглядывать я нарисовал схемку и сфотографировал монтажный вариант разводки.

воскресенье, 12 августа 2012 г.

Хочу похвалить нас

Нами в этом блоге проведена большая работа над ошибками первой версии Мити. Вот статья, с которой всё началось, потом была статья про настройку среды программирования для Мити, а потом про Митино зрение и слух.
Сегодня я завершил большой круг. Митя существенно обновился. И он третий робот в нашем микросообществе, собранный по одной схеме.


Хвост всему голова

Ближайшее время хочу потратить на Митины эмоции: мимику и жестикуляцию. Тут ну просто никак не обойтись без хвоста. Тем более, робот Рома уже давно при хвосте, да и софт для этого дела уже написан.
В этом посте я опишу как делал Мите хвост и устанавливал привод.

понедельник, 16 июля 2012 г.

TO DO:

Робот поехал. Что делаем дальше ?

- перейти на общую батарею (проверяем помехи ?)
- припаять конденсаторы на мотор ( керамические 0,1 мкФ)
- делитель напряжения ( 2 резистора по 1 КОм ) - и передача показаний на пульт.
- [Сделано!] добавить управление хвостом 


- анимация мордочек(кстати без нее по-своему хорошо, может не усложнять пока ?)
- сменные мордочки(как шкурки к WinAmp)
- полоска сверху экрана по которой можно гладить, и чтоб мордочка улыбалась ^^
- режим на Androide пульт Д/У (что б можно было снять телефон и порулить напрямую) - и чтоб мордочка сердилась и кусала за пальцы



- режим управления со второго телефона-Android с видео.
- голосовое управление (Сидеть, Фас!)

Далее - SLAM - навигация и ориентация в пространстве
Я поэкспериментирую с энкодерами и ИК-дальномером. Дима занимается датчиками Андройда. и хорошо бы попробовать визуальное ориентирование.

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

А еще док станция !
- как ее атоматически найти ? - SLAM?
как состыковать ? - тут надо мудрить свой разъем - стандартный штекер туговат.


А какие идеи и пожелания у Вас ?

четверг, 12 июля 2012 г.

Запуск софта для управления роботом

Итак для управления роботом у нас Windows-приложение, Android-приложение и Arduino-скетч. Как это всё установить, настроить и проверить?


вторник, 10 июля 2012 г.

Развал-схождение. Правим геометрию.


Если внимательно присмотреться - колеса сведены внутрь. Это из-за идиотского способа крепления - всего 2 болта с одной стороны и паз-шпонка с другой. Результат - на лицо колесо!

Но не беда, все можно допилить(в этот раз в прямом смысле - пилой.) - понадобятся 4 болта с гайками м3 (лучше чуть длиннее, чем для крепежа моторов. я использовал именно от моторов - гайка еле зацепилась) - В Архангельске такие можно купить в магазине "Крепеж" и "1000 мелочей".


Все сразу в одной картинке. 
Было -> Стало.
Синяя стрелка - добавленная точка крепления.


Все что нужно - просверлить 4 отверстия диаметром примерно 3мм, чтоб болт входил свободно, но не болтался.
Прикручиваем мотор, вставляем третий болт в ушко мотора до упора, намечаем место , где будет отверстие. Дальше надо снять мотор, и шилом накернить место сверления (приготовить лунку, чтоб сверло не убежало)
Я сверлил Дремелем  - Сверлится нормально. главное - попасть в нужное место, поэтому лучше сначала сверлом 1 или 2 мм, а потом развальцевать в нужном направлении.


Также можно найти центр отверстия с помощью линейки, но Акелла промахнулся.




P.S. Я сперва думал, что такой баг только у этой платформы, но у "2WD" пилить пришлось больше. А в последней посылке приехал "Rover5" -


Хорошо хоть Ардуино не надо допаивать.









понедельник, 9 июля 2012 г.

Как собрать кронштейны и сервоприводы

Прошу прощения за фото. Поздно, темно, снимал Митиной головой.




Перед установкой сервомоторов их надо бы выставить в правильное положение. Эти сервы поворачиваются на 180 градусов, поэтому нижний (горизонтальный поворот головы) надо установить на 90 градусов. С верхним сервомотором  (вертикальное мотание головой) сложнее. Для монтажа его лучше поставить в положение, когда закреплённый телефон будет смотреть строго вперёд. В программе управления роботом это направление соответствует 30-ти градусам. Но надо убедиться, что минимальный угол (в программе управления это 0 градусов) достижим – закреплённому держателю телефона ничего не должно мешать.


А ещё у робота Ромы есть настоящий хвост. Настоящий, потому что он двигается, в отличие от хвоста Мити. Управляет хвостом ещё один сервопривод. Его тоже надо бы установить в центральное положение (90 градусов).


Для поворота сервомоторов в положение для установки надо запустить такой скетч, приведённый ниже. Кстати, в скетче даны действующие пины контроллера для управления сервоприводами. Менять не надо бы, будем привыкать к общей распиновке :)


Чуть позже сделаем статью по используемым пинам контроллера.

#include <Servo.h>

// Пины контроллера для управления сервоприводами робота.
int servoHeadHorizontalPin = 9;
int servoHeadVerticalPin = 10;
int servoTailPin = 11;

// Объекты для управления сервоприводами.
Servo servoHeadHorizontal;
Servo servoHeadVertical;
Servo servoTail;

// Функция инициализации скетча:
void setup()
{
  // Установка сервопривода горизонтального поворота головы в положение для монтажа:
  pinMode(servoHeadHorizontalPin, OUTPUT);
  servoHeadHorizontal.attach(servoHeadHorizontalPin);
  servoHeadHorizontal.write(90);

  // Установка сервопривода вертикального поворота головы в положение для монтажа:
  pinMode(servoHeadVerticalPin, OUTPUT);
  servoHeadVertical.attach(servoHeadVerticalPin);
  servoHeadVertical.write(30);

  // Установка сервопривода поворота хвоста в положение для монтажа:
  pinMode(servoTailPin, OUTPUT);
  servoTail.attach(servoTailPin);
  servoTail.write(30);
}

// Функция главного цикла не нужна:
void loop()
{
}


Получил посылку :)

Посылка порадовала :) 
Думал что тележка пластмассовая, оказалось металлическая, это круть! 
Про аккумулятор что хочу сказать, сразу же обратил внимание на надпись на аккуме, что заряжать его током максимум 1 Ампер! так что ни о каких 4 Амперах лучше не говорить, я думаю и четырьмя можно заряжать, но скорее всего негативно скажется на самом аккумуляторе.
Про Ромео хочется сказать: куча выходов и кнопочек, даже глаза разбегаются :)
В общем посылкой доволен :)

С 10 по 12 июля распродажа +бесплатная доставка с сайта DFRobot.com


С 10 по 12 июля Компания DFRobot празднует день рожденье! По случаю, устроена распродажа +бесплатная доставка (от 50$) +купон на скидку 5% — RUROClub — 

Если кто-то что-то забыл заказать в прошлый раз - сейчас самое время!
Подробнее я написал на http://robocraft.ru/blog/970.html



ссылка на страничку спецпредложений


четверг, 7 июня 2012 г.

Дребезг сервопривода

Попозже положу видео для наглядности.
Но и Евгений, и я столкнулись с одной и той же проблемой. Под нагрузкой (вес телефона) сервопривод начинает вибрировать и ощутимо шуметь.
Есть предположение, что это связано именно с особенностями Arduino. Может быть ШИМа, а может чего-нибудь ещё.
Есть ли идеи, с чем это может быть связано?

среда, 6 июня 2012 г.

Контроль заряда и разряда аккумулятора

В общем по поводу зарядки и контроле :) Если использовать делитель напряжения и контролировать по аналоговому входу то это идеальный вариант для контроля разряда батареи, при чем можно сделать что бы выводился индикатор батарейки прямо на экран компа (ну это уже программирование - и ваша забота :))))))
Заряд по идее то же можно контролировать таким методом ,но не нужно, так как литиевые аккумы заряжаются очень тонко под управлением контроллера(втроенного в акум) если мы поставим светодиод который при определенном значении на выводе аналогового входа загориться или наоборот потухнет (не очень это важно) то может произойти следующее:
Я очень сомневаюсь что уровень напряжения всегда один при полном заряде аккумулятора и при длительной эксплуатации он 100% измениться, а это значит что при нашей индикации  "аккумулятор заряжен" аккумулятор может быть не заряжен до конца, либо он уже давно зарядиться а индикации о заряде так и не будет. Предлагаю вот такую схемку(криво нарисованную в пэйнте): 
При полном заряде аккумулятора контроллер отключит банки и тока через резистор, а соответственно и через светодиода практически не будет, что и проиндицирует о полном заряде аккумулятора.





UPD (11.06.2012, 17:30) //Женя
В качестве контроля зарядки есть такое предложение - параллельно подцепить

 LED Voltage Meter (Blue)

LED Voltage Meter (Blue)
Brand: DFRobot
Product Code: DFR0130-B
Price: $6.80 


Дорого, но красиво, и видно через сколько зарядится.
Как только контроллер отключит банки от источника - напряжение резко возрастет с 8,4 V до 9-12В - значит готово!

вторник, 5 июня 2012 г.

Трудности в blogger.com

Поделюсь опытом работы в blogger.com.

1. В статьях с большим количеством букв, советую использовать разделитель поста – кнопка "Вставить ссылку "Дальше"  на панели инструментов редактора поста.
– кнопка "Вставить ссылку "Дальше".


2. В комментариях можно вставлять ссылки. Интерфейсно – фигушки, а вот html-тегом <a> запросто. Пример: "Вот ссылка в комментарии на <a href="http://www.yandex.ru">Яndex</a>".
Получится вот так: "Вот ссылка в комментарии на Яndex".

3. В blogger.com нельзя делать листинги исходников с подсветкой синтаксиса. Для этого я использую сервис Online syntax highlighting. В комментариях не работает, только в постах.

"Правильное питание"

МатЧасть:
Литий-полимерные (Li-Pol) аккумуляторы
http://www.rcdesign.ru/articles/engines/lipol

дополнительно :
Силовые NiMH аккумуляторы http://www.rcdesign.ru/articles/engines/nimh
Силовые NiCd аккумуляторы http://www.rcdesign.ru/articles/engines/nicd

(памятка)



Витрина: Источник
7.4V Lipo 2200mAh Battery (Arduino Power Jack)


7.4V Lipo 2200mAh Battery (Arduino Power Jack)
Brand: DFRobot
Product Code: FIT0137
Reward Points: 19
Availability: 49
Price: $18.90Share on twitter
DescriptionReviewIntroduction

воскресенье, 3 июня 2012 г.

Формат сообщений Робота Мити

Сообщения используются на участках ПК–телефон и телефон–контроллер для передачи команд и сигналов с сенсоров.
Связь между телефоном и контроллером будет реализована посредством Bluetooth, поэтому, возможно управление контроллером непосредственно с ПК.

Формат сообщения

Длина сообщения всегда 5 символов (байт).
cXXXX, где c – идентификатор сообщения (всегда 1 ASCI символ), XXXX – значение сообщения – знаковое или беззнаковое число в шестнадцатиричном представлении от 0000 до FFFF (всегда 4 символа).

Идентификаторы сообщения

Заглавная литера – сообщение с числовым значением (скорость, угол поворота, значение с сенсора и т.д.). Строчная литера – разовое сообщение (кивнуть, повилять хвостом и т.д.).
L [left] – команда задания скорости и направления левому двигателю
R [right] – команда задания скорости и направления правому двигателю
D [drive] – команда задания одинаковой скорости и направления обоим двигателям
H [horizontal] – команда поворота головы на заданный угол в горизонтальной плоскости
V [vertical] – команда поворота головы на заданный угол в вертикальной плоскости
E [error] – сообщение об ошибке
F [face] – команда смены настроения
[illumination] – команда управления фарами: I0001 – включить, I0000 – выключить
T [tail] – команда поворота хвоста на заданный угол
t [tail] – команда на виляние хвостом: t0001, t0002, t0000
y [yes] – команда кивания головой: y0001, y0000
n [no] – команда мотания головой: n0001, n0000
f [fire] – команда на выстрел (ИК пушка): f0001, f0000
h [hit] – сигнал попадания (ИК сенсор): h0001, h0000

Передача сообщений от ПК к телефону производится посредством UDP-датаграмм. Т.е. возможны потери пакетов. Сообщения управления двигателями и сервоприводами передаются постоянно – так устроено Windows-приложение. Поэтому потери отдельных пакетов не страшны. Однако, могут быть потеряны неповторяющиеся сообщения: y, n, f и т.д. Поэтому они передаются трижды подряд.

И ещё одно важное замечание. В Android-приложении для исключения повторного выполнения одинаковых команд применяется хэш-таблица. Ключ таблицы – идентификатор сообщения, значение – значение сообщения. Каждое обработанное сообщение сохраняется в хэш-таблице. Когда приходит новое сообщение, его идентификатор ищется в хэш-таблице, если находится и значение совпадает со значением нового сообщения, то новое сообщение игнорируется. Этот алгоритм работает при управлении двигателями и сервоприводами, но для одиночных команд (y, n, f...) требует пояснения. Для таких команд, сообщения передаются парами: сначала со значением "0001", потом "0000". Это делается специально для смены значения в хэш-таблице. А для передачи в UDP-датаграммах, из-за возможных потерь пакетов каждое сообщение в паре ещё и троекратно повторяется. Вот как передаётся команда на выстрел:

f0001
f0001
f0001
f0000
f0000
f0000

Далее, описывая значения некоторых команд, я не буду упоминать нулевые значения одиночных команд и  трёхкратные повторения, но это не значит что их нет.

Команды смены настроения

F0001 – обычное выражение лица
F0002 – счастливое лицо
F0003 – грустное лицо
F0004 – злое лицо
F0005 – лицо тяжело больного робота
F0102 – хочется играть (прыгает, на сколько это позволяет платформа)
F0103 – сильно расстроен (грустно и повесил голову)


Сообщения об ошибках

На всех трёх уровнях могут возникать ошибки. Но если на уровне ПК вывод сообщения об ошибке сложностей не вызывает, то с уровней контроллера робота (тела) и с уровня Android-приложения (головы), информацию об ошибке надо ещё доставить на уровень ПК. Для этого используется событие "E". Ошибки уровня контроллера имеют вид "E00xx", где xx – код ошибки от 00 до FF. Ошибки уровня Android-приложения имеют вид "E01xx".

E0001 – Неверное сообщение – возникает, если сообщение не удалось разобрать на команды/событие и значение
E0002 – Неизвестная команда
E0003 – Недопустимая команда в РобоСкрипт
E0004 – Неверная последовательность команд в РобоСкрипт
E0005 – Невозможно выделить необходимый объём памяти
E0006 – Попытка выхода за границы выделенной для РобоСкрипт памяти
E0007 – Недопустимая команда вне РобоСкрипт

Команды РобоСкрипт

r00xx – Воспроизведение РобоСкрипта. xx задаёт номер программы (от 00 до 0A)
r01хх – Старт записи программы на РобоСкрипт. xx задаёт номер записываемой программы (от 00 до 0A)
r02xx – Служебная, не использовать. Формируется в скетче robo_body и передаётся в RoboHead для сигнализации об окончании режима записи РобоСкрипта
Zxxxx – Если xxxx больше 0, то команда выполняет выделение оперативной памяти для записи и временного хранения программы на РобоСкрипт. xxxx – количество действий в РобоСкрипте. Действие – это всегда две команды: команда на выполнение роботу и команда, определяющая задержку до следующего действия (W).
Z0000 – Признак окончания программы на РобоСкрипт.
Wxxxx – Задержка в миллисекундах до выполнения следующего действия.

Подробней о РобоСкрипте можно почитать здесь.

Заказ в DFRobot

Давайте перечислим ещё раз что мы ищем. На магазин в ссылках не обращайте внимание, это просто список товаров. Цены примерные.

  1. Кронштейны + 2 сервы $36.00
  2. Платформа + контроллер Romeo $79.00
  3. Контроллер Romeo $39.50 - ПОКА НЕТ В НАЛИЧИИ
  4. DFRobot Bluetooth V3 $21.90
  5. 7.4V Lipo 2200mAh Battery $18.90 (советуем всем)
  6. Адаптер колёс $0.49 (это если думаете поставить другие колёса)
Список товаров с ценами тут.

UPD (13.06.2012 14:19):
Сделал заказ. Доставка Post Office. Не EMS - есть некоторый риск. Огромное спасибо Жене, он не участвует в этом заказе, но он договорился о скидке в $35. Так что на троих доставка обойдётся в $31 (по $10,33!).
Вот что сказал PayPal (тут есть курс рубля):

Там в конце списка всякие женские (female) штучки – таки они ко мне :)
Что у нас получилось:

Сергей:
$21,90 + $18,90 + $36,00 + $79,00 + $10,33 = $166,13 = 5634,14 руб.
Доставка из Москвы: 408,86 руб.
Итого: 6043,00 руб.

Алексей:
$36,00 + $79,00 + $10,33 = $125,33 = 4250,44 руб.

Дмитрий:
$21,90 + $75,60 + $79,00 + $0,98 + $3,80 + $2,35 + $2,15 + $1,95 + $1,80 + $10,34 = $199,87 = 6778,40 руб.

Движение заказа:

13.06.2012: DFRobot получил деньги.
14.06.2012: Заказ скомплектован и находится на пути к курьеру. До отправки обещают 3 рабочих дня.
18.06.2012: Заказ отгружен со склада.
25.06.2012: Таможенное оформление завершено. Выпущено таможней. Покинуло место международного обмена.
27.06.2012: Прибыло в место вручения.
27.06.2012: Получил!

Ровно 2 недели! Из Китая!