Чтение аргументов командной строки

Arduino:
Чтение аргументов командной строки

Как это сделать:

Arduino не работает с аргументами командной строки, как традиционные программные среды, потому что скетчи загружаются на микроконтроллеры без доступа к командной строке ОС. Но вы можете имитировать эту функцию, используя последовательное соединение. Вот как:

void setup() {
  // Инициализируем последовательное соединение со скоростью 9600 бит в секунду:
  Serial.begin(9600);
}

void loop() {
  // Проверяем, доступны ли данные для чтения.
  if (Serial.available() > 0) {
    // Читаем входящие байты до получения символа новой строки.
    String receivedData = Serial.readStringUntil('\n');
    // Выводим полученные аргументы обратно в монитор последовательного порта.
    Serial.print("Получено: ");
    Serial.println(receivedData);
  }
}

Пример вывода в мониторе последовательного порта:

Получено: аргумент1 аргумент2 аргумент3

Подробнее

Традиционные аргументы командной строки работают там, где полноценная операционная система (например, Windows, Linux или macOS) запускает программы. Процессор команд ОС передает аргументы программам. У Arduino этого нет; это микроконтроллер с одной программой, которая постоянно повторяется.

Последовательное соединение - это ваше решение. Это как будто вы ведете беседу с вашим Arduino посредством специальной линии. Вы отправляете данные по этой линии, которые программа Arduino читает в качестве ввода, когда она готова.

До появления Монитора Последовательного Порта в среде Arduino IDE программисты использовали физические переключатели или перемычки на оборудовании для изменения поведения. Последовательное соединение стало изменением игры, значительно упростив этот процесс.

Помните, что Arduino Uno и множество других имеют только один последовательный порт, который разделяется с USB соединением, что означает, что вы не можете получать данные по последовательному порту и одновременно загружать новый скетч. Более продвинутые платы Arduino могут иметь несколько последовательных портов, позволяя одновременно осуществлять коммуникацию и загрузку скетча.

Альтернативы последовательному соединению для имитации аргументов командной строки включают:

  • Модули Bluetooth (для беспроводной связи).
  • Клавиатуры или кнопки для ввода.
  • Сохранение аргументов в EEPROM (постоянная память) и их чтение при запуске.

Каждый метод имеет свои случаи использования и уровень сложности, но последовательное соединение является самым простым для быстрого прототипирования и тестирования.

Смотрите также