Как получить команды на запущенную программу arduino от raspberry pi?

Я искал повсюду решение этой проблемы. Я нуб в пространстве arduino и на самом деле просто промокаю ноги. Возможно, я неправильно интерпретирую то, что читаю. Если так, то прошу прощения. Вот моя проблема/вопрос. Я хочу создать автономный управляемый небольшой наземный беспилотник. Он будет подключаться к некоторым датчикам привода, двигателям постоянного тока и делать некоторые вещи сам по себе. В дополнение к этому я хочу raspberry pi с камерой, обозревающей пейзаж. Поскольку неизвестно, увидит ли/когда raspberry PI что-то интересное, я хочу, чтобы это поведение по умолчанию произошло. Причина, по которой я хочу сделать это так, заключается в том, что я читаю, что лучше работать с Arduino, потому что компьютер на базе Linux имеет так много вещей, работающих на нем, что может быть больше задержек в ответе. Кроме того, программа python будет делать HTTP-запросы, обрабатывать изображения и, возможно, делать еще больше. Если программное обеспечение для обработки изображений на PI улавливает что-то интересное, то я хочу, чтобы эта функция переопределяла программу Arduino по умолчанию. Я думал создать программу в Arduino для базовой функциональности привода, но затем слушать процесс python, который работает на PI. Если он услышит команду пойти что-то сделать, то, конечно, он отбросит программу по умолчанию, завершит задачу, сгенерированную python, и как только это будет сделано, он продолжит работу с программой по умолчанию arduino.

Как я на самом деле слушаю процесс python из Arduino? Или правильным решением было бы даже не использовать Arduino, а управлять всем этим с python на PI? Любые предложения о том, как решить эту проблему, было бы здорово услышать. Я чувствую, что есть очевидный лучший практический способ сделать это, о котором я не знаю. Заранее спасибо!

, 👍0

Обсуждение

Вы можете подключить Arduino через USB к Pi Arduino должен отображаться как последовательное устройство; и, таким образом, вы сможете обмениваться данными с Pi на Arduino и наоборот. Но вы, возможно, захотите сначала попробовать заставить его работать на вашем компьютере. В Интернете должно быть много сопоставимых проектов, посмотрите, сможете ли вы найти тот, который очень похож на то, чего вы пытаетесь достичь, @Paul


1 ответ


Лучший ответ:

1

То, о чем вы просите, не совсем тривиально и может плохо подходить для проекта новичка. Вам нужно будет создать протокол для связи между Raspberry Pi и Arduino (ваш собственный “командный язык”), а затем реализовать на Arduino интерпретатор команд, который понимает этот протокол и действует соответственно. Я настоятельно рекомендую вам использовать текстовый протокол, так как это будет намного проще отлаживать, чем двоичный протокол.

Для стороны Arduino проекта вы сначала должны научиться считывать последовательный порт с Arduino. Затем вы можете взглянуть на этот очень простой интерпретатор командной строки для вдохновения. Или вы можете поискать библиотеки Arduino, которые предоставляют аналогичные интерпретаторы.

На стороне Python вы должны открыть последовательный порт (/dev/ttyACM0) и отправить через него свои команды. Подробности о том, как это сделать, были бы вопросом Python, который здесь выходит за рамки.

,

Спасибо, Эдгар, ты явно не очень хорошо меня знаешь, так как “неподходящий проект для начинающих” - это мое второе имя , @Dan