有没有办法将Python代码“编译”到Arduino(Uno)?

我有一个Arduino Uno的机器人types项目,简而言之,我正在试验一些AIalgorithm。 但是,我需要使用NumPy / SciPy来实现一些非常简单的高级matrixalgorithm,但是它们在C或C ++中是一个噩梦。 即使在那里的图书馆,这只是变得荒谬。

有没有什么办法可以在Python中做这个项目? 我想我听说过有关这个function的Mega ,但是我有一个Uno,取而代之在这个时候不是一个select(这会让项目变得相当复杂)。另外,我听说了一些使用Python进行通信通过USB连接到Arduino,但是在运行时我不能连接USB电缆。 我需要能够上传程序并完成它。

那里有什么select,还是我刚刚死了?

PyConAU今年有一个关于使用Python与机器人技术的讨论,叫做Ah! 我看到你有机会去'BING'! 由格雷姆十字博士。

他推荐在微控制器板上使用Python的唯一select是PyMite ,我认为这也是Python-On-A-Chip的名字。

它已被移植到一系列的电路板上 – 具体来说,他提到了Arduino Mega,你说的不是你的select,但它有可能在其他的Arduino电路板上被支持。

但是,因为它是一个“不包含电池”的Python版本,所以你很可能会遇到一个真正的问题,让numpy / scipy等等运行起来。

正如其他海报所build议的那样,在C中实施可能是阻力最小的途径。

更新:再次,不专门为Arduino,但pyMCU看起来提供了一个芯片上的Python。 作者说,如果有足够的兴趣,他可能会考虑开发一个Arduino版本的pyMCU。

我已经开始为C ++ 编写一个“小Python”(称为Pyxie – Py CC-Pyc-C上的一个编译器),其目的是编译Python的一个合理的子集到C ++,以便它可以运行在一个arduino 。

这在写作时还远远没有完成(0.0.16),但是它目前可以编译python的一个非常小的子集 – 足够让arduino“blink”示例运行。 为了支持这一点,它有一个编译configuration文件 – 这基本上意味着“使用arduino工具链进行编译”。

它可以编译的程序如下所示:

led = 13 pinMode(led, OUTPUT) while True: digitalWrite(led, HIGH) delay(1000) digitalWrite(led, LOW) delay(1000) 

这parsing,执行分析(如types推断等),编译为C ++,然后编译为一个hex文件,您可以加载到您的设备。

在它有用之前还有很长的路要走,但是它正在发展,并且有一个路线图等等。

与Micropython(和PyMite)的主要区别在于,它被devise为编译到设备太小而无法运行任何一个实现。 (这也意味着它与ShedSkin非常不同,而Python到C ++编译器的目标是更大的执行环境)