Найти - Пользователи
Полная версия: Firmata и arduno. Ошибка- AttributeError: module 'serial' has no attribute 'Serial'
Начало » Python для новичков » Firmata и arduno. Ошибка- AttributeError: module 'serial' has no attribute 'Serial'
1
kipa67
Windows 7, Python 3.6 , PyCharm
Изучаю Python решил по управлять Arduino, поставил библиотеку Pyfirmata. Не работает, постоянно выдает ошибку-
 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' 

Вот код из примера-
  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) 

Уже три дня не могу понять почему не работает, прочитал кучу сайтов везде этот пример. Я прошу обьяснить почему не запускается или направить в нужную сторону где искать ответ. Потому что без помощи, да и с моими знаниями я не справлюсь. Я понимаю что что-то с библиотекой не так…
py.user.next
Возможно, у тебя сам файл называется serial.py .
В любом случае открой питон в консоли и там набери
  
import serial
serial.Serial

Типа такого должно получиться
  
>>> import serial
>>> serial.Serial
<class 'serial.serialposix.Serial'>
>>>
kipa67
Файл называется- blink_1.py
В PyCharm запустил эту строку получил ответ–
  import serial
serial.Serial
Traceback (most recent call last):
  File "<input>", line 1, in <module>
AttributeError: module 'serial' has no attribute 'Serial'   
Модуль serial неимеет атрибута Serial– ??? Что это значит?
Перезагрузил библиотеку Serial, все осталось по прежнему, пшет не имеет атрибута.

А в Thonny запустил все нормально.
doza_and
То и означает что не имеет. Надо посмотреть что за модуль serial загрузился. По какому пути. что в нем есть. (dir)
py.user.next
Переустанови пакет pyserial
https://pypi.org/project/pyserial/

Можешь через pip3 переустановить его.
kipa67
Пришлось полностью переустановить Python, PyCharm и все пакеты. и вот чудо заработал блинк на ардуино.
Спасибо за советы, сам наверно не додумался бы.
kipa67
Сделаю уточнение, может кому пригодиться.
Я несколько раз переустанавливал Python а в PyCharm сохранились старые пути к библиотекам и (я так думаю) поэтому сыпались все время ошибки. Еще на Python 3.7.7 программа не запускалась, после установки Python 3.4.3 и установки библиотек, все заработало. Возможно дело было в этих проблемах. Я еще учусь писать программы на Python, поэтому каждый шаг дается с боем. И еще надо чтобы Arduino IDE после загрузки скетча, была закрыта. Вот работающая программа–
  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)   
kipa67
Спасибо, за помощь.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB