Перед тем, как начать. В процессе подготовки этой статьи наконец-то нашел брата по разуму...
А точнее -
блог про роботов, автором которого является некто Клебан Виталий.
Блог посвящен, цитирую «разработке инструментария-конструктора для создания мобильных роботов».
Единственное, что не очень понравилось - пишет автор больше для себя, чем для людей, повторяя, к сожалению, ошибку многих очень грамотных и образованных людей.
Ну и раскрутить этот блог не мешало бы...
Итак, на этот раз хочется осветить очень серьезным образом тему использования КПК в качестве мозгов робота.
В этой статье я опишу возможности создания робота на основе КПК, и укажу причины, почему я лично выбрал все-таки не КПК, а ноутбук (или компьютер).
Для начала рассмотрим, какие основные преимущества дает КПК или коммуникатор:
- Минимальные вес и размер - это на самом деле, одно из важнейших достоинств
- Возможность использования мощи языка C++ для программирования поведения робота
- Графический интерфейс для наладки робота
- На новых моделях - возможность проигрывания звуковых сообщений, использования фото- и видеокамеры
- На новых моделях - возможность использования современных технологий, как например SMS, GPRS, Wi-Fi, Bluetooth, GPS...
На самом деле робот на основе КПК - это реальность, причем достаточно «древняя».
Например, существует
иностранный проект создания простого робота на основе КПК Palm, с детальными описаниями процесса изготовления такого робота.

