Управление роботом из Интернета - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь заставить робота RPi3 принимать команды как из Интернета, так и из интерфейса сенсорного экрана / клавиатуры.У меня есть скрипт, который обрабатывает клавиатуру, и я ищу тот текущий скрипт, который у меня есть в Python, который будет расширен для приема ввода в реальном времени из Интернета.А также пытаясь выяснить, как отправить данные в сценарий.

Более подробная информация приведена ниже, но это основной вопрос.

Я создал робота, используя Raspberry Pi и 3 Arduinos.управление двигателями постоянного тока и сервоприводами, чтобы заставить бота двигаться.Программа написана на Python и запускается из командной строки.при запуске:

  • запрашивает активные последовательные порты на Raspberry
  • открывает каждый доступный порт
  • отправляет целое число на принимающий arduino
  • arduino отвечает идентифицирующим целым числом, поэтому RPI может назвать порт
  • , затем скрипт ожидает ввода пользователя, например «Вперед»
  • , команда переводится и отправляется на правильный порт
  • робот движется

Все это прекрасно работает.Теперь я хочу расширить его.Я хочу сохранить эту функциональность и добавить веб-интерфейс, чтобы я мог контролировать ее из любого места.Я попробовал несколько разных вещей без успеха.Я установил apache и могу без проблем обслуживать страницы, я могу получить данные на странице, но не могу понять, как получить веб-страницу для отправки данных в работающий скрипт arduino.Моя проблема связана с тем, что скрипт управления ботом должен работать независимо от веб-страницы.Я хочу сохранить тот же ввод с клавиатуры, но я также хочу, чтобы он принимал данные с веб-страницы.Если я вызываю контроллер бота с веб-страницы каждый раз, когда ему нужно будет повторно устанавливать соединения портов каждый раз, что занимает до 20 секунд ...

Я думаю, что если я создам сценарий прослушивания, то смогуПусть веб-сайт вызовет слушателя, который будет работать только для получения данных из Интернета и передачи их контроллеру бота и обратно.Но я не уверен, как это сделать, или если это даже лучший способ.

Я смотрел на websockets, CGI / wsgi, Flask, написание файла и JSON, и я просто не могу показатьсясвязать все это вместе.

Заранее благодарим и приносим извинения, если это не в нужном месте или был дан ответ раньше.Кроме того, я не включил никакого кода, поскольку единственный твердый код - это контроллер бота.Я надеюсь, что кто-то с некоторым реальным опытом может помочь мне распутать это.

заранее спасибо KenV

1 Ответ

0 голосов
/ 27 ноября 2018

Я бы сказал, Flask - ваш лучший вариант.Простой пример того, как вы можете его использовать:

from my_robot_stuff import move_forward

@app.route('/move_forward') 
def move_forward_flask():
    move_forward()
    return redirect('/')

В вашем html будет кнопка с надписью move forward, которая указывает на mysite.com/move_forward.колба обработает его, запустит код и перенаправит обратно в корень.

...