Как сделать курвиметр своими руками

Колесный измеритель расстояния (курвиметр) на Ардуино своими руками

Как сделать курвиметр своими руками

Первое, о чем стоит позаботиться при постройке курвиметра – это колесо или ролик. Он должен быть достаточно маленьким, чтобы точность прибора была высокой, в то же время он должен быть достаточно большим, чтобы на величину показаний не сильно влияли неровности измеряемой поверхности. В моем случае колесо имеет диаметр 14 сантиметров.

Как сделать курвиметр своими руками

Как сделать курвиметр своими руками

Как сделать курвиметр своими руками

Чтобы отсчитать каждый оборот в простейшем случае можно использовать «скользящий контакт». Однако я не рекомендую использовать такой механизм отсчета. Гораздо лучше будет применить геркон или датчик Холла.

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

Как сделать курвиметр своими руками

На колесе нужно установить небольшой магнит. Убедитесь, что его силы будет достаточно для смыкания контактов геркона.
Теперь займемся «мозгами» системы. В моем случае это плата Arduino UNO. Она будет считывать состояние геркона и передавать данные по Bluetooth соединению, с помощью модуля HC-05, на телефон. Кстати, геркон подключается к плате как обычная кнопка. Думаю с подключением Bluetooth модуля проблем тоже возникнуть не должно.

Что касается самого кода, то он очень простой. И я постарался его закомментировать, чтобы все было максимально понятно.

Как сделать курвиметр своими руками

Как сделать курвиметр своими руками

Как сделать курвиметр своими руками

Вы можете посмотреть видео по сборке этого аппарата, возможно вы найдете там, что-то интересное.

Источник

Курвиметр – чтобы узнать длину извилистой линии!

Такой прибор, как курвиметр, относится к инструментам, с помощью которых измеряются длины у извилистых линий. Обычно подобная работа выполняется на чертежах, картах или планах. Таким прибором пользуются во многих отраслях: геологии, строительстве, архитектуре и других.

Как измеряют длину криволинейных траекторий?

Любители туристических походов и путешествий тоже оценили по достоинству дорожный курвиметр (дорожное колесо, как его еще называют). Он хорошо помогает рассчитать планируемый путь с криволинейной траекторией, а это, в свою очередь, помогает правильно составить весь маршрут, что не всегда возможно с измерительной линейкой. Стандартные приборы состоят из корпуса, циферблата, шкалы (либо круговой, либо прямолинейной), стрелки и обводного колеса. Когда вы взяли такое приспособление в руку, становится сразу понятно, как им пользоваться.

Как сделать курвиметр своими руками

Для того чтобы измерить длину, колесо нужно прокатить по намеченной линии. При каждом обороте колеса будет указываться измеряемое расстояние, обычно оно не выходит за длину шкалы, которая равна 100 см. Отклонение при измерении отрезков прямой линии, длина которых не меньше 50 см, не должно быть больше 0,25 см. В нашей стране для измерения существуют стандарты, поэтому проверенные на наших заводах-изготовителях устройства вряд ли в ближайшее время после приобретения дадут сбой или начнут накапливать погрешности.

Как сделать курвиметр своими руками

Подразделяют данные приспособления по многим показателям: по типу используемого тока, назначению, габаритам и способам работы. К основным видам относятся механические и электронные.

Механический прибор – старый конь борозды не портит

Модели инструментов механического типа мало чем отличаются друг от друга. Отличаться может только шкала и циферблат. Она может быть либо круглой, либо прямолинейной, а циферблат может быть неподвижным, с подвижным индексом, либо с подвижной стрелкой. Часто встречаются модели и с подвижными циферблатами и с неподвижными индексами. Чаще это прибор небольших размеров, а средний вес стандартного механического прибора составляет около 50 граммов, ну, а что измеряет курвиметр, мы уже знаем. Обычный инструмент такой модели, как КУ-А, имеет размеры 50х20х100 мм, он изготовлен производителями нашей страны и был обязательным инструментом для каждого офицера.

Как сделать курвиметр своими руками

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

Как сделать курвиметр своими руками

Перечисленные характеристики показывают, что механические варианты прекрасно подходят для того, чтобы использовать их в полевых условиях. Как и у каждого инструмента, у данных моделей тоже есть недостатки. Они не приспособлены для точного определения десятых долей. Поэтому при измерении значения указываются примерно. Собственно, если точность не слишком важна, то механика – достойный вариант, к тому же, легко сделать такой полевой курвиметр своими руками, если, конечно, вы не забыли некоторые геометрические формулы.

Электронный курвиметр – больше возможностей и выше точность

Электронный тип инструментов предоставляет возможность производителям наделить его самыми разными функциями. Часто на современных моделях можно увидеть такие функции, как калькулятор, мини-фонарик, компас. Они не влияют на качество работы самого измерительного компонента прибора, но вот на стоимости отразятся. Электронные модели изготавливают в разном виде, это могут быть авторучки, градусники и т.д. Главное в электронных приборах – повышенная точность, по сравнению с механикой.

Как сделать курвиметр своими руками

Одна популярная электронная модель Скал Мастер-2 предоставляет возможность выполнять сложные графические замеры и вычисления. Кроме того, она оснащена собственным программным обеспечением, и ее можно подключать к персональному компьютеру. Это одна из немногих моделей, которая обладает, помимо 91 архитектурной, еще и разными инженерными функциями. Также данный инструмент позволяет обрабатывать показания в 50 англо-американских значениях (в фунтах, дюймах и т.д.). Имеется на нем 41-метрическое значение, а значит, есть возможность работать с самыми разными чертежами и картами. Для удобства работы надо только ввести наиболее часто используемые виды измерений, и прибор в дальнейшем уже самостоятельно переводит масштабные измерения. Установленная карта памяти позволяет сохранять данные.

Как сделать курвиметр своими руками

Для электронных моделей характерен небольшой вес (около 50 граммов), прочные и мягкие материалы (полимеры), что делает их надежными и ударопрочными. Также есть возможность использовать без подзарядки около 400 часов. Оснащены данные модели автоматическим выключением. Предназначен такой электронный прибор для работы от 0 до 550 градусов по Цельсию. По перечисленным характеристикам можно сделать вывод, что их можно использовать в полевых условиях и для самых сложных измерений. К недостаткам можно отнести то, что таким приборам нужна своевременная подзарядка, и они не водоустойчивые. Если сравнивать такое качество, как ударопрочность, то они значительно уступают механическим вариантам.

Другая классификация инструмента и его использование

По виду используемого тока обычно выделяются электронные инструменты для измерения длины криволинейных траекторий. Разные производители оснащают свои приборы не всегда стандартными зарядными устройствами. Для одних требуется подзарядка током 220 В, другим 380 В. Есть некоторые модели, которые работают за счет батареек. По назначению данные приборы можно разделить на два больших класса: дорожные и картографические.

Как сделать курвиметр своими руками

Для каждого предназначения имеется специализированное оснащение. Для дорожных или туристических приборов не нужно точное измерение до сотых значений. Обычно большинство туристов предпочитают брать в походы механические модели, но если они оснащены компасом и подсветкой, то это будет более удачным вариантом. Производители учитывают данные пожелания, и это видно по появлению на прилавках магазинов соответствующих комплексных изобретений.

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

Как сделать курвиметр своими руками

Прибор очень прост, поэтому и пользоваться им тоже легко, так что скажем только пару слов об этом. Небольшое колесо нужно плавно перетаскивать по поверхности карты, только вот следовать необходимо четко по намеченной линии, которую требуется измерить. Колесо будет переворачиваться, а прибор – отсчитывать каждую единицу измерения на имеющемся циферблате. Считается каждый поворот колеса. Дойдя до конца линии, мы получим значение пройденного расстояния. Прибор покажет точное значение. Наиболее часто циферблат настроен в определенном масштабе, поэтому измеренное расстояние получается реальным, а не тем, что показано на бумаге.

Источник

Колесный измеритель расстояния (курвиметр) на ардуино своими руками

Как сделать курвиметр своими руками

Зачем нужен сканирующий дальномер?

На сегодняшний день в робототехнике не так уж и много методов навигации внутри помещений. Определение положения робота в пространстве с использованием лазерного сканера — один из них. Важное достоинство этого метода — он не требует установки в помещении каких-либо маяков.

В отличие от систем, использующих распознавание изображения с камер, обработка данных с дальномера не так ресурсоемка. Но есть и недостаток — сложность, и соответственно, цена дальномера.

Традиционно в робототехнике используются лазерные сканеры, использующие фазовый или времяпролетный принцип для измерения расстояния до объектов.

Реализация этих принципов требует довольно сложной схемотехники и дорогих деталей, хотя и характеристики при этом получаются приличные — используя эти принципы, можно добиться высокой скорости сканирования и большой дальности измерения расстояния. Но для домашних экспериментов в робототехнике такие сканеры мало подходят — цена на них начинаются от 1000$.

На помощь приходят дальномеры, использующие триангуляционный принцип измерения расстояния. Дальномер такого типа впервые появился в роботах-пылесосах Neato:

Как сделать курвиметр своими руками

Довольно быстро любители расшифровали протокол этого дальномера, и начали использовать его в своих проектах. Сами дальномеры в качестве запчастей появились на ebay в небольших количествах по цене около 100$.

Через несколько лет китайская компания смогла выпустить сканирующий дальномер RPLIDAR, который поставлялся как полноценный прибор, а не запчасть. Только цена этих дальномеров оказалась достаточно высокой — 400$.

Самодельный дальномер

