08:09 pm
[Link] |
Помощь клуба: Arduino + LabView
Соратники,
Такое дело. Я собрал некий приспособ на Arduino UNO, который постоянно опрашивает некоторое количество датчиков, и логгит раз в 5 секунд данные на локальный диск (SD карта), а также, в зависимости от того что он намерял, производит управление некоторыми внешними устройствами через обычный TTL, в режиме "включить-выключить". Работает эта штука автономно, поскольку запитывается от блока питания, который, в числе прочего, и питает как внешние устройства, так и датчики. В данный моемент все цифровые I/O выводы и часть аналоговых задействованы.
Для правильной работы приспособа критично то, что он отслеживает временную последовательность действий, т.е. программа (скетч) не должна прерываться.
Приспособ предполагает возможность изменения настроек "на лету", для чего я нарисовал некий интерфейсец на LabView, который разговаривает с Ардуино через тот же USB. Проблема заключается в том, что при попытке сконфигурировать порт (а обращаюсь я к порту из под LabView через VISA, и другого способа в Вин-7, кажется, нет), функция конфигуратора устанавливает CTS, что вызывает ресет контроллера, и скетч на нем запускается сначала, теряя всю историю.
По всей видимости, это проблема ардуиновского процессора.
Для восстановления истории можно читать только что записанный лог, это одно из возможных решений, но кривое и геморройное, к ткому же мне не хочется перегружать кодом скетч, который и так уже еле влезает в память.
Другое возможное решение основано на изменении дефолтной конфигурации USB серийного порта (как минимум установки baud rate повыше чем 9600). Но я не нашел как -- винда не видит ком-порта пока я не подсоединю к нему контроллер, а когда подсоединяю, то уже какбы поздно. К тому же переустановка baud rate через device manager сбрасывается при перезагрузке компа. А контроллер должен при этом работать нон-стопом месяцами.
Что посоветует клуб?
UPD: solved.
Current Music: Covenant - Nexus Polaris Tags: pomosh_kluba, tech
|