Arduino - как получить серийные данные без IDE
Я строю прототип капельного монитора для шунта мозга. Он будет следить за потеками и сообщать обо всех нужных мне данных. Проблема в том, что я просто собираю устройство. Человек, который ничего не знает об Arduinos или коде, использует его. Есть ли способ или программа для отображения и / или сохранения данных в файл, чтобы человек мог просто подключить Arduino и не беспокоить IDE или любой другой код? Спасибо за помощь!
3 ответа
Как отмечено в комментариях, есть много способов сделать это в зависимости от бюджета и других критериев. Например, вы не знаете наверняка, нужно ли это (просто) осуществлять мониторинг в реальном времени или (немного сложнее), если данные должны быть записаны в файл для последующего просмотра. Автономное ведение журнала является еще одним (довольно сложным) вариантом (например, Arduino не подключен к хост-компьютеру).
Это хороший учебник и обзор различных подходов.
С точки зрения удобного графического интерфейса, можно создать простое приложение за несколько часов, используя обработку, которая будет отображать данные в реальном времени и, если необходимо, записывать в текстовый файл.
В Интернете существует множество проектов регистрации данных Arduino. Вот один и результаты поиска для многих, многих других
Bash One Liner для получения серийных данных
(Linux, Mac OS X или Cygwin)
следующая строка захватывает данные, метки времени и места в формате CSV
cat /dev/cu.usbmodem1421 | awk '{ for (i=0; i<NF; i++) printf $i + system("date +,%s")}'
Пример вывода
data,timestamp
9695,1390087651
9696,1390087652
Больше примеров
поток данных в файл
cat /dev/cu.usbmodem1421 | awk '{ for (i=0; i<NF; i++) printf $i + system("date +,%s")}' >> sensor_readings.dat
Вы можете отслеживать потоковую передачу в файл (также можете отправлять электронные письма, твиты и т. д., используя любую утилиту командной строки)
cat /dev/cu.usbmodem1421 | awk '{ for (i=0; i<NF; i++) if($i == 9001) {system("say ITS OVER 9000\!")} printf $i + system("date +,%s")}' >> sensor_readings.dat
ЗАМЕЧАНИЯ ПО ИСПОЛЬЗОВАНИЮ: Обязательно замените cu.usbmodem1421 модемом (очевидно, что "cu" важно, по некоторым причинам он не работает с "tty.usbmodem").
Для примера, как использовать это с кодом Arduino, посмотрите этот репозиторий github:
https://github.com/gskielian/Arduino-DataLogging/tree/master/Bash-One-Liner
Вы можете использовать обработку, это было бы хорошо для вас, так как Arduino iDE основан на ней, так что вы легко сможете мигрировать. Вы могли бы сделать приложение обработки, которое получает данные от Arduino через последовательный порт. Также важно то, что вы можете создать отдельное приложение, работающее на Java, чтобы оно не зависело от операционной системы и не требовало установки. www.processing.org