roboforum.ru

Технический форум по робототехнике.
Текущее время: 24 ноя 2024, 00:49

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 278 ]  На страницу Пред.  1 ... 8, 9, 10, 11, 12, 13, 14 ... 19  След.
Автор Сообщение
 Заголовок сообщения: Re: Датчик касания дифференциальный ИК
СообщениеДобавлено: 12 окт 2015, 03:02 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Поковырял прошивку на выходных. Фильтр данных ацп присутствует. Фильтр скользящего среднего, ширина фильтра задается "cyclesAveragedIR", который "must be a power of 2, max 64" и равен 8. Т.е. наши 2кгц. делим на 8 = 250 герц :cry: . Ну, можно учесть более ранний отклик фильтра (фчх такого фильтра линейная), имеем около 500 герц.

Вообще, повыпиливал из прошивки сиплюсплюснутость. После изучения этой прошивки, я больше никогда не буду тем, кем был. Теперь я видел все :)

Угадайте что это?
Код:
   // Readings have been collected into all three of nearData, farData, and offData.
   // We are looking for a pullup resistor of no more than 75K on the output to indicate that we should use a digital output.
   digitalOutput = offData_sum + nearData_sum + farData_sum >= (3600UL * cyclesAveragedIR * 1024UL * 3)/(75000UL + 3600UL);


Да, это тест пина, есть подтяжка или нет :D
Т.е. подключены 3 (ТРИ) фильтра скользящего среднего для определения резистора на входе пина, при этом в прерываниях делается постоянный опрос бита разрешения (только ради этого прикола). Потом данные сравниваются с эпичным числом "(3600UL * cyclesAveragedIR * 1024UL * 3)/(75000UL + 3600UL)" и после этого принимается решение - а есть ли резистор на входе пина?
Само прерывание - в лучших традициях c++ со структурами и методами, что приводит вот к такому сохранению контекста:
Код:
  40:   1f 92          push   r1
  42:   0f 92          push   r0
  44:   0f b6          in   r0, 0x3f   ; 63
  46:   0f 92          push   r0
  48:   11 24          eor   r1, r1
  4a:   2f 93          push   r18
  4c:   3f 93          push   r19
  4e:   4f 93          push   r20
  50:   5f 93          push   r21
  52:   6f 93          push   r22
  54:   7f 93          push   r23
  56:   8f 93          push   r24
  58:   9f 93          push   r25
  5a:   af 93          push   r26
  5c:   bf 93          push   r27
  5e:   ef 93          push   r30
  60:   ff 93          push   r31

И соотв. к такому же восстановлению контекста. Т.е. если в таком прерывании больше ничего не делать то это 117кгц. А еще в прерывании есть ожидалка :shock:
Код:
   while (TCNT0 < 3 * 8) {}  // delay a little until the ADC s/h has taken effect. 3 ADC clocks should be enough, and 1 ADC clock is 8 timer 0 clocks.


Которая, кста, не делает того что подумал автор.
А еще, и еще, а потом, и к этому, а после, и в конце :)
Все, я спать...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания дифференциальный ИК
СообщениеДобавлено: 13 окт 2015, 02:18 
Не в сети

Зарегистрирован: 28 дек 2014, 02:33
Сообщения: 292
Откуда: Рязань
прог. языки: С#, JAVA
Диман... Это всяко ловчее чем брушелесики, пусть даже и код не фонтан, ну признайся ! чё уж там. 8)
Вот замер по 9 точкам без загонов, и печать слоем 100 микрон в 1 слой, фактически он его вмазал в ABS покрытие стола, что бы там ни было а оно работает, и работает нормально даже на самосборе.
Вложение:
P1010021.JPG

Вложение:
P1010022.JPG

грязный стол канеш вносит погрешность, найду прозрачный ABS обязательно попробую 50 микрон.

_________________
Printer: H-Boot cube aluminium (промежуточный вариант), Firmware: Marlin
Delta all aluminium, Firmware: Marlin
Electronics: Arduino MEGA 2560 + RAMPS 1.4


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания дифференциальный ИК
СообщениеДобавлено: 13 окт 2015, 05:56 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
barakuda62 писал(а):
и печать слоем 100 микрон в 1 слой, фактически он его вмазал в ABS покрытие стола, что бы там ни было а оно работает

ППЦ, 13 страниц доказательств, что с этим можно печатать :)
Я просил сделать тест, пока один игнор. Я не против этого датчика, если бы вы привели результаты теста, и он обеспечил точность да хоть в 3 сотки, я бы успокоился. В 0.1мм точность не интересует совсем.
Наклеить скотч, сделать несколько G30 с разным рисунком маркером на скотче. Это так трудно? На фига мне эти примеры с замерами по тцать точек? Это не тест датчика касания.

barakuda62 писал(а):
ну признайся ! чё уж там.

Признаюсь, как увижу результат теста на скотче :P

Добавлено спустя 1 час 32 минуты 44 секунды:
Ну шо? Проверил, пичалька :)

Код:
03:07:11.501 : Bed X: 7.90 Y: 14.00 Z: 2.96
03:07:11.800 : ok
03:07:11.802 : echo:endstops hit:  Z:2.97
03:07:53.895 : N334 G30 *62
03:07:56.022 : Bed X: 7.90 Y: 14.00 Z: 2.57
03:07:56.323 : ok
03:07:56.323 : echo:endstops hit:  Z:2.57

2.96 - чистый белый участок скотча. 2.57 - черточка синим маркером. О.4мм. толщины, кажись много для такой черточки. Скотч - удачной покупки :ROFL:
Вложение:
IMG_3792.JPG
IMG_3792.JPG [ 1.82 МиБ | Просмотров: 1989 ]


Добавлено спустя 1 час 32 минуты 14 секунд:
И еще один тестик. Давно хотел проверить этот датчик на горящей спичке. :) Спичек не нашел, взял галогенку 40ватт. Поверхность не менял, просто вкл/выкл лампа:
Код:
04:40:43.554 : N104 G30 *63
04:40:46.409 : Bed X: 0.00 Y: -3.00 Z: -10.49
04:40:50.778 : N108 G30 *51
04:40:53.613 : Bed X: 0.00 Y: -3.00 Z: -10.48
04:40:59.219 : N111 G30 *59
04:41:02.419 : Bed X: 0.00 Y: -3.00 Z: -10.76
04:41:06.594 : N115 G30 *63
04:41:09.880 : Bed X: 0.00 Y: -3.00 Z: -10.75

Да и по морганию светодиода все понятно, без движения по "Z". Выставляем уровень так, чтоб светодиод мигал. Включаем лампу накаливания и направляем на датчик. Светодиод полностью зажигается, показывая что он все видит :D
Кста, barakuda62, а картинка-то у тебя не очень. Буква "A" - хлам. Надеюсь это просирающаяся голова, а не результат датчика :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания дифференциальный ИК
СообщениеДобавлено: 13 окт 2015, 12:49 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10989
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
куда дальше двигаемся ?
держу в руках оптическую голову от cdrom, думаю может ее попробуем прикрутить ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания дифференциальный ИК
СообщениеДобавлено: 13 окт 2015, 14:31 
Не в сети

Зарегистрирован: 28 дек 2014, 02:33
Сообщения: 292
Откуда: Рязань
прог. языки: С#, JAVA
setar писал(а):
куда дальше двигаемся ?
держу в руках оптическую голову от cdrom, думаю может ее попробуем прикрутить ?

Если делать тесты как Диман, на разных да к тому же разноцветных столах, то любая оптика тут не пойдёт, ведь ясно же что разная поверхность даст разное отражение.
Тут надо пояснить, работаем с одной поверхностью.

_________________
Printer: H-Boot cube aluminium (промежуточный вариант), Firmware: Marlin
Delta all aluminium, Firmware: Marlin
Electronics: Arduino MEGA 2560 + RAMPS 1.4


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания дифференциальный ИК
СообщениеДобавлено: 13 окт 2015, 15:21 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10989
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
не согласен: лазерный дальномер на принципе триангуляции работать будет на любой поверхности.
лазер \ _поверхность_ / фотодатчик
или еще круче
лазер \ _поверхность_ / линейная матрица ПЗС

Добавлено спустя 2 минуты 23 секунды:
у меня вообще мысль крамольная :
хочу чтобы датчик от повехности воды работал - для построения матрицы коррекции базовой оси (той но которой X бегает)
как показывают мои замеры она чато тоже не идеальна, до 0.1 прогибы бывают

Добавлено спустя 34 секунды:
ставим на стол емкость плоскую, заливаем водой и калибруем базовую ось.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания дифференциальный ИК
СообщениеДобавлено: 13 окт 2015, 15:37 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
barakuda62 писал(а):
ведь ясно же что разная поверхность даст разное отражение.
Тут надо пояснить, работаем с одной поверхностью.

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

Это готовый датчик уровня, но пипец какой сложный, лучше реле :)
В сидиромных головах есть зачетная микросхема - координатный фотодетектор.
http://www.datasheetlib.com/datasheet/2 ... #datasheet
Вощем впрягаться в "Focus servo : astigmatic method" :o

setar писал(а):
куда дальше двигаемся ?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания дифференциальный ИК
СообщениеДобавлено: 13 окт 2015, 16:09 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
setar писал(а):
Добавлено спустя 2 минуты 23 секунды:
у меня вообще мысль крамольная :
хочу чтобы датчик от повехности воды работал - для построения матрицы коррекции базовой оси (той но которой X бегает)
как показывают мои замеры она чато тоже не идеальна, до 0.1 прогибы бывают

Добавлено спустя 34 секунды:
ставим на стол емкость плоскую, заливаем водой и калибруем базовую ось.

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

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания дифференциальный ИК
СообщениеДобавлено: 13 окт 2015, 16:15 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10989
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
тут ключевая мысль не в горизонтальности а в линейности.
хотя это уже погоня за сотками


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания дифференциальный ИК
СообщениеДобавлено: 13 окт 2015, 16:26 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Вах-вах-вах
http://www.diyouware.com/DiyoPCB-MKI
И начальная страница там интересная


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания дифференциальный ИК
СообщениеДобавлено: 13 окт 2015, 21:08 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания дифференциальный ИК
СообщениеДобавлено: 13 окт 2015, 22:58 
Не в сети

Зарегистрирован: 27 май 2014, 13:35
Сообщения: 771
Откуда: London. UK
Skype: pioneerko
ФИО: Александр
У меня имеется датчик купленный у автора.
Вообщем кто желает тесты могу сделать их,
распишите алгоритм теста который хотите увидеть, ПОДРОБНО что куда и как. постараюсь все по пунктам описать без хорошо или плохо только чистые цифры.

_________________
Косель мини, плата управления DUET на reprap firmware от DC42, E3Dv6
Распечатаю на заказ.
Вложение:
Kossel config E3D.h


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания дифференциальный ИК
СообщениеДобавлено: 13 окт 2015, 23:19 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Наклеить на стол кусок белого скотча. Сделать над этим местом 3 раза G30 (для статистики). Маркером начертить короткий штрих (прямо под датчиком). Сделать еще 3 раза G30. Еще сделать один штрих маркером. Еще 3 теста G30. Лог данных скинуть на форум. Можно провести несколько таких тестов. Если штрихи удачно попадут между фокусом светодиодов, то можно получить очень неожиданный результат.
Примерно как у меня:
download/file.php?id=38548&t=1
Второй тест - проще:
Делаем G30 над белой поверхностью. Направляем лампу накаливания на стол. Делаем G30. И так 3 раза. Смотрим данные координаты "z". Лог на форум.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания дифференциальный ИК
СообщениеДобавлено: 14 окт 2015, 21:14 
Не в сети

Зарегистрирован: 15 янв 2014, 17:52
Сообщения: 31
Откуда: Нижний Новгород
Спаял и я себе для пробы датчик, диоды и транзистор вытащил из оптопары.
Расположение диодов на плате отличается от авторского варианта, D2 стоит ближе к приемнику, сделал как у barakuda62.
Первые испытания руками показали, что на черной поверхности датчик срабатывает на 10мм, на белой около 20мм.

Вложение:
опто.jpg
опто.jpg [ 58.1 КиБ | Просмотров: 1992 ]


Вложение:
плата.jpg
плата.jpg [ 82.3 КиБ | Просмотров: 1993 ]

_________________
http://www.de-si-gn.com


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания дифференциальный ИК
СообщениеДобавлено: 15 окт 2015, 00:40 
Не в сети

Зарегистрирован: 27 май 2014, 13:35
Сообщения: 771
Откуда: London. UK
Skype: pioneerko
ФИО: Александр
Dmitry__ писал(а):
Наклеить на стол кусок белого скотча. Сделать над этим местом 3 раза G30 (для статистики). Маркером начертить короткий штрих (прямо под датчиком). Сделать еще 3 раза G30. Еще сделать один штрих маркером. Еще 3 теста G30. Лог данных скинуть на форум. Можно провести несколько таких тестов. Если штрихи удачно попадут между фокусом светодиодов, то можно получить очень неожиданный результат.
Примерно как у меня:
download/file.php?id=38548&t=1
Второй тест - проще:
Делаем G30 над белой поверхностью. Направляем лампу накаливания на стол. Делаем G30. И так 3 раза. Смотрим данные координаты "z". Лог на форум.


Вообщем незнаю делаю правильно или нет, у меня при срабатывании датчика показывает разницу между соплом и точкой срабатывания (у меня выставленно 2.1, т.е. если опустить на 2.1 сопло вниз то оно будет в 0)
Это касаемо данных,

сделал измерения, каждый тест повторял 3 раза

тест 1
печатная поверхность билдтак цвет черный
все ровно высота срабатывания 2.1, опустил проверил зазор сопла в 0 все отлично.
тест 2
использовал листок для записок желтого цвета
высота выставилась с офсетом на листок т.е. те же 2.1 + толщина листа
тест 3
розовая прозрачная линейка попалась под руку
датчик сработал и на ней без проблем.

тест 4
прозрачная крышка похожая на крышку от сд кейса
датчик показал 2.1 в реале получилось 2


вообщем далее судите сами, если нужно чтото еще проверить пишите.

_________________
Косель мини, плата управления DUET на reprap firmware от DC42, E3Dv6
Распечатаю на заказ.
Вложение:
Kossel config E3D.h


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 278 ]  На страницу Пред.  1 ... 8, 9, 10, 11, 12, 13, 14 ... 19  След.

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO