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 (постоянная память) и их чтение при запуске.
Каждый метод имеет свои случаи использования и уровень сложности, но последовательное соединение является самым простым для быстрого прототипирования и тестирования.
Смотрите также
- Последовательное соединение Arduino: Arduino - Serial
- Чтение и запись EEPROM Arduino: Arduino - EEPROM