roboforum.ru

Технический форум по робототехнике.

Датчик касания оптический, триангуляция

Обсуждение технологии печати на 3D принтерах. Самостоятельное изготовление и приобретение. RepRap и его последователи.

Датчик касания оптический, триангуляция

Сообщение Dmitry__ » 03 ноя 2015, 07:18

Собранный датчик на макетке и видео работы:
forum107/topic15929-105.html#p342387
Исходники:
репозитарий: https://github.com/setar/RF3Sens
sensor_ADNS.zip
(10.18 КиБ) Скачиваний: 0

Визуализатор для компа, исходники на Qt:
https://github.com/DmitLil/MouseSensViewer

Удачное повторение датчика от Сергея, с измененной концепцией оптической схемы:
про фокусировку http://roboforum.ru/forum107/topic15929-495.html#p344369
про монтаж линзы лазера http://roboforum.ru/forum107/topic15929-630.html#p347057

Схема тут. В графическом варианте:
digispark_adns2620.png


Ниже старый вариант схемы...

Схема датчика на тиньке - это схема Digispark и часть схемы adns5020 из родного pdf.
На пзс надо всего 2 детали - 2 керамич. конденсатора по 10мкф. на питание: 5-6 пин и rego: 6-7 пин.
Лазер катодом на 2-й пин, анодом на +5v.
nReset (3 pin) соединить с +5v: Vdd (5-й пин).
Шина spi 3 контакта:
Код: Выделить всёРазвернуть
adns5020:   Digispark:
SCLK(8)     PB2(SCK/ADC1) 7pin
SDIO(1)     PB4(usb Digispark) 3 pin
nCS (4)     PB0(MOSI) 5 pin

Чтоб пзс не мешала программированию Digispark, надо подтянуть nCS к +5v резистором от 1к до 10к.
Выход датчика PB1(MISO) 6pin, он же штатный светодиод Digispark. По нему можно смотреть работу датчика без подключения к принтеру.

Изображение
Изображение
http://www.efo.ru/components/avago/cata ... 0365EN.pdf

Подключение пзс к arduino nano, программный spi - 3 пина, аппаратный spi - 4 пина:
Код: Выделить всёРазвернуть
adns5020:   arduino nano:
SCLK(8)     D13
SDIO(1)     D11
nCS (4)     D10
            D9 выход датчика (использовать D13 led нельзя, т.к. занят аппаратным SCLK)
Если используется аппаратный SPI, то нужен резистор между D11 и D12. Я ставил 75 ом.


Рабочие пзс мышек:
Код: Выделить всёРазвернуть
MCS12085   полный аналог ADNS-2620
ADNS2610   Самые ходовые б/у мыши - Genius NetScroll EYE
ADNS2620
ADNS3090
ADNS5020EN   Logitech RX250 PLUTON
ADNS5030   3.3v trust мини мышка беспроводная
ADNS6010   a4 tech X7 X-750MF
ADNS9800   Монстр, мечта идиота :) Еще не проверил


Нерабочие пзс (на данный момент разработки сенсора, некоторые пзс могут пропасть из этого списка)
Код: Выделить всёРазвернуть
no use
PAN3101
paw3101db   нет Pixel_Grab
PAN3102DB   нет Pixel_Grab
pan3204db   PS/2
PAW3204      2.7v, нет Pixel_Grab. LOW COST WIRELESS MOUSE SENSOR
PAW3401      ps/2
PAW3515DB   только юсб.


Куча полезной информации по чипам разных мышек:
http://www.overclock.net/t/854100/gaming-mouse-sensor-list
Еще один хороший список:
http://csgolikeapro.com/index.php?title=Mouse_sensor


/*
-------------------------------------------------------------------------------------------
Дальше всякое обсуждение...
-------------------------------------------------------------------------------------------
*/

Разные датчики с общим методом, можно шарп, можно оптич. мышки :)


