На случай, если вы еще не знаете: комплект 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). Без этих двух сайтов, вероятнее всего, и не было бы такого количество программного обеспечения, описанного далее по тексту.
Ключом к восприятию особенностей и параметров работы с 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 для Mindstorm работают, как замена разных частей последовательности программирования (о которой только-что говорилось). Некоторые полностью заменяют программу, установленную по умолчанию некой своей ОС-подобной системой с языковым интерпретатором. Другие генерируют коды, которые совместимы с стандартным кодом Lego, и затем используют стандартное обеспечение для загрузки кода. Наконец, некоторые просто генерируют коды для дистанционного доступа, которые позволяют управлять роботом с PC-компьютера-хоста, без предоставления возможностей программирования. Эти программы также используют стандартныое Lego-обеспечение.
Так-как большинство инструментариев основаны на простых последовательных командах, требования к железу минимальны - в общем, любая машина с Linux может быть хостом.
Единственное исключение - это последовательный порт, который ДОЛЖЕН быть и который может не присутствовать на некоторых последних новинках "без тяжкого наследства прошлых лет". Вся связь с RCX осуществляется через ИК-утройство, которое присоединяется к машине через последовательный порт. Поэтому, если у вас нет последовательного порта, то вы не сможете использовать RCX до тех пор, пока не приобретете переходник, соответсвующий вашей системе. Более того, в дальнейшем с такой системой могут возникнуть проблемы (конфликты с прерываниями или портами). Такое часто случается, когда вы используете модем как устройство /dev/ttyS0. В таком случае есть три решения: во-первых, попытайтесь использовать второй последовательный порт для ИК-устройства. Во многих случаях это помогает 8-). А если это не помогает, то попробуйте просто не использовать ваш модем и ИК-устройство одновременно. Если это неприемлемо, то загляните в опции компиляции вашего ядра (в раздел "расширенные опции последовательного порта") в пункт "поддержка разделения системных прерываний". Убедитесь, что эта опция включена, и пересоберите ядро.
Так-как Макинтоши [Macs] не имеют стандартного последовательного порта, то пользователи LinuxPPC, вероятнее всего, должны будут достать переходники и произвести модификацию, для того, чтобы пользоваться системой. Dave Baum, автор NQC и пользователь Mac, создал инструкции о том, как это сделать.
Кроме данной ССР, Lego выпускает еще две другие робосистемы - Кибермастер (доступна только в Европе) и Скаут. К сожалению, мне кажется, что только один из инструментов (NQC, обсуждаемый в Разд. Не Совсем С [Not Quite C (NQC)]) будет работать с этими системами. В общем, если вы собрались покупать Скаут, и имеете к этому еще немного денег, то лучше приобретите ССР - те немногие (дополнительно вложенные) средства себя оправдают.
Так-как многие из программ, обсуждаемых далее, используют программы и официальную марку Lego, вам, вероятно, потребуется ваш установочный компакт-диск с MS Windows. Вам, возможно, и не потребуется даже загружать MS Windows- ваше рабочее время останется при вас :) Тем не менее, (если вы запукаете NQC или RCX.pm, среди прочих программ), вам (вероятно) придется подключить компакт-диск, чтобы перезагрузить программу в систему, когда там закончатся батарейки. Если вы не хотите постоянно делать это, то тогда найдите файл firm0309.lgo на компакт-диске и скопируйте его в надежное место в разделе Linux.