Как только я узнал о дальномерах Neato, мне захотелось собрать самому аналогичный. В конце концов, мне это удалось, и процесс сборки я описал на Робофоруме. Первая версия дальномера:

Как сделать курвиметр своими руками

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

Устройство сканирующего триангуляционного лазерного дальномера

Принцип измерения расстояния до объекта основан на измерении угла между лазерным лучом, попадающим на объект, и объективом дальномера. Зная расстояние лазер-объектив (h) и измеренный угол, можно вычислить расстояние до объекта — чем меньше угол, тем больше расстояние. Принцип хорошо иллюстрирует картинка из статьи:

Как сделать курвиметр своими руками

Таким образом, ключевые оптические компоненты такого дальномера — лазер, объектив и фотоприемная линейка. Так как дальномер сканирующий, то все эти детали, а так же управляющая электроника устанавливаются на вращающейся головке.

Тут может возникнуть вопрос — зачем нужно вращать оптику и электронику, ведь можно установить вращающееся зеркало? Проблема в том, что точность дальномера зависит от расстояния между объективом и лазером (базового расстояния), так что оно должно быть достаточно большим.

Соответственно, для кругового сканирования понадобится зеркало диаметром, большим базового расстояния. Дальномер с таким зеркалом получается достаточно громоздким. Сканирующая головка дальномера при помощи подшипника закрепляется на неподвижном основании. На нем же закрепляется двигатель, вращающий головку.

Также в состав дальномера должен входить энкодер, предназначенный для получения информации о положении головки.

Как видно, дальномеры Neato, RPLIDAR и мои самодельные сделаны именно по этой схеме.

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

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

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

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

Фотография второй версии дальномера:

Как сделать курвиметр своими руками

Еще один недостаток получившегося дальномера — низкая скорость сканирования и сильное падение точности на расстояниях больше 3м. Именно эти недостатки я решил устранить в третьей версии дальномера.

Электроника

Светочувствительная линейка, используемая в подобном дальномере, должна одновременно иметь достаточно высокую световую чувствительность, позволять считывать сигнал с высокой скоростью и иметь маленькие габариты. Различные CCD линейки, применяемые в бытовых сканерах, обычно довольно длинные.

Линейки, используемые в сканерах штрихкодов — тоже не самые короткие и быстрые. В первой и второй версии дальномера я использовал линейки TSL1401 и ее аналог iC-LF1401. Эти линейки хорошо подходят по размеру, они дешевые, но содержат всего 128 пикселей.

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

В третьей версии дальномера я решил использовать линейку ELIS-1024:

Как сделать курвиметр своими руками

Однако купить ее оказалось непросто. У основных поставщиков электроники этих линеек просто нет. Первая линейка, которую я смог купить на Taobao, оказалась нерабочей. Второю я купил на Aliexpress (за 18$), она оказалась рабочей.

Обе линейки выглядели паянными — обе имели облуженные контакты и, судя по маркировке, были изготовлены в 2007 году. Причем даже на фотографиях у большинства китайских продавцов линейки именно такие. Похоже, что действительно новую линейку ELIS-1024 можно купить только напрямую у производителя.

Светочувствительная линейка ELIS-1024, как следует из названия, содержит 1024 пикселя. Она имеет аналоговый выход, и достаточно просто управляется.

Еще более хорошими характеристиками обладает линейка DLIS-2K. При сходных размерах, она содержит 2048 пикселей и имеет цифровой выход. Насколько мне известно, именно она используется в дальномере Neato, и возможно, в RPLIDAR. Однако, найти ее в свободной продаже очень сложно, даже в китайских магазинах она появляется не часто и дорого стоит — более 50$.

Так как я решил использовать линейку с аналоговым выходом сигнала, то микроконтроллер дальномера должен содержать достаточно быстрый АЦП. Поэтому я решил использовать серию контроллеров — STM32F303, которые, при относительно небольшой стоимости, имеют несколько быстрых АЦП, способных работать одновременно. В результате у меня получилась такая схема:

Как сделать курвиметр своими руками

Сигнал с линейки (вывод 10) имеет достаточно высокий уровень постоянной составляющей, и ее приходится отфильтровывать при помощи разделительного конденсатора. Далее сигнал нужно усилить — для этого используется операционный усилитель AD8061. Далеко расположенные объекты дают достаточно слабый сигнал, так что пришлось установить коэффициент усиления равным 100.

Как оказалось в результате экспериментов, даже при отсутствии сигнала, на выходе выбранного ОУ по какой-то причине постоянно присутствует напряжение около 1.5В, что мешает обработке результатов и ухудшает точность измерения амплитуды сигнала. Для того, чтобы избавится от этого смещения, мне пришлось подать дополнительное напряжение на инвертирующий вход ОУ.

Плату разводил двухстороннюю, сделать такую плату в домашних условиях качественно довольно сложно, так что заказал изготовление плат в Китае (пришлось заказать сразу 10 штук):

