Для моста USB использовался микроконтроллер ATmega32A, установленный на макетной плате AVR-USB-MEGA16. Ультразвуковой датчик расстояния URM37 подключен напрямую к портам микроконтроллера. Внимание! Не забудьте про правильную установку перемычек J1, J2, J3 URM37, см. [1].
Для подключения было задействовано 5 проводов (контакты 1, 2, 3, 8, 9 URM37), один из которых (RST) необязательный. Нумерация сигналов (контактов) соответствует цоколевке датчика URM37, см. [1]. Необязательный сигнал RST выделен серым цветом.
1. VCC питание +5V (Power). 2. GND земля (Ground). 3. RST сброс (Reset). Напрямую подключен в ножке сброса ATmega8L, поэтому для того, чтобы сенсор работал, необходимо на RST подать лог. 1, для сброса сенсора нужно подать на RST импульс лог. 0, и вернуть RST в состояние лог. 1. 8. RXD интерфейса RS232, вход последовательного канала передачи данных. Подключается к выходу TXD внешнего управляющего микроконтроллера (уровни TTL, в зависимости от положения перемычек J1, J2, J3). 9. TXD интерфейса RS232, выход последовательного канала передачи данных. Подключается к входу RXD внешнего управляющего микроконтроллера (уровни TTL, в зависимости от положения перемычек J1, J2, J3).
[Firmware]
Программное обеспечение для микроконтроллера (firmware) макетной платы AVR-USB-MEGA16 написано на безотказной библиотеке V-USB. За основу взят простой пример класса USB CDC (виртуальный COM-порт), опубликованный в [2].
Исходный код и готовые прошивки, а также драйвер для виртуального COM-порта можно скачать по ссылке [3].
Firmware работает в двух режимах, в зависимости от перемычки BRIDGE. Если перемычка BRIDGE установлена, то получается чистый двоичный мост, т. е. все данные передаются от датчика URM37 и в него без изменений. Если перемычку BRIDGE снять, то макетная плата AVR-USB-MEGA16 сама посылает команды измерения расстояния датчику URM37 (формат команд см. в [1]), принимает от датчика ответ, декодирует его и в текстовом виде передает обратно. Опрос датчика URM37 в этом случае осуществляется с частотой 10 Гц - один опрос каждые 100 мс.
При первом подключении моста к компьютеру операционная система Windows запросит драйвер. Подсуньте мастеру установки драйвер из архива [3].
[ПО хоста]
Программное обеспечение хоста отличается для каждого из режимов. Если перемычка BRIDGE установлена, то для отправки команд датчику URM37 можно использовать готовую программу URM37V3.2helpmate.exe, см. [4].
Несмотря на кракозябры (программа китайская), разобраться в URM37V3.2helpmate.exe можно, если ознакомиться с протоколом датчика URM37 (см. [1]). Выпадающий список справа вверху служит для выбора типа отправляемой команды. Сразу под выпадающим списком показаны байты отправляемой команды в шестнадцатеричном виде, и байты ответа, которые приходят от датчика. Можно также написать свою программу, которая посылает в датчик 4 байта 0x22 0x00 0x00 0x22, принимает от датчика ответ (также 4 байта) и извлекает из ответа измеренное расстояние.
Работа в режиме текстовой консоли намного проще. Просто снимите перемычку BRIDGE, и подключитесь к виртуальному COM-порту любым терминальным клиентом (putty, SecureCRT, TerraTerm, HyperTerminal и т. п.). Установленные параметры подключения никакой роли не играют, нужно только правильно задать номер COM-порта. После подключения в окне терминальной программы Вы увидите расстояние до объекта, которое измеряет датчик. Светодиод на макетной плате AVR-USB-MEGA16 будет часто мигать в такт с измерениями.
Внешний вид собранного USB моста для датчика URM37:
[Ссылки]
1. Ультразвуковой датчик расстояния URM37. 2. USB консоль для управления радиолюбительскими приборами. 3. 120204URM37-v-usb-public.zip - firmware AVR-USB-MEGA16 для подключения к URM37 - исходный код, скомпилированные прошивки и драйвер. 4. 120122URM37-docs.zip - программа для работы с датчиком URM37V3.2helpmate.exe, документация по датчику URM37. |