Python Mindstorms RCX

У меня есть 30 нераспечатанных наборов Lego Mindstorms, которые я хотел бы использовать на вводном уроке программирования, чтобы в конце года заняться некоторыми простыми робототехническими задачами. Мы используем Python в классе, поэтому я бы предпочел, чтобы дети могли писать программы на Python. К сожалению, это старые наборы с блоками RCX, а не более новые NXT, поэтому большинство проектов, таких как NXT_Python, не могут мне помочь. Есть ли способ сделать это?


person Kyle Schmidt    schedule 08.04.2010    source источник
comment
@jathanism Он использует RCX, поэтому я не понимаю, как ему поможет NXT_Python.   -  person avpx    schedule 08.04.2010
comment
python mindstormin в школе? Как я могу присоединиться к вашему классу (и потерять несколько лет в процессе)?   -  person Don Johe    schedule 08.04.2010
comment
@Don Johe - надеюсь, мозговой штурм с Python. Я сделал это с Java несколько лет назад, и это может быть моим запасным планом. Если я найду время, я могу попробовать Jython с Lejos, хотя это может оказаться непрактичным для обучения всего класса.   -  person Kyle Schmidt    schedule 08.04.2010
comment
@Ori Pessach — старший школьный возраст, 14–18 лет.   -  person Kyle Schmidt    schedule 08.04.2010


Ответы (2)


Запуск Python на самом кирпиче, вероятно, сложен (по причине, которую уже указали другие - например, размер интерпретатора, доступная оперативная память на кирпиче), но это может представлять интерес:

Согласно этой теме вы должны иметь возможность использовать pylnp (удаленный) в сочетании с BrickOS (на кирпиче; ранее legOS).

person ChristopheD    schedule 09.04.2010
comment
Очевидно, Perl или Forth тоже могут быть вариантом: см. faqs.org/docs/Linux. -мини/Лего.html - person ChristopheD; 09.04.2010
comment
Кроме того, это библиотеки удаленного управления. Отличная вещь, но ИК-связь должна быть подключена к кирпичу все время. Из-за не зависящих от меня ограничений я не могу подключить ИК-вышки к нашим машинам с Windows — только к машине с Linux, которой у меня официально нет. Я могу использовать его для прошивки кирпичей и переноса программ, поэтому, если я это сделаю, студенты должны иметь возможность запускать программы на кирпиче без ИК-башни. Forth слишком отличается от Python, чтобы я мог использовать его всего несколько недель — то же самое с C. - person Kyle Schmidt; 10.04.2010

Я сомневаюсь.

В блоках RCX использовался 8-битный микроконтроллер. Хотя на нем можно было бы запустить какой-то интерпретатор Python, я не видел ни одного перенесенного на него.

Самое близкое, что вы можете получить, это Java:

http://lejos.sourceforge.net/

Так что теоретически вы могли бы взглянуть на Jython и попытаться запустить файлы классов, скомпилированные с его помощью, на JVM lejos... Однако звучит как длинный выстрел. У микроконтроллера в блоке RCX просто нет места для большого времени выполнения.

person Ori Pessach    schedule 08.04.2010
comment
У меня была такая же мысль, когда вы оставили свой ответ. Я постараюсь проверить это сегодня, но, как вы сказали, я не слишком оптимистичен. Я также не уверен, что там не так много работы, чтобы дети не увязли в том, чтобы их код работал на JVM, и упустили из виду написание Python. - person Kyle Schmidt; 08.04.2010
comment
Я видел сообщения от людей, пытающихся запустить Jython на lejos и сталкивающихся со всевозможными проблемами: osdir.com/ml/java.lejos/2005-07/msg00013.html osdir.com/ml/java.lejos/2005-07/msg00014.html. Похоже, что библиотека времени выполнения, предоставляемая lejos, не соответствует требованиям. С тех пор это может быть исправлено или легко поправимо. - person Ori Pessach; 08.04.2010
comment
После пары часов получения самой последней копии LeJOS, работающей с Java 1.5, и, наконец, установки LeJOS на RCX, Jython захлебнулся компиляцией с предоставленным компилятором LeJOS — судя по его внешнему виду, возможно, из-за отсутствия метода копирования массива. . Использование javac не помогло - дает неправильный магический номер, когда я пытаюсь lejosdl класс на кирпич. Так что я собираюсь закрыть этот проект, поскольку, как бы ни был интересен Mindstorms, из-за объема работы, связанной с выполнением вещей, которые не связаны с программированием, я собираюсь найти другой проект на конец года. - person Kyle Schmidt; 09.04.2010
comment
облом. Если это просто метод arraycopy(), его, вероятно, можно добавить в lejos... - person Ori Pessach; 09.04.2010
comment
В частности, lejos предоставляет System.arraycopy(), но его сигнатура отличается от метода, задокументированного Sun. В частности, он имеет дело только с аргументами источника и назначения char[]. Должно быть довольно легко добавить перегруженный метод для поддержки String src и dst, что и пытается использовать Jython. Я бы сделал это сам, если бы у меня была возможность проверить это. - person Ori Pessach; 09.04.2010