Robo.com.ua Портал любителей робототехники

Главная · Проекты на Робо · Форумы · Ссылки · Статьи · Файловый архив · Поиск November 24 2020 07:58:16
Навигация
Главная
Проекты на Робо
Форумы
Ссылки
Статьи
Файловый архив
ЧаВо
Поиск
Блоги
YouTube




Последние статьи
Новая система складс...
Эксперимент с ИК при...
Проект ROBER или роб...
Программатор STK200 ...
Схема программатора ...
Партнерские ссылки
Шестиканальный сонар
Шестиканальный сонар

При проектировании моего нового робота-пылесоса для следующего AHRC робот ралли мне нужно было измерять расстояние между роботом и стенами арены, если мне нужно будет пылесосить в произвольном порядке. Мне казалось, что лучше будет использовать сонар, поэтому я заказал ультразвуковой модуль Поляроид. Было несколько проблем с этим модулем.

1. Узкая ширина луча- всего 10 градусов

2. Высокая стоимость- 50 долларов за сенсорный модуль.

3. Длинное время цикла- 80 миллисекунд.

4. Минимальное расстояние- всего 1,3 фута (40 см).

5. Во время работы он издает раздражающие звуки.

6. Слабый интерфейс с микроконтроллером.

Чтобы избегать столкновений с препятствиями, мне нужно полностью покрывать перед роботом область шириной 8 дюймов. При ширине луча в 10 градусов необходимо механически вращать модуль. Время цикла 80 мс требует очень медленного сканирования и обрекает робот на перемещение со скоростью улитки. Это нужно улучшить.

При просмотре каталога Electronic Goldmine я видел два приемника-передатчика (датчика) с рабочей частотой 40 кГц. Они стоят по 1,5 доллара каждый, так что я заказал несколько, чтобы поэкспериментировать с ними. Номера этих датчиков- G9425, MA4053R и G2528. У G9425 ширина луча- 100 градусов, у G2528- почти 25 градусов. Оба имеют пригодную ширину полосы частот около 4кГц.

Я написал небольшую программу для тестирования PIC16C84 и начал экспериментировать с этими датчиками на 40кГц. Сначала я попробовал использовать один датчик для передачи и приема. Я быстро бросил эту идею. Датчики долго вибрировали после окончания передачи импульса. Это требовало долгого времени гашения и диапазон оказывался большим, чему Поляроида! Затем я попробовал использовать отдельно преобразователи для передачи и приема. Это работало очень хорошо. Минимальным измеренным расстоянием было около 6 дюймов (15 см). С пиковыми токами при напряжении 10В в передатчике я мог обнаруживать объекты на расстоянии 6 футов (1.8м). Недостаток- мне нужно было по 2 датчика на канал. Но они дешевы- это разумный обмен.

Во время экспериментов я обнаружил, что большие объекты, которые находятся в пределах локационного диапазона иногда не давали эхо. Перемещая их на долю дюйма, я получал большое обратное эхо. Это было вызвано многочисленными отражениями, приходящими вне фазы. Они отменяли друг друга! Решение- разнородность пространства. Два датчика-приемника установлены в дюйме друг от друга. Они связаны в цепи разделения сигнала. Вряд ли произойдет такой случай, что оба приемника были в нулевой фазе в одно и то же время? что увеличивает надежность устройства. Теперь у меня есть три датчика на канал и это отлично работает!

Я захотел, чтобы левые и правые передние сонары обнаруживали объекты на пути робота. Мне нужны левые и правые боковые сонары, чтобы я мог следовать вдоль стены на определенном расстоянии. Мне также нужно левые и правые задние локаторы, чтобы выравнивать робота относительно после стены после поворота на 90 или 180 градусов. Это в общей сложности 6 локационных каналов.

Затем мне нужно разработать устройство, чтобы получить 6 каналов локации с наименьшими аппаратными средствами и программным обеспечением. Запуск 6 локационных передатчиков от одного чипа PIC было легко. Я подключил все 6 общих выводов к одному выходу PIC. В общей сложности 7 выводов были использованы. Для управления каждым датчиком достаточно пикового напряжения 10 В. Я просто установил выходной бит желаемого датчика, а затем использовал функцию XOR (исключающее ИЛИ), чтобы инвертировать все биты порта в 40кГц. Общий вывод- всегда из фазы с сигнальной жилой активного датчика. Все неактивные сигнальные жилы датчиков следуют за общим проводом, так что никакой выход не произведен.

