МАРСОХОД

Open Source Hardware Project

Проекты Altera Quartus II для платы Марсоход

Использование ультразвукового дальномера

Вот раздобыл я себе интересную штуку - ультразвуковой датчик расстояния. Называется этот датчик HC-SR04.

Ультразвуковой дальномер HC-SR04

Его краткую документацию я уже положил в наш раздел для загрузки файлов -

. Ну и конечно первая мысль - попробовать подключить его к нашей плате Марсоход.

Собственно протокол общения с датчиком обещает быть простым. У датчика всего 4 контакта: питание +5В, GND, Trig и Echo. Если не считать питания, то получается всего 2 сигнала для обмена.

Документация к датчику написана немного коряво, поэтому расскажу сам как там все должно работать.

Временная диаграмма сигналов между ультразвуковым дальномером HC-SR04 и платой Марсоход

На сигнал Trig нужно подавать короткие импульсы длительностью 10мкс. Этот импульс запускает эхо-локатор. Он уже сам генерирует пачку ультразвуковых импульсов (40кГц) для излучателя и сам ловит отраженное эхо. По времени распространения звука туда и назад датчик определяет расстояние. Нам же сам датчик на контакт Echo выдает импульс с длительностью пропорциональной расстоянию. Длительность сигнала Echo от 150мкс до 25мс. Если ответа нет, то длительность Echo около 40мс. Расстояние до объекта можно вычислить разделив длительность в микросекундах эха на 58. Получаются расстояние в сантиметрах. Максимальное расстояние, которое можно мерить судя по документации - 5 метров.
Рекомендуемый период опроса датчика 50-10мс. Диаграмма направленности датчика не очень острая - примерно градусов под тридцать.

В принципе сам код для работы с датчиком c платы Марсоход я написал довольно быстро на Verilog. Посимулировал - похоже все правильно должно работать. А вот реальные испытания показали, что не все так хорошо. Довольно большая проблема - питание датчика. По документации ему нужно +5В и естественно вопрос - где их взять? Плату Марсоход я питаю от аккумулятора и напряжение там у него +4,2В. Этого оказалось не достаточно датчику расстояния.

Странным образом оказалось, что датчик работает довольно стабильно при напряжении питания +3,3В, но небольшое падение напряжения и все, начинает глючить.

Как я понял сам датчик сделан на базе микроконтроллера PIC и видимо ему очень важно иметь стабильное питание. Спасибо Юре, он мне сделал переходничек к плате Марсоход, который повышает напряжение и делает его стабильным +5В. Вот такая платка:

 плата питания для датчика расстояния

Возможно Юра потом напишет отдельную статью, как сделать такой "повышатель" напряжения. Я сейчас не буду на этом останавливаться.

Вот на этой картинке все устройство в сборе:

Датчик расстояния

Проект для платы Марсоход, который я сделал измеряет расстояние и отображает его на светодиодах в двоичном виде. Правда отображаемое число нужно умножить на 2, чтобы получились сантиметры.

Весь проект можно взять здесь:

Вот как работает мой девайс:

К моему большому сожалению я обнаружил ряд недостатков этого датчика:

  • Измерять расстояние до поверхностей, которые находятся под углом к лучу датчика не получается. Угол падения равен углу отражения - видимо из-за этого луч не возвращается, а уходит дальше, отразившись от поверхности.
  • Некоторые поверхности обладают плохими отражающими свойствами. Это мягкие ковры, пледы и так далее.

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

Была так же мысль выпаять из этого дальномера собственно излучатели и подключить непосредстчвенно к ПЛИС платы Марсоход. Возможно, исключив из устройства "слабое звено" в виде PIC контроллера удалось бы повысить потребительские свойства устройства? Ну пока еще не знаю. Нужно подумать..

 

 


 

Комментарии  

0 #6 Эмиль 29.01.2013 18:12
http://elecfreaks.com/store/download/HC-SR04.pdf - вот более или менее нормальный даташит.
0 #5 nckm_ 01.09.2011 05:00
Цитирую Миша:
Добрый день Вам господа .
Надо помощ спецов .
Мне надо фото дадчик , на который я направляю лазерную точку на дадчик (это линейка +20мм-20мм) с передачей на компьютер. я взял безпроводную мышку , классно все подходит . НО мышка не преднозначена. для постояного НУЛЯ . как зделать чтоб это заработала так как мне надо . Готов оплатить вашу работу.

а нельзя ли использовать просто фото транзистор? Типа PTR1 или какой другой?
0 #4 Миша 31.08.2011 05:56
Добрый день Вам господа .
Надо помощ спецов .
Мне надо фото дадчик , на который я направляю лазерную точку на дадчик (это линейка +20мм-20мм) с передачей на компьютер. я взял безпроводную мышку , классно все подходит . НО мышка не преднозначена. для постояного НУЛЯ . как зделать чтоб это заработала так как мне надо . Готов оплатить вашу работу.
+1 #3 nckm_ 18.05.2011 16:56
Цитирую Иван:
А что конкретно планировалось реализовать с помощью этого дальномера?

у меня есть давняя идея сделать "тросточку" для слабовидящего человека. Представьте себе что-то вроде фонарика. Человек держит его в руке и как бы "освещает" себе путь. В устройстве встроенный вибратор, как в мобильном телефоне. Чем ближе препятствие, тем сильнее вибрирует тросточка.
Необходима возможность обнаруживать и распознавать ступеньки, бордюры, стены и т.д.
К сожалению этим дальномером реальзовать идею не получилось.
0 #2 Иван 18.05.2011 14:40
А что конкретно планировалось реализовать с помощью этого дальномера?
0 #1 dm.urievich 03.05.2011 09:13
Посмотрите этот проект, может найдете что-то полезное
http://www.circuitcellar.com/library/print/0103/piana150/2301013.pdf

Добавить комментарий


Защитный код
Обновить


GitHub YouTube Twitter
Вы здесь: Начало Проекты Проект Марсоход Использование ультразвукового дальномера