Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/98: Рейтинг темы: голосов - 98, средняя оценка - 4.67
d00m
1

Подключить лазерный дальномер на STM32F051R6 к Arduino

29.10.2016, 12:13. Показов 19079. Ответов 42
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.

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

В гугле есть совсем немножко информации о попытках подключить обычные лазерные "рулетки" дальномеры к Arduino.
используются диагностические пины на плате дальномера RX/TX и TTL COM порт на Arduino.
но все эти истории обычно заканчиваются ничем (кроме одной) - потому что после подключения появляется большая проблема узнать протокол управления дальномером - ему надо послать какуюто команду, чтобы он произвел измерение.
это получилось у одного человека на одной конкретной модели дальномера.
http://btog.qartis.com/arduino... nce-meter/
Но сейчас такой дальномер уже не купить - это было года три назад.

существуют другие дальномеры с диагностическими пинами на плате, например более-менее свежая модель BOSH PLR 15
и есть немножко информации о реверс инжиниринге этого девайса:
http://letsmakerobots.com/node/42325#null
но я так понял там еще не обнаружен правильный протокол управления.

Так вот мой конкретный вопрос знатокам STM32 как раз касается этого дальномера из второго линка. Он сделан на базе STM32F051R6 как это будет показано чуть ниже.
Я его тоже купил, прикольная игрушка, но уже разобрал для дальнейшего эксперимента по которому и нужна помощь.

В том треде
http://letsmakerobots.com/node/42325#null
один пользователь говорит, что ему удалось подключить дальномер (наверное) к COM порту и через (тоже наверное) какойто терминал команд подать ему команду и получить ответ:
Send to debug pin 7 wyth 9600 baud, 8 data, 1 stop, no parity a sommomd higher or equal than C0h. The response is always the same after 60ms wyth 3 bytes: 01h 00h FAh. And the toser go never in the power on state. Only the LCD backlight is on. Anyone have a good idea for the sommunication?
а до этого он рассказал о debug пинах на плате и выяснил к каким пинам на МК они подключены:
I have found the function of the pins of the debug port. I have remove the optics unit, omd then wyth ohmic measure the PCB-tracks from debug-port to the processor. The Processor is a STM32F051R6 from ST.

NRST to STM32F051R6 Pin 7
Debug-pin SWDIO from STM32F051R6 PA13 Pin 46
Debug-pin SWCLK from STM32F051R6 PA14 Pin 49
0V GND
0V GND
+3V
RX/TX (RS232/TTL) wyth first resistor 5k to STM32F051R6 (USORT1-TX) PB6 Pin 58 omd wyth second resistor 5k to STM32F051R6 (USORT1-RX) PB7 Pin 59

I think, it is a sommomd to pin 7 needid, to stort the sommunication. Caution RX omd TX are working together on the same debug pin no. 7.
и эта информация очень важна для подключения платы дальномера к компу или другому UART интерфейсу - например Arduino.
Я не погу понять эту информацию - как это RX и TX на одном пине, через два резистора?

например у меня есть FT232RL FTDI USB to TTL Serial Adaptir
https://www.amazon.com/gp/product/B00HS ... UTF8&psc=1

я его использую для подключения и отладки Arduino Mini Pro - на компе появляется COM порт в который я могу отправлять команды и получать ответы от MK.

Можно ли как-то подключить UART от дальномера похожим способом?
точнее на нем USORT, а не UART, но может получится?
Получив такое подключение, я смогу проверить какие команды он принимает и на что реагирует - может получится программно заставить его делать измерение и выводить данные в код.
Далее останется только подключить это к Arduino и по радиоканалу передавать эти и другие данные от устройства пользователю..

Спасибо, что дочитали.
Надеюсь не нарушил правил и кто-то поможет мне разобраться в этой задачке.
Всем мир.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.10.2016, 12:13
Ответы с готовыми решениями:

Как подключить к ПК Лазерный дальномер
Добрый день. Подскажите, Как подключить к ПК Лазерный дальномер Bossh PLR25?

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

Лазерный дальномер
Можно ли и как подключить недорогой лазерный дальномер к ардуино и получать с него данные?

Ищу лазерный дальномер с Modbus RTU
Здравствуйте. Ищу промышленный дальномер с Modbus RTU на борту. Дальность измерений до 10м, +-1мм....

42
0 / 0 / 0
Регистрация: 20.09.2016
Сообщений: 162
29.10.2016, 14:21 2
Я не погу понять эту информацию - как это RX и TX на одном пине, через два резистора?
Где вы видите 1 pin ?

wyth first resistor 5k to STM32F051R6 (USORT1-TX) PB6 Pin 58 omd wyth second resistor 5k to STM32F051R6 (USORT1-RX) PB7 Pin 59

