Firmata и arduno. Ошибка- AttributeError: module 'serial' has no attribute 'Serial'

kipa67

Новичок
Пользователь
Май 28, 2020
3
0
1
Windows 7, Python 3.6 , PyCharm
Изучаю Python решил по управлять Arduino, поставил библиотеку Pyfirmata. Не работает, постоянно выдает ошибку-

Python:
C:\Python37-32\python.exe E:/PYTHON_SKETCH/Led13.py
Traceback (most recent call last):
  File "E:/PYTHON_SKETCH/Led13.py", line 4, in <module>
    board = pyfirmata.Arduino("COM3")
  File "C:\Python37-32\lib\site-packages\pyfirmata\__init__.py", line 19, in __init__
    super(Arduino, self).__init__(*args, **kwargs)
  File "C:\Python37-32\lib\site-packages\pyfirmata\pyfirmata.py", line 89, in __init__
    self.sp = serial.Serial(port, baudrate, timeout=timeout)
AttributeError: module 'serial' has no attribute 'Serial'

Вот код из примера-
Python:
import pyfirmata
import time

board = pyfirmata.Arduino("COM3")
it = pyfirmata.util.Iterator(board)
it.start()

board.digital[10].mode = pyfirmata.INPUT

while True:
    sw = board.digital[10].read()
    if sw is True:
        board.digital[13].write(1)
    else:
        board.digital[13].write(0)
    time.sleep(0.1)
Уже три дня не могу понять почему не работает, прочитал кучу сайтов везде этот пример. Я прошу обьяснить почему не запускается или направить в нужную сторону где искать ответ. Потому что без помощи, да и с моими знаниями я не справлюсь. Я понимаю что что-то с библиотекой не так…
 
Последнее редактирование:

MaksimD

Пользователь
Пользователь
Май 12, 2020
51
11
8
Python:
board = pyfirmata.Arduino("COM3")
it = pyfirmata.util.Iterator(board)
it.start()

Нормольно модуль подключи.
Не правильный аргумент в функции Arduino("COM3"). Надо
Python:
from pyfirmata import Arduino, util

board = Arduino('COM3')
 
Последнее редактирование:

kipa67

Новичок
Пользователь
Май 28, 2020
3
0
1
Понял, спасибо. Буду пробовать. Отпишусь как получилось.
 

kipa67

Новичок
Пользователь
Май 28, 2020
3
0
1
Все таки заработало!
Сделаю уточнение, может кому пригодиться.
Полностью переустановил Python (установил в C:\Python) и переустановил PyCharm.
Я несколько раз переустанавливал Python а в PyCharm сохранились старые пути к библиотекам и (я так думаю) поэтому сыпались все время ошибки. Еще на Python 3.7.7 программа не запускалась, после установки Python 3.4.3 и установки библиотек, все заработало. Возможно дело было в этих проблемах. Я еще учусь писать программы на Python, поэтому каждый шаг дается с боем. И еще надо чтобы Arduino IDE после загрузки скетча, была закрыта. Вот работающая программа–
Python:
from pyfirmata import Arduino, util
import time
board = Arduino("COM4")

loopTimes = input('How many times would you like the LED to blink: ')
print("Blinking " + loopTimes + " times.")

for x in range(int(loopTimes)):

    board.digital[13].write(1)
    time.sleep(0.2)
    board.digital[13].write(0)
    time.sleep(0.2)

Спасибо за советы и помощь.
 

Форум IT Специалистов