我对 python 很陌生,并且正在使用firmata 我正在尝试使用 arduino 。
这是我想要发生的事情:
- 使用 LED 将 arduino 设置为数字输出
将电位器设置为模拟 0
设置 PyQt 定时器以更新
应用程序中的电位器位置在 PyQt 中设置一个阈值来打开 LED(模拟输入具有 1024 位分辨率,所以说 800 作为
阈值)
我正在使用这个固件库:链接
这是我遇到问题的代码:
从 PyQt4 导入 sys 导入 QtCore,从 Firmata 导入 QtGui *
# Arduino setup
self.a = Arduino('COM3')
self.a.pin_mode(13, firmata.OUTPUT)
# Create timer
self.appTimer = QtCore.QTimer(self)
self.appTimer.start(100)
self.appTimer.event(self.updateAppTimer())
def updateAppTimer(self):
self.analogPosition = self.a.analog_read(self, 0)
self.ui.lblPositionValue.setNum()
我收到错误消息:
Traceback(最近一次调用最后):文件“D:\Programming\Eclipse\IO Demo\src\control.py”,第 138 行,在 myapp = MainWindow() 文件“D:\Programming\Eclipse\IO Demo\src\ control.py”,第 56 行,在init self.appTimer.event(self.updateAppTimer()) 文件“D:\Programming\Eclipse\IO Demo\src\control.py”,第 60 行,在 updateAppTimer self.analogPosition = self.a.analog_read(self, 0) TypeError:analog_read() 正好需要 2 个参数(给定 3 个)
如果我取出“self”,我会收到相同的错误消息,但只给出了 1 个参数
python 隐含地做了什么我不知道的事情?
块引用