Программа на Питоне для мобильного робота

Обсуждаем модели и конструкции, построенные своими руками
AntonEngineer
Сообщения: 42
Зарегистрирован: 10 дек 2019, 18:13

Re: Программа на Питоне для мобильного робота

Сообщение AntonEngineer »

1. Думаю можно и так и так писать, кому как удобнее
2. Хороший вопрос, возможно пауза и не нужна.
Вообще в библиотеке ftrobopy есть функция updateWait(), которая также вызывает time.sleep(). Судя по описанию в документации к библиотеке, функция эта нужна в том случае, если код запускается удалённо с ПК чтобы ожидать успешного завершения цикла обмена данными ПК с контроллером TXT.
Вася М.
Сообщения: 24
Зарегистрирован: 20 дек 2010, 19:28

Re: Программа на Питоне для мобильного робота

Сообщение Вася М. »

Спасибо!

Не могли бы вы пояснить, как работает алгоритм следования по линии? У меня почему-то робот начинает крутиться на месте сраз после того как я нажал на кнопку. Может быть вы можете пояснить на блок схеме алгортитма?
IDKFA!
AntonEngineer
Сообщения: 42
Зарегистрирован: 10 дек 2019, 18:13

Re: Программа на Питоне для мобильного робота

Сообщение AntonEngineer »

В виде блок-схемы алгоритм следования по линии выглядит так:
TrailFollower.png
TrailFollower.png (54.1 КБ) 492 просмотра
Если датчик находится на линии, его состояние - FALSE. В ROBOPro в режиме теста контроллера можно протестировать полярность подключения моторов.
Последний раз редактировалось AntonEngineer 22 ноя 2021, 17:33, всего редактировалось 1 раз.
Вася М.
Сообщения: 24
Зарегистрирован: 20 дек 2010, 19:28

Re: Программа на Питоне для мобильного робота

Сообщение Вася М. »

Ого! Отличная иллюстрация. Спасибо.

Благодаря комментарию на схеме насчет полярности подключения моторов я нашел ошибку в подключении. Теперь робот идёт по линии уверенно.

Есть ещё один маленький вопрос. На самом нижнем блоке ветвления у вас используется логическая функция, которая выглядит так:
logic-func-01.png
logic-func-01.png (4.01 КБ) 496 просмотров
Похоже, что это не соответствует логической функции, которая используется в коде:

Код: Выделить всё

if not TLstate and not TRstate:
Наверное, схема логической функции должна выглядеть по другому?
IDKFA!
AntonEngineer
Сообщения: 42
Зарегистрирован: 10 дек 2019, 18:13

Re: Программа на Питоне для мобильного робота

Сообщение AntonEngineer »

Да, поправил.
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 968
Зарегистрирован: 22 окт 2010, 23:57

Re: Программа на Питоне для мобильного робота

Сообщение Mr.Kubikus »

Вопрос про регистратор-самописец для TXT на Питоне переехал в отдельный топик.
С уважением, Григорий
GitHub FB ВК
Muaed
Сообщения: 26
Зарегистрирован: 19 окт 2021, 12:38

Re: Программа на Питоне для мобильного робота

Сообщение Muaed »

При запуске программы для мобильного робота выдает. Робот не работает.


$ ls
ftTA2py.so proga.py web-server.py
$ python proga.py
Traceback (most recent call last):
File "proga.py", line 8, in <module>
txt = ftrobopy.ftrobopy(use_TransferAreaMode=True)
File "/usr/lib/python3.8/site-packages/ftrobopy/ftrobopy.py", line 2797, in __ init__
File "/usr/lib/python3.8/site-packages/ftrobopy/ftrobopy.py", line 172, in __i nit__
NameError: name 'ftTA2py' is not defined
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 968
Зарегистрирован: 22 окт 2010, 23:57

Re: Программа на Питоне для мобильного робота

Сообщение Mr.Kubikus »

Muaed писал(а):
17 дек 2021, 16:22
При запуске программы для мобильного робота выдает. Робот не работает.
Попробуем разобраться. Запустите, пожалуйста в папке с проектом команду ls в расширенном режиме:
С уважением, Григорий
GitHub FB ВК
Muaed
Сообщения: 26
Зарегистрирован: 19 окт 2021, 12:38

Re: Программа на Питоне для мобильного робота

Сообщение Muaed »

не ругай начальника только учусь.
Прога сразу завершает работу. Не включается моторчики при нажатии на кнопку.
Где я ошибаюсь.
import ftrobopy
import time

# Движение робота по линии

# Подключаемся к контроллеру TXT
# Чтобы программа работала на TXT автономно, конструктору класса ftrobopy должен быть передан параметр use_TransferAreaMode=True
txt = ftrobopy.ftrobopy(use_TransferAreaMode=True)

# Создаём переменные для каждого сигнала
TrailL = txt.trailfollower(1) # Левый датчик маршрута - вход TXT 01
TrailR = txt.trailfollower(2) # Правый датчик маршрута - вход TXT 02
I3 = txt.input(3) # Кнопка - вход TXT 03
MotorL = txt.motor(1) # Левый мотор - выход TXT 01
MotorR = txt.motor(2) # Правый мотор - выход TXT 02
O5 = txt.output(5) # Лампы - выход TXT 05

# Объявляем переменные
run = bool(0) # Запуск
flag = bool(0) # Флаг кнопки

while True:
# Вызываем метод state() для определения состояния кнопки
SW = I3.state()

# Движение по линии запущено
if SW == 1:

MotorL.setSpeed(512)
MotorR.setSpeed(0)
if SW == 0:

MotorL.setSpeed(0)
MotorR.setSpeed(512)


# Движение по линии остановлено
else:
txt.stopAll()
time.sleep(0.02)
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 968
Зарегистрирован: 22 окт 2010, 23:57

Re: Программа на Питоне для мобильного робота

Сообщение Mr.Kubikus »

В исходном коде все нормально есть ошибка. Единственное, я рекомендую при вставке исходного кода в пост использовать тег "code". Тогда сохранится форматирование - это важно для кода на языке Питон.

Ранее вы писали, что ваша программа завершается с ошибкой "NameError: name 'ftTA2py' is not defined". Это связано с тем, что интерпретатор не может найти модуль ftTA2py. Чтобы понять почему так происходит мне нужен вывод команды ls, выполненной в папке с проектом: У меня выглядит так:

Код: Выделить всё

$ ls -al
total 24
drwxr-xr-x    2 ROBOPro  ROBOPro        456 Dec 18 15:30 .
drwxr-xr-x   12 ROBOPro  ROBOPro       2352 Dec 17 16:56 ..
-rw-r--r--    1 ROBOPro  ROBOPro        129 Dec 18 15:30 filelogger.py
-rw-------    1 ROBOPro  ROBOPro       9624 Dec 18 15:30 ftTA2py.so
-rw-------    1 ROBOPro  ROBOPro       2037 Dec 18 15:30 line-follower-01.py
-rw-r--r--    1 ROBOPro  ROBOPro         16 Dec 18 15:30 workfile
С уважением, Григорий
GitHub FB ВК
Ответить