Владимир Макаров
Гаражный ассистент.
Внешняя акустическая парковочная система (гаражный ассистент) является дополнительным оборудованием зон остановки или стоянки автомобиля (гаража, стоянки, ангара, контрольно-пропускного пункта и др.) информирующем автовладельца о пересечении автомобилем контролируемой границы зоны.
Например, при постановке автомобиля в гараж требуется установить его на определенном расстоянии от задней стенки, чтобы не таранить стенку или расположенное у стенки гаражное оборудование. Идея не новая и в интернете можно найти различные решения под разными наименованиями как промышленного исполнения, например, http://avd-group.ru/product/datchik-parkovki-parkmaster, так и самодельного, например, http://radiomaster.com.ua/8991-parktronik-svoimi-rukami.html.
В статье описывается устройство, построенное на базе сонара (англ. sonar – sound navigation and ranging) HC-SR04 и микроконтроллера ATmega8. Оно обеспечивает обнаружение приближающегося к нему или удаляющегося от него объекта, динамическое отслеживание дистанции до объекта, световую и звуковую индикацию трех зон близости, а также простую ручную настройку зон близости пользователем.
Устройство отслеживает нахождение объектов в трех зонах близости: зеленая, желтая и красная. При нахождении объекта одновременно в нескольких зонах на устройстве индицируется зона с наивысшим приоритетом.
Рисунок 1.
Зоны близости.
Демонстрационный ролик
Ультразвуковой дальномер HC-SR04
Внешний вид ультразвукового дальномера HC-SR04 показан на рисунке 2.
Рисунок 2.
Внешний вид ультразвукового дальномера НC-SR04.
Основные характеристики:
Напряжение питания: 5В постоянного тока
Потребляемый ток: не более 2mA
Эффективный угол обнаружения объекта: не более 15°
Дистанция обнаружения: 2см…500 см
Точность обнаружения: ±0.3 см
Несмотря на заявленный параметр «Дистанция обнаружения: 2см…500 см» в процессе исследования дальномера удалось получить устойчивые измерения на расстояниях не более 100см. Разработанное устройство начинает отображать расстояние до объекта и индицировать зону его нахождения начиная с 99 см, что вполне соответствует его потребительским свойствам.
Дальномер подключается с помощью 4-х штырьковой вилки:
1. VCC: питание 5 Вольт
2. Trig: вход триггера, запускающего измерения
3. Echo: выход, на котором генерируется импульс, длительность которого пропорциональна расстоянию
4. GND: земля
Система сигналов дальномера показана на рисунке 3.
Рисунок 3.
Сигналы ультразвукового дальномера HC-SR04.
Для запуска измерения необходимо подать на вход «Trig» TTL короткий импульс запуска длительностью 10 мкс. При получении внешнего импульса запуска дальномер вырабатывает внутреннюю последовательность из восьми импульсов с частотой 40 кГц, которая подается на передающий пьезоэлемент дальномера.
По окончании восьмого импульса выход «Echo» переводится в состояние логической «1». Отраженный от объекта сигнал регистрируется приемной частью дальномера. При получении отраженного сигнала выход «Echo» переводится в состояние логического «0».
Длительность импульса на выходе «Echo» пропорциональна расстоянию до объекта. Расстояние до объекта в сантиметрах вычисляется по формуле D = T/58 (где T длительность импульса «Echo» в микросекундах, а D - расстояние в сантиметрах).
Если дальномер не получит отраженного сигнала, то выход «Echo» будет переведен в состояние логического «0» по истечении 38 мс с момента установки в логическую «1».
Схема электрическая принципиальная
Схема электрическая принципиальная устройства представлена на рисунке 4.
Рисунок 4.
Схема электрическая принципиальная.
Микроконтроллер вырабатывает импульсы запуска длительностью 10 мкс на выходе PD3. Импульсы запуска поступают на вход «Trig» дальномера через разъем XS3.2. Дальномер, получив импульс запуска вырабатывает сигнал передачи (8х40кГц) для собственного ультразвукового передатчика и выставляет 1 на выходе «Echo».
Этот сигнал через разъем XS3.3 (Echo) поступает на вход INT0 микроконтроллера и вызывает программное прерывание по изменению состояния входа INT0. Программа-обработчик прерывания обнаруживает передний (восходящий) фронт импульса Echo и запускает таймер для подсчета длительности импульса Echo. Дальномер при получении отраженного сигнала (или неполучении отраженного сигнала) переводит линию «Echo» в состояние логического «0». Микроконтроллер фиксирует смену состояния на входе INT0 и вызывает программное прерывание. Программа-обработчик прерывания обнаруживает задний (ниспадающий) фронт импульса Echo, останавливает таймер, определяет длительность импульса и вычисляет расстояние до объекта в сантиметрах.
Пьезокерамический резонатор Y1 обеспечивает стабильную тактовую частоту 8 мГц микроконтроллера в целях повышения точности измерения длительности импульса Echo.
Измеренное расстояние до объекта выводится на двух разрядный семисегментный индикатор на элементах DS1 и DS2. Если расстояние до объекта превышает 99 см, то индикатор гаснет.
Далее определяется попадание расстояния до объекта в одну из трех установленных зон близости. По умолчанию в устройстве заданы следующие границы зон близости: красная - 20 см, желтая - 40 см, зеленая - 80 см.
Если расстояние до объекта менее границы красной зоны, то начинает мигать группа красных светодиодов VD11…VD15. Желтая и зеленая группы светодиодов при этом погашены. В этом случае устройство выдает дополнительно к световой индикации звуковой прерывистый сигнал «бип». Звуковой сигнал генерируется таймером-счетчиком 2 и подается на выход микроконтроллера OC2 (PB3). Далее сигнал усиливается микросхемой A1 (TDA7056A) и подается на динамик. Громкость сигнала регулируется потенциометром R25.
Если расстояние до объекта менее границы желтой зоны и более границы красной зоны, то начинает светиться группа желтых светодиодов VD6…VD10. Красная и зеленая группы светодиодов при этом погашены, звуковой сигнал отключен.
Если расстояние до объекта менее границы зеленой зоны и более границы желтой зоны, то начинает светиться группа зеленых светодиодов VD1…VD5. Красная и желтая группы светодиодов при этом погашены, звуковой сигнал отключен.
Если расстояние до объекта более границы зеленой зоны то все группы светодиодов погашены, звуковой сигнал отключен.
Управление группами светодиодов осуществляется через транзисторные ключи VT1…VT3 (BC547A).
Пользователь может установить свои границы зон близости. Для этого необходимо поднести объект (например, ладонь) на расстояние устанавливаемой границы зоны и нажать кнопку S1, S2 или S3 в зависимости от того граница какой зоны устанавливается. Система запоминает границы каждой зоны в долговременной памяти микроконтроллера EEPROM на случай выключения устройства. После выключения и повторного включения устройства, установленные границы будут считаны из EEPROM в устройство. При нажатии на кнопку S4 в EEPROM будут записаны значения границ «по умолчанию» – 20, 40, 80 см для красной, желтой и зеленой зон соответственно.
Питание устройства осуществляется от стабилизированного источника постоянного тока напряжением 5 Вольт.
Если в течение 100 циклов измерения (~15 секунд) значение расстояния останется неизменным, то устройством будет принято решение, что объект остановился, смысл дальнейшего отображения измерений отсутствует и индикаторы на передней панели выключатся. В случае, если будет зарегистрировано малейшее движение объекта, устройство «проснется» и будет отображать динамику приближения (удаления) объекта.
Конструкция устройства
Устройство состоит из трех блоков: контроллера, монитора и ультразвукового дальномера. На плате монитора расположены органы управления и индикации. Плата монитора закрепляется на плате контроллера через пары разъемов XS5-XP5, XS6-XP6, XS7-XP7 (на схеме принципиальной электрической не указаны). Ультразвуковой дальномер подсоединяется непосредственно к плате контроллера через разъем XS3 (female).
Макеты печатных плат представлены на рисунках 5 и 6.
Рисунок 5.
Макет печатной платы контроллера.
Рисунок 6.
Макет печатной платы монитора.
Рисунок 7.
Внешний вид устройства.
Рисунок 8.
Блоки устройства.
Рисунок 9.
Блоки устройства в сборе.
Рисунок 10.
Блок питания в корпусе устройства.
Установка фьюзов: 0xD9, 0xEF (High, Low).
Архивный файл содержит;
UltrasonicParkingSensor.c - исходный текст программы на Си
UltrasonicParkingSensor.hex - файл прошивки
UltrasonicParkingSensor.dch - схема электрическая принципиальная в DipTrace
UltrasonicParkingSensor.dip - печатные платы в DipTrace
Архив для статьи