[Sarlug] Поддержка физических исполнителей в Кумире
Evgeny Sinelnikov
sin на altlinux.ru
Ср Янв 14 05:35:29 MSK 2015
---------- Пересылаемое сообщение 3 ----------
От кого: Evgeny Sinelnikov <sin на altlinux.ru>
Дата: 14 января 2015 г., 5:11
Тема: Поддержка физических исполнителей в Кумире
...
Ещё раз, если кто не понял суть задачи, которую ставлю я. Привожу
подробности из переписки с Сашей Трушиным:
В новой версии Кумира есть среда разработки и транслятор. В старой версии,
насколько я понимаю, ещё нет разделения на IDE и Транслятор. Это фича
версии 2.X:
- http://www.niisi.ru/kumir/
<http://www.google.com/url?q=http%3A%2F%2Fwww.niisi.ru%2Fkumir%2F&sa=D&sntz=1&usg=AFQjCNEnoT_bprPAP0afV81PnKANBCRlcA>
- http://lpm.org.ru/kumir3/
<http://www.google.com/url?q=http%3A%2F%2Flpm.org.ru%2Fkumir3%2F&sa=D&sntz=1&usg=AFQjCNFYW9IgSKRywjHbLy___xsOMG9-Rw>
Я предлагаю такой вариант, для начала:
- вместо трансляции объектного кода для ARM сделать поддержку трансляции
в примитвный ассемблер, который есть в среде разработки от Лего. Этот
ассемблер одинаков для обоих версий (NXT-2.0 и EV3) так что можно будет
прошивать не меняя базовую прошивку робота.
- http://ev3.fantastic.computer/?page_id=84
-
http://analyticphysics.com/Diversions/Assembly%20Language%20Programming%20for%20LEGO%20Mindstorms%20EV3.htm
- неоднозначность тут состоит в том, что авторы Кумира планировали
один общий формат объектных файлов для всех видов исполнителей, а я
предлагаю добавить для некоторых специфичных исполнителей возможность
трансляции в свой специфичный объектный код.
Первая цель - сделать открытую платформу для программирования роботов на
базе Кумира, добавив в него новых исполнителей с полной системой команд:
- управление всеми двигателями
- считывание значений датчиков (это базовый набор из Лего):
- счётчик оборотов каждого подключенного двигателя (если есть),
- датчик отражения света,
- датчик освещённости,
- датчики цвета (три последних выполнены в виде одного устройства),
- ультразвукой дальномер,
- одноосевой гироскоп,
- ИК-датчик приближения,
- ИК-приёмник (два последних в виде одного устройства).
То есть задача - это сделать универсальных исполнителей:
- Исполнитель Лего
- Исполнитель Ардуино
- Исполнитель Распбери
с общей базовой системой команд, которая есть в среде разработки Лего
роботов (для начала). Начать предлагаю с Исполнителя Лего потому что сами
роботы уже готовы и достаточно стандартны.
Конечно тупая черепаха, как это было сделано в наработках, не будет "просто
так на нужную точку выходить". Но её можно сделать умной, в виде более
простого набора команд и более простых исполнителей для более младшей
аудитории.
Вопрос: "Режим чтобы прошивать или полуинтерактивный?"
Ответ: "Прошивать, конечно."
- Но, для начала, в базовую прошивку Lego Mindstorm.
- Протокол есть, он открытый.
-
http://code.google.com/p/smart-robot/downloads/detail?name=Appendix%201-LEGO%20MINDSTORMS%20NXT%20Communication%20protocol.pdf
- Есть даже исходники в ev3sources на гитхабе.
- Есть и отдельная ветка на гитхабе ev3dev.
В нового EV3-робота также вставляется SD-карта, можно ev3dev на базе Debian
загрузить. Но лучше бы стандартной прошивкой обойтись. Тем более, что тогда
сразу две версии лего-роботов получится охватить. Никто не мешает сделать
поддержку и более продвинутую, но не надо сразу усложнять.
--
Sin (Sinelnikov Evgeny)
----------- следующая часть -----------
Вложение в формате HTML было удалено...
URL: <http://lists.lug.ru/pipermail/sarlug/attachments/20150114/42988475/attachment-0001.html>
Подробная информация о списке рассылки Sarlug