Как сделать курвиметр своими руками

В этом дальномере я использовал дешевый объектив с резьбой M12, имеющий фокусное расстояние 16мм. Объектив закреплен на печатной плате при помощи готового держателя объектива (такие используются в различных камерах).

Лазер в данном дальномере — инфракрасный (780 нм) лазерный модуль, мощностью 3.5 мВт.

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

Для проверки работоспособности электроники была собрана вот такая конструкция, имитирующая сканирующую головку дальномера:

Как сделать курвиметр своими руками

Уже в таком виде можно было проверить, какую точность измерения расстояния позволяет обеспечить дальномер. Для анализа сигнала, формируемого линейкой, были написаны тестовые программы для микроконтроллера и ПК.

Пример вида сигнала с линейки (объект на расстоянии 3 м).

Как сделать курвиметр своими руками

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

Механическая часть

После того, как электроника была отлажена, настало время изготовить механическую часть. В этот раз я не стал связываться с механикой из HDD, и решил изготовить механические детали из жидкого пластика, заливаемого в силиконовую форму.

Эта технология подробно описана в Интернете, в том числе и на Гиктаймс. Уже после того, как я изготовил детали, стало понятно, что изготовить детали на 3D принтере было бы проще, они могли выйти тверже, и возможно, можно было бы сделать одну деталь вместо двух.

Доступа к 3D принтеру у меня нет, так что пришлось бы заказывать изготовление детали в какой-либо компании.

Фото одной из деталей сканирующей головки дальномера:

Эта деталь является основой головки. Она состоит из втулки, на которую позже надевается подшипник, и диска. Диск предназначен для крепления второй детали башни, кроме того, на него снизу наклеивается диск энкодера.

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

Для повышения стабильности работы для передачи сигналов GND и UART TX используется 2 пары линий щеток. Оставшиеся 2 линии используются для передачи напряжения питания и сигнала энкодера.

Силиконовая форма для отливки этой детали:

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

Для крепления сканирующей головки к основанию дальномера используется шариковый подшипник. Я использовал дешевый китайский подшипник 6806ZZ.

Честно говоря, качество подшипника мне не понравилось — ось его внутренней втулки могла отклонятся относительно оси внешней на небольшой угол, из-за чего головка дальномера тоже немного наклоняется.

Крепление подшипника к детали с диском и основанию будет показано ниже.

Основание я сделал из прозрачного оргстекла толщиной 5 мм. К основанию крепится подшипник, датчик энкодера, двигатель дальномера и маленькая печатная плата. Само основание устанавливается на любую подходящую поверхность при помощи стоек. Вот так выглядит основание дальномера снизу:

Печатная плата содержит регулируемый линейный стабилизатор напряжения для питания двигателя, и площадки для подключения проводов узла щеток. Сюда же подводится питание дальномера. Как и в других дальномерах, двигатель вращает сканирующую головку при помощи пассика. Для того, чтобы он не сваливался с втулки, на ней имеется специальное углубление.

Как видно из фотографии, подшипник закреплен в основании при помощи трех винтов. На сканирующей головке подшипник удерживается за счет выступа на втулке и прижимается к ней другими винтами, одновременно удерживающими щеточный узел.

Энкодер состоит из бумажного диска с напечатанными рисками и оптопары с фототранзистором, работающей на отражение. Оптопара закреплена при помощи стойки на основании так, что плоскость диска оказывается рядом с ней:

Сигнал от оптопары через щетки передается на вход компаратора микроконтроллера. В качестве источника опорного напряжения для компаратора выступает ЦАП микроконтроллера. Для того, чтобы дальномер мог определить положение нулевого угла, на диск энкодера нанесена длинная риска, отмечающая нулевое положение головки (она видна справа на фотографии выше).

Разъем сзади дальномера используется для прошивки микроконтроллера.

Собранный дальномер нужно отюстировать — установить лазер в такое положение, чтобы отраженный от объектов свет попадал на фотоприемную линейку. Обе пластмассовые детали содержат соосные отверстия, располагающиеся под пазом лазера.

В отверстия вворачиваются регулировочные винты, упирающиеся в корпус лазера. Поворачивая эти винты, можно изменять наклон лазера.

Наблюдая в программе на компьютере форму и амплитуду принятого сигнала и изменяя наклон лазера, нужно добиться максимальной амплитуды сигнала.

Также триангуляционные дальномеры требуют проведения калибровки, о чем я писал ранее:

Для того, чтобы при помощи датчика можно было измерять расстояние, нужно произвести его калибровку, т.е. определить закон, связывающий результат, возвращаемый датчиком, и реальное расстояние. Сам процесс калибровки представляет собой серию измерений, в результате которых формируется набор расстояний от датчика до некоторого объекта, и соответствующих им результатов.

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

Получившийся дальномер имеет существенный недостаток — из-за отсутствия модуляции излучения лазера он некорректно работает при любой сильной засветке.

