如何從Arduino發送一個值到Python,然後使用該值



Answers

也許看看Pyduino項目

pyduino是一個庫,它允許你從Python內部與Firmata協議加載的Arduino板進行通信。 它目前支持Firmata協議的版本2。

Question

我正在構建一個使用Python遠程控制的機器人,通過簡單的GUI通過Internet發送控制消息。

我已經得到了我的代碼的一部分工作得很好,GUI和控制系統,但我卡住了。 我正在嘗試使用視差ping傳感器來獲取距離Arduino Mega的對象信息的距離,並將該值發送到我的Python控制腳本以顯示在遠程GUI上。

我所面臨的主要問題是如何將使用已經建立的COM端口的Python代碼與Arduino集成在一起,並發送一條消息告訴Arduino輪詢ping傳感器,然後發送給一個Python程序,然後讓我把這個值插入到我的GUI中。

我已經有了這個代碼來控制Arduino,它的工作,我簡單的GUI。

import serial
ser = serial.Serial('/dev/ttyUSB0', 9600)

from PythonCard import model

class MainWindow(model.Background):
    def on_SpdBtn_mouseClick(self, event):
       spd = self.components.SpdSpin.value
    def on_FBtn_mouseClick(self, event):
       spd = self.components.SpdSpin.value
       ser.write('@')
       ser.write('F')
       ser.write(chr(spd))
    def on_BBtn_mouseClick(self, event):
       spd = self.components.SpdSpin.value
       ser.write('@')
       ser.write('B')
       ser.write(chr(spd))
    def on_LBtn_mouseClick(self, event):
       spd = self.components.SpdSpin.value
       ser.write('@')
       ser.write('L')
       ser.write(chr(spd))
    def on_RBtn_mouseClick(self, event):
       spd = self.components.SpdSpin.value
       ser.write('@')
       ser.write('R')
       ser.write(chr(spd))
    def on_SBtn_mouseClick(self, event):
       spd = self.components.SpdSpin.value
       ser.write('@')
       ser.write('S')
       ser.write('0')
    def on_PngDisBtn_mouseClick(self, event):
       ser.write('~')
       ser.write('P1')
       ser.write('p2')

app = model.Application(MainWindow)
app.MainLoop()

我真正想要做的是改進上面的代碼,並添加一個按鈕來單擊以告訴Python向Arduino發送消息來檢查ping傳感器並返回值。 我非常熟悉Arduino的代碼,但在過去的兩周里我剛剛開始使用Python。






Links