控制Arduino的软件


8

在PC上运行的带有gui的软件是否可以控制arduino的输出并实时读取其输入?


很酷,但是Python中有任何项目吗?
mba7

Answers:


4

正如JohnC所说的那样,Firmata可能就是您想要的。Firmata是您加载到Arduino上的特殊草图。它具有一组命令,您可以通过Arduino的串行端口发送该命令以读取和写入Arduino的输入和输出。您可以使用一个处理库,以便编写用于直接控制Arduino的处理应用程序,以及用于台式计算机上运行的其他计算机语言的许多其他库(例如JohnC提到的VB .NET)。即使您没有库,也可以从知道如何与串行端口通信的任何语言发送命令(如Andrew提到的Max / Pd)

我喜欢Processing库,因为Processing是开源的,类似于Arduino。与Firmata的Arduino对话的处理草图看起来像:

import cc.arduino.*;
Arduino myArduino = new Arduino(this, "/dev/tty.usbserial", 57600);
myArduino.digitalWrite(ledPin, Arduino.HIGH);
delay(1000);
myArduino.digitalWrite(ledPin, Arduino.HIGH);

1
Firmata也可以用于从其他软件进行控制和Arduino,以及您需要做的就是打开一个串行端口(尽管处理可能是最简单的)
zklapow



0

我同意其他答案,处理是一个很好的答案,因为它与Arduino环境非常相似。我自己使用Max Msp 5,我当然可以推荐它,您可以从cycling74网站-> http://cycling74.com/downloads/下载

您将获得完整版本以及运行时环境的30天免费试用版,它可在mac os和Windows上运行。它非常易于学习,它允许您在程序运行时进行编程!-不再编译!

您可以使用一个名为serial的对象与Arduino通讯,Max随附了方便的预制对象和GUI组件。

另外,您可以导出独立的应用程序,也可以以文本格式共享它们。

吉姆


0

对于那些对Firmata的sysex有问题并希望轻松访问sysex的人:

尝试http://connect.mind-craft.net/arduino-firmata-vb-class-将“ storedInputData”变量更改为public并使用它,例如:

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button5.Click
arduino1.StartSysex()
arduino1.mycommand1(20, 1)
arduino1.EndSysex()
Thread.Sleep(100) 'Delay less than a second
arduino1.processInput()
TextBox1.Text = arduino1.storedInputData(1)
End Sub

使用EchoString.ino示例并阅读Wiki上的firmata协议,将自己的sysex命令添加到Arduino.vb

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.