BluetoothでPythonを使用して通信する


8

私は、RPiとBluetooth携帯電話の間で通信するための簡単なプログラムを書こうとしています。私はこのチュートリアル、RPiのBluetooth Pythonチュートリアルを行った ところ、電話に接続でき、正しくバインドされました。それから私はこのpythonスクリプトを書きました:

#! /usr/bin/python
import serial
from protocol import *
from MotorControllerP import *

def startBluetoothServer():
        bluetoothSerial = serial.Serial("/dev/rfcomm1",baudrate=9600)
        print("Bluetooth connected")
        try:
                while 1:
                        data = bluetoothSerial.readLine()
                        if not data: break
                        data = data.decode()
                        print("Data received: "+data)
                        if data[:3] == Client.INIT_HEY:
                                print("Initiallizing connection")
                                bluetoothSerial.write((Server.INIT_OK+"\n").enc$
                                print("Connection initiallized")
                        elif data[:3] == Client.KTHXBYE:
                               bluetoothSerial.write(Server.CLOSE.encode())
                                exitAndClean()
                        elif data[:3] == Client.CUSTOM_MOVE:
                                data = str(data)
                                formattedData = data.split(",")
                                direction = formattedData[1]
                                left = formattedData[2]
                                right = formattedData[3]
                                response = customSpeed(direction,left,right)
                                print(direction+","+left+","+right)
                                bluetoothSerial.write((str(response)+"\n").enco$
                        else:
                                print("Command not understood: "+data)
                bluetoothSerial.write(Server.CLOSE.encode())
        except KeyboardInterrupt:
                print("Rage Quit")
        except:
                print("Error happened:",sys.exc_info())
        finally:
                exitAndClean()

コードは、BTデバイスからコマンドを読み取り、モーターコントローラーに送信することになっています。しかし、私はこのエラーを受け取ります:

Traceback (most recent call last):
  File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/home/pi/Desktop/Car/RPiCar/BluetoothServer.py", line 7, in startBluetoothServer
    bluetoothSerial = serial.Serial("/dev/rfcomm1",baudrate=9600)
  File "/usr/lib/python2.7/dist-packages/serial/serialutil.py", line 260, in __init__
    self.open()
  File "/usr/lib/python2.7/dist-packages/serial/serialposix.py", line 280, in open
    self._reconfigurePort()
  File "/usr/lib/python2.7/dist-packages/serial/serialposix.py", line 409, in _reconfigurePort
    termios.tcsetattr(self.fd, TERMIOS.TCSANOW, [iflag, oflag, cflag, lflag, ispeed, ospeed, cc])
error: (5, 'Input/output error')

何かご意見は?


「sudo」で実行しても同じメッセージが表示されますか?
2014年

それが私がsudoで実行したときのメッセージです
Javi

回答:


2

おそらく持っていない/dev/rfcomm1。私はpython-bluetoothライブラリを使用することをお勧めします。これを確認してください:使用例

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.