roboforum.ru

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

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

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

Dmitry__ » 28 ноя 2015, 09:27

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

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

dccharacter » 28 ноя 2015, 09:28

сначала свой датчик допили!

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

Dmitry__ » 28 ноя 2015, 09:42

Ну сегодня/завтра займусь. Но у меня интерес чиста академический, ибо датчик на сдром брушлесике лучче.
Кста, мож интересно тебе будет. Я тут машинки прикупил за копейки (очень много). Стал смотреть поворотный узел и офигел. Там не серва, там катушка и 2 неодимовых магнита. Возврат в нейтраль пружиной. Коленка полная, у меня так не получалось с электромагнитом и пружиной (за вменяемую энергию). Вощем, готовый узел датчика, и теперь я знаю как это надо делать :)
Щаз найду ссылку на машинки.

Добавлено спустя 1 минуту 23 секунды:
Только тсссссс, ссылку никому не давай, а то халва кончится :)
http://rc-go.ru/cat/mini-mashina_1to24_2/?_openstat=bWFya2V0LnlhbmRleC5ydTtMZSBZdSBUb3lzINCg0LDQtNC40L7Rg9C_0YDQsNCy0LvRj9C10LzQsNGPINC80LjQvdC4LdC80LDRiNC40L3QutCwIDE6MjQ7eUxudDJEN1pzQk0tTEdqTEN0OVVJQTs&frommarket=http%3A/market.yandex.ru/partner&ymclid=47884607783130932044002

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

dccharacter » 28 ноя 2015, 09:59

А ты степперы сидиромовские разбирал? Я рыдал...

Добавлено спустя 41 секунду:
Фодко дай лучше ?-)

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

Dmitry__ » 28 ноя 2015, 10:22

Купи их, скоро новый год. Где еще найдешь машинки на радиоуправлении за 250р :)
Моя в шоке, показывал бизнесменам, у них рвались шаблоны, говорили, что упаковочные коробки им обходятся дороже :)
Mini_Z Le_Yu.JPG

Электроника на фотке уже своя :oops: Родная плата другая :)

Добавлено спустя 8 минут 36 секунд:

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

Dmitry__ » 29 ноя 2015, 19:26

dccharacter, чудо не произошло, работает твой вариант, хорошо так работает :)
m48 v2:
Код: Выделить всёРазвернуть
17:57:24.418 : 1 of 10   z: 2.729687
17:57:36.167 : 2 of 10   z: 2.726875
17:57:47.908 : 3 of 10   z: 2.739687
17:57:59.650 : 4 of 10   z: 2.726562
17:58:11.397 : 5 of 10   z: 2.725625
17:58:23.145 : 6 of 10   z: 2.735312
17:58:34.881 : 7 of 10   z: 2.743438
17:58:46.612 : 8 of 10   z: 2.755312
17:58:58.342 : 9 of 10   z: 2.749687
17:59:10.075 : 10 of 10   z: 2.744375
17:59:16.405 : Mean: 2.737656
17:59:16.405 : Standard Deviation: 0.009961

18:01:15.297 : 1 of 10   z: 2.751563
18:01:27.053 : 2 of 10   z: 2.744375
18:01:38.801 : 3 of 10   z: 2.758750
18:01:50.548 : 4 of 10   z: 2.748750
18:02:02.304 : 5 of 10   z: 2.746562
18:02:14.049 : 6 of 10   z: 2.764375
18:02:25.794 : 7 of 10   z: 2.752187
18:02:37.542 : 8 of 10   z: 2.755312
18:02:49.290 : 9 of 10   z: 2.762187
18:03:01.033 : 10 of 10   z: 2.765938
18:03:07.365 : Mean: 2.755000
18:03:07.368 : Standard Deviation: 0.007185

18:04:28.793 : 1 of 10   z: 2.748125
18:04:40.548 : 2 of 10   z: 2.766250
18:04:52.295 : 3 of 10   z: 2.763437
18:05:04.051 : 4 of 10   z: 2.771875
18:05:15.804 : 5 of 10   z: 2.766875
18:05:27.556 : 6 of 10   z: 2.751563
18:05:39.310 : 7 of 10   z: 2.757812
18:05:51.075 : 8 of 10   z: 2.764062
18:06:02.827 : 9 of 10   z: 2.771250
18:06:14.571 : 10 of 10   z: 2.776875
18:06:20.907 : Mean: 2.763813
18:06:20.910 : Standard Deviation: 0.008594

18:11:38.043 : 1 of 10   z: 2.775938
18:11:49.785 : 2 of 10   z: 2.778125
18:12:01.529 : 3 of 10   z: 2.781563
18:12:13.273 : 4 of 10   z: 2.768125
18:12:25.021 : 5 of 10   z: 2.782187
18:12:36.757 : 6 of 10   z: 2.784375
18:12:48.493 : 7 of 10   z: 2.786562
18:13:00.232 : 8 of 10   z: 2.797188
18:13:11.979 : 9 of 10   z: 2.777188
18:13:23.715 : 10 of 10   z: 2.794063
18:13:30.044 : Mean: 2.782531
18:13:30.046 : Standard Deviation: 0.008170



Скорость отработки, опрашивая только Maximum_Pixel, хорошая. По g30 вывожу "0", дальше легким нажатием на стол смотрю реакцию светодиода, все шустро.
Проводить более точные тесты для меня нет смысла. Мне и так все понятно. Надо пилить шуструю пзс.
Чо делаем с этим всем, други? Наверно есть смысл перевести код с дуины на мелкую тиньку.

Добавлено спустя 11 минут 28 секунд:
Блин, шутки ради проверил на стекле, работает, вечер перестает быть томным. :shock:
Ошибка стала больше.
Код: Выделить всёРазвернуть
18:17:17.580 : 1 of 10   z: -4.307188
18:17:29.276 : 2 of 10   z: -4.302187
18:17:40.967 : 3 of 10   z: -4.302813
18:17:52.737 : 4 of 10   z: -4.381563
18:18:04.453 : 5 of 10   z: -4.302813
18:18:16.144 : 6 of 10   z: -4.307188
18:18:27.963 : 7 of 10   z: -4.347813
18:18:39.669 : 8 of 10   z: -4.308750
18:18:51.356 : 9 of 10   z: -4.307500
18:19:03.054 : 10 of 10   z: -4.298438
18:19:09.385 : Mean: -4.316625
18:19:09.388 : Standard Deviation: 0.025365

18:20:03.304 : 1 of 10   z: -4.307813
18:20:14.966 : 2 of 10   z: -4.292188
18:20:26.615 : 3 of 10   z: -4.290312
18:20:38.355 : 4 of 10   z: -4.360000
18:20:50.030 : 5 of 10   z: -4.288437
18:21:01.752 : 6 of 10   z: -4.358750
18:21:13.427 : 7 of 10   z: -4.292812
18:21:25.161 : 8 of 10   z: -4.348750
18:21:36.834 : 9 of 10   z: -4.283125
18:21:48.580 : 10 of 10   z: -4.354688
18:21:54.920 : Mean: -4.317687
18:21:54.923 : Standard Deviation: 0.031586

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

dccharacter » 29 ноя 2015, 21:01

Чо делаем, моделим корпус под компоненты.
Что за объектив наляпан на датчик?

Добавлено спустя 17 минут 24 секунды:
Порог подточи под стекло!

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

Dmitry__ » 29 ноя 2015, 21:22

dccharacter писал(а):Что за объектив наляпан на датчик?

От сидиром, пластиковый корпус не отламывал, отломал только печатные платы с катушками. Слушай, а ведь там тот самый астигматизм, про который так долго говорили. Наверно вносит дополнительные ошибки.
dccharacter писал(а):моделим корпус под компоненты.

Вот это правильно, для меня это полная жесть :oops:
Я лучше поставлю Qt на винХП. Проверю там. А еще повожусь с Digispark Attiny85, правда я там загрузчик убил, через isp с ними работаю.
http://roboparts.ru/products/digispart-attiny85

Кста, можно обьеденить триангуляцию с дифференциальным :) 2 лазера и пзс. Раз в 10 разрешение улучшится. Только юстировать сложно.

Добавлено спустя 8 минут 8 секунд:
dccharacter писал(а):Порог подточи под стекло!

Надо мощу на лазер увеличивать. Можно и через порог, но в автоматич. режиме подобие АРУ работает, могут ошибки появиться.

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

dccharacter » 29 ноя 2015, 23:24

Можно автокалибровку прогонять перед измерениями или регулярно

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

dccharacter » 30 ноя 2015, 04:57

Не надо лазер более мощный
Light Level onto IC IRRINC 80 25,000 mW/m2 λ = 639 nm
100 30,000 λ = 875 nm

0.03 mWt/mm^2

Добавлено спустя 4 минуты 38 секунд:
Надо попробовать линзу от сидирома выкинуть и родную поставить

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

Dmitry__ » 30 ноя 2015, 06:10

dccharacter писал(а):Надо попробовать линзу от сидирома выкинуть и родную поставить

Которая коллиматорная? Ну мысль понял, увеличить светосилу. Есть нюансы. Когда подбирал линзу, не хотел ломать корпус пзс, посмотри на входное отверстие матрицы, оно мало. Чтоб весь собранный свет попал на матрицу, надо брать короткофокусную линзу, тогда диафрагма (входное отверстие) не будет обрезать свет. Коллиматорная линза более длиннофокусная, надо убирать крышку пзс.
Кста, интересно, а в пзс есть еще линза? Вообще пинок правильный, что-то у меня с чутьем совсем плохо. при 60 ваттном светодиодном освещении комнаты, совсем не виден фон. И регулировки выдержки не нашел. Буду чесать репу...

Добавлено спустя 4 минуты 45 секунд:
А щаз подумал, на белом фоне там пипец какой передоз. Скоро сцинтилляции в воздухе пойдут :) Мы уже борзеем, и стекло хотим и белый фон. Там диапазон наверно около 10^6.

Добавлено спустя 10 минут 25 секунд:
АРУ нужен. Алгоритм такой:
Даем полную мощность на лазер. Ждем уровень 50 попугаев. При уходе >50, уменьшаем мощность лазера (шим). И ждем ухода пятна за другой край матрицы. Мощность в поле матрицы можно только понижать. За полный ход пятна - устаканится яркость. И сигнал анализировать, который probe_z, чтоб знать что координата перемещается вниз.

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

dccharacter » 30 ноя 2015, 07:19

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

Добавлено спустя 50 минут 7 секунд:

Сорри, не смог удержаться

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

Dmitry__ » 30 ноя 2015, 08:46

С длиннофокусной линзой и входным отверстием я тупанул в прошлом сообщении. :oops:
Я хотел сказать, что надо увеличить светосилу бОльшей линзой, фокусное расстояние должно остаться прежним. Вот тут будет мешать маленькое входное отверстие. Сейчас посмотрел пзс от мышки, крышка снимается легко, линзы нет. Чип голый как Саша Грей на работе :D . Похимичу завтра...
А вот с длиннофокусной линзой у меня пока одни вопросы, не работает фантазия. Ведь при увеличении фокусного расстояния надо увеличивать диаметр линзы, чтоб светосила осталась такая же как с короткофокусной (обьект будет дальше). А чтоб светосила стала выше, надо увеличить угол (отношение диаметра линзы к расстоянию до обьекта). Т.е. площадь линзы должна расти хз в какой степени. И в этом случае фокусное расстояние увеличивается? И вопрос про разрешающую способность, она ведь будет уменьшаться?
Вощем тут я начинаю сильно плавать/тупить/лажать/бредить. :)

Добавлено спустя 3 минуты 52 секунды:
dccharacter писал(а):Сорри, не смог удержаться

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

Добавлено спустя 54 минуты 31 секунду:
Эх, запилил прошивку под тиньку. :)
Sketch uses 988 bytes

Веселуха оптимизации. Чтоб лезло в тиньку. Еще 400 байт уходит если заменить void setup() и void loop() на int main(), но это уже изврат :)
Йа спать...
Код: Выделить всёРазвернуть
Sketch uses 3 142 bytes (10%) of program storage space. Maximum is 30 720 bytes.
Global variables use 513 bytes (25%) of dynamic memory, leaving 1 535 bytes for local variables. Maximum is 2 048 bytes.

заменил "nData |= (digitalRead(m_nIOPin) << i);" на "if(PIND & (1<<7)) nData |= 0x01;   //#define SDIO_PIN   7"
Sketch uses 3 032 bytes (9%) of program storage space. Maximum is 30 720 bytes.
Global variables use 513 bytes (25%) of dynamic memory, leaving 1 535 bytes for local variables. Maximum is 2 048 bytes.

заменил все digitalWrite соотв. #define
Sketch uses 2 734 bytes (8%) of program storage space. Maximum is 30 720 bytes.
Global variables use 513 bytes (25%) of dynamic memory, leaving 1 535 bytes for local variables. Maximum is 2 048 bytes.

без pinMode
Sketch uses 2 472 bytes (8%) of program storage space. Maximum is 30 720 bytes.
Global variables use 513 bytes (25%) of dynamic memory, leaving 1 535 bytes for local variables. Maximum is 2 048 bytes.

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

dccharacter » 30 ноя 2015, 19:31

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

Добавлено спустя 1 минуту 24 секунды:
А дай еще расстояния примерные от линзы до ПЗС, от стола до линзы в момент срабатывания и базу (лазер-пзс)

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

Dmitry__ » 30 ноя 2015, 20:42

Момент срабатывания: 16 мм. от стола до нижней поверхности платы мышки (до пзс не померить, там все на соплях).
База:
30 мм. от линзы лазера до центра пзс.
Центр линзы лазера до стола 10мм. Но его надо делать в уровень пзс. Так было проще говнять клеем.
Если надо более точные данные, то надо отрывать плату от принтера.

dccharacter писал(а):Плату теперь надо пилить с тинькой

У меня сейчас так: дуина нано с вкл. флагом Test - генерит данные для визуализации (фокусировка системы), штатный светодиод отрабатывает порог. rs232 на комп на скорости 230400. Работает очень медленно. Можно закомментить флаг Test, будет полный аналог тиньки:
Тинька с откл. флагом Test обрабатывает только порог, работает быстро. С флагом Test тоже компилится и лезет в тиньку, но не изучал куда уходит rs232. Доступная макс. скорость 115200. В тиньке bootloader 2кб. Программно реализован usb загрузчик совместимый с ide arduino :shock: Из 8кб. - 2кб. = 6кб пользователя.
Каждый раз дергаюсь перевести все под чистый GCC, но останавливает будущая сложность для простых юзеров. А пиар наше фсе :)

Добавлено спустя 5 минут 30 секунд:
Да, в тиньке привлекает возможность работать вообще без навесных деталей (для isp). Для usb bootloader надо 4 детальки. Т.е. потом можно просто приклеивать тиньку к пзс и все...

Добавлено спустя 3 минуты 4 секунды:
Digispark USB:
https://s3.amazonaws.com/digistump-reso ... ematic.pdf
http://digistump.com/products/1
Нашел их у нас по 220р.
https://robom.ru/product/arduino/digisp ... 5-usb.html
Про ибеи молчу...


Rambler\'s Top100 Mail.ru counter