Обычное комнатное освещение (даже при использовании мощной люстры) не влияет на работу дальномера, но вот расстояние до поверхностей, прямо освещенных Солнцем, дальномер измеряет неправильно.

Для решения этой проблемы в состав дальномера нужно включить интерференционный светофильтр, пропускающий световое излучение только определенной длины волны — в данном случае 780 нм.

Эволюция самодельных дальномеров:

Габаритные размеры получившегося дальномера: Размер основания: 88×110 мм. Общая высота дальномера: 65 мм (может быть уменьшена до 55 при уменьшении высоты стоек).

Диаметр сканирующей головки: 80 мм (как у mini-CD диска).

Как и у любого другого триангуляционного дальномера, точность измерения расстояния этого дальномера резко падает с ростом расстояния. При измерениях расстояния до объекта с коэффициентом отражения около 0.7 у меня получились примерно такие точностные характеристики:

Расстояние Разброс
1 м

Ультразвуковой датчик расстояния Ардуино HC-SR04

Ультразвуковые датчики расстояния Ардуино очень востребованы в робототехнических проектах из-за своей относительной простоты, достаточной точности и доступности.

Они могут быть использованы как приборы, помогающие объезжать препятствия, получать размеры предметов, моделировать карту помещения и сигнализировать о приближении или удалении объектов. Одним из распространенных вариантов такого устройства является датчик расстояния, в конструкцию которого входит ультразвуковой дальномер HC SR04.

В этой статье мы познакомимся с принципом действия датчика расстояния, рассмотрим несколько вариантов подключения к платам Arduino, схему взаимодействия и примеры скетчей.

Датчик расстояния в проектах Arduino

Способность ультразвукового датчика определять расстояние до объекта основано на принципе сонара – посылая пучок ультразвука, и получая его отражение с задержкой, устройство определяет наличие объектов и расстояние до них.

Ультразвуковые сигналы, генерируемые приемником, отражаясь от препятствия, возвращаются к нему через определенный промежуток времени.

Именно этот временной интервал становится характеристикой помогающей определить расстояние до объекта.

Внимание! Так как в основу принципа действия положен ультразвук, то такой датчик не подходит для определения расстояния до звукопоглощающих объектов. Оптимальными для измерения являются предметы с ровной гладкой поверхностью.

Описание датчика HC SR04

Как сделать курвиметр своими руками

Ультразвуковой дальномер HC SR04 имеет такие технические параметры:

Примеры использования датчика расстояния

Давайте рассмотрим пример простого проекта с платой Arduino Uno и датчиком расстояния HC SR04. В скетче мы будем получать значение расстояния до предметов и выводить их в монитор порта в среде Arduino IDE. Вы сможете легко изменить скетч и схему подключения, чтобы датчик сигнализировал о приближении или отдалении предмета.

Подключение датчика к ардуино

При написании скетча использовалась следующий вариант распиновки подключения датчика:

Пример скетча

Начнем работу с датчиком сразу с относительного сложного варианта – без использования внешних библиотек.

В данном скетче мы выполняем такую последовательность действий:

Если датчик расстояния не выполняет считывание сигнала, то преобразование выходного сигнала никогда не примет значения короткого импульса – LOW. Так как у некоторых датчиков время задержки варьируется в зависимости от производителя, рекомендуется при использовании указанных скетчей выставлять его значение вручную (мы это делаем в начале цикла).

Если расстояние составляет более 3 метров, при котором HC SR04 начинает плохо работать, время задержки лучше выставлять более 20 мс, т.е. 25 или 30 мс.

#define PIN_TRIG 12
#define PIN_ECHO 11

// Инициализируем взаимодействие по последовательному порту

Serial.begin (9600);
//Определяем вводы и выводы
pinMode(PIN_TRIG, OUTPUT);
pinMode(PIN_ECHO, INPUT);
>

// Сначала генерируем короткий импульс длительностью 2-5 микросекунд.

digitalWrite(PIN_TRIG, LOW);
delayMicroseconds(5);
digitalWrite(PIN_TRIG, HIGH);

// Выставив высокий уровень сигнала, ждем около 10 микросекунд. В этот момент датчик будет посылать сигналы с частотой 40 КГц.
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);

// Время задержки акустического сигнала на эхолокаторе.
duration = pulseIn(PIN_ECHO, HIGH);

// Теперь осталось преобразовать время в расстояние
cm = (duration / 2) / 29.1;

Serial.print(«Расстояние до объекта: «);
Serial.print(cm);
Serial.println(» см.»);

// Задержка между измерениями для корректной работы скеча
delay(250);
>

Скетч с использованием библиотеки NewPing

Теперь давайте рассмотрим вариант скетча с использованием библиотеки NewPing. Код существенно упростится, т.к. все описанные ранее действия спрятаны внутри библиотеки.

