Master Slave Многопроцессорная обработка на стороне Arduino
Я начал проект робототехники Arduino с Bluetooth-датчиком HC-05 для отправки данных на мой компьютер для обработки. В моем проекте Arduino должен служить ведомым устройством, которое собирает данные с датчиков и отправляет их на ПК для обработки и принятия решений, который будет выполнять роль ведущего устройства.
Моя проблема в настоящее время заключается в том, что я не знаю, как выполнять многопроцессорную обработку с помощью Arduino. То есть я не хочу, чтобы процесс, который постоянно считывает данные с HC-05 побитно, блокировал процесс сбора и передачи данных. В идеале я мог бы иметь несколько потоков для каждого процесса, которые зависят друг от друга с точки зрения времени, но не с точки зрения выполнения кода, и работают независимо в коде Arduino.
Есть ли какая-нибудь многопоточная библиотека, которую я могу использовать на стороне Arduino, чтобы чтение данных, передаваемых с ПК, не блокировало другие процессы/выполнение других процессов не приводило к тому, что Arduino пропускал данные? передается ПК во время другой обработки? Есть ли другие решения?
@Jack Frye, 👍-1
Обсуждение1 ответ
Обязательная ссылка на Ника Гэммона: https://www.gammon.com.au/blink
Ваш первый шаг — изучить и запустить пример BlinkWithoutDelay. Это показывает самый простой способ выполнять действия через определенные промежутки времени без использования задержек, освобождая ЦП для выполнения других действий.
Существует несколько библиотек планирования, позволяющих делать то, что вы хотите, но если вы научитесь делать это самостоятельно, это поможет вам лучше понять Arduino.
FreeRTOS кажется интересной альтернативой многозадачности. Без личного опыта. Погуглите «Arduino FreeRTOS», чтобы найти руководства и примеры.
- Как запомнить значения переменных после перезагрузки платы Arduino Uno R3
- Как получить уникальный идентификатор для всех плат Arduino?
- Tower Pro MG996R сервопривод с высоким крутящим моментом 180 °, управляющий с помощью Arduino
- Проблемы с надежным подключением с использованием HC-05 в качестве ведущего устройства Bluetooth
- Как управлять 4 двигателями постоянного тока с помощью Arduino?
- Bluetooth-модуль HC-05 неправильно считывает данные с моего телефона Android
- Как сделать электронную присоску?
- Лучший способ определить, не пустеет ли 5-галлоновый кувшин для воды
Как HC-05 подключен к вашему Arduino? СПИ? UART (последовательный TX/RX)?, @jose can u c
Подключен через UART, базовый последовательный TX/RX, @Jack Frye
Arduino уже использует программный буфер, управляемый прерываниями, для получения данных на активных аппаратных последовательных портах. В целом, однако, этот вопрос слишком широк, чтобы соответствовать здесь., @Chris Stratton