DIY Arduino Lidar!
HTML-код
- Опубликовано: 23 июл 2024
- Hello everyone! In this video we will make a simple lidar on Arduino! With its help, you can detect the surrounding objects.
For work in Poland, please contact Viber: +48788851511
There are also other vacancies!
Sketch and project files: drive.google.com/file/d/1SUbr...
Video "Hell of a radio amateur, or normal work in Europe": • Ад радиолюбителя, или ...
Our Telegramm: t.me/HomeMadeChannel
Useful links:
1) The cheapest Arduino Pro Mini for crafts: alli.pub/5qmti6
2) Distance sensor VL53L0X: alli.pub/5sm35m
3) Stepper motors: alli.pub/5sm3sr
4) EasyDriver Driver: alli.pub/5qmtl3
5) Hall sensor: alli.pub/5sm3rl
6) Neodymium magnets: alli.pub/5sm3pn
7) Slip ring: alli.pub/5sm33a
8) Bearing 6710zz 50 * 62 * 6mm: alli.pub/5sm38c
9) Boost modules: alli.pub/5sm3lk
10) Soldering iron SH72: alli.pub/5sm3c1
11) solder: alli.pub/5sm3iu
12) 3D printers: alli.pub/5sm3k7
The most convenient Cashback:
LetyShops: goo.gl/Ev5XgI
The most profitable Cashback:
Ecomerce: goo.gl/3dDc2w
For cooperation, write to: h.made.chanel@gmail.com
_________________________________________________________
0:00 Hello everyone!
0:02 Topic of this video
0:08 Description of the principles of Lidar
1:00 We invite you to work!
1:56 Device diagram
3:16 Assembling the device
5:00 Analysis of the sketch
5:30 Testing the device
6:46 Design flaws
8:03 Results
8:15 Bye everyone!
_________________________________________________________
Hello everyone! My name is Igor. I am fond of programming and developing various devices. I am always interested in creating something new, unusual. After all, it takes your breath away when a lifeless piece of iron suddenly begins to move, ride, fly, and perform all the actions that you put into them. You feel like the creator of something very unusual! I am passionate about programming Arduino, STM32, ESP8266 and ESP32. On this channel you will find simple and interesting things, and most importantly: you can repeat all this, and even make it even better!
#Lidar #LidarArduino #Arduino Наука
0:30 Запомните уже. Лазерный дальномер НЕ ИЗМЕРЯЕТ расстояние по времени прохождения луча. Он измеряет по изменении фазы отраженного сигнала, это совсем другой физический процесс.
Так здесь и лазера нет...
@@UCanDo Тут стоит лазерный диод.
Нет, в этом датчике используется инфракрасный светодиод
@@UCanDo Светодиод не способен излучать пучки света с достаточно резким фронтом или спадом, если измерять время прохождения света. И тем более не может использоваться если измерять по фазе. Лазер это не только сфокусированное излучение в одну точку, оно может быть и рассеянным.
Посмотрел в даташит: www.st.com/content/ccc/resource/technical/document/datasheet/group3/b2/1e/33/77/c6/92/47/6b/DM00279086/files/DM00279086.pdf/jcr:content/translations/en.DM00279086.pdf
Да, вы правы, там установлен лазер.
Хм.. Странно. Почему же тогда так долго измеряет расстояние?
Очень круто! Благодарю вас за проделанную работу!)
Вау! Лидар! Хоть буду знать ;-)
Можно выставить паспортный ток двигателя , драйвером. Чтоб не превышать ток в обмотках
Есть еще драйвер на Али так называется "Makerbase MKS SERVO42C NEMA17 с замкнутым контуром" там ток удержания нулевой, так как контроль на основе датчика. Из плюсов не греется.
А ежели для увеличения разрешения сфокусировать луч оптикой? Линзы из какого то особого материала реломляют ИК излучение.
Да, это можно сделать, но не на этом датчике.
Есть драйверы со сниженным током покоя. Например tb6600.
Можно распараллелить задачу, делать шаг считывать расстояние, а в это время отправлять предыдущее расстояние. И интересно, как этот датчик видит стекло?
Молодец!!! Интересная проект!!!)))
Можно использовать оптический энкодер и мотор от DVD заместо шагового двигателя.Таким образом сможешь поддержать постоянную скорость и определять позицию поворота.
Отличная идея для будущих проектов! Огромное спасибо!
Я бы подумал в сторону того, как увеличить скорость вращения, а то роллинг шаттер получается дикий. Можно ли сразу несколько датчиков поставить, чтобы ускорить процесс сканирования? Можно также для каждого измерения (каждой точки) запоминать момент времени, и эту информацию затем можно использовать для более точного вычисления перемещения, как способ борьбы с роллинг шаттер.
Спасибо за название модуля, пробовал делать подобную штуку акустическом датчике и серве, но получился полный пипец ;)
Интересное решение. Если Вам надумается делать подобные оптические приборы - воспользуйтесь техникой - отражение от вращающегося зеркала. Тогда при желании вы сможете строить карту полусферы. Это упростит конструкцию и повысит надежность.
На пылесос робот как установить через датчик приятствие можно?
Дробление шага надо применять )
Прикольно.
Как дома установить его, вместо камеры возможно?
Синхронный Моторчик + Строоскоп Или Валкодер. 👍
Ты крутой 💪
Если во вращающейся голове поставить зеркало под 45 градусов к оси вращения, а дальномер расположить оптической осью вдоль оси вращения внутри неподвижного корпуса, чтобы он излучал в зеркало, то такая конструкция будет работать?
нет. передатчик и приемник расположены на расстоянии друг от друга.
Здраствуйте а можно ли использовать такой датчик в 3д принторе чтоб колибровать стол
Мне кажется он не подойдёт. В принтерах используют тензодатчик.
О круто, буду делать мотоцикл с автопилотом. Пригодится.
Это очень круто. спасибо
Ну как, то на радиатор установить надо может поможет.
Поставить просто моторчик коллекторный, и поставить датчик скорости для синхронизации замера. Не будет нагрева тогда. Синхронизацию замера сопоставить с датчиком скорости.
А что с этим делать?
Ах тыж! 🤣 не плохо))) только лазерный дальномер не время отражения мерит(свет пошустрее электричества), а разность интерференции расщеплëного луча сравнивает. А нагрев двигуна-просто ток обмоток уменьшите(если драйвер не дубовый триммер именно для этого на драйвере, то по даташиту гляньте формулу расчëта и подстройте)
Спасибо за Вашу работу.
Я уже немного освоился в ардуино (очень немного) :). У меня вопрос такого плана. возможно ли на плате ардуино запрограммировать один из пинов, таким образом, чтобы он стал двунаправленной шиной передачи данных RX/TX ?
Желаю вам успехов в вашем начинании! Постепенно освоитесь ;)
По поводу передачи данных: что именно вы хотите сделать? Какое устройство подключить? Спрашиваю потому что может быть то что вам нужно уже есть, и вам не нужно изобретать велосипед.
В описании под видео есть ссылка на группу в Телеграм, присоединяйтесь, там обсуждаются разные вопросы по Ардуино, программированию и электронике, может и вам чем-то помогут.
А технология 1wire Вам что-то говорит?
@@sergshchorba5067 вряд ли, он же только освоился)
А якщо використати драйвер TMC 2208, чи якийсь інший від 3д принтера, там можна виставити струм, якого буде достатньо для утримання двигуна, але при цьому зменшити нагрів?
Если установка тока идет резистором, то это не поможет. Пробовал. Нагрев все равно есть.
Может есть драйвера, в которых ток можно менять программно?
@@UCanDo з програмним регулюванням не зустрічав.. можна було б поставити інший кроковик, думаю це буде простіше ніж колхозити охолодження, так як там навантаженнь немає
чооооо??
@@UCanDo TMC2208/TMC2209/TMC2225 если подключены по uart или spi -- токи устанавливаются программно. Ссылку вместе с сообщением мразотный Ютуб трёт, так что ищите, вся информация открыта, а прошивки для 3д принтеров это используют и поддерживают.
Спасибо! Посмотрю
Делал подобное года 3 назад для робота. Разработал (корпус старался сделать как можно компактнее, получился цилиндр с радиусом 37мм и высотой 62мм), купил не плохой лазерный дальномер (а точнее два, tf01 mini и tfMini Plus, первый не подошёл по минимальному расстоянию и скорости опроса), собрал, плату разработал и даже на jlcpcb заказал (красивую, по форме прям идеально подходящую в корпус, на борту atmega328 с прошивкой под ардуино), разработал интерфейсную часть, протокол обмена данными, но... дальше мне стало лень и всё, лежит готовое устройство, у которого голова вращается со скоростью 2.5 оборота в секунду, оно умеет рисовать карту помещения, и оно просто лежит без дела, ждёт своего часа :D
приветствую, подскажите, а как карту помещения строит? это какая то отдельно программа? или то что уже есть, написанное ПО?
@@user-zp3vf9ty7w лидар подключается к "главному" устройству (в моём случае это плата с могучим ESP32 на борту) по шине i2c и отдаёт ему массив точек в конце каждого оборота (конец "круга" определяется длинным зубчиком на колесе считывания позиции "головы", что-то на подобие реперного диска на коленвале автомобиля). А само "главное" устройство уже обрабатывает эти точки, строя карту помещения
@@suicide855 а ПО какое используется? для отображения карты?
Мне тоже интересно как из массива данных строятся карта помещения с ориентацией по этой карте
@@user-zp3vf9ty7w стороннего ПО нет, всё самописное в прошивке ESP32. В массиве хранятся найденные лидаром расстояния. Карта строится элементарно по часовой стрелке, за "ноль" берётся позиция лидара, каждая точка соответствует "тычку" луча из нуля координат (расстояние найденное лидаром) с определённым углом (которые идут по порядку с равным приращением, каждая позиция реперного диска равна определённому углу), координаты данной точки рассчитываются по формулам прямоугольного треугольника (ведь мы знаем гипотенузу (c) и угол (α), надо просто рассчитать катеты) как a=c*sin(α), b=c*cos(α). А потом это дело просто выводится на микро экранчик (OLED 128х64). Карта строится со скоростью 2 (2.5) кадра в секунду, для тихоходного робота за глаза. До ориентации по этой карте на местности я в то время немного не дошёл)) Но вот теперь призадумался вернуться, потому что, по сути, всё уже готово для этого.
Используй вместо тросика Червичёк (шестирионки). тогда будет статично без подачи електричества!
??? Скажите, а в полной темноте это устройство работать будет ???
Да, будет работать
если на шаговике выставлен правильный ток, то он не греется. совсем. у меня пара конструкций, движки или чуть-теплые, или комнатной температуры.
У драйвера есть ножка EN. Во время остановки просто отключать драйвер и всё. Я так на А4988 делал.
Я вот все думаю, может сканер для 3D моделей как-то из этого лазерного модуля получится?.. Может его точность можно увеличить многократным сканированием, и вычислением среднего?
Нет. Абсолютно точно нет. Лучше поворотный стол для фотограмметрии сделать.
Согласен. Только фотограмметрия даёт нормальный результат
у драйверов (не у всех) есть режим снижения тока при удержании мотора
If steper change with dc motor?what happen?
Полагаю там все таки фазовый, а не импульсный дальномер. Дунька и рядом не осилит отмерять такие короткие промежутки времени, да еще в неоптимизированном коде.
так он крутиться должен в 10 раз быстрее, соответственно нагружать проц, или передвигаться оооочень медленно))) но, за сам факт реализации на ардуино - зелень!!
Для того чтобы быстрее вращался нужно использовать быстрый датчик, на пример, лазерный, но стоят они не дешево.
@@UCanDo т.е. проблема не в ардуино и моторе - а тупо в датчике? Если так, то на ардуино есть надежда)))
@@gsmarted Да, все завязано на датчике, оптика занимает второе место, а механика - третье...
@@UCanDo а может стоит использовать несколько дешевых датчиков или это опять же не целесообразно в плане цены?
Так делайте тики для шаговика отдельно в прерывании от таймера, тем самым будет стабильно идти вращения, а вообще такое лучше делать на STM32
Хм. Надо подумать. Надо как-то привязать шаги к завершению измерения. Считали Показания - делаем шаг. Надо подумать
Хотелось бы на esp32 и управлять через blynk…
А можно ли сделать 4-8 таких датчиков с разных сторон, и от башни можно будет уже вообще отказаться ?
Нет. Датчик может «увидеть» только то что прямо перед ним. На пример датчик легко может пропустить ножку стула и устройство в неё врежется
А можно вращать систему зеркал, всё что требует охлаждения, тогда, можно закрепить на радиаторе.
Проблем это не решит, только увеличит и усложнит конструкцию
😍🤩💥💯👍👏👏👏
Ограничить ток на двигателе (от нагрева) - Попробуйте переменным резистором на драйвере
Вам нужно подключить вольтметр к выводу VRef на микросхеме драйвера) и измерить его напряжение относительно земли. Наибольшее напряжение в этой контрольной точке (обычно 5 В) приведет к наибольшему току через катушки двигателя (750 мА), а наименьшее напряжение на TP1 (1 В) соответствует наименьшему току через катушки двигателя (150 мА).
Ток выставлен минимально возможный, если опускать ещё ниже то начинаются пропуски шагов.
Мне кажется, единственный выход из данной ситуации - установить быстрый лазерный датчик, тогда ускорится работа и уменьшится время удержания мотора.
7:55 понизить напряжение , это снизит ток.
у других драйверов , более простых , стоит резистор для регулирования тока (A4988 drv8825) , вне зависимости от питающего напряжения. У них же можно переключать микрошаги 1/4 1/8 1/16 1/32 (драйвер посылает при удержании разнофазные сигналы , таким образом разделяет шаги , ещё на несколько микрошагов)
Используемый драйвер так же имеет регулировку тока. Я выставил минимально возможный, но это не особо помогает, так как нагрев происходит из-за удержания мотора.
Единственный выход - использовать быстрый лазерный дальномер, чтобы уменьшить время необходимое на измерение расстояния, тем самым уменьшить время удержания мотора.
@@UCanDo нагрев будет такой же. некоторые драйверы на удержании ток еще уменьшают.
выход только уменьшать напряжение. такие мини движки возможно вообще от 5в работают. а вы наверное 12 даете.
но не любой драйвер меньше 12в может работать.
Вы не внимательны. У меня все работает от 5 вольт. Повышающий модуль не используется.
Классная штука! Надо будет и себе собрать
Попробуй лупу или зеркало для лучшего лупа же у нас большой луч превращает в лазер как бы я такое в роботах пылесосах видел у них там какая то лупа или что то другое стоит
Пробегал максимально мимо по рекомендациям, довольно таки интересная самоделка, но всё же, даже в самом простом(но качественном) роботе-пылесосе строится всё же какая никакая но 3D модель с использованием того же самого Lidar, на примере данного датчика можно просто добавить сканирование по вертикали, скорость в разы станет меньше, но проект станет в теории в разы интереснее, и в дополнение, я не буду говорить о том что DMA ускорит в разы передачу данных с данного "ЛД", но всё же в коде хотя бы стоило бы использовать прерывания Interrupts)
Используем датчик хола, и шаговый мотор.. Зачем? Или датчик очень медленный? 200-300 оборотов в минуту и низкое разрешение компенсируется кол-вом замеров.
Датчик холла нужен для определения стартовой позиции. Без него никак не узнать в какую сторону сейчас направлен датчик
@@UCanDo Энкодер ? Нет не слышали !
А как энкодер «узнает» в какую сторону изначально направлен датчик?
Энкодер вещь хорошая, но, опять же, даёт понимание только о том что сделали определённое количество шагов, но не даёт понимания в какую сторону направлен датчик
@@UCanDo Можно попробовать магнитный энкодер.
Эхолот будет?
Ехолоти Будують на ультразвукових датчиках.
Осталось прикрутить к программе и строить 3 д объекты
Можно просто на всех пинах мотора сделать low после движения и он не будет перегреваться
я пытался делать паузы. То есть давал команду на то чтобы сделать шаг, выдерживал необходимую паузу (чтобы мотор гарантированно сделал шаг) после чего отправлял драйвер в сон. А результат был не очень. Мотор делал шаг, пасик натягивался, потом мотор "отпускался" драйвером и натянутый пасик возвращал мотор в прежнее положение.... И как результат мотор просто дергается на месте, без вращений.
По этому с данной конструкцией переводить мотор в сон не получится.
@@UCanDo поставь транзистор и руби питание мотора во время остановки
Вы читали мое сообщение? Да и применять транзистор смысла вообще нет! Мотор и так отключается если подать нужную команду на драйвер. Проблема в другом.
@@UCanDo сделать прямой привод.
@@UCanDo В данной конструкции можно поставить храповый механизм. Другой вариант - мальтийский механизм (крест).
Зачётный лидар получился!
А что если поставить 2 или 3 или 4 датчика?
Мне кажется там и время отслеживания будет быстрее и картина чётче будет
🤔
Можно и 4 датчика, но на Ардуньке слишком мало ресурсов да и быстродействие - так себе! Если и делать что-то серьёзное, надо брать СТМ32 или ЕСП32, тогда вообще можно на компе карту помещения строить по вай-фаю! 👍😁🤪
Выглядишь потрясающе
Поставить не шаговый двигатель и датчик Холла чтоб знать позицию. Я хз как это будет работать, но думаю норм.
Принцип работы работы такой: решается шаг, конструкция останавливается, производится измерение, после чего делается следующий шаг, и так далее. Нельзя чтобы конструкция вращалась без остановок, иначе будут искажения в показаниях
@@UCanDo А это проверялось? Там вроде лазер, должен быстро измерять. Сколько времени одно измерение занимает?
@@TheBitProgress посмотрите видео, я там это объясняю.
Датчик медленный. Одно измерение - 20 мс
@@UCanDo
timing_budget is a parameter set by the user, using a dedicated API function.
The minimum range
measurement period is 8ms.
Хотя да, это не сильно меняет ситуацию.
Но даже за 20 мс он проедет всего 7 градусов( если делать оборот в секунду), а у него, насколько я понял, пучек 8 градусов. Да и у вас резинка все равно не позволяет стопарить.
В общем, мне кажется это надо проверить.
@@UCanDo В общем проект интересный. У меня есть rplidar a1m8, оптический, может 10 оборотов в секунду делать, но хотелось бы быстрее, даже если в точности потеряю. Делал на стерео камере. Не плохо, но делал на OrangePi Zero, а там вычислений не много и грузится долго.
Вот ищу более оптимальные конструкции
дааа Вопрос тысячелетия- Куда же это засунуть
вытащить все ценное, остальное выбросить.
уважаемый, ни где не смог найти руководства по подключению разных дисплеев от старых телефонов. Есть от раскладушки сименс,от сони эриксон, от нокии противоударной 5140. От раскладушки вообще 2 дисплея на одном телефоне. И выкидывать жалко и применить не знамо как. Занимаюсь ВЧ радиоэлектроникой+ ардуино, но с дисплеями как то не сложилось.
Может быть есть какоето универсальное руководство, как найти контакты, распаять правильно, какие сигналы подавать и чем чтоб заработало. Хотя бы в виде теоретической информации? Плиз.Много делаются дисплеев спец для ардуино, но вот телефонные ни сколько не хуже, а даже лучше и по графике и по доступности.
Добрый день!
С одной стороны это возможно, с другой стороны в большинстве случаев ничего не получится. Очень много нюансов есть.
Я подключал дисплеи, но не мелкие а по-крупнее. Вот, посмотрите эти видео:
ruclips.net/video/ShnyOOcfbhc/видео.html
ruclips.net/video/WBJhqoxEI4w/видео.html
Настройки по удержанию двигателя устанавливаются в драйвере, надо смотреть даташит на примененный драйвер, в крайнем случае сбрасывать сигнал on
Также можно взять драйвер с управлением по uart или spi (tmc2208/tmc2209) и изменять ток шаговика динамически
А что если поставить не шаговый двигатель, а обычный моторчик, далее откалибровать его и потом просто делать измерения. Датчик холла будет показывать когда круг совершен. моторчик поставить моломощный с редуктором, чтобы оборотов было не много.
Так тоже можно, только нужно использовать иной, более быстрый датчик расстояния
Мотор и должен всегда в удержании находиться. Просто у тебя на драйвере большой ток задран. Снизь ток на мотор и всё будет хорошо.
Ток выставлен минимально возможный. Если снижать ещё то начинаются пропуски шагов
@@UCanDo не здоровая штука.
В 3д принтерах/ЧПУ станках моторы тоже постоянно в удержании стоят и не греются. Может драйвер бракованный?
Может быть. Или мотор....
@@UCanDo как вариант
Для того чтобы рисунок был более четкий, можно повесить 8 датчиков )
Это работает не так. Для более четкого рисунка нужно использовать быстрый лазерный датчик + шаги двигателя должны поворачивать конструкцию на меньший угол.
А как у тебя провода не закручиваются в косичку?
Посмотрите видео ещё раз, в видео это объясняется.
@@UCanDo прости не сразу вник в слип ринг :)
Это же ещё 4 года назад сделал один зарубежник... Причём абсолютно такой же
У этого датчика дальность до 2-х метров. Я себе на Ардуино собирал звуковой дальномер, так у того дальность до 4-х метров и стоит он рублей 150 в маг. эл. ,а у Чип-Дип аж 500 руб.
Ультразвуковой для этих целей не пойдёт - слишком медленный. На весь круг уйдёт очень много времени. К тому же он напрочь не видит мягкие вещи, на пример шерсть. Так что обычный кот будет невидим для него.
Датчик, который я использовал, имеет большой угол рассеивания, по этому не годится для измерения большого расстояния.
Чтобы измерять расстояние по-больше нужно использовать лазерные дальномеры
@@UCanDo спасибо, можно будет радар сделать
Why not make both process interrupt base. That way you can sent and measure data at the same time.
То есть, выполнять действия поочередно? В скетче это так и сделано, только не используется прерывание. Все действия выполняются поочередно.
Можно, конечно добавить прерывания, но это никак не повлияет на работу устройства.
Или вы что-то иное имеете в виду?
@@UCanDo interupt based- main loop is idle. you set up interupts on uart send, and timer interupt each time you want to send scan command to the range detector. Then each interupt you handle what you need. That way you are not doing that serially but in paralell- measuring range and between the points sending data. You will define cyclic buffer of range and angle that will have 2 pointers of write and read. That way you dont have to stop at any point- you just continuously sent data and measure.
Как сделать робота который следует за другим объектом (человеком, другим роботом, котом)? ))
Смотрите в сторону машинного обучения.
@@UCanDo да в сторону-то я смотрю, думал может и здесь получится чего-то посмотреть))
Ну и драйвера настоящие, например tmc2209 греются очень слабо
Я бы датчик холла и магнит спрятал под крутящуюся башню. Насчет нагрева - ремень не слишком сильно натянут? Может скинуть ремень и погонять в холостую - будет греться? Шкив на моторе кривой вообщето. Можно уменьшить диаметр шкива на моторе...угол поворота башни слегка уменьшится.
Насчет разрешения - измените драйвер на микрошаг с полного шага.
Магнит тут вообще ржака. "Неодимовый магнит", убейте меня нахер... В любом старом дисководе 3.5" магнитом в подобном датчике служил крохотный кусочек резинового магнита, слабый-слабый и крохотный.
Было бы прикольно визуализировать полученные данные
Это же сделано в видео. Программа в Processing визуализирует полученные данные
@@UCanDo а , значит я слепой
Смотрите с 5:30
Подать на шаговик все нули (минус на всех контактах в шаговике обычно 4ре контакта) и он перейдёт в режим свободного вращения, нагрева не будет.
📺💬 It is small then we use the bulk sensors.
🐑💬 Voltage power equivalent, convert of the power input to target voltages with frequency property.
📺💬 Tell them the bulk converter, nudges create rules of forces 😁⚡⚡
📺💬 That is because light sensors' sensitivity had signal results, not round shapes.
🧸💬 You can filter out some small values or attention layers.
🐐💬 For specific, it had property you need to work with angular velocity.
А зачем шагов, если есть тахометр?
Этот лидер работает по принципу: шаг, остановка, измерение, шаг, остановка и т.д.
Если не будет остановок то не будет правильных измерений
как у него провода не перетираются от поворотной головы
Провода вращаются при помощи sleep ring
Я бы для ориентации угла поворота использовал цыфровой компас, а не шаговый двигатель. Для повышения точности измерения дальности откалибровал бы дальномер.
А сможет компас увидеть разницу в 1-2 градуса?
@@UCanDo, у разных моделей разная точность, но как правило она порядка 0.1 - 0.01 градуса. Но важно учитывать и пересчитывать из 3d в 2d, а может быть использовать 3d подпространство...
Посмотрите это видео: ruclips.net/video/twirOS1tPvU/видео.html
Думаю, описанные вами компасы стоят как крыло боинга, а обычные, дешевые, не обладают такой точностью
@@UCanDo думаю, что твой негативный опыт работы с компасом поставил крест в этом направлении🙂 чип hmc5883l стоит копейки и даёт нужную точность. изучи даташит и адафруитовскую либу...
и ещё компасы, не только цыфровые, не любят наводки магнитных полей, особенно от телефонов или кабелей.
@@UCanDo, для лидара лучше подойдет MPU9250. его активно используют в квадрокоптерах и т. п.
Красивый лидар получился. Кстати, чисто технически реализовть подшипник (канавка и шарики) и скользящие контакты (металлические ролики по вытравленным в плате дорожкам) очень легко.
легко, но очень уж не долговечно. сотрет дорожки быстро
@@silentage6310 Всё зависит от материалов.
Латунь, бронза, медь, золото.
Блин. Уведомления не приходят.
Попробуйте использовать не вращение датчика, а поставить вращение зеркала, по моему это будет более надежная конструкция.
конструкция датчика не позволит. смотрите даташит. плюс придется постоянно протирать всю оптику ,даже пылинки хватит для ложного срабатывания.
А зачем надо было использовать датчик холла, если стоит шаговый мотор?
Для определения «стартовой позиции». Без него электроника никак не может определить в какую сторону сейчас направлен датчик
@@UCanDo А что, если брать за начало поворота позицию в который находится двигатель? Или же, в память ардуино записывать угол, на который повёрнут двигатель, и при запуске ардуино, поворачивать на это отклонение назад?
Датчик может находиться в случайной позиции, не зависимо от позиции мотора. По этому нужен какой-то «ориентир» чтобы точно определить позицию именно датчика расстояния,
Как вариант чтобы сократить время простоя двигателя, пусть ардуино сразу выплевывает значения датчика, без обработки, например serial.print(функция дальномера). А всю логику реализовать в процесинге, пусть он обрабатывает значения.
Ардуино и не обрабатывает данные, это сам датчик медленно обрабатывает и отправляет данные
@@UCanDo у вас теряется время на записывании в переменную и на if ( if так точно затратная операция)
Потеря времени примерно 20 миллисекунд, «if» выполняется микросекунды
@@UCanDo Помимо if, вы каждый цикл определяете переменную (каждый раз идет обращение не к конкретному участку памяти выделенного ранее, а идет поиск и выделение нового). Потом у вас идет if (всегда был затратен). Дальше операции сравнения, присваивания, это все солидно съедает время. Я де просто предлагаю попробовать убрать это все в процесинг, а ардуино пусть выплевывает голые числа. Еслиже не поможет, надо будет писать свое взаимодействие с сенсором.
Конструкция:
r = r + 37;
if (r > maxdist) //Limit the dsitance to maximum set distance above
{
r = maxdist;
}
выполняется 1.12 mks
Сколько времени уходит на объявление переменной я не знаю. Но не существенно так как код создает задержки в микросекунды.
Вот ссылка на код проверки времени выполнения кода: mypractic-forum.ru/viewtopic.php?t=17
писать на нормальном C/C++, и быстрее будут обрабатываться данные
лидар из пылесоса
офигеть
А почему шаговик?
Если поставить обычный двигатель, а обороты измерять как то ещё? (По принципу пластинок например, страбоскоп на 33 и 45 оборотов был.)
Тогда не будет нагрева а програмно высчитывать погрешность оборотов и дорисовывать картину изменения на экране. Или задействовать стабилизацию оборотов програмно?
Можно задействовать 143,81 руб. 5%СКИДКА | Фотоэлектрические датчики с двойным измерительным датчиком скорости, комплект верхней части для arduino, модуль со слотом для тахометра
a.aliexpress.com/_AsLrEL. изменив (напечатав) нужное количество ламелей.
Потому что измерение расстояния должно быть не во время поворота. То есть: Сделали шаг, остановились, измерили расстояние, сделали следующий шаг и так далее. Если не делать остановок то нет гарантии что датчик "поймает" отправленный ранее сигнал.
По этому используется шаговый двигатель, которым легко делать отдельные шаги и останавливаться для произведения замеров.
видос отличный, но вставленный спам всё сводит в помойку, )
А чо так рекламы мало???? Больше рекламы!!!!!
Да забей болт, у всех уже Sponsor Block плагин стоит.
13 злот час? а че так мало
я еду на 19.80
Поделитесь информацией о работе, может кому-то пригодится
Если хочется сделать самостоятельно лидар с более высокими характеристиками: ruclips.net/video/RW57MEIpBHI/видео.html
Но, конечно, конструкция посложней.
Паяльник sh72 , у меня такой же(хотя кому это интересно)
Хороший паяльник. Мне он понравился. Единственный недостаток - нет функции «засыпания», чтобы отключался от бездействия.
И ещё я вывел индикатор наружу. Теперь наглядно видно когда он нагрелся
@@UCanDo если бы смочь расковырять прошивку.... можно было бы вводить в сон даже без датчика вибрации (как у других паяльников). При пайке резко меняется температура жала (в пределах нескольких десятков градусов). А если паяльник на подставке то температура меняется в пределах пары градусов. Так вот.. контроллер смотрит что температура перестала меняться резко - значит о паяльнике забыли и его можно вводить в сон (охладить до 80-100 С). Потом вы им касаетесь чего либо - температура меняется и паяло начинает греться до заданной температуры (и не нужен ртутный датчик). Дарю идею =)
@@zerlingr4sh222 В SH72 нет прошивки в принципе, т.к. он полностью на аналоговой рассыпухе сделан. И идея с мониторингом изменения температуры далеко не нова.
@@zerlingr4sh222 таким образом вы НИКАК не сможете отследить чтотчеловек начал паять в то время когда температура падает с 320° до 100° (а чаще всего человек начнёт паять именно в этот период, поскольку он частый и очень продолжительный).
Если у мотора на все обмотки подать 0, то нагрева не будет, но и удержания не будет. Значит надо изменить тип передачи от мотора к вращающемуся модулю так, что бы вращение могло передаваться только в одну сторону. Для такой задачи я делал волновой редуктор (ruclips.net/video/9M73RZblHTY/видео.html пример работы и только) , очень помогло видео по этой теме: ruclips.net/video/bka828VTbOo/видео.html. Волновой редуктор понижает скорость. в моем случае в 16 раз, т.е. если нема (у меня он) делает 5-6 оборотов в секунду, то тогда на 1 оборот потребуется 2 секунды. Но в 16 раз и точность поворота повысится. Лидар крутиться с задержкой 20 мс, значит делает 50 шагов в секунду. При повороте на 4 градуса за шаг получается 90 шагов на круг, т.е. почти 2 оборота в секунду. Не очень подходит.
Другой вариант червячная передача. Но я ее не пробовал делать, ничего не скажу, но передаточное отношение там точно меньше можно сделать
Скорее нужно идти по другому пути: уменьшать время измерения для того чтобы мотор не был "в простое". На пример использовать лазерные дальномеры. У них точность выше и скорость работы выше. Это значительно уменьшит время удержания мотора. Конечно и стоимость у них значительно выше.
Другой вариант - использовать моторы с очень малым временем вращения. Мотор, который я использовал, довольно медленный. Сколько точно ему нужно времени на 1 шаг я не знаю, не измерял. Но мне попадались мелкие моторы, которым на 1 шаг достаточно 500 микросекунд (0.5 миллисекунды). Если взять такой мотор + шестерню-редуктор и делать несколько шагов, то тогда мотор гарантированно отработает необходимое перемещение и его можно будет отправлять в "сон", благо драйвер это позволяет. Получим примерно такую же скорость....
Пишу это потому что я пытался делать паузы. То есть давал команду на то чтобы сделать шаг, выдерживал необходимую паузу (чтобы мотор гарантированно сделал шаг) после чего отправлял драйвер в сон. А результат был не очень. Мотор делал шаг, пасик натягивался, потом мотор "отпускался" драйвером и натянутый пасик возвращал мотор в прежнее положение.... И как результат мотор просто дергается на месте, без вращений.
По этому с данной конструкцией переводить мотор в сон не получится.
А уменьшать скорость вращения тоже не самый лучший вариант
Тут другая сторона есть. Например УЗ дальномеры ждут возврата волны. И чем дольше расстояние, тем дольше идет измерение. Со светодальномерами проще, свет куда быстрее звука.
nama17 гарантированно делает 1000 шагов в секунду. 1200 может сделать без существенной нагрузки.
Может стоит избавиться от ременной передачи и сделать шестерни ?
Да, тоже об этом думал.
Ха, чувак, пока ты не сказал для чего нужен эльдар, то я думал он для всяких мелких предметов, которые ставятся на верх и крутятся и их снимают на камеру, типо для заставки
Кайф, пока, только для изучения, простой робот построить который систематически двигается по комнате без коллизии, как самостоятельный пылесос,только умнее, так как расстояние датчика не большое, наверное систематика так просто не получится, но в этом и дело, дать координаты комнаты и что он должен делать а всё остальное робот должен сам решать, думаю это уже будет достаточно большой и глубокий проект. Так я бы сказал систему безопасности для велика, машины...
RTOS попробуй. Сможешь красиво управлять и шаговиком и показания читать с приличной скоростью.
На микро влетит как к себе домой по идее. Ну и еще неплохо было бы через usb гонять данные, скорее всего кто-то где-то уже написал подходящий драйвер
Вращай зеркала
А чем это лучше?
Я смотрел разборку качественных лидеров, там вся электроника находится во вращающейся «голове», а обмен данными происходит по ИК-интерфейсу.
@@UCanDo можно вращать хоть коллекторным, делая фильтрацию ошибок за несколько оборотов.
@@UCanDo там ещё используется триангуляционный метод измерения расстояния на основе CMOS-линейки, за счёт этого достигается быстродействие, насколько я понимаю.
Автор не в курсе как работает лидар...
Чтобы избавится от нагрева нужно правильно подобрать ток
Параметры лидара мягко сказать не фонтан, расстояние мизерное
Разрешение можно повысить снизив скорость
Если расчёты занимают много времени перенеси их на другой контроллер, этот пусть шлёт сырые данные
ну и всё в таком духе...
Поставьте мотор нормальный, с запасом по мощности и убавьте через него ток. Угол можно микрошагом уменьшить.
Так Ведь Он У Тебя Вращается Вокруг "Несвоей Оси" Нужно Крепить В Центре Башни На Ось.
Либо вносить поправку на расстояние от центра вращения до датчика.
Это и делается строчкой в коде:
r = r + 37;
Где r - это данные, полученные с датчика, а 37 - это половина диаметра «башни»
Плюсую за аккуратное рабочее место. Бесят видео со свинарников на рабочем столе
вместо тупого шаговика применить программируемые drv которые умеют сбавлять ток в удержании или вообще зачем шаговик? колекторник и вперед
Вы понимаете принцип работы лидара? Измерения должны производиться не во время вращения, а в «состоянии покоя». То есть, шаг, остановка, измерение, шаг, остановка, и так далее.
По этому можно применять только шаговые двигатели
@@UCanDo а вы понимаете что никто кроме вас шаговики там не применяет?
вы вообще настоящие лидары в руках держали?
Измерение происходит за микросекунды - вы знаете скорость вращения и знаете сколько микросекунд прошло с начала круга - что вам не хватает? ну да датчик туповат но это не проблема на самом деле. попробуйте. Кстати этот лидар можно сильно улучшить подставив перед лазером линзу от СО2 лазера - она отлично пропускает ик диапазон тем самым сфокусировав луч выходной Качество фокусировки - проверяется телефоном или любой камерой
Я уже не говорю о том резиновом пасике который на время остановки не только не останавливается на самом деле а ещё и колебания гармонические производит!
2.000 злотых в месяц?
Я не знаю сколько в месяц.
Все зависит от отработанных часов, по этому Оплата почасовая.
Даже если посчитать по 8 часов, 5-тидневка, то выходит около 2260
А если по 10 часов и 6 дней - то уже 3500 получается
неОдимовый
Не увидел под видео ни инфы о работе, ни ссылок.
Разверните описание под видео
Нехуя непонял почему злотые? Ты в польше жывешь?
13,5 злотых час? Это жесть. Для тех кто вообще себя в жизни потерял. Это очень мало. Ещё от 15 можно начинать думать ехать или нет в Польшу. Я рекомендую от 17 злотых искать работу, остальное - это на вас навариваются агенты по трудоустройству.
100%))) на лохах имеют
Если все так замечательно, то почему поляки сами там не работают? Убирай нафиг эту рекламу. Лучше уж казино, к нему привыкли))).
И дураку понятно что это самая низкооплачиваемая работа. Если есть образование в какой-то сфере то разнорабочим не будешь работать. А если нет, то инженером не возьмут.
Для тех кто в танке: для существования любого канала нужны деньги. Они зарабатываются за счёт рекламных вставок. Не нравится реклама? Станьте спонсором канала! Тогда реклама не нужна будет!