Все, что нам нужно сделать – создать объект класса NewPing, указав пины, с помощью которых мы подключаем датчик расстояния и использовать методы объекта.

В нашем примере для получения расстояния в сантиметрах нужно использовать ping_cm().

#define PIN_TRIG 12
#define PIN_ECHO 11

#define MAX_DISTANCE 200 // Константа для определения максимального расстояния, которое мы будем считать корректным.

// Создаем объект, методами которого будем затем пользоваться для получения расстояния.
// В качестве параметров передаем номера пинов, к которым подключены выходы ECHO и TRIG датчика

NewPing sonar(PIN_TRIG, PIN_ECHO, MAX_DISTANCE);

void setup() <
// Инициализируем взаимодействие по последовательному порту на скорости 9600
Serial.begin(9600);
>

// Стартовая задержка, необходимая для корректной работы.
delay(50);

// Получаем значение от датчика расстояния и сохраняем его в переменную
unsigned int distance = sonar.ping_cm();

// Печатаем расстояние в мониторе порта
Serial.print(distance);
Serial.println(«см»);

Пример подключения ультразвукового дальномера HC SR04 с одним пином

Подключение HC-SR04 к Arduino может быть выполнено посредством использования одного пина. Такой вариант пригодится, если вы работаете с большим проектом и вам не хватает свободных пинов. Для подключения вам нужно просто установить между контактами TRIGи ECHO резистор номиналом 2.2K и подключить к ардуино контакт TRIG.

#define PIN_PING 12 // Пин с Arduino соединен с пинами trigger и echo на датчике расстояния
#define MAX_DISTANCE 200 // Максимальное расстояние, которое мы способны контролировать (400-500см).

NewPing sonar(PIN_PING, PIN_PING, MAX_DISTANCE); // Регулировка пинов и максимального расстояния

void setup() <
Serial.begin(9600); // Открывается протокол с данными и частотой передачи 115200 бит/сек.
>

delay(50); // Задержка в 50 мс между генерируемыми волнами. 29 мс – минимально допустимое значение
unsigned int distanceSm = sonar.ping(); // Создание сигнала, получение параметра его продолжительности в мкс (uS).
Serial.print(«Ping: «);
Serial.print(distanceSm / US_ROUNDTRIP_CM); // Пересчет параметра времени в величину расстояния и вывод результата (0 соответствует выходу за допустимый предел)
Serial.println(«cm»);
>

Краткие выводы

Ультразвуковые датчики расстояния достаточно универсальны и точны, что позволяет их использовать для большинства любительских проектов.

В статье рассмотрен крайне популярный датчик HC SR04, который легко подключается к плате ардуино (для этого следует сразу предусмотреть два свободных пина, но есть вариант подключения и с одним пином).

Для работы с датчиком существуют несколько бесплатных библиотек (в статье рассмотрена лишь одна из них, NewPing), но можно обойтись и без них – алгоритм взаимодействия с внутренним контроллером датчика достаточно прост, мы показали его в этой статье.

Исходя из собственного опыта, можно утверждать, что датчик HC-SR04 показывает точность в пределах одного сантиметра на расстояниях от 10 см до 2 м. На более коротких и дальних дистанциях возможно появление сильных помех, что сильно зависит от окружающих предметов и способа использования. Но в большинстве случаев HC-SR04 отлично справлялся со своей работой.

Дальномер с помощью датчика HC SR04 и Arduino

Ардуино – уникальная система, представляющая собой пластилин в руках инженера, из которого он может слепить, что пожелает. Возможно это благодаря большому разнообразию датчиков и модулей разных направленностей. От простых чипов, измеряющих силу тока, до вещей вроде Arduino hc hc sr04.

Это специальный датчик, позволяющий, при помощи ультразвуковых волн, измерить расстояние до объекта, на который его направили. Несложно догадаться, что проще всего его применить для создания простого дальномера. Рассмотрим Arduino hc sr04 и какие нюансы в работе с ним стоит учитывать, прежде чем начать собирать проект.

Как сделать курвиметр своими руками

1. Основы сборки дальномера на Ардуино с помощью датчика HC SR04

Если вы собираетесь собрать дальномер на Ардуино, то без HC SR04 просто не обойтись. Ведь именно этот модуль чаще всего применяют в подобных системах из-за его высокой востребованности, по причине простоты работы, доступности и низкой стоимости.

При этом точность показаний остаётся на высоте, что очень важно в подобных системах. Из данного чипа можно собрать не только дальномер на Ардуино, но и полноценного робота, который будет чувствовать расстояние до объекта и обходить любое препятствие.

Как сделать курвиметр своими руками

Однако сегодня мы рассмотрим именно вариант с дальномером на Аrduino, так как он идеально подойдёт для новичков в сфере, которые ещё не слишком хорошо разбираются в основах.

