Взаимодействие по последовательному порту

Тема в разделе "Raspberry Pi", создана пользователем Salomatin, 10 сен 2016.

  1. Salomatin

    Salomatin Гик

    Беру плату Raspberry Pi 3 Model B http://amperka.ru/product/raspberry-pi-3-model-b
    и Arduino
    Запускаю, соединяю, все работает.
    По книжке Заводим Raspberry Pi http://amperka.ru/product/getting-started-with-raspberry-pi

    Дохожу до главы Взаимодействие по последовательному порту.
    На arduino загружаю
    Код (C++):

    void setup() {
      Serial.begin(9600);
    }


    void loop() {
      for (byte n = 0; n < 255; n++) {
      Serial.write(n);
      delay(50);    
      }
    }
     
    создаю файл ./serial.py


    Код (C++):
    #!/usr/bin/env python3

    import serial

    port = "/dev/ttyACM0"
    serialFromArduino = serial.Serial(port,9600)
    serialFromArduino.flushInput()
    while True:
        if (serialFromArduino.inWaiting() > 0):
           input = serialFromArduino.read(1)
           print(ord(input))
     
    получаю ошибку:
    pi@raspberrypi:~/arduino $ ./serial.py
    Traceback (most recent call last):
    File "./serial.py", line 3, in <module>
    import serial
    File "/home/pi/arduino/serial.py", line 6, in <module>
    serialFromArduino = serial.Serial(port,9600)
    AttributeError: 'module' object has no attribute 'Serial'

    создаю файл SerialEcho.py

    Код (C++):
    #!/usr/bin/env python3

    import serial, sys


    if (len(sys.argv) != 2):
        print("Usage: python ReadSerial.ru port")
        sys.exit()
    port = sys.argv[1]

    pi@raspberrypi:~/arduino $ ./SerialEcho.py /dev/ttyACM0
    Traceback (most recent call last):
    File "./SerialEcho.py", line 3, in <module>
    import serial, sys
    File "/home/pi/arduino/serial.py", line 6, in <module>
    serialFromArduino = serial.Serial(port,9600)
    AttributeError: 'module' object has no attribute 'Serial'

    Все куплено в амперке, делаю строго по книжке.

    Как мне правильно отправить и получить по последовательному порту?
     
  2. Salomatin

    Salomatin Гик

    Нашел сам ответ:
    Нельзя называть файл serial.py
    Переименовал. Удалил созданный Python файл serial.pyс
    и все заработало.
     
    NikitOS и alp69 нравится это.