Проект называется PPRK - Palm Pilot Robot Kit, попросту говоря - это комплект готовых модулей для создания робота на основе КПК Palm.
Привожу сразу же список необходимых для сборки проекта PPRK компонентов, с указанием примерных цен (цены взяты с сайта разработчиков, и скорее всего существенно отличаются от цен тех же компонентов в России):
Количество |
Компонент |
Производитель |
Цена |
3 |
колесики диаметром 4см |
Acroname Inc. или MrRobot |
$32 или $29.85 |
3 |
сервомоторы MS492MH, модифицированные с помощью метода компании Mekatronix (производитель роботов) |
MrRobot |
$56 |
3 |
инфракрасные дальномеры Sharp GP2D12 |
Acroname Inc. |
$40 |
1 |
микросхема SV203 |
Pontech |
$59.99 |
1 |
кабель для синхронизации с Palm Pilot |
Palm Computing |
$19.99 |
1 |
плоская батарейка Hobbico HydriMax 6.0V 2000 4/5A (компонент #LXLX50) |
Tower Hobbies |
$31.99 |
2 |
Акриловый диск диаметром 15.24 см, и толщиной 32 мм (компонент #8581K26) |
McMaster-Carr |
$6 |
1 |
256 x 1 полиэтиленовые губчатые ленты (компонент #75785T87) |
McMaster-Carr |
$8.50 |
1 |
суперклей (цианоакриловый клей) |
Любой компьютерный магазин |
$2 |
1 |
Коннектор RS232 9-пин "папа" |
Любой магазин электроники |
$2 |
Всего получается порядка 260$ = 6500 руб. Еще прибавьте собственно КПК Palm III/V/m100, который конечно стоит копейки (думаю, такая б/у машинка стоит около 1000 рублей, я свой m505 покупал за 1500 рублей), но найти его трудновато.
Но дело даже не в цене.
PPRK - старинный проект, и не российский, и достать для него компоненты в полном объеме практически не представляется возможным.
Кое-что, правда, можно заменить, причем без особой потери качества.
Каркас сооружается даже из детского конструктора.
Батарейку подобрать и прикрутить свои колесики - тоже несложно.
Сервоприводы заменить моторчиками, инфракрасные дальномеры подобрать любые.
Но что делать со схемой? Ведь под нее - все драйвера.
Может быть, кто-нибудь имеет мысли на этот счет?
Другим недостатком PPRK является очень ограниченное количество функций, которые может выполнять полученный робот, т.к.
практически не используются алгоритмические возможности современных языков программирования.
Снова, в который уже раз, объезд препятствий согласно показаниям дальномеров - это максимум, на что способны умы разработчиков.
О своем отношении к такому безобразию я уже писал в
статье «Робот и искусственный интеллект».
Вкратце напомню - отношение у меня к этому безобразию не самое доброжелательное...
Возвращаясь к PPRK - похоже, на написании драйверов запал разработчиков этого очень интересного проекта кончился.
Кстати, как раз создание драйверов - в данном случае наиболее весомая проблема.
Мы можем, конечно, позаимствовать из проекта PPRK уже готовые тексты программ (и драйверов), благо они OpenSource.
Однако проблема вырастает и здесь - ведь драйвера написаны специально под микросхему SV203, которую в России достать сложновато.
В случае использования более новых и более мощных КПК или коммуникаторов процесс немного упрощается и обрастает некоторыми "вкусностями".
Например, такими "вкусностями" может стать применение в роботе технологий GPS, GPRS, Bluetooth, WiFi и т.д.
Только представьте - как только у робота кончается зарядка, он пуляет вам SMS-ку...
Внешние устройства также сейчас подключать проще, нежели чем в доисторических Palm-ах.
В конце концов, уже есть USB host и некоторые готовые драйвера к нему.

Первыми идею об использовании современных КПК в качестве основы для роботов реализовала сама фирма Microsoft, сделав робота на основе КПК с ОС Windows Mobile на борту.
Проект получил название WiMo, в честь названия операционной системы.
Этот робот предназначен главным образом для тестирования новых интерфейсов голосового управления Windows - отсюда и его основная функция: робот понимает голосовые команды и просто обращенные к нему фразы.
Кроме того, робот умеет шутить, петь, танцевать - ну и прочие приятные мелочи.
Заинтересовавшимся рекомендую посмотреть
видеопрезентацию WiMo.
В любом случае, хочется рассмотреть недостатки использования КПК, которые, на мой взгляд, имеют место быть!
Я занимался этим вопросов вполне профессионально, и старенький КПК прикупил тоже неспроста.
Итак, что я обнаружил из минусов:
- КПК, их внутренняя структура и техника их программирования - документированы в десятки раз хуже, чем знакомая всем до боли структура настольных персоналок :(
- КПК имеют совершенно другую элементную и процессорную базу, нежели обычные компьютеры и ноутбуки. Отсюда - невозможность использования наработок и многих библиотек, сделанных на компьютере, в программах для КПК.
- Достаточно сложно отлаживать программы для КПК. Есть эмуляторы на компьютере - но частенько бывает, что одна и та же программа работает на компьютере прекрасно, а на КПК просто не хочет запускаться. Можно убить много часов, прежде чем поймешь, в чем собственно дело.
- Сложность написания драйверов нестандартных устройств. Низкоуровневое программирование для КПК в несколько раз меньше документировано, и намного менее развито, нежели чем программирование низкого уровня (уровня "ядра") для компьютера.
Например, подключение пульта дистанционного управления к компьютеру заключается в скачивании WinLIRC и калибровке пульта. Ни для Palm, ни для Windows Mobile - аналогов WinLIRC я не встречал. Так как все мы здесь - энтузиасты (по крайней мере, мои статьи и проекты - предназначены в основном для таких же как я - любителей робототехники), то наша главная задача - сосредоточиться на главном, а именно - программировании поведения роботов. А необходимость писать низкоуровневые и сложные в отладке драйвера - может очень сильно убавить энтузиазма.
- Сложность при подключении дополнительных внешних устройств. У обычного компьютера, или ноутбука - гораздо больше периферии и внешних портов. В случае КПК приходится часто идти на своего рода "извращения", чтобы хоть что-то к нему подключить. Если же подключать много устройств - это вырастает в практически непреодолимую проблему.
- КПК славятся тем, что достаточно долго живут без подзарядки. Реально - они живут долго когда нет нагрузки. Если же будет постоянно крутиться программа управления роботом, постоянно осуществлять связь с внешним миром, управлять двигателями, принимать показания датчиков - то максимальное время работы без подзарядки сразу же урезается до 2-5 часов, в зависимости от модели КПК. При управлении внешними устройствами через USB host это время сокращается еще в 2-3 раза.
Подводя итог: строительство робота на основе КПК - это реально. Но - лучше
не заниматься этим в домашних условиях и на голом энтузиазме. Если все-таки очень хочется - лучше купите готовый к сборке комплект (если удастся найти).
Ссылки по теме:
-
Сборка PPRK не слишком сложна, ее процесс детально описан на сайте разработчиков. Если кому-то нужен перевод - пишите в комментариях, и в течение пары дней увидите пост с русским переводом. Хотя, на мой взгляд, из картинок итак все понятно.
-
Несмотря на простоту сборки - история о том, как собирали робота из комплекта PPRK (на английском). С фотографиями и видео. Если интересен перевод - опять же обращайтесь, сделаем.
-
Тема GPS-навигации освещается на сайте «Ты здесь!». Можно найти много интересных подробностей, в частности, и про использование GPS с коммуникаторами, и про возможности GPS-навигации, нy и так далее. Полезно, чтобы оценить, стоит ли использовать GPS и робота вместе.
-
PalmBot - проект домашней сборки робота на основе КПК Palm.
-
Книга Программируемый робот, управляемый с КПК (5Мб) - на самом деле книжка немного не по теме, но тоже полезно. Речь идет о дистанционном управлении роботами с помощью КПК, через ИК-соединение.
На самом деле, сам не читал, но как представлю себя, бегающего за роботом с КПК... В общем, иначе чем сборником анекдотов, пока что книжка не воспринимается. Но - скачал, буду читать, результаты изложу в следующем выпуске «Чтива».
К сведению: судя по собственному опыту, инфракрасник Palm-а в несколько раз хуже по части дальнобойности, чем любой пульт ДУ (ака лентяйка).
Перевод любого из англоязычных сайтов, упомянутых в ссылках, я могу осуществить, если кому-то интересно, и запостить сюда. Пишите в комментариях или на
мой e-mail
.