Если же вы захотите затем модифицировать своё изобретение, то можно научить его моделировать полноценную трехмерную карту помещения, что будет удобно для тех, кто занимается дизайном и конструированием мебели или зданий.

Но сначала стоит рассмотреть, как вообще работает данный прибор и какие основы сборки стоит усвоить, прежде чем создать лазерный дальномер на Ардуино своими руками.

Наш дальномер на Arduino будет основан на сонаре, применяемом в природе дельфинами, для измерения расстояния до объектов и спокойного обхождения препятствий. Делается это с помощью физических свойств ультразвуковых волн, которые способны отражаться, сталкиваясь с твердыми объектами, и возвращаться обратно к датчикам.

Как сделать курвиметр своими руками

Далее в ход вступает программный код, который высчитывает, сколько времени прошло между посланием и возвратом волны, делит его на два и с помощью формул и скорости звука высчитывает усреднённое расстояние до объекта.

Почему усреднённое?

Дело в том, что любой ультразвуковой датчик все равно будет ошибаться на десятые доли метра, связано это с тем, что различные материалы, окружение и прочие переменные могут повлиять на скорость движения и отражения от поверхности звука. А в данном проекте мы берём идеальную систему, которая в реальном мире работать не может.

Как сделать курвиметр своими руками

Можно постараться учесть все эти факторы, но каждую переменную вы все равно не запрограммируете, поэтому наша задача – получить данные, максимально приближённые к показаниям профессиональных приборов, ведь дальномер Ардуино всё ещё далёк от них по точности.

Есть и ещё один нюанс, который вам стоит заранее учесть, собирая ультразвуковой дальномер Arduino – не все поверхности подходят для измерения. Дело в том, что некоторые материалы способны поглощать звук или слишком сильно искажать его движение, подобно тому, как черная рубашка поглощает электромагнитную световую волну.

Соответственно, лучше всего применять прибор к гладким и плоским поверхностям, которые не будут нарушать движения УВ, что также ограничивает его функционал. Но благодаря низкому ценнику и удобству работы датчик всё ещё остается достаточно популярным.

2. Что будет в уроке?

Как сделать курвиметр своими руками

Мы соберем дальномер, который будет работать по следующему принципу: при приближении объекта на расстояние менее 4 сантиметров — загорается красный светодиод, иначе горит зеленый.

Достаточно простой пример, в котором мы проверим точность измерения расстояния дальномером hc-sr04. Основа проверки точности станет простая линейка

Колесный измеритель расстояния (курвиметр) на Ардуино своими руками

Но для начала разберемся, что это такое и для чего он нужен. На самом деле о его предназначении нам говорит само его название. Оно образовано от латинского слова curvus, что значит изогнутый или волнистый. То есть курвиметр – это колесный или роликовый измеритель расстояния.

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

Первое, о чем стоит позаботиться при постройке курвиметра – это колесо или ролик. Он должен быть достаточно маленьким, чтобы точность прибора была высокой, в то же время он должен быть достаточно большим, чтобы на величину показаний не сильно влияли неровности измеряемой поверхности. В моем случае колесо имеет диаметр 14 сантиметров.

Чтобы отсчитать каждый оборот в простейшем случае можно использовать «скользящий контакт». Однако я не рекомендую использовать такой механизм отсчета. Гораздо лучше будет применить геркон или датчик Холла.

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

На колесе нужно установить небольшой магнит. Убедитесь, что его силы будет достаточно для смыкания контактов геркона.Теперь займемся «мозгами» системы. В моем случае это плата Arduino UNO.

Она будет считывать состояние геркона и передавать данные по Bluetooth соединению, с помощью модуля HC-05, на телефон. Кстати, геркон подключается к плате как обычная кнопка.

Думаю с подключением Bluetooth модуля проблем тоже возникнуть не должно.

Что касается самого кода, то он очень простой. И я постарался его закомментировать, чтобы все было максимально понятно.

Вы можете посмотреть видео по сборке этого аппарата, возможно вы найдете там, что-то интересное.

В этом выпуске канала alexgyver показано, как сделать колесный измеритель или, иначе говоря, определитель расстояния. Начнем с электронной начинки. Во второй половине видео займемся корпусом и механикой.

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

Аккумулятор 18650 подключен через защитные зарядный модуль. Ардуино к нему подключен через повышающий модуль до 5 вольт. Снимать обороты колеса будем инфракрасным датчиком препятствий. Автору ролика больше нравится датчик холла. Но предложили попробовать инфракрасный датчик. Ну что ж, давайте попробуем.

Выводить расстояние будем на дисплей на контроллере 595. Еще пригодится кнопка для сброса значений и еще одна для включения системы. Прошивка не представляет собой ничего сверхъестественного.

Еще раз посмотреть россии мой скачать прошивкой библиотеку дисплее можно на странице проекта. Alexgyver.ru/roadmeter/ в целях экономии места решил использовать вместо 18650 так аккумулятор меньшего размера формата 14500.

