AVR-USB-MEGA16: подключение URM37 ultrasonic sensor через USB Печать
Добавил(а) microsin   

Для моста USB использовался микроконтроллер ATmega32A, установленный на макетной плате AVR-USB-MEGA16. Ультразвуковой датчик расстояния URM37 подключен напрямую к портам микроконтроллера. Внимание! Не забудьте про правильную установку перемычек J1, J2, J3 URM37, см. [1].

Для подключения было задействовано 5 проводов (контакты 1, 2, 3, 8, 9 URM37), один из которых (RST) необязательный. Нумерация сигналов (контактов) соответствует цоколевке датчика URM37, см. [1]. Необязательный сигнал RST выделен серым цветом.

URM37-conn-AVR-USB-MEGA16

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

Несмотря на кракозябры (программа китайская), разобраться в URM37V3.2helpmate.exe можно, если ознакомиться с протоколом датчика URM37 (см. [1]). Выпадающий список справа вверху служит для выбора типа отправляемой команды. Сразу под выпадающим списком показаны байты отправляемой команды в шестнадцатеричном виде, и байты ответа, которые приходят от датчика. Можно также написать свою программу, которая посылает в датчик 4 байта 0x22 0x00 0x00 0x22, принимает от датчика ответ (также 4 байта) и извлекает из ответа измеренное расстояние.

Работа в режиме текстовой консоли намного проще. Просто снимите перемычку BRIDGE, и подключитесь к виртуальному COM-порту любым терминальным клиентом (putty, SecureCRT, TerraTerm, HyperTerminal и т. п.). Установленные параметры подключения никакой роли не играют, нужно только правильно задать номер COM-порта. После подключения в окне терминальной программы Вы увидите расстояние до объекта, которое измеряет датчик. Светодиод на макетной плате AVR-USB-MEGA16 будет часто мигать в такт с измерениями.

URM37-console-output

Внешний вид собранного USB моста для датчика URM37:

URM37-AVR-USB-MEGA16-IMG 1499 URM37-AVR-USB-MEGA16-IMG 1492 URM37-AVR-USB-MEGA16-IMG 1494

[Ссылки]

1. Ультразвуковой датчик расстояния URM37.
2. USB консоль для управления радиолюбительскими приборами.
3. 120204URM37-v-usb-public.zip - firmware AVR-USB-MEGA16 для подключения к URM37 - исходный код, скомпилированные прошивки и драйвер.
4. 120122URM37-docs.zip - программа для работы с датчиком URM37V3.2helpmate.exe, документация по датчику URM37.