• 0
    К сожалению, я сам не знаю, с чем именно это связано. Возможно, изменяется емкость фотодиода, или что-то еще.
    Как работает лазерная рулетка: реверс-инжиниринг
  • 0
    В статье я подробно описал, как используя достаточно близкие частоты, можно измерять расстояние, больше чем длина волны модуляции.
    Как работает лазерная рулетка: реверс-инжиниринг
  • 0
    Насколько я понял из различных описаний, там для определения положения нужно две базовые станции.
    Расстояния определяются триангуляцией.
    Вот еще одно обсуждение, там прямо сказано, что устройство маяка очень простое.
    Как работает лазерная рулетка: реверс-инжиниринг
  • 0
    Судя по информации из интернета, там используется механическая сканирующая система, без всякого измерения фаз сигналов.
    Как работает лазерная рулетка: реверс-инжиниринг
  • +1
    Это можно реализовать при помощи фильтрации данных. Но такое уточнение можно производить только в том случае, если расстояние до объекта не меняется.
    Как работает лазерная рулетка: реверс-инжиниринг
  • 0
    А что конкретно непонятно?
    Как работает лазерная рулетка: реверс-инжиниринг
  • 0
    Да, лазер используют только потому, что с его помощью можно получить луч с малым угловым расхождением.
    В случае с маячком один светодиод или несколько действительно могут быть лучше — они безопасны для зрения, так что мощность излучения можно сделать достаточно большой.
    Как работает лазерная рулетка: реверс-инжиниринг
  • +2
    Угол отражения равен углу падения

    Это справедливо для зеркальных поверхностей.
    В данном случае используется эффект диффузного отражения света.
    Особенность такого типа отражения — большая часть отраженного света действительно не попадает в фотоприемник, а рассеивается в пространстве.
    Как работает лазерная рулетка: реверс-инжиниринг
  • +1
    Вот только фотоприемник будет принимать свет, отраженный от этого зеркала.
    Как работает лазерная рулетка: реверс-инжиниринг
  • 0
    Конкретно в этой рулетке после APD стоит полосовой фильтр, так что постоянную составляющую усилить не удастся.
    С точным усилением слабых сигналов в аналоговой электронике всегда были проблемы — мешают различные смещения напряжений и токов в транзисторах.
    Как работает лазерная рулетка: реверс-инжиниринг
  • 0
    Честно говоря, не очень понял, о чем вы говорите.
    Тем более, что если сигнал будет низкочастотным, то при том же числе выборок длительность измерения значительно возрастет.
    Как работает лазерная рулетка: реверс-инжиниринг
  • 0
    Если все приемники будут связаны проводами (то есть их можно будет синхронизировать), то задача вроде бы как решаемая. Если такой связи не будет — не уверен, можно ли будет ее решить.
    Как работает лазерная рулетка: реверс-инжиниринг
  • 0
    У китайцев сейчас есть оптические энкодеры за 12$.
    Разрешение сравнимо с числом шагов шагового двигателя, но энкодер шаги не пропускает.
    Есть абсолютные энкодеры на 1024 значений — TRD-NA1024NW за 25$.
    Самые дешевые — магнитные энкодеры (их уже упомянули выше), но у них могут быть проблемы с линейностью.
    Похоже, я не предприниматель
  • +1
    Сейчас в почтовых отделениях посылки складывают доволно плотно (фактически, просто сваливают в кучу, или держат их в мешке). Это дает максимальную плотность хранения, но искать посылки приходится долго. Для того, чтобы робот мог сам взять нужную посылку, каждую посылку нужно хранить в отдельной ячейке в специальном стеллаже. Стеллаж занимает намного больше места, чем несколько мешков, а места на почте постоянно не хватает. Фактически такой стеллаж отличается от почтомата только отсутствием дверец на ячейках.
    Похоже, я не предприниматель
  • 0
    Можно было бы для Почты России сделать систему, которая подавала бы посылки.
    Просто я обратил внимание, что дольше всего приходится ждать именно на последнем этапе в очереди.

    Это называется почтомат. Вещь удобная, но занимает достаточно много места, которого в почтовых отделениях обычно мало.
    Похоже, я не предприниматель
  • +3
    Хотелось бы видеть на схеме обозначения U1-U4, i1-i4.
    Моделирование электрической цепи
  • +2
    На отладчике, во время останова, DMA продолжает работать. Таким образом буфер всегда выглядит заполненным полностью и оба флага в поднятом состоянии.

    Я думаю, вам поможет команда "__HAL_DBGMCU_FREEZE_TIM3()"
    После ее вызова при входе в режим отладки TIM3 автоматически остановится, при переходе в обычный режим работы — вновь запустится. Немного подробнее: ссылка.
    Оцифровка звука на STM32 (АЦП+DMA) и кодирование в Speex для передачи
  • 0
    Заметно, что вы старались использовать отечественную элементную базу. Но почему не стали использовать микроконтроллеры от Миландра, у них и поддержка MIL-STD-1553 есть?
    Реализация протокола MIL-STD-1553 на STM32
  • 0
    больно уж долго он прошивает: около двух минут, особенно когда отлаживаешь схемотехнику, а не свой код.
    При этом обычно вносишь минимальные правки и дольше ждёшь когда прошьётся, успеваешь отвлечься и тд.
    Да и не дело терять за день более четырёх часов на прошивку изделия, притом что порой разработка длится не один месяц.

    А почему нельзя использовать нормальный SWD/JTAG программатор?
    STM32F405: прошить 400кб за 10 секунд или быстрый UART-загрузчик заточенный под USB-UART, размером менее 4 килобайт
  • 0
    Уже прикрутили: https://en.wikipedia.org/wiki/Timex_Datalink#Optical_sensor
    Интерфейсы в реальном мире: проектируем самый адский интерфейс
  • +1
    Можно написать приложение для телефона, которое мигает вспышкой нужным образом.
    Интерфейсы в реальном мире: проектируем самый адский интерфейс
  • +2
    В статью не помешало бы добавить побольше фотографий, а то видео не всегда можно посмотреть.
    Не слишком ли маленькое сопротивление резисторов перед АЦП приемника?
    И конечно, даже самый простой LC фильтр высоких частот не помешал бы.
    Различные опыты с приемом и передачей радиосигналов в ПЛИС
  • 0
    Тут я могу только приблизительно сказать. Усиление AD8369 меняется на 45 дБ, если сигнал на АЦП будет меньше 1/3 шкалы, то точность сильно падает, так что 45+20log(3) = 54 дБ.
    Реверс-инжиниринг лазерного датчика расстояния
  • 0
    Если судить по энкодеру, то абсолютная погрешность вышла 0.03мм, но я не очень то уверен в самом энкодере. Калибровка тоже была проведена довольно грубо, так что ошибка могла возникать на этапе вычисления расстояния. Разрешение самого датчика получилось выше, около +-0.01мм (на видео видно, что последний знак расстояния «дрожит»).
    Между прочим, производитель заявляет для датчика точность 2 мкм, но в сноске мелким шрифтом пишет — при усреднении по 4096 точкам.
    Реверс-инжиниринг лазерного датчика расстояния
  • +2
    Такой дальномер с нуля разработать было бы пожалуй проще.

    Я уверен, что в реальности логика работы дальномера значительно сложнее, чем то, что я описал в статье. Разработчики не зря использовали ASIC, в ней, скорее всего, находится некий процессор, обрабатывающий данные с линейки. Алгоритмы поиска центра тяжести там посложнее, чем у меня в статье — в каталоге этих дальномеров явно упоминались различные программные методы подавления переотражений, работы со стеклянными пластинками, и прочее. Перевод в расстояние там, скорее всего, так же производится внутри ASIC. И ASIC также одновременно управляет мощностью лазера, временем импульса, и коэффициентом усиления.
    Да и до заявленных производителем характеристик мне дойти не так и не удалось.
    Реверс-инжиниринг лазерного датчика расстояния
  • +1
    Я имел в виду, что конкретно этот датчик, скорее всего, все же "честно" использует законы геометрической оптики при измерении вибрации, и не реагирует на спеклы (просто чувствительности линейки не хватает, чтобы их замечать).
    Но с тем, что они могут мешать, я полностью согласен, и идея с вибрирующей пластинкой действительно интересная.
    Реверс-инжиниринг лазерного датчика расстояния
  • 0
    Действительно, все характеристики таких дальномеров зависят от базового расстояния (расстояния между объективом и лазером), фокусного расстояния объектива, и параметров светочувствительной линейки.
    Но я сильно сомневаюсь, что триангуляционный дальномер в таком виде можно использовать для "снятия" звука с окон. Там либо используется интерференционные методы (с сопутствующими ими сложностями) либо тот же триангуляционный принцип, но базовое расстояние делается очень большим (десятки метров, то есть лазер и приемник света разносятся по разным квартирам).
    Реверс-инжиниринг лазерного датчика расстояния
  • 0
    Кстати, в роботах пылесосах Neato лазерный дальномер работает по такому же принципу. Только он там еще и вращается, измеряя вокруг себя расстояния на 360гр.

    Я даже делал аналогичный дальномер.
    Я все же думаю, что датчик измеряет расстояние, используя законы геометрической оптики, т.е. он не использует спеклы.
    Реверс-инжиниринг лазерного датчика расстояния
  • 0
    Изначально я тоже думал, что в родная прошивка так и делает, но как я уже заметил в статье, скорость АЦП, допускаемая по даташиту, не позволяет реализовать скорость измерения 50 KSPS, которые заявляет производитель.
    А в случае использования синхронного детектирования нужно либо в 2 раза увеличивать тактовую частоту линейки и АЦП, или уменьшать число измерений в секунду, так что в родной прошивке при указанной скорости реализовать синхронное детектирование проблематично (на более низких скоростях измерения — реально).
    Так что импульсный режим там скорее всего — просто для увеличения скорости измерений (увеличивая мощность лазера, можно уменьшить время экспозиции).
    Реверс-инжиниринг лазерного датчика расстояния
  • 0
    Спасибо, поправил опечатку.
    Реверс-инжиниринг лазерного датчика расстояния
  • +1
    В серии STM32F103 есть контроллеры с FSMC, но все они большие — от 100 выводов, например STM32F103VET6.
    upd: тоже не успел.
    STM32 и LCD, быстрая заливка экрана
  • 0
    А там и реверсить ничего не надо, в передатчике использована микросхема TX-2B, вся документация на нее есть в сети.
    Переделка RC-машинки в смарт-машинку при помощи ардуино
  • +1
    Есть подозрение, что через аудиовыход планшета можно напрямую управлять передатчиком пульта (там всего одна линия и амплитудная модуляция сигнала).
    Переделка RC-машинки в смарт-машинку при помощи ардуино
  • +6
    Надеялся увидеть здесь подробный tutorial на русском, а увидел набор ссылок.
    Как начать работать с MIPSfpga
  • +1
    Это хорошо, если в даташите для каждого регистра прямо указан его адрес. В STM32, например, обычно указывают базовый адрес периферийного модуля, а в описаниях регистров указывают только смещения от него.
    К вопросу о стиле программирования
  • 0
    Оконная функция — некая функция (по ссылке выше они приведены в таблице), на значения которой умножаются значения сигнала. Получившийся результат подвергается Фурье-преобразованию.
    Главная особенность этих функций — они плавно уменьшают амплитуду обрабатываемого сигнала в начале и конце до нуля, поэтому краевые эффекты исчезают.

    Соответствующая картинка с сайта выше:
    image
    Практическое применение преобразования Фурье для анализа сигналов. Введение для начинающих
  • 0
    У вас отношение периодов синусоид в сигнале равно двум, так что можно подобрать нужную длительность. А вот если бы оно было, например, дробным, то подобрать длительность измерения уже бы не удалось.
    Практическое применение преобразования Фурье для анализа сигналов. Введение для начинающих
  • 0
    После произошедших изменений у меня практически не осталось хабов на Хабре, на которые я был подписан — все они переехали на Geektimes. Очевидно, что теперь я буду больше читать Geektimes, и меньше Хабр.
    Переезд «железных» хабов с «Хабрахабра» на Geektimes
  • +3
    Отличная статья, спасибо!
    Даже удивительно, что сейчас разработчики электроники еще выкладывают схемы коммерческих устройств, да еще и с описанием работы узлов.
    Моя система тестирования и повышения качества GSM шлюза, часть первая: функциональный и схемный уровень
  • 0
    Однако в ATMega работа с Flash идет постранично, так что чтобы поменять одну инструкцию, придется перепрограммировать целую страницу, либо редактировать данные только одной страницы, храня их в ОЗУ, а потом записывать их в Flash.
    В любом случае, сделать что-то похожее по принципу работы на УМК будет проблематично.
    УМК на ATmega16