Я установил резисторы 330 Ом последовательно с каждым передатчиком, чтобы пиковые токи не вывели из строя МК.

Я использовал два CD4051 аналоговых мультиплексора, чтобы индивидуально выбирать каждую пару датчиков-приемников. Для генерации адресов потребовались три выходных контакта PIC.

Я также использовал счетверенный операционный усилитель LMC660, чтобы обеспечить усиление обратного эха. Есть два канала, чтобы обрабатывать пары датчиков- приемников. Коэффициент усиления был установлен 100.

Чтобы обнаружить присутствие эхо, был использован

сдвоенный компаратор LM393. Порог динамически устанавливается

очень высоко для раннего эхо и прогрессивно более низкое для более

отдаленного. Я использовал простую RC-цепочку, чтобы генерировать

сигнал. Пара потенциометров регулируют общую чувствительность.

Смотри рис. 1.

Конечный проект для обработки сигнала использует чип МК PIC16C73A. Можно использовать другие чипы, но у меня было несколько 16C73A. Программа выдает по 7 импульсов частотой 40кГц в выбранный передатчик? затем ждет эхо, которое превышает порог компаратора. Она сохраняет время, измеренное как интервалы в 38 мкс в ячейке памяти. Звук проходит 1/2 дюйма в течение 38 мкс. Память данных - 8 бит, что дает максимальное число - 255. Если умножить 38 мкс на 255, получим 9,69 миллисекунд для измерения эхо. Чтобы получить время цикла, мне нужно добавить 0,9 мс для гашения и периода следования импульсов- 0.175 мс. 10.77 мс равно расстоянию 70 дюймов или 5.8 футов (1.8 м). Это максимальный диапазон. Левые и правые передние каналы повторяются дважды в порядке правый-правый-левый и усредняется, чтобы удалять рассогласование, вызванное поступательным движением между сэмплами. Смотри текст программы.

Дополнительно к стандартной локации, домашний маяк

опрашивается ИК-импульсами 600 мкс. Маяк отвечает как ИК, так и

звуковыми импульсами. Есть три ИК- импульса, которые выдаются

ИК-светодиодами в других углах. Очень грубо можно вычислять угол от маяка в зависимости от которого ИК-импульсы могут быть видны. Вычисляя время ультразвуковых импульсов, можно узнать точно расстояние до маяка.

Все 7 локационных каналов плюс ИК-маяк и локационный запрос-ответ измеряется 10 раз в секунду. Это включает двойную генерацию левых и правых передних каналов.

В конце обработанные данные передаются из процессора при помощи 3-х проводного интерфейса шины SPI в главный процессор. Смотри рис. 2. Основной МК робота считывает эти данные при помощи аппаратного порта SPI и данные передаются в память программе обработки прерываний, не нагружая основной процессор. Все 9 байтов передаются в течение 730 микросекунд.

Так как работает система на практике? Отлично! Два передних локатора обнаруживают небольшие объекты включая ножки стула. Левые и правые боковые локаторы обеспечивают расстояние до ближайшей стены, допуская точное следование вдоль стены. Два задних локатора позволяют роботу, чтобы выравнивать свою заднюю часть под любым углом к стене. Основное ограничение- то, что все объекты ближе чем 6,5 дюймов (20 см) показывает как нуль. Чтобы следовать вдоль стены на нулевом расстоянии, требуется боковой бампер.



Оригинал: www.botlanta.org/publications/sonar_6ch/sonar6ch.html


Опубликовал admin September 10 2004 - 00:00:000 Комментариев · 19370 Прочтений - Для печати
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Сейчас на сайте
Гостей: 1
На сайте нет зарегистрированных пользователей

Пользователей: 651
Не активированный пользователь: 2514
Посетитель: knevech
Last Seen Users
disop11 weeks
EpicOne58 weeks
overlocker83 weeks
Driver_UA84 weeks
knevech92 weeks
Petro99 weeks
admin126 weeks
BOBKA137 weeks
salavat150 weeks
nik22157 weeks
Мини-чат
Вам необходимо залогиниться.

Нет присланных сообщений.
robo.com.ua Copyright © 2004-2015. EMail admin_shs()robo.com.ua