Просто собираем по схеме и кладем в маленькую распределительную коробочку. Оставим датчик болтаться на длинном проводе.

Загружаем прошивку, все работает. У этого датчика есть довольно неприятная особенность. Если изменять препятствия перед ним слишком медленно, он будет засчитывать 2 оборота. Так что рекомендуем вам использовать датчик холла и несколько магнитиков. Прошивка и подключение датчика будут абсолютно такие же.

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

Для всей конструкции определителя расстояния нужно следующие фитинги на двадцатую трубу. Пять уголков на 45 градусов 2 на 90, один тройник и несколько муфт, чтобы сделать удобную рукоятку, и еще две заглушки.

Сейчас варим вилку для колеса по такой схеме. Используем для соединения кусочки трубы. Основную трубу решил сделать из двух частей, чтобы измеритель с колесом можно было сложить. Середина отмеряется от распределительной коробки. Затем части соединяются при помощи двух креплений и саморезов.

Кстати, можно слегка расплавить места крепления, тогда помимо самореза будет еще сварное соединение. Получается отличная раздвижная ручка. Крепления для труб очень просто усилились, обмотав за выступающие края резинкой или даже кабельной стяжкой. Тогда конструкция будет намного жестче.

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

Нам понадобится колесо. Можно использовать пластиковую тарелку или выпилить колесо из фанеры. В хозмаге нашел разделочную доску диаметром 26 сантиметров. Колесо из пластика будет легче.

Циркулем определяем центр и сверлим отверстие под ось. Предельно аккуратно и перпендикулярно сверлим отверстие в элементе для оси. В качестве оси болт м 6 длиной 60 мм с потайной головкой. Нужны гайки и шайбы. Закрепляем ось. Лишний зазор можно выбрать шайбами.

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

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

Ардуино – уникальная система, представляющая собой пластилин в руках инженера, из которого он может слепить, что пожелает. Возможно это благодаря большому разнообразию датчиков и модулей разных направленностей. От простых чипов, измеряющих силу тока, до вещей вроде Arduino hc hc sr04.

Это специальный датчик, позволяющий, при помощи ультразвуковых волн, измерить расстояние до объекта, на который его направили. Несложно догадаться, что проще всего его применить для создания простого дальномера. Рассмотрим Arduino hc sr04 и какие нюансы в работе с ним стоит учитывать, прежде чем начать собирать проект.

1. Основы сборки дальномера на Ардуино с помощью датчика HC SR04

Если вы собираетесь собрать дальномер на Ардуино, то без HC SR04 просто не обойтись. Ведь именно этот модуль чаще всего применяют в подобных системах из-за его высокой востребованности, по причине простоты работы, доступности и низкой стоимости.

При этом точность показаний остаётся на высоте, что очень важно в подобных системах. Из данного чипа можно собрать не только дальномер на Ардуино, но и полноценного робота, который будет чувствовать расстояние до объекта и обходить любое препятствие.

Однако сегодня мы рассмотрим именно вариант с дальномером на Аrduino, так как он идеально подойдёт для новичков в сфере, которые ещё не слишком хорошо разбираются в основах.

Если же вы захотите затем модифицировать своё изобретение, то можно научить его моделировать полноценную трехмерную карту помещения, что будет удобно для тех, кто занимается дизайном и конструированием мебели или зданий.

Но сначала стоит рассмотреть, как вообще работает данный прибор и какие основы сборки стоит усвоить, прежде чем создать лазерный дальномер на Ардуино своими руками.

Далее в ход вступает программный код, который высчитывает, сколько времени прошло между посланием и возвратом волны, делит его на два и с помощью формул и скорости звука высчитывает усреднённое расстояние до объекта.

Почему усреднённое?

Дело в том, что любой ультразвуковой датчик все равно будет ошибаться на десятые доли метра, связано это с тем, что различные материалы, окружение и прочие переменные могут повлиять на скорость движения и отражения от поверхности звука. А в данном проекте мы берём идеальную систему, которая в реальном мире работать не может.

Можно постараться учесть все эти факторы, но каждую переменную вы все равно не запрограммируете, поэтому наша задача – получить данные, максимально приближённые к показаниям профессиональных приборов, ведь дальномер Ардуино всё ещё далёк от них по точности.

Соответственно, лучше всего применять прибор к гладким и плоским поверхностям, которые не будут нарушать движения УВ, что также ограничивает его функционал. Но благодаря низкому ценнику и удобству работы датчик всё ещё остается достаточно популярным.

2. Что будет в уроке?

Мы соберем дальномер, который будет работать по следующему принципу: при приближении объекта на расстояние менее 4 сантиметров — загорается красный светодиод, иначе горит зеленый.

Достаточно простой пример, в котором мы проверим точность измерения расстояния дальномером hc-sr04. Основа проверки точности станет простая линейка

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *