roboforum.ru

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


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

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

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

Сообщение dccharacter » 10 дек 2015, 04:29

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

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

Сообщение Madf » 10 дек 2015, 12:42

Кстати да, вопрос интересный (с проверкой точности). Ясен пень, просто линейкой тут не отделаешься, минмум штангельциркуль нужен или лазерный, внешний дальномер...
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

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

Сообщение Dmitry__ » 10 дек 2015, 12:57

dccharacter писал(а):Дим, я тебе вот прям сейчас могу сказать как в 10 раз точность увеличить твоего датчика одной командой, ничего больше не меняя. А могу сильно тебя опечалить

Заинтригован, ляпи :)
Скрещивание дифф. с лазерным - моя идея, высказывал раньше :)

Добавлено спустя 2 минуты 17 секунд:
Кста про колхоз оптики. Есть такая штука:
Изображение
http://www.chipdip.ru/product/laser-sensor/
Стоит конечно пипец, но вроде готовая база. Лазер надо перемещать в другой конец платы.
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение Madf » 10 дек 2015, 13:13

На али чуть дешевле.
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

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

Сообщение Dmitry__ » 10 дек 2015, 13:20

Вот первоисточник. Схемы, явки, пароли:
http://www.waveshare.com/Laser-Sensor.htm
http://www.waveshare.com/wiki/Laser_Sensor
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение setar » 10 дек 2015, 16:45

потестить я завсегда - за,
даже соберу сам коль подскажите что именно
Дима, есть пара CMOS камер малюсеньких 1300x1040 (https://www.sparkfun.com/products/retired/8668), подарю - сам ни в жисть не распаяю, больно мелкая
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

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

Сообщение dccharacter » 10 дек 2015, 17:14

Dmitry__ писал(а):Заинтригован, ляпи :)

Ну увеличь скорость по Z - точность упадет. Снизь практически до нуля - получишь точность в четвертом знаке, т.е. 0.000 :-)))

Добавлено спустя 5 минут 59 секунд:
Madf писал(а):Кстати да, вопрос интересный (с проверкой точности). Ясен пень, просто линейкой тут не отделаешься, минмум штангельциркуль нужен или лазерный, внешний дальномер...

Дима уже меряет штангелем и даже точнее. Прелесть его решения - что контролируется на раз.
Дим, вынеси flg_serial_debug в переменную, и замени строчку
Код: Выделить всёРазвернуть
Frame[1] >120 ? pin_led_HIGH : pin_led_LOW;

на
Код: Выделить всёРазвернуть
if (Frame[1] >120) {
pin_led_HIGH;
flg_serial_debug = 1;
} else {
pin_led_LOW;
flg_serial_debug  = 0;
}

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

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

Сообщение Dmitry__ » 10 дек 2015, 19:34

setar писал(а):потестить я завсегда - за,

Во, тогда надо отдавать тебе. Только надо уточнить сигналы. Штатный светодиод платы является выходом концевика "z". Сейчас работает так: далеко от стола - светодиод горит "выход 1". Порог - светодиод не горит "0". Как надо? И еще, нужен сигнал "Z probe"? Чтоб отключать выход концевика при штатной работе принтера. Сейчас его нет, но есть подозрение, что во время срабатываний не будет давать опускаться голове вниз. Или надо в прошивке это выставлять.
Если ты можешь в arduino ide поставить поддержку тинек и сам заливать прошивку, то я форсирую выкладывание исходника в первое сообщение...

dccharacter писал(а):Дим, вынеси flg_serial_debug в переменную

Эээ, погоди, этот флаг входной. Нужен для выдачи данных в терминалку. В штатной работе его надо отключать, а то скорость опроса концевика упадет в разы (во время передачи данных в rs232, koncewik slepoj)
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение dccharacter » 10 дек 2015, 19:55

Дим, ендстоп сигнал инвертируется в марлине, не переживай особо :-)

Добавлено спустя 1 минуту 9 секунд:
Dmitry__ писал(а):Эээ, погоди, этот флаг входной. Нужен для выдачи данных в терминалку. В штатной работе его надо отключать, а то скорость опроса концевика упадет в разы (во время передачи данных в rs232, koncewik slepoj)

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

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

Сообщение Dmitry__ » 10 дек 2015, 20:08

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

Ну тогда ты описал еще один нужный алгоритм для теста :)
Сделаем "flg_serial_debug = 4"

В штатном режиме надо все удалять, чтоб работало на гвоздях. Я, кста, накосячил немного. Для штатного режима создаю массив в тцать точек, когда нужен всего один байт. И покоя мне не дает баг условной компиляции. Пойду бантики вязать.
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение dccharacter » 10 дек 2015, 20:16

Стой, не вяжи пока бантиков, делай костыли
Бантики вязать надо так
вся логика программы в файлах program.c/program.h (функции hw_init() и main_loop())
В файле platform_config.h происходит подключение драйверов железа
Драйвер должен предоставлять функции bit_set, bit_clear, spi_read, spi_write, delay_ms, delay_us, debug_og (или debug_write), ну че-нить такое короче
Вся логика программы реализуется на этих функциях
Сами функции описываются в драйверах driver_ATTiny85.c/driver_ATTiny85.h
Для дуни в проект добавляется файл *.ino
Потом я сделаю driver_pic16f1827.c
А потом driver_STM32F100R.c
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

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

Сообщение setar » 10 дек 2015, 20:18

Dmitry__ писал(а):надо уточнить сигналы. Штатный светодиод платы является выходом концевика "z". Сейчас работает так: далеко от стола - светодиод горит "выход 1". Порог - светодиод не горит "0". Как надо?

так уже полностью достаточно - у меня парковка в Zmax, все штатно,
автолевел будет по Zmin работать, логика уровней значения не имеет, в прошивке принтера переверну если что.
Если ты можешь в arduino ide поставить поддержку тинек и сам заливать прошивку, то я форсирую выкладывание исходника в первое сообщение...

могу конечно, вообще не вопрос

Добавлено спустя 1 минуту 3 секунды:
dccharacter писал(а):А потом driver_STM32F100R.c

+1 будет круто
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

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

Сообщение Dmitry__ » 10 дек 2015, 21:50

dccharacter писал(а):Стой, не вяжи пока бантиков, делай костыли

Поздно, навязал бантиков. Исходник в первом сообщении.
А давайте пиарить робофорум? Надо копирайт правильный в шапку исходника. Типа, нельзя использовать программу без упоминания робофорума, иначе помножим на ноль, потом поделим на ноль, а потом расчленим :)
Так и не победил этот "#include <SPI.h>". Если кому-то будет нужен аппаратный spi (предупреждаю, работает медленнее и занимает больше места :)), раскомментируйте "#include <SPI.h>" в ADNS_5020.ino в начале файла.
Сейчас флаги сделаны так:
Код: Выделить всёРазвернуть
При определении flg_Tiny85, устанавливается flg_software_spi и сбрасывается flg_serial_debug. В ide, соотв., нужно выбрать правильно плату.
Программный spi работает быстрее и занимает меньше памяти, лучше устанавливать flg_software_spi, для Tiny - это единственный вариант.
При отсутствии флага flg_serial_debug, программа быстро обрабатывает соотв. регистр и выдает данные на led (штатная работа принтера).
Все остальные режимы для настройки.
При установленном флаге flg_serial_debug, по serial port передаются данные:
flg_serial_debug = 1   Передача картинки для фокусировки обьектива, колич. байт = ARRAY_WIDTH * ARRAY_HEIGHT + 1 (0xff)
flg_serial_debug = 2   Для теста точности позиционирования (идея dccharacter-а). Поиск порога как в штатном режиме (важна скорость), как только сработает порог - выдача картинки в serial port
flg_serial_debug = 3   Передача в текстовом виде на терминал данных: Max_Pix, Min_Pix, Pix_Sum, Shutter
flg_serial_debug = 4   Данные перемещения мышки.


За активное участие, dccharacter-у ириску. Будет активнее - медаль с закруткой на спине дадуда.

setar писал(а):могу конечно, вообще не вопрос

Ну ок, в личке договоримся как пересечься сове с жаворонком.
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение dccharacter » 11 дек 2015, 05:09

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

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

Сообщение Dmitry__ » 11 дек 2015, 08:29

Тебе отсыпать мышей по 50рэ с Юноны?

Добавлено спустя 13 минут 11 секунд:
Утащил твою мега ссылку в первое сообщение. Но еще не курил. Добавил словесные :) схемы на тиньку и нану.
Приехали ништяки из инет магазина, лазеры на платках с 3-мя пинами интересные - готовый кронштейн.
Еще mini pro 3.3v накупил. А это значит, что моей мобильной 3-х вольтовой мышке пришел зверек писец :)
А еще взял плату с STM32F103C8T6, довольно мелкая, уже окучил блинк в линухе без всяких иде, только makefile. :Yahoo!:
Такую:
http://roboparts.ru/products/stm32f103c8t6
А этой нет в наличии :(
http://roboparts.ru/products/stm32f030f4p6
Такшта начну думать над цмос камерами по 5$...
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Пред.След.

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

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

Сейчас этот форум просматривают: Google [Bot] и гости: 8