Работает шарп, причем хорошо. Расстояние от датчика до стола около 3.5см. Свет не влияет.
Контраст поверхности влияет, но надо модифицировать шарп, как я описывал раньше. Брать шарп на самое маленькое расстояние, у меня GP2Y0A21YK0F
http://roboparts.ru/products/gp2y0a21yk0f
плата с компаратором эта:
http://roboparts.ru/products/9396613
Отпаял лишние детали и фотодиод. Переменный резистор настроен на точку до максимума напряжение/расстояние, там максимальная крутизна датчика, смотреть график в пдф.
Код: Выделить всёРазвернуть
18:46:07.290 : N378 M48 V2 *119
18:46:30.365 : 1 of 10   z: 28.598438
18:46:42.078 : 2 of 10   z: 28.598438
18:46:53.794 : 3 of 10   z: 28.593437
18:47:05.390 : 4 of 10   z: 28.608749
18:47:17.098 : 5 of 10   z: 28.588438
18:47:28.815 : 6 of 10   z: 28.604063
18:47:40.527 : 7 of 10   z: 28.596250
18:47:52.241 : 8 of 10   z: 28.597812
18:48:03.955 : 9 of 10   z: 28.595624
18:48:15.628 : 10 of 10   z: 28.628749
18:48:21.960 : Mean: 28.601001
18:48:21.963 : Standard Deviation: 0.010626

18:49:58.707 : N432 M48 V2 *126
18:50:26.762 : 1 of 10   z: 28.639686
18:50:38.397 : 2 of 10   z: 28.626249
18:50:50.033 : 3 of 10   z: 28.631563
18:51:01.668 : 4 of 10   z: 28.634061
18:51:13.304 : 5 of 10   z: 28.622499
18:51:24.941 : 6 of 10   z: 28.640312
18:51:36.576 : 7 of 10   z: 28.623437
18:51:48.213 : 8 of 10   z: 28.632812
18:51:59.847 : 9 of 10   z: 28.631563
18:52:11.483 : 10 of 10   z: 28.626874
18:52:17.820 : Mean: 28.630905
18:52:17.822 : Standard Deviation: 0.005869

18:54:03.931 : N491 M48 V2 *119
18:54:32.077 : 1 of 10   z: 28.623437
18:54:43.835 : 2 of 10   z: 28.595312
18:54:55.468 : 3 of 10   z: 28.626562
18:55:07.186 : 4 of 10   z: 28.622186
18:55:18.900 : 5 of 10   z: 28.629375
18:55:30.617 : 6 of 10   z: 28.621250
18:55:42.328 : 7 of 10   z: 28.636249
18:55:54.005 : 8 of 10   z: 28.637500
18:56:05.722 : 9 of 10   z: 28.608125
18:56:17.316 : 10 of 10   z: 28.640312
18:56:23.655 : Mean: 28.624032
18:56:23.655 : Standard Deviation: 0.013115

18:57:16.218 : N532 M48 V2 *127
18:57:44.343 : 1 of 10   z: 28.625625
18:57:55.934 : 2 of 10   z: 28.665000
18:58:07.612 : 3 of 10   z: 28.642812
18:58:19.209 : 4 of 10   z: 28.637811
18:58:30.847 : 5 of 10   z: 28.616249
18:58:42.480 : 6 of 10   z: 28.630311
18:58:54.074 : 7 of 10   z: 28.653125
18:59:05.750 : 8 of 10   z: 28.659063
18:59:17.428 : 9 of 10   z: 28.646875
18:59:29.020 : 10 of 10   z: 28.645000
18:59:35.348 : Mean: 28.642185
18:59:35.350 : Standard Deviation: 0.014361

Выключение освещения комнаты через каждое измерение
Код: Выделить всёРазвернуть
19:01:34.883 : N595 M48 V2 *114
19:02:03.023 : 1 of 10   z: 28.640625
19:02:14.740 : 2 of 10   z: 28.635313
19:02:26.460 : 3 of 10   z: 28.635000
19:02:38.179 : 4 of 10   z: 28.640937
19:02:49.853 : 5 of 10   z: 28.667186
19:03:01.491 : 6 of 10   z: 28.661874
19:03:13.169 : 7 of 10   z: 28.641250
19:03:24.847 : 8 of 10   z: 28.657188
19:03:36.524 : 9 of 10   z: 28.649375
19:03:48.202 : 10 of 10   z: 28.650938
19:03:54.541 : Mean: 28.647970
19:03:54.544 : Standard Deviation: 0.010655



Изображение

Дальше надо переделывать шарп, как писал раньше (с лазером).
Форумчанин Пяткин нашел более оптимальный датчик: Sharp GP2Y0A51SK0F


Ура, получил видео от мышки в этих ваших линухах :)
Мыша - Genius, Чип - MCS_12085 (полный аналог ADNS-2620), контроллер arduino nano. Оптику приговнял от сдром. Резкость примерно на 2-х сантиметрах. Скриншотик логотипа дуины на плате arduino mega :Yahoo!:

Изображение
Изображение
Последний раз редактировалось Dmitry__ 23 авг 2016, 15:20, всего редактировалось 25 раз(а).
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Датчик касания оптический, триангуляция

Сообщение Zusul86 » 03 ноя 2015, 18:46

А как датчик шарп связан с датчиком мышки?
Zusul86
 
Сообщения: 775
Зарегистрирован: 10 авг 2014, 15:02
Откуда: Саров

Re: Датчик касания оптический, триангуляция

Сообщение Dmitry__ » 03 ноя 2015, 19:02

Датчик шарп - готовый вариант датчика на пзс оптич. мышки. Там есть пзс как в мышке, есть светодиод и оптика. Для мышки надо городить оптику (красивое решение - линза сдром) и лазер. Лазерные модули с коллиматорной оптикой стоят дешево, всего 100р.
Датчик из мышки будет значительно точнее (из-за лазера) и быстрее, через пзс вижу мерцание лампы дневного света, которая модулируется 40кгц.
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Датчик касания оптический, триангуляция

Сообщение Zusul86 » 03 ноя 2015, 19:59

Dmitry__ писал(а):Датчик шарп - готовый вариант датчика на пзс оптич. мышки.

Что то мне кажется там линейка, а не матрица. С тем же успехом сюда и дальномер на вебкамере можно приписать.
Zusul86
 
Сообщения: 775
Зарегистрирован: 10 авг 2014, 15:02
Откуда: Саров

Re: Датчик касания оптический, триангуляция

Сообщение Dmitry__ » 03 ноя 2015, 20:51

Да, в шарп линейка, а что это меняет? На пзс мышки будет стоять контроллер, который будет выделять линию по которой ходит пятно от лазера. 2d матрица позволяет не так точно юстировать лазер относительно пзс, калибровка запомнит смещение линии, а высота до мишени сама подберется. Все можно настраивать трясущимися руками и получить одну сотку. В шарп это не требуется, так как все сделано с промышл. технологиями. А у нас - дешевый скотч, картон, термоклей и.т.д. :)

Добавлено спустя 6 минут 3 секунды:
Zusul86 писал(а): С тем же успехом сюда и дальномер на вебкамере можно приписать.

Абсолютно верно. Я думал о ч/б камере и программном выделении точки. На этом форуме есть замечательный проект под это дело:
forum88/topic6822.html
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Датчик касания оптический, триангуляция

Сообщение dccharacter » 03 ноя 2015, 22:41

Не нашел кнопки "подписаться", нашел кнопку "быстрый ответ"
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Датчик касания оптический, триангуляция

Сообщение Акелла » 03 ноя 2015, 22:54

смотри ниже, в самом низу страницы сразу под ботами.
Косель мини, плата управления DUET на reprap firmware от DC42, E3Dv6
Распечатаю на заказ.
Kossel config E3D.h
Акелла
 
Сообщения: 771
Зарегистрирован: 27 май 2014, 13:35
Откуда: London. UK
Skype: pioneerko
ФИО: Александр

Re: Датчик касания оптический, триангуляция

Сообщение Dmitry__ » 03 ноя 2015, 23:49

Чтение мышки содрал с:
http://rogerrowland.blogspot.co.uk/2014 ... mouse.html
Прога на компе на базе стандартного примера Qt: Qt/Examples/Qt-5.3/serialport/master
Причешу, проверю в вендах и выложу.
Мышки надо, которые умеют грабить сырую картинку из чипа, где-то был целый список их, сейчас не найду. В основном это чипы от Avago

Добавлено спустя 10 минут 53 секунды:
Еще про мышки:
http://www.bidouille.org/hack/mousecam
https://code.google.com/p/optimouse/

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

http://www.youtube.com/watch?v=37Fg5_77J24


Добавлено спустя 21 минуту 46 секунд:
Ну и конечно, можно купить готовые с оптикой, это у кого нет проблем со сгрызанием ногтей от ожидания по 60 дней.
http://www.ebay.com/sch/i.html?_from=R40&_trksid=p2050601.m570.l1313.TR10.TRC0.A0.H0.Xadns.TRS0&_nkw=adns&_sacat=0
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Датчик касания оптический, триангуляция

