Краткое руководство по использованию Lego Mindstorm с Linux |
---|
Пред. | | След. |
Архитектура Mindstorm
Основное оборудование
На случай, если вы еще не знаете: комплект Mindstorm от Lego - это
конструктор роботов от "Lego Group", который сейчас продается
примерно за 200 долларов США. За эти деньги вы получаете много
Lego-деталей, большой блок, содержащий ЦПУ, жидкокристаллический
дисплей, несколько кабелей и разьемов (называемых по тексту RCX),
пару моторов, и несколько световых и тактильных сенсоров, которые
позволяют системе взаимодействовать с внешним миром.
Сейчас выпусткается комплект RCX версии 1.5, который будет заменен
весной 2001 года на версию 2.0. Далее, когда я говорю в тексте
"RCX", я подразумеваю "RCX 1.x." Разница между версиями 1.0 и 1.5
незначительны, но изменения между версиями 1.5 и 2.0 могут быть
существенны - точное содержание изменений пока еще неизвестно.
Если вы хотите знать больше о технической стороне дела (в смысле,
помучить детальки, разобрать кабели и сенсоры, чтобы посмотреть,
как они работают, и что заставляет их двигаться) - то для вас есть
два важных сайта: Строение компонентов
Mindstorm от Lego (автор Russell Nelson) и Строение компонентов
сенсоров RCX (автор Kekoa Proudfoot). Без этих двух сайтов,
вероятнее всего, и не было бы такого количество программного
обеспечения, описанного далее по тексту.
Стандартное программирование RCX
Ключом к восприятию особенностей и параметров работы с Linux
является понимание того, как комплекс Mindstorm работает с MS
Windows. По умолчанию Lego поставляет программы для MS Windows,
которые позволяют вам (или, например, 12-14 летнему ребенку)
создать программу (в графической оболочке) для Mindstorm, используя
мета-блочную структуру программирования кода. Как только программа
таким образом "создана", программа компилирует и создает
последовательность байтов. Эти последовательности - код - затем
передается роботу, и его микропрограммы RCX обрабатывают
этот код и руководят машиной на основе инструкций программы. Кроме
анализа кода, программа RCX имеет много похожего с операционной
системой: он контролирует работу аппаратных средств, ресурсов и,
некоторым образом, управляет ИК [IR] портом, который используется
для связи с роботом. Также он имеем возможность воспринимать
отдельные специфичные команды (в противоположность закоченной
программе) по ИК порту или через специальное устройство
дистанционного управления, и управлять роботом на основе этих
команд.
Программное обеспечение комплекта ставится, как в версии 1.0 (даже
если вы приобретете RIS версии 1.5). У него есть несколько
достаточно серьезных ограничений - например, так-как каждая
переменная сохраняется в регистрах, а не в ОЗУ, то возможно
существование только 32 переменных. Но тем не менее, можно делать
достаточно клевые вещи и с такими органичениями, а в версии 2.0
микропрограммы комплекта (которая доступна сейчас в виде
бета-версии на LEGO) эти
ограничения будут, в основном, сняты, при этом должна остаться
полная совместимость с версией 1.x.
Как применять инструментарий Linux
Разные программы под Linux для Mindstorm работают, как замена разных
частей последовательности программирования (о которой только-что
говорилось). Некоторые полностью заменяют программу, установленную
по умолчанию некой своей ОС-подобной системой с языковым
интерпретатором. Другие генерируют коды, которые совместимы с
стандартным кодом Lego, и затем используют стандартное обеспечение
для загрузки кода. Наконец, некоторые просто генерируют коды для
дистанционного доступа, которые позволяют управлять роботом с
PC-компьютера-хоста, без предоставления возможностей
программирования. Эти программы также используют стандартныое
Lego-обеспечение.
Необходимые комплектующие для Linux хоста
Так-как большинство инструментариев основаны на простых
последовательных командах, требования к железу минимальны - в
общем, любая машина с Linux может быть хостом.
Единственное исключение - это последовательный порт, который ДОЛЖЕН
быть и который может не присутствовать на некоторых последних
новинках "без тяжкого наследства прошлых лет". Вся связь с RCX
осуществляется через ИК-утройство, которое присоединяется к машине
через последовательный порт. Поэтому, если у вас нет
последовательного порта, то вы не сможете использовать RCX до тех
пор, пока не приобретете переходник, соответсвующий вашей системе.
Более того, в дальнейшем с такой системой могут возникнуть проблемы
(конфликты с прерываниями или портами). Такое часто случается,
когда вы используете модем как устройство /dev/ttyS0. В таком
случае есть три решения: во-первых, попытайтесь использовать второй
последовательный порт для ИК-устройства. Во многих случаях это
помогает 8-). А если это не помогает, то попробуйте просто не
использовать ваш модем и ИК-устройство одновременно. Если это
неприемлемо, то загляните в опции компиляции вашего ядра (в раздел
"расширенные опции последовательного порта") в пункт "поддержка
разделения системных прерываний". Убедитесь, что эта опция
включена, и пересоберите ядро.
Так-как Макинтоши [Macs] не имеют стандартного последовательного
порта, то пользователи LinuxPPC, вероятнее всего, должны будут
достать переходники и произвести модификацию, для того, чтобы
пользоваться системой. Dave Baum, автор NQC и пользователь Mac,
создал инструкции
о том, как это сделать.
Кибермастер [CyberMaster] и Скаут [Scout]
Кроме данной ССР, Lego выпускает еще две другие робосистемы -
Кибермастер (доступна только в Европе) и Скаут. К сожалению, мне
кажется, что только один из инструментов (NQC, обсуждаемый в Разд. Не Совсем С [Not Quite C (NQC)]) будет работать с этими системами. В общем, если вы
собрались покупать Скаут, и имеете к этому еще немного денег, то
лучше приобретите ССР - те немногие (дополнительно вложенные)
средства себя оправдают.
Важное примечание об установочном компакт-диске MS Windows
Так-как многие из программ, обсуждаемых далее, используют программы
и официальную марку Lego, вам, вероятно, потребуется ваш
установочный компакт-диск с MS Windows. Вам, возможно, и не
потребуется даже загружать MS Windows- ваше рабочее время останется
при вас :) Тем не менее, (если вы запукаете NQC или RCX.pm, среди
прочих программ), вам (вероятно) придется подключить компакт-диск,
чтобы перезагрузить программу в систему, когда там закончатся
батарейки. Если вы не хотите постоянно делать это, то тогда найдите
файл firm0309.lgo на компакт-диске и
скопируйте его в надежное место в разделе Linux.
Пред. | Начало | След. |
Краткое руководство по использованию Lego Mindstorm с Linux | | Операционная система LegOS |