Персональные страницы Доп. раздел |
Коновалов Дмитрий АлександровичUSB-HID магнитометр на HMC5883LВ составе компьютерного самописца используется для круглосуточного мониторинга магнитной обстановки в помещении лаборатории. Во время проведения исследований изменения физико-химических свойств высоко разбавленных водных растворов. (А.И. Коновалов "Наноассоциаты - территория непознанного" Наука в России. 1/2014) необходимо круглосуточно контролировать магнитную обстановку в помещении лаборатории. Данное устройство служит для передачи значений магнитной индукции, измеренных цифровым интегральным магнитометром HMC5883L, в компьютер по интерфейсу USB. Проект базируется на портированной в среду программирования Algorithm Builder программной реализации USB-HID джойстика MJoy. Процедуры опроса каналов АЦП заменены процедурой считывания регистров HMC5883L по интерфейсу I2C. Добавлен вывод результатов на ЖК индикатор. Подключенное к компьютеру устройство определяется операционной системой как USB джойстик с тремя осями. Принципиальная электрическая схема устройства приведена на рис. 1.
Рис. 1 Принципиальная электрическая схема USB-HID магнитометра.
Для достижения максимально возможной скорости опроса (120 Гц) в конструкции задействован выход готовности данных DRDY HMC5883L. Микроконтроллер (МК) DD1 под управлением программы периодически считывает значения магнитной индукции из выходных регистров HMC5883L, передаёт их в компьютер по интерфейсу USB и отображает на жидкокристаллическом индикаторе. Архив с файлами прошивки AB USB-HID магнитометра Программа для компьютера. Получать данные от магнитометра можно двумя основными способами: обращаться к магнитометру как к устройству ввода по VID/PID или как к джойстику. Первый способ более громоздкий, но зато не приводит к краху или зависанию программы при отключении магнитометра от USB порта во время выполнения программы. Программа просто приостановится, а после повторного подключения устройства к USB порту продолжит свою работу. В архиве лежат скомпилированное приложение и исходный текст простейшей программы, осуществляющей приём и отображение значений магнитной индукции для осей X, Y и Z в окне Windows. Основой послужила программа usbtherm Дениса Нечитайлова (UU9JDR). Она написана для компилятора Visual C++ 6 с использованием HID-библиотек Windows DDK. Оригинал её исходного текста можно найти на сайте cqham.ru.
Рис. 2 Окно простейшей программы для считывания и отображения текущих значений магнитной индукции.
Второй способ - обращение к магнитометру как к джойстику - удобно применять в среде LabView. Для этого там есть все необходимые виртуальные приборы: Программа компьютерного самописца создана в среде LabView. На рис. 4 и рис. 5 показаны вкладки панели приборов. На вкладке "Монитор" отображаются значения и диаграммы мгновенных значений магнитной индукции. На вкладке "Самописец" отображаются значения и диаграммы значений магнитной индукции, усреднённые за 1 секунду. Усреднённые значения для осей X, Y и Z, а также значение магнитной индукции по модулю и её переменная составляющая записываются в текстовый табличный файл.
Рис. 4 Вкладка панели приборов "Монитор".
Рис. 5 Вкладка панели приборов "Самописец". Формат текстового табличного файла соответствует формату файлов результата .dtu программной оболочки ZETLab.
Рис. 6 Окно программы просмотра результатов ZETLab.
|