Мигайте бортовым светом, считывая значение с USB
Я заинтересован в создании базового монитора загрузки процессора с помощью arduino UNO.
У меня есть рубиновый код, который мигает подсветкой клавиатуры в зависимости от загрузки процессора, ввода-вывода диска и использования сети.
Так, например, когда загрузка процессора высока, он будет записывать 1 на все клавиатуры из /sys/class/leds/input*::capslock/brightness
Я хочу сделать то же самое с arduino, есть ли способ считывать контакты USB-данных и управлять светом без перекомпиляции и повторной загрузки кода каждый раз? Таким образом, на моем ноутбуке может работать код C Ruby (libusb), C и т. Д., и с его помощью я могу управлять Arduino UNO.
@S.Goswami, 👍-1
Обсуждение1 ответ
Пусть ваш рубиновый код отправит ASCII-цифру, представляющую отображаемые значения переменных, которые вы хотите отобразить в Uno. Поскольку Uno имеет только один светодиод, который вы можете запрограммировать, вам понадобятся еще два, чтобы отобразить все три переменные.
Каждый раз, когда Uno получает новый триплет данных, преобразуйте каждую цифру в любое средство отображения, которое вы выберете для представления этих значений - например, частоту мигания или рабочий цикл.
Вы захотите написать неблокирующую программу, которая просто продолжает обновлять светодиоды независимо от того, что происходит, например, интерпретация следующего триплета. Посмотрите на пример программы Blink без задержки в Arduino IDE. Также посмотрите здесь на Arduino Stack Exchange для вопросов/ответов о неблокирующих методах программирования (вы можете даже найти один написанный мной). Ваш самый важный совет должен звучать так: не используйте delay().
Я предложил отправить 3 цифры ASCII - вместо этого вы можете отправить двоичный код. Но ASCII упростит тестирование как вашего кода Ruby, так и кода Arduino, поначалу отдельно, поскольку коммуникация с Ruby будет читабельной для человека, а команды для Uno могут быть сгенерированы человеком.
- Защита вашего компьютера от глупых (arduino) ошибок
- Установите Arduino IDE в Raspberry Pi 3 модели B.
- Arduino Uno R3 (с Atmega 16u2) и MAC OSX 10.11 (El Capitan) не работают
- Arduino Uno не загружает код и перегревается
- Динамически обновить масштаб виджета Tkinter из портов Arduino с помощью python и firmata
- Как записать данные на флешку?
- Arduino Uno R3 не распознается Arduino IDE в Ubuntu 21.04
- Разбудить компьютер из Uno
С помощью Uno вам нужно будет переписать код ruby, чтобы отправлять данные через последовательный интерфейс Unos. На Uno вы можете затем поместить код, который считывает эти данные и соответственно мигает светодиод. Программа Unos должна быть запрограммирована один раз. Он постоянно остается во флэш-памяти Unos. Вам нужно только перепрограммировать, когда ваш код меняется., @chrisl