Форум сайта python.su
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)
Отредактировано kipa67 (Май 28, 2020 18:38:07)
Офлайн
Возможно, у тебя сам файл называется serial.py .
В любом случае открой питон в консоли и там набери
import serial serial.Serial
>>> import serial >>> serial.Serial <class 'serial.serialposix.Serial'> >>>
Отредактировано py.user.next (Май 28, 2020 22:13:06)
Офлайн
Файл называется- 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 загрузился. По какому пути. что в нем есть. (dir)
Офлайн
Переустанови пакет pyserial
https://pypi.org/project/pyserial/
Можешь через pip3 переустановить его.
Офлайн
Пришлось полностью переустановить Python, PyCharm и все пакеты. и вот чудо заработал блинк на ардуино.
Спасибо за советы, сам наверно не додумался бы.
Офлайн
Сделаю уточнение, может кому пригодиться.
Я несколько раз переустанавливал 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)
Офлайн
Спасибо, за помощь.
Офлайн