Роботам, как и смерть всем человекам очень нужны органы чувств, чтобы ориентироваться в пространстве. Инфракрасный дальномер Sharp GP2Y0A21YK очень подходит на эту роль, если вам требуется избегать столкновения с препятствиями или знать, где примерно это самое препятствие находится.
Кстати, возможно, у вас дома уже есть один из роботов, где используются похожие датчики. Это практически все вменяемые китайские роботы-пылесосы и, полагаю, многие модели Roomba. И, вероятно, многие другие.
А если уж этим сенсорам нашлось место в более-менее серьезной технике, то и мы найдем им применение, правда?
Чтобы не кривить душой, скажу сразу: я заказывал эти датчики не просто поиграться. Наоборот, с самого начала знал, что они мне пригодятся, чтобы сделать интерактивную лампу, которая меняет интенсивность свечения в зависимости от положения ладони над ней.
Конечно, реальность внесла свои коррективы и в итогеЕвлампия (так зовут лампу) получилась гораздо интереснее базовой концепции. Иными словами, у нее теперь пять режимов: ночник, светильник с регулировкой яркости, термометр, «северное сияние» с ручной регулировкой и автоматическое северное сияние.
А кроме того — пара сервисных функций: включение и выключение фонового и верхнего освещения в комнате.
Вот как это работает:
Ну а теперь самое время подробнее рассказать о датчике, благодаря которому все и случилось.
Как я говорил в самом начале, Sharp GP2Y0A21YK — это инфракрасный дальномер. А значит, он оснащен ИК-излучателем и ИК-приемником: первый служит источником луча, отражение которого ловит второй. При этом ИК-лучи датчика для человеческого глаза невидимы (хотя можно различить красное мерцание, если посмотреть в датчик) и при такой интенсивности безвредны.
На домашних животных они так же не оказывают никакого влияния.
Что касается конкурентов, то по сравнению с ультразвуковыми сенсорами, например, сверхпопулярным HC-SR04, у этого датчика есть и достоинства, и недостатки. К достоинствам можно отнести все то, что сказано выше, т.е. нейтральность и безвредность.
А недостатки — меньший радиус действия (у HC-SR04 порядка 4 м) и зависимость от внешних помех, в том числе — некоторых типов освещения. Я, к примеру, встречал упоминания, что солнечный свет может влиять на показания датчика.
Датчик поставляется в спартанском комплекте, т.е. сам датчик и кабель с разъемом для подключения к датчику. На другой стороне — просто залуженные провода, что не очень удобно для использования с Arduino Uno, но вполне подходит для контроллеров без распаянных разъемов. Так как я планировал использовать датчик с Arduino Pro Mini, это был вполне подходящий вариант — провода просто запаял в макетную плату.
Провода различаются по цвету: желтый — сигнал, черный — земля, красный — плюс питания (+5В).
Выход датчика аналоговый (хотя в даташите почему-то написано — цифровой). То есть, напряжение на нем пропорционально расстоянию до препятствия. Вместе с тем, как и в случае с ультразвуком, для датчика есть разница между разными типами препятствий.
В связи с этим в даташите Sharp приводит данные при использовании в качестве отражателей эталонных карточек Kodak с коэффициентом отражения 90%. Судя по нему, на 20 см датчик выдает 1.3В.
Давайте сравним с моими экспериментальными данными:
Напоминаю, что аналоговый вход Arduino работает в диапазоне 0В — 5В и имеет 1024 ступеней, отсюда расчет: (5/1024)*(показания датчика). Так что если учесть то, что все своими (дрожащими) руками, то показания вполне вписываются в характеристики датчика. И заодно видно, что черная поверхность вносит свои коррективы.
. так он светит
Вместе с тем, как заметил внимательный читатель, есть и специфика. Суть в том, что когда препятствие находится ближе нижней границы радиуса действия (10 см), датчик начинает считать, что препятствие, наоборот, удаляется (когда накрыл рукой показания зафиксировались на 345).
Примерно так это выглядит:
В связи с этим рекомендация: в целевом устройстве датчик должен быть установлен так, чтобы препятствие физически не могло оказаться ближе нижней границы радиуса действия.
Отсюда вывод: хотя для многих целей даташит вполне адекватен, иногда имеет смысл провести эксперименты, чтобы потом не было мучительно больно. И это особенно актуально, если датчик несколько заглублен (или закрыт ИК-прозрачным материалом), а значит, может получать отражения от стенок или других элементов корпуса.
Например, я столкнулся с тем, что Евлампия, будучи установленной на штатном месте после успешно проведенных «настольных» тестов, стала сходить с ума. Сначала я думал, что виноваты помехи по питанию и даже поставил параллельно питанию датчика пару конденсаторов (10 мкФ и 0.1 мкФ), подтянул аналоговый вход Arduino к нулю через резистор 10 кОм и даже купил сетевой фильтр-розетку.
Но когда это не помогло, то снова вернулся на стол, где покрутил датчик в разные стороны и увидел, что по факту даже если расстояние до ближайшего препятствия больше 80 см, показания датчика заметно меняются. Так что если ваши подопечные будут неадекватны — проверяйте фактические показания в реальных условиях.
Вот, например, элементарный скетч, который, во-первых, с интервалом в полсекунды выводит показания датчика, а, во-вторых, зажигает светодиод Arduino, если показания попадают в диапазон от 100 до 200:
// Желтый - A0, Черный - земля, Красный - +5В
unsigned int l;
void setup() {
Serial.begin(9600);
pinMode(A0, INPUT);
pinMode(13, OUTPUT);
l = 0;
}
void loop() {
l = analogRead(A0);
Serial.println(l);
delay(1000);
if (l > 100 && l < 200) {
digitalWrite(13, HIGH);
} else {
digitalWrite(13, LOW);
}
}
Если подводить итог, то датчик, хотя и немного капризен, очень прост в использовании и относительно дешев.
Использовать его можно в роботах, а также для контроля пересечения дверных проемов, в каких-нибудь интерактивных устройствах, управляемых жестами и в чем-то, что еще подскажет фантазия.
Планирую купить+34Добавить в избранноеОбзор понравился+38
+67
За обзор спасибо.
У нас такие датчики на нашем роботе трудятся.
Правда не скажу, что довольны ими.
Покупали в оффлайне, по 10 баксов примерно.
(не могу отделаться от чувства дежавю, такое впечатление, что я этот обзор на хабре видел)
У меня по такому принципу подсветка на кухне включается, правда не с такими датчиками.
Чувствую точно обзор пилить придется :)))
Поговорил с программистом, вспомнил, что у них за глюк.
Один и плюс и минус, это очень узкая точка.
Но второй точно минус, они слепнут даже от отраженного солнца, даже через окно.
В итоге заменили на УЗ.
Надо датчик из моего обзора на солнце попробовать, только проблема солнце найти.
На 35 Ватт галогенную лампу, светящую в упор, никак не реагирует.
Зная, что пульты ТВ так же нормально работают на солнце, думаю и там будет нормально, но надо пробовать.
Однако ик светодиод, ик фототранзистор и пара резисторов в офлайне обойдется максимум в 50 евроцентов. Очень уж дорогая девайсина.
А сам проект конечно прикольный.
Возможно, но сначала надо найти офлайн с такими ценами (у меня по пути только Чип-и-Дип). А потом у меня не хватит ума это обрабатывать, поскольку для защиты от помех потребуется модуляция и неизбежная за ней демодуляция. Насколько я понимаю процесс.
Это было 50/50 развлечение и бытовой прибор. На самом деле актуальны ночник, чтобы быстро посмотреть, чем там коты шуршат и тотальное выключение света.
В случае вашей лампы гораздо удобнее выглядел бы пульт. Одно нажатие и нужный режим включен. А всё то, что замедляет включение — скорее понты, чем нужная вещь.
комрады, сорри за офф, но хочу спросить:
никто не пробовал запихнуть подобные датчики и ардуинку в какого-нибудь «тупого» робота пылесоса типа K6L и ему подобным, с целью его поумнения. а то уж больно примитивно он двигается, хотя пылесосит паркет замечательно.
Добрый! Насколько могу судить, противопоказаний нет — чипы одинаковые, диапазон возможных питающих напряжений похож. Только будьте аккуратны с питанием. Если я правильно понял, у nano для нестабилизированного источника предназначен пин 30.
У нас такие датчики на нашем роботе трудятся.
Правда не скажу, что довольны ими.
Покупали в оффлайне, по 10 баксов примерно.
(не могу отделаться от чувства дежавю, такое впечатление, что я этот обзор на хабре видел)
У меня по такому принципу подсветка на кухне включается, правда не с такими датчиками.
Чувствую точно обзор пилить придется :)))
Один и плюс и минус, это очень узкая точка.
Но второй точно минус, они слепнут даже от отраженного солнца, даже через окно.
В итоге заменили на УЗ.
Надо датчик из моего обзора на солнце попробовать, только проблема солнце найти.
На 35 Ватт галогенную лампу, светящую в упор, никак не реагирует.
Зная, что пульты ТВ так же нормально работают на солнце, думаю и там будет нормально, но надо пробовать.
А сам проект конечно прикольный.
Остальное — когда как.
mySKU.me/blog/china-stores/23362.html
никто не пробовал запихнуть подобные датчики и ардуинку в какого-нибудь «тупого» робота пылесоса типа K6L и ему подобным, с целью его поумнения. а то уж больно примитивно он двигается, хотя пылесосит паркет замечательно.