【问题标题】:Python Mindstorms RCXPython Mindstorms RCX
【发布时间】:2010-04-08 01:05:41
【问题描述】:

我有 30 个未打开的 Lego Mindstorms 套件,我很想在我的编程入门课程中使用它们,以便在年底做一些简单的机器人学工作。我们在课堂上使用 Python,所以我希望有一种方法让孩子们用 Python 编写程序。不幸的是,这些都是带有 RCX 积木的旧工具包——而不是新的 NXT 工具包,所以像 NXT_Python 这样的大多数项目都无法帮助我。有什么办法可以实现吗?

【问题讨论】:

  • @jathanism 他正在使用 RCX,所以我不知道 NXT_Python 将如何帮助他。
  • python 头脑风暴在学校吗?我怎样才能加入你的课程(并在此过程中松散几年)?
  • @Don Johe - 希望用 Python 进行头脑风暴。几年前我用 Java 做过,这可能是我的后备计划。如果我能抽出时间,我可能会尝试 Jython 和 Lejos,尽管这可能证明对整个班级的教学是不切实际的。
  • @Ori Pessach - 高中年龄,14-18 岁

标签: python mindstorms lego


【解决方案1】:

在程序块本身上运行 Python 可能很困难(因为其他人已经说过 - 解释器的大小,例如程序块上的可用 RAM),但这可能很有趣:

According to this thread 您应该能够将pylnp(远程)与BrickOS(在砖块上;以前的legOS)结合使用。

【讨论】:

  • 显然 Perl 或 Forth 也可以是一个选项:参见 faqs.org/docs/Linux-mini/Lego.html
  • 另外,这些是远程控制库。很棒的东西,但是 IR 链接需要一直连接到砖块上。由于我无法控制的限制,我无法将 IR 塔连接到我们的 Windows 机器上——只能连接到我没有正式拥有的 Linux 机器上。我可以用它来刷砖和传输程序,所以如果我这样做,学生需要能够在没有红外塔的情况下在砖上运行程序。 Forth 与 Python 有点不同,我无法使用它几周 - 与 C 相同。
【解决方案2】:

我怀疑。

RCX 程序块使用 8 位微控制器。虽然可以在其上运行某种 Python 解释器,但我还没有看到有人移植到它。

你能得到的最接近的是Java:

http://lejos.sourceforge.net/

所以理论上,您可以查看 Jython 并尝试在 lejos JVM 上运行用它编译的类文件……不过,这听起来很遥远。 RCX 砖中的微控制器没有足够的空间来运行大型运行时。

【讨论】:

  • 当你留下你的答案时,我也有同样的想法。我今天会试着检查一下,但就像你说的,我不是很乐观。我也不确定是否有太多的工作涉及到孩子们不会陷入让他们的代码在 JVM 上工作的困境,而忽略了编写 Python。
  • 我看到有人试图在 lejos 上运行 Jython 并遇到各种问题的帖子:osdir.com/ml/java.lejos/2005-07/msg00013.htmlosdir.com/ml/java.lejos/2005-07/msg00014.html。 lejos 提供的运行时库似乎不符合标准。从那时起它可能会得到修复,或者很容易修复。
  • 在几个小时后获得了使用 Java 1.5 的 LeJOS 的最新副本,并最终在 RCX 上安装了 LeJOS,Jython 对使用提供的 LeJOS 编译器进行编译 - 从外观上看,可能是因为缺少 arraycopy 方法。使用 javac 没有帮助 - 当我尝试将类 lejosdl 放到砖块上时,提供了一个错误的幻数。所以我打算放弃这个项目,因为尽管 Mindstorms 很有趣,但对于做非编程的事情所涉及的工作量,我会找到一个不同的年终项目。
  • 无赖。如果只是arraycopy()方法的话,大概可以加到lejos...
  • 更具体地说,lejos 确实提供了 System.arraycopy(),但它的签名与 Sun 记录的方法不同。具体来说,它只处理 char[] 源和目标参数。添加重载方法来支持 String src 和 dst 应该很容易,这正是 Jython 尝试使用的。如果我有任何测试方法,我会自己做。
猜你喜欢
  • 2017-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-12
  • 2021-02-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多