Сообщение Zusul86 » 04 ноя 2015, 00:02

Про W-Mouse где то есть русскоязычный форум, там можно почитать где какой датчик и оптику от какой к нему лучше ставить.
Zusul86
 
Сообщения: 775
Зарегистрирован: 10 авг 2014, 15:02
Откуда: Саров

Re: Датчик касания оптический, триангуляция

Сообщение ALS » 04 ноя 2015, 17:09

Zusul86 писал(а):Про W-Mouse где то есть русскоязычный форум...

http://forums.overclockers.ru/viewtopic ... 7&t=330808
Аватара пользователя
ALS
 
Сообщения: 803
Зарегистрирован: 24 окт 2011, 23:32
Откуда: Севастополь
прог. языки: асм

Re: Датчик касания оптический, триангуляция

Сообщение Dmitry__ » 23 ноя 2015, 04:53

Приделал лазер соплями. Фоткал так, чтоб был понятен угол наклона лазера:
sens_mouse1.JPG


Видео:

Пятно определяется абсолютно однозначно, значение "63" - насыщение пзс от пятна лазера. До 8-й секунды: поверхность - белая бумага. Блики после 8 до 16 секунды - замена поверхности: черный пластик. Как не старался ровно приляпать датчик, все равно увело вверх.
С таким контрастом можно и не думать о какой-то обработке. Алгоритм будет такой:
При достижении правой стороны матрицы значения > 60: выставлять "1" на z_probe.
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Датчик касания оптический, триангуляция

Сообщение dccharacter » 23 ноя 2015, 05:12

Ого, че-то крутое!
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Датчик касания оптический, триангуляция

Сообщение barakuda62 » 23 ноя 2015, 17:24

dccharacter писал(а):Ого, че-то крутое!

Нда, многообещающе !, впечатляет, но блин оптика усложняет конструктив, сложновато для повторения однако !
Printer: H-Boot cube aluminium (промежуточный вариант), Firmware: Marlin
Delta all aluminium, Firmware: Marlin
Electronics: Arduino MEGA 2560 + RAMPS 1.4
barakuda62
 
Сообщения: 292
Зарегистрирован: 28 дек 2014, 02:33
Откуда: Рязань
прог. языки: С#, JAVA

Re: Датчик касания оптический, триангуляция

Сообщение dccharacter » 23 ноя 2015, 20:01

Дим, Дим, угол Брюстера!

Добавлено спустя 2 минуты 49 секунд:
Сидиром - четвертьволновые пластинки россыпь шок без регистрации без смс
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Датчик касания оптический, триангуляция

Сообщение Dmitry__ » 24 ноя 2015, 02:07

dccharacter писал(а):угол Брюстера!

Это слишком умно для меня...
dccharacter писал(а):Сидиром - четвертьволновые пластинки россыпь шок без регистрации без смс

Я вчера тоже долго думал. Вот что надумал:
Не бывает абсолютно зеркальных отражений, диффузное отражение должно быть всегда. Надо ему только немного помочь. Надо взять самый коротковолновый лазер - синий или уф, умрет гладкая поверхность быть зеркальной для таких длин волн. И, и, и сегодня моя теория сошлась с практикой - работает на стекле.
У меня 3 новости: очень хорошая, хорошая и плохая. С какой начать?
Очень хорошая: ТАДАААААААААААМ, работает на стекле и зеркале :P
Хорошая: Ни яркость, ни контраст не влияют на результат. :good:
Плохая: Датчик - хлам, при всех ее 1500 кадрах в секунду, она не умеет быстро отдавать сырой кадр :cry:
Между байтами данных надо делать задержку 100мкс. 18 точек * 18 точек * 100мкс. *2 (адресация) = 64.8 мс.
Ушел искать быструю пзс...
Фотки:
2 фотки, отражение от стекла, различная загрязненность.
sens_mouse2.JPG

sens_mouse3.JPG

Белая поверхность:
sens_mouse4.JPG

Темная поверхность:
sens_mouse5.JPG


Можно заметить, что отражение от стекла не хуже чем от темной поверхности.
Видео:
До 3-й секунды - стекло, до 6-й - белая поверхность, потом темная. С 10-й секунды - реакция на изменение координаты "z".
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

След.

Вернуться в 3D печать

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13