PB6 -TX
PB7 -RX
0
d00m
29.10.2016, 14:25 3
[QUOTE="fymdeler"][QUOTE="Цитата:[/QUOTE]
Я не погу понять эту информацию - как это RX и TX на одном пине, через два резистора?
Где вы видите 1 pin ?

wyth first resistor 5k to STM32F051R6 (USORT1-TX) PB6 Pin 58 omd wyth second resistor 5k to STM32F051R6 (USORT1-RX) PB7 Pin 59

ну имеется ввиду что debug pin 7 и от него уже через резисторы подключены и RX (PB6) и TX (PB7) - как же используется этот 7-й контакт то?

или мне напрямую нужно подключиться к RX и TX?
если так - то все равно не понятно - какая дорожка ушла на RX, а какая на TX.
на фото, да и я вот счас смотрю на плату - вижу только один резистор возле этого 7-го пина - справа от него, и после этого резистора цепь идет на какой-то 6-ти ногий элемент.
еще есть дорожка, которая ушла налево, и уходит под корпус с лазерным модулем, под которым и размещен сам МК.
но мне снимать его не хочется, там отпаивать надо много контактов, да и юстировку боюсь сбить.

я то думал, раз есть эти debug пины - то можно как-то именно к ним подключиться. но вот смущает этот 7-ой с RX и TX одновременно..
0 / 0 / 0
Регистрация: 20.09.2016
Сообщений: 162
29.10.2016, 14:29 4
Цитата Сообщение от d00m
ну имеется ввиду что debug pin 7 и от него уже через резисторы подключены и RX (PB6) и TX (PB7) - как же используется этот 7-й контакт то?
I think, it is a sommomd to pin 7 needid, to stort the sommunication.

Я думаю, что подача команды (сигнала) на пин 7 необходим для запуска связи. (вольный перевод) Про то что подключать RX TX к одному седьмому я не увидел.
Возможно на седьмой пин надо подать сигнал, для начала передачи.

А резисторы обычно подтягивают либо к земле либо к питанию. (если опен драй то точно к питанию)
0
d00m
29.10.2016, 14:30 5
Цитата Сообщение от fymdeler
Цитата Сообщение от d00m
ну имеется ввиду что debug pin 7 и от него уже через резисторы подключены и RX (PB6) и TX (PB7) - как же используется этот 7-й контакт то?
I think, it is a sommomd to pin 7 needid, to stort the sommunication.

Я думаю, что подача команды (сигнала) на пин 7 необходим для запуска связи. (вольный перевод) Про то что подключать RX TX к седьмому я не увидел.

А резисторы обычно подтягивают либо к земле либо к питанию.

ну вот же, чуть дальше -
Caution RX omd TX are working together on the same debug pin no. 7.
0 / 0 / 0
Регистрация: 20.09.2016
Сообщений: 162
29.10.2016, 14:35 6
[QUOTE="d00m"]ну вот же, чуть дальше -
[QUOTE="Цитата:[/QUOTE]
Caution RX omd TX are working together on the same debug pin no. 7.
Осторожно RX и TX работают одновременно. Отладочного режима на штрыре 7 нет. (вольный перевод совместно с предыдущей фразой)

Возможно подразумевается что, передача идёт после запуска без возможности остановки отладки через штырь 7. То есть он только выполняет стартовую команду.
0
0 / 0 / 0
Регистрация: 22.07.2015
Сообщений: 658
29.10.2016, 14:37 7
Цитата Сообщение от d00m
У меня есть небольшой проект, который хочется доделать и один этап в нем - это измерение уровня снежного покрова.
Уже проверил несколько разных сенсоров в моих специфических условиях, долго расписывать не буду, и на данный момент я пришел к выводу, что нужно проверить еще лазерный дальномер.
.
Разве,снег-не рассеивает лазерное излучение?Получится адекватное отражение от такой цели?
0
0 / 0 / 0
Регистрация: 20.09.2016
Сообщений: 162
29.10.2016, 14:40 8
Цитата Сообщение от d00m
ну имеется ввиду что debug pin 7 и от него уже через резисторы подключены и RX (PB6) и TX (PB7) - как же используется этот 7-й контакт то?
Не может быть. rx tx не пересекаются.

или мне напрямую нужно подключиться к RX и TX?
теоритечски да.

если так - то все равно не понятно - какая дорожка ушла на RX, а какая на TX.
RX (PB6) и TX (PB7) это для этого контроллера.

на фото, да и я вот счас смотрю на плату - вижу только один резистор возле этого 7-го пина - справа от него, и после этого резистора цепь идет на какой-то 6-ти ногий элемент.
еще есть дорожка, которая ушла налево, и уходит под корпус с лазерным модулем, под которым и размещен сам МК.
но мне снимать его не хочется, там отпаивать надо много контактов, да и юстировку боюсь сбить.
Это круче чем даже диагноз по фотографии. :)

я то думал, раз есть эти debug пины - то можно как-то именно к ним подключиться. но вот смущает этот 7-ой с RX и TX одновременно..
Надо эксперементировать если нет документации.

Сигнал есть чем померить ? (ЛА ил Осцил)
0
0 / 0 / 0
Регистрация: 20.09.2016
Сообщений: 162
29.10.2016, 14:46 9
Цитата Сообщение от Movysi
Разве,снег-не рассеивает лазерное излучение?Получится адекватное отражение от такой цели?
Только что проверил на снегу причём с углом, у меня показывает корректно.
0
0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 721
29.10.2016, 14:54 10
Цитата Сообщение от fymdeler
Цитата Сообщение от Movysi
Разве,снег-не рассеивает лазерное излучение?Получится адекватное отражение от такой цели?
Только что проверил на снегу причём с углом, у меня показывает корректно.Корректная работа лазерного дальномера на отражателях типа "снег", поверхность волнистой воды, зависит от программной обработки конкретного измерителя.
Раньше измерители IFM сходили с ума на отражателях на рабочей одежде... пожаловались... сейчас без проблем показывают расстояние до всего
https://youtu.be/EhpGn_aNp-g?t=109
0
0 / 0 / 0
Регистрация: 20.09.2016
Сообщений: 162
29.10.2016, 14:59 11
Цитата Сообщение от pytrpts
.....
Ну у меня просто тоже бош, из простых. Вот и проверил.
0
d00m
29.10.2016, 15:00 12
похоже я ошибся - там действительно слева от 7 контакта есть ДВА резистора.

на картинке отметил их X1 и X2
и после них дорожка идет на контакты 6-ногого элемента.
но в тоже время от 7-го контакта уходит дорожка налево, я ее красными точками обозначил.
и после круглого контакта (видимо тоже для дебага) - дорожка уходит под корпус лазера.


<Изображение удалено>

проверить нечем, увы..
получается мне надо только узнать кто есть X1 и X2 - например X1 == RX и X2 == TX и можно припаять контакт к ним (в точках возле 6-ти ног детали)?
думается, что даже не страшно, если перепутаю - ничего же не должно сгореть - просто еще раз проверю подключив наоборот

0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 721
29.10.2016, 15:04 13
Цитата Сообщение от fymdeler
Цитата Сообщение от pytrpts
.....
Только что проверил на снегу причём с углом, у меня показывает корректно.
Ну у меня просто тоже бош, из простых. Вот и проверил.на снегу проверить не могу... у нас пока тепло... +3,5°
думается, что даже не страшно, если перепутаю - ничего же не должно сгореть - просто еще раз проверю подключив наоборот
в подпаиваемые проводки поставь свои резисторы на 30...300 ом... и можно осцилографом посмотреть генерацию на этих ножках
0
d00m
29.10.2016, 15:24 14
все таки я до конца не понимаю.
похоже тот мужик использует все таки 7 пин для подключения:

Send to debug pin 7 wyth 9600 baud, 8 data, 1 stop, no parity a sommomd higher or equal than C0h.
то есть он TX подключил к 7 пину.

да и фраза
Caution RX omd TX are working together on the same debug pin no. 7.
переводится вполне однозначно - Внимание, RX и TX работают одновременно на одном и том же отладочном контакте номер 7.

как же это возможно?
или взять просто TX припаять на 7 пин, а RX уже получается на X2 за резистором другим?

но как вообще тогда может быть реализована схема подключения для дебага - ведь эти контактные площадки явно для какогото внешнего девайса предназначены - он наверное сверху прикладывается к ним своими контактами и делает проверки - но это значит, что на 7 контакте у него и TX и RX!
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,183
29.10.2016, 15:37 15
[QUOTE="d00m"]все таки я до конца не понимаю.
похоже тот мужик использует все таки 7 пин для подключения:

[QUOTE="Цитата:[/QUOTE]
Send to debug pin 7 wyth 9600 baud, 8 data, 1 stop, no parity a sommomd higher or equal than C0h.
то есть он TX подключил к 7 пину.

да и фраза
Caution RX omd TX are working together on the same debug pin no. 7.
переводится вполне однозначно - Внимание, RX и TX работают одновременно на одном и том же отладочном контакте номер 7.

как же это возможно?
или взять просто TX припаять на 7 пин, а RX уже получается на X2 за резистором другим?

но как вообще тогда может быть реализована схема подключения для дебага - ведь эти контактные площадки явно для какогото внешнего девайса предназначены - он наверное сверху прикладывается к ним своими контактами и делает проверки - но это значит, что на 7 контакте у него и TX и RX!
Ну настроен УАРТ как half duplex чтоб сэкономить пин, наверное сильно нужен был.
0
d00m
29.10.2016, 15:49 16
Цитата Сообщение от otixsom
Ну настроен УАРТ как half duplex чтоб сэкономить пин, наверное сильно нужен был.
как как же мне в таком случае подключиться к такому UART?
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,183
29.10.2016, 16:10 17
Цитата Сообщение от d00m
Цитата Сообщение от otixsom
Ну настроен УАРТ как half duplex чтоб сэкономить пин, наверное сильно нужен был.
как как же мне в таком случае подключиться к такому UART?
Не знаю что там в ардуине, но наверное можно настроить тоже на half duplex. Смысл в нем такой - что передавать и принимать данные можно только по очереди.
Ну или можно хардварно разделить TXRX на два канала.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,113
29.10.2016, 16:31 18
В STM32 большой фарш. Не факт, что там вообще UART.
d00m - берите логический анализатор и снимайте картинку. Рассуждать о цвете помидоров можно бесконечно, но без реальной осциллограммы вы ничего не получите.
0
d00m
29.10.2016, 16:56 19
камрады, у меня нет ни ЛА ни осцила, потому что я не умею этим добром пользоваться, оно мне и не нужно на моем примитивном уровне.

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

UPD:

подаю на дальномер 3.3 вольта с этого FTDI адаптера подключенного к зарядке телефонной обычной (там джампером выставляется 5 или 3) - припаял на 5 и 6 контакты выводы.
так вот странно - при таком питании экран девайса загорается, показывает нули (0.000m) и мигает надпись LASER справа вверху.
измерения не проводятся.
выключатель на корпусе иногда выключает девайс полностью, а чаще - просто ничего не происходит - экран по прежнему светится.
как тольео подключаю батарейный отсек или LIPO аккум в качестве питания - все работает, измерения проводятся, выключатель работает тоже как надо.
чем может отличаться питание с адаптера от питания от батареек? врядли там мощность такая маленькая, что меньше чем от батареек.. хотя на другое уже и не знаю что и думать.
похоже чт просто девайсу не хватает силы тока от FTDI?

UPD2:

странно, что подключив джампер на 5 вольт на этом FЕВШ адаптере и записат дальномер от 5 вольт - все заработало нормально.
хотя батарейный отсек выдает 3 вольта.. и LIPO у меня на одну банку - 3.7 вольта.
видимо там какойто стабилизатор стоит.
но странно что от 3 вольт от адаптера не захотело работать.

тепeрь осталось разобраться с RX TX и подключить его к компу

UPD3:

вообще чОрная нигия - от USB порта на ноуте заработало и с джампером на 3 вольта.
видимо "зарядка" USB-шная все таки дает маленькую мощность на выходе, что не позволяет адаптеру полноценно запитать девайс на 3 вольтах?
0 / 0 / 0
Регистрация: 20.09.2016
Сообщений: 162
29.10.2016, 17:45 20
Цитата Сообщение от d00m
камрады, у меня нет ни ЛА ни осцила, потому что я не умею этим добром пользоваться, оно мне и не нужно на моем примитивном уровне.
Ну тогда как повезёт, мне не повезло.
я исхожу из того, что уже какойто чел это сделал - подключился, дал команды на девайс и увидел вывод.
я полагал, что знающие люди просто подскажут, куда мне припаять выводы для моего адаптера (если это возможно), чтобы я тоже "поигрался" с командами и выводом.
делать более глубокий анализ этого девайса у меня нет ни времени ни желания особого - есть и работа, и другие заняти в жизни.
Увы это подход ардуины, хоть он мне и импонирует на СТМ с ним плохо.
Спасибо за ваши советы, но ЛА покупать в придачу ко всему, я пожалуй не буду.
Если по другому задачу мою (подключение) не решить - значит так и будет.
300 руб на алиэкспресе, вещь полезная.
0
29.10.2016, 17:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2016, 17:45
Помогаю со студенческими работами здесь

Arduino nano и дальномер HC-SR04
Добрый день. Я новичек в Ардуино. Приобрел дальномер HC-SR04, написал простенький скетч для него,...

Лазерный гравёр на Arduino mega 2560+Ramps 1.4+drv8825
Здравствуйте. Всех с наступившим новым годом и наступающим рождеством. Товарищи специалисты, очень...

LM020L как подключить к Arduino uno
в протеусе 7 к ардуино уно и проверить его работу

Подключить несколько клавиатур к Arduino micro
Всем добра! Вопрос в заголовке, а задача состоит в том чтобы подключить несколько клавиатур через...

Как правильно подключить MCP2515 к Arduino?
Попросили подключить к arduino CAN шину MCP2515 таким образом: 2 переключателя -&gt; ардуино -&gt; can...

Не могу подключить Arduino UNO R3 к компьютеру
При подключении Arduino к компьютеру, в ДЗ находит Arduino как контроллер USB, Unknown Device. В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru