<div dir="ltr"><br><div class="gmail_quote">---------- Пересылаемое сообщение 3 ----------<br>От кого: <b class="gmail_sendername">Evgeny Sinelnikov</b> <span dir="ltr">&lt;<a href="mailto:sin@altlinux.ru">sin@altlinux.ru</a>&gt;</span><br>Дата: 14 января 2015 г., 5:11<br>Тема: Поддержка физических исполнителей в Кумире<div dir="ltr"><br>...<br><br><div class="gmail_extra">Ещё раз, если кто не понял суть задачи, которую ставлю я. Привожу подробности из переписки с Сашей Трушиным:<br><br>В
 новой версии Кумира есть среда разработки и транслятор. В старой 
версии, насколько я понимаю, ещё нет разделения на IDE и Транслятор. Это
 фича версии 2.X:<br><ul><li><a rel="nofollow noreferrer" href="http://www.google.com/url?q=http%3A%2F%2Fwww.niisi.ru%2Fkumir%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNEnoT_bprPAP0afV81PnKANBCRlcA" dir="ltr" target="_blank">http://www.niisi.ru/kumir/</a></li><li><a rel="nofollow noreferrer" href="http://www.google.com/url?q=http%3A%2F%2Flpm.org.ru%2Fkumir3%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNFYW9IgSKRywjHbLy___xsOMG9-Rw" dir="ltr" target="_blank">http://lpm.org.ru/kumir3/</a><br></li></ul><div><div><div><div><div><div><div>Я предлагаю такой вариант, для начала:<br><ul><li>вместо
 трансляции объектного кода для ARM сделать поддержку трансляции в 
примитвный ассемблер, который есть в среде разработки от Лего. Этот 
ассемблер одинаков для обоих версий (NXT-2.0 и EV3) так что можно будет 
прошивать не меняя базовую прошивку робота.</li><ul><li><a href="http://ev3.fantastic.computer/?page_id=84" target="_blank">http://ev3.fantastic.computer/?page_id=84</a></li><li><a href="http://analyticphysics.com/Diversions/Assembly%20Language%20Programming%20for%20LEGO%20Mindstorms%20EV3.htm" target="_blank">http://analyticphysics.com/Diversions/Assembly%20Language%20Programming%20for%20LEGO%20Mindstorms%20EV3.htm</a><br><br></li></ul><li>неоднозначность
 тут состоит в том, что авторы Кумира планировали один общий формат 
объектных файлов для всех видов исполнителей, а я предлагаю добавить для
 некоторых специфичных исполнителей возможность трансляции в свой 
специфичный объектный код. <br></li></ul></div></div><br>Первая цель - сделать открытую платформу для программирования роботов 
на базе Кумира, добавив в него новых исполнителей с полной системой 
команд:<br><ul><li>управление всеми двигателями</li><li>считывание значений 
датчиков (это базовый набор из Лего):</li><ul><li>счётчик оборотов каждого подключенного двигателя (если есть),</li><li>датчик отражения света,</li><li>датчик освещённости,</li><li>датчики цвета (три 
последних выполнены в виде одного устройства),</li><li>ультразвукой дальномер,</li><li>одноосевой гироскоп,<br></li><li>ИК-датчик приближения,</li><li>ИК-приёмник (два последних в виде одного 
устройства).<br></li></ul></ul>То есть задача - это сделать универсальных исполнителей:<br><ul><li>Исполнитель Лего</li><li>Исполнитель Ардуино</li><li>Исполнитель Распбери<br></li></ul>с
 общей базовой системой команд, которая есть в среде разработки Лего 
роботов (для начала). Начать предлагаю с Исполнителя Лего потому что 
сами роботы уже готовы и достаточно стандартны.<br><br></div></div></div></div></div><div><div><div><div><div><div><div>Конечно
 тупая черепаха, как это было сделано в наработках, не будет &quot;просто так на нужную точку выходить&quot;. Но её можно сделать 
умной, в виде более простого набора команд и более простых исполнителей для 
более младшей аудитории.<br><br>Вопрос: &quot;Режим чтобы прошивать или полуинтерактивный?&quot;</div></div></div></div></div></div></div><div>Ответ: &quot;Прошивать, конечно.&quot;<br><ul><li>Но, для начала, в базовую прошивку Lego Mindstorm.<br></li><li>Протокол есть, он открытый.</li><ul><li><a href="http://code.google.com/p/smart-robot/downloads/detail?name=Appendix%201-LEGO%20MINDSTORMS%20NXT%20Communication%20protocol.pdf" target="_blank">http://code.google.com/p/smart-robot/downloads/detail?name=Appendix%201-LEGO%20MINDSTORMS%20NXT%20Communication%20protocol.pdf</a><br></li></ul><li>Есть даже исходники в ev3sources на гитхабе.</li><li>Есть и отдельная ветка на гитхабе ev3dev.</li></ul></div><div><div><div>В
 нового EV3-робота также вставляется SD-карта, можно ev3dev на базе 
Debian загрузить. Но лучше бы стандартной прошивкой обойтись. Тем более,
 что тогда сразу две версии лего-роботов получится охватить. Никто не 
мешает сделать поддержку и более продвинутую, но не надо сразу 
усложнять. <br></div></div></div></div><span class=""><font color="#888888"><div class="gmail_extra"><br><br>-- <br><div><div dir="ltr">Sin (Sinelnikov Evgeny)<br></div></div>
</div></font></span></div>
</div><br><br>​</div>