1

pyserial ライブラリを使用して arduino を python に接続しようとしていますが、エラーが発生し続けます。arduino を接続しましたが、arduino プログラムのシリアルが実行されていません。このエラーが発生し続けます:

Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    j = arduino()
  File "C:\Users\Dhruv and Anuj\Documents\Dhruv K. Patel\Python Files\bitSnake_source\bitSnake\glove_input.py", line 9, in __init__
    ser = serial.Serial(port, 9600)
  File "C:\Python32\lib\site-packages\serial\serialwin32.py", line 38, in __init__
    SerialBase.__init__(self, *args, **kwargs)
  File "C:\Python32\lib\site-packages\serial\serialutil.py", line 282, in __init__
    self.open()
  File "C:\Python32\lib\site-packages\serial\serialwin32.py", line 66, in open
    raise SerialException("could not open port %r: %r" % (self.portstr, ctypes.WinError()))
serial.serialutil.SerialException: could not open port 'COM1': WindowsError(2, 'The system cannot find the file specified.')

ここに私のarduinoコードがあります:

int speed = 10;

const int thumb = 2;
const int index = 3;
const int middle = 4;
const int ring = 5;
const int pinky = 6;

String out;


void setup(){
  pinMode(thumb,INPUT);
  pinMode(index,INPUT);
  pinMode(middle,INPUT);
  pinMode(ring,INPUT);
  pinMode(pinky,INPUT);
  Serial.begin(9600);
}

void loop(){
  boolean repeat = true;
  if(repeat == true){
    if(digitalRead(thumb) == HIGH){
      Serial.write(1);
      Serial.println(1);
      repeat = false;
    }
    if(digitalRead(index) == HIGH){
      Serial.write(2);
      Serial.println(2);
      repeat = false;
    }
    if(digitalRead(middle) == HIGH){
      Serial.write(3);
      Serial.println(3);
      repeat = false;
    }
    if(digitalRead(ring) == HIGH){
      Serial.write(4);
      Serial.println(4);
      repeat = false;
    }
    if(digitalRead(pinky) == HIGH){
      Serial.write(5);
      Serial.println(5);
      repeat = false;
    }
  }
  if(repeat == true){
    Serial.write(0);
    Serial.println(0);
  }
  delay(10);
}

そして私のpythonコード:

import serial
from serial import *
port = 0

class arduino:

    def __init__(self):
        #serial.tools.list_ports()
        ser = serial.Serial(port, 9600)
        self.port = str(port)

    def read(self):

        return ser.readline()

    def close(self):

        ser.close()

どんな助けでも素晴らしいでしょう、ありがとう!!

4

2 に答える 2

0

どの COM が使用されているかは、Windows ハードウェア デバイス マネージャーで確認できます。

Win7 では、私の USB-シリアル アダプタには COM40/COM41 があります。

于 2013-11-02T01:44:57.293 に答える