roboforum.ru

Технический форум по робототехнике.
Текущее время: 06 май 2025, 22:32

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




Начать новую тему Ответить на тему  [ Сообщений: 1502 ]  На страницу Пред.  1 ... 25, 26, 27, 28, 29, 30, 31 ... 101  След.
Автор Сообщение
 Заголовок сообщения: Re: Датчик касания оптический, триангуляция
СообщениеДобавлено: 28 дек 2015, 18:13 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10990
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
в одну кучу смешали аппаратный SPI и аппаратный Serial

для того чтобы использовать аппаратный порт для дебага и software spi для сенсора пришлось вводить flg_software_serial

и почему запись в порт не вынести в отдельную процедуру, которая в зависимости от аппаратного и программного порта сама решала как писать ( Serial.write или MyDbgSerial.write)

Добавлено спустя 7 минут 11 секунд:
получил отклик от ADNS-2610 + Arduino nano с питанием через ноги контроллера
вопрос: как устанавливать пороги и как снимать графики которые вы смотрите ?
P.S. сенсор без оптики совсем


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания оптический, триангуляция
СообщениеДобавлено: 28 дек 2015, 18:46 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
setar писал(а):
в одну кучу смешали аппаратный SPI и аппаратный Serial

для того чтобы использовать аппаратный порт для дебага и software spi для сенсора пришлось вводить flg_software_serial

Ну не ругайся :)
Аппаратный spi идет на помойку, для него нужен +1 лишний пин: sdi, sdo, не может переназначаться на другие пины и он работает медленнее программного, flg_software_spi всегда должен быть определен. Просто за исходник моих исходников был взят код с аппаратным spi и потом долго оптимизировался и в результате переделан под программный spi. Надо выпилить аппаратный spi, чтоб вопросов не возникало.
setar писал(а):
и почему запись в порт не вынести в отдельную процедуру, которая в зависимости от аппаратного и программного порта сама решала как писать ( Serial.write или MyDbgSerial.write)

dccharacter уже наступал на эти грабли, потому что отдельная процедура - это лишние такты на call и return. А скорость работы нужна высокая. Чем не устраивают pin_SDIO_LOW; ? Отсутствием скобочек? :cry:
setar писал(а):
вопрос: как устанавливать пороги и как снимать графики которые вы смотрите ?

Порог отдефайнен в Config.h, но реально используется только "#define ConstMax" в ветке: "#ifndef flg_serial_debug". Менять порог в соотв. месте своего сенсора. Для аднс2610 это тут:
Код:
#ifdef flg_ADNS_type_ADNS_2610

   #define ARRAY_WIDTH         18
   #define ARRAY_HEIGHT      18
   
   //#define Motion         0x02
   #define Delta_X            0x03
   #define Delta_Y            0x02
   #define squal            0x04
   #define Shutter_Upper      0x09
   #define Shutter_Lower      0x0a
   #define Maximum_Pixel      0x05
   #define Pixel_Sum         0x07
   #define Minimum_Pixel      0x06
   #define Pixel_Grab         0x08
   #define   Mask_pixel_value   0x3f
   #define   Pixel_data_valid   0x40
   #define   delay_tSWW         100
   #define   delay_tSRAD         100

   #define   ConstMax         59
   #define   ConstMin         3
   #define   ConstPixMin         50
   #define   ConstPixMax         70

#endif

Другие порогои в программе не используются, т.к. еще не определились с алгоритмами.
Графики строить по текстовым логам режимов:
Код:
flg_serial_debug = 3   Передача в текстовом виде на терминал данных: Max_Pix, Min_Pix, Pix_Sum, Shutter
flg_serial_debug = 4   Как 3-й режим, но по разрешению сигнала pin_TRIG (лог точно ограничен сигналом z_probe)

Т.е. компилишь прошивку с нужным режимом, запускаешь терминалку, в терминалке включаешь запись лога в файл. А потом импорт файла в электр. таблицы. А там уже постройка графиков.

Добавлено спустя 1 минуту 17 секунд:
setar писал(а):
P.S. сенсор без оптики совсем

Поперечные полосы - освещение лампой дневного света? :)


Последний раз редактировалось Dmitry__ 28 дек 2015, 18:58, всего редактировалось 1 раз.

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания оптический, триангуляция
СообщениеДобавлено: 28 дек 2015, 18:59 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Ой, я говорил про flg_software_spi, щаз подправлю предыдущее сообшение...

Добавлено спустя 2 минуты 8 секунд:
Все, я запутался, что вы там меняете, потом расскажете :)


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

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


Вложения:
sensor_ADNS.zip [4.97 КиБ]
Скачиваний: 0
main.zip [8.15 КиБ]
Скачиваний: 0

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания оптический, триангуляция
СообщениеДобавлено: 28 дек 2015, 19:08 
Не в сети
Аватара пользователя

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
Dmitry__ писал(а):
потому что отдельная процедура - это лишние такты на call и return.

А inline в АВР нету что-ли?
https://en.wikipedia.org/wiki/Inline_function


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

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
dccharacter писал(а):
setar, лови проект с выводом параметров при визуализации (всякие макс пикселы под картинкой показывает)

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


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

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
setar писал(а):
да, лампа дневного света.
только не понятно почему диагональными полосами.

Частота модуляции света ~ 2.5 частоты сканирования строк. Поэтому наискось, по 2 полосы на строку.


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

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Теперь, как снимать графики
Включаешь визуализацию с параметрами, подводишь датчик к столу, чтобы пятно пока еще не начало попадать в поле зрения. Макс пиксел должен начать чуть светлеть, шаттер должень начать чуть проваливаться. Запоминаешь координату.
Дальше ведешь датчик ближе к столу, чтобы пятно прошло все поле зрения и вышло из него - макс пиксел должен опять упасть к 50-ти примерно, шаттер почти вернуться в изначальное состояние. Смотришь координату, вычисляешь полный ход датчика (у меня 5мм примерно). Делаешь G92 Z0 для установки координаты в ноль.
Код:
G1 F2000 Z5   ;travel to initial position (absolute) <- здесь z устанавливаешь равным полному ходу датчика
G4 S1      ;sleep for 1 sec
M42 P4 S255   ;set trigger pin 4 HIGH (servo 4 signal pin)
G1 F60 Z0   ;travel to end position slowly
M400      ;wait for previous command to complete
M42 P4 S0   ;set trigger pin LOW

Этот код выдает высокий сигнал пока движется голова сверху вниз. Сигнал выдается на ногу D4 - это сигнальная нога четвертой сервы на рампсе. Этот вывод соединяем с TRIGGER_PIN на датчике.
Дальше запускаешь gcode и ловишь данные в компорте. Из них строишь графики. Я строю в экселе...

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


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

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
elmot писал(а):
А inline в АВР нету что-ли?

Да там одна строка на обработку порта, компилирующаяся в одну-две команды асма, меня не напрягает вообще. Проблемы только у читателей кода :)
Код:
#define   pin_SDIO_Mode_INPUT      pin_SDIO_DDR      &=~(1<<pin_SDIO_bit)
#define   pin_SDIO_Mode_OUTPUT   pin_SDIO_DDR      |= (1<<pin_SDIO_bit)
#define   pin_SDIO_LOW         pin_SDIO_PORT      &=~(1<<pin_SDIO_bit)
#define   pin_SDIO_HIGH         pin_SDIO_PORT      |= (1<<pin_SDIO_bit)
#define   pin_SDIO_IN            pin_SDIO_PORT_IN   &  (1<<pin_SDIO_bit)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания оптический, триангуляция
СообщениеДобавлено: 28 дек 2015, 22:40 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Без фонаря:
Код:
13:25:16.404 : 1 of 10   z: 3.219985
13:25:32.126 : 2 of 10   z: 3.232750
13:25:47.880 : 3 of 10   z: 3.218984
13:26:03.618 : 4 of 10   z: 3.224991
13:26:19.389 : 5 of 10   z: 3.217232
13:26:34.950 : 6 of 10   z: 3.220486
13:26:50.708 : 7 of 10   z: 3.213227
13:27:06.467 : 8 of 10   z: 3.211475
13:27:22.238 : 9 of 10   z: 3.211475
13:27:38.004 : 10 of 10   z: 3.212977
13:27:43.223 : Mean: 3.218358
13:27:43.223 : Standard Deviation: 0.006403
13:27:43.227 : echo:endstops hit:  Z:3.21


С фонарем (первые 7 измерений)
Код:
13:35:13.683 : 1 of 10   z: 3.360148
13:35:29.433 : 2 of 10   z: 3.312092
13:35:45.142 : 3 of 10   z: 3.404699
13:36:00.885 : 4 of 10   z: 3.355643
13:36:16.504 : 5 of 10   z: 3.392185
13:36:32.238 : 6 of 10   z: 3.247767
13:36:47.808 : 7 of 10   z: 3.411707
13:37:03.586 : 8 of 10   z: 3.207971
13:37:19.164 : 9 of 10   z: 3.209974
13:37:35.033 : 10 of 10   z: 3.214979
13:37:40.298 : Mean: 3.311717
13:37:40.302 : Standard Deviation: 0.079973


Добавлено спустя 1 минуту 10 секунд:
К сожалению иногда вылетают вот такие штуки, пока не отловил, что это:
Код:
13:22:35.265 : 6 of 10   z: 3.216982
13:22:48.094 : 7 of 10   z: 5.445817
13:23:03.139 : 8 of 10   z: 3.220486

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


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

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Че-т загнулась тема...

Мои последние результаты

Стекло
Код:
20:05:05.963 : 1 of 10   z: -5.435054
20:05:21.758 : 2 of 10   z: -5.441562
20:05:37.558 : 3 of 10   z: -5.478355
20:05:53.357 : 4 of 10   z: -5.453826
20:06:09.144 : 5 of 10   z: -5.450823
20:06:24.972 : 6 of 10   z: -5.485113
20:06:40.780 : 7 of 10   z: -5.460334
20:06:56.521 : 8 of 10   z: -5.444816
20:07:12.349 : 9 of 10   z: -5.455328
20:07:28.137 : 10 of 10   z: -5.424793
20:07:33.397 : Mean: -5.453000
20:07:33.401 : Standard Deviation: 0.017476
20:07:33.401 : echo:endstops hit:  Z:-5.42


Белая бумага, наклееная на то же стекло, координаты те же
Код:
20:10:01.530 : 1 of 10   z: -4.736995
20:10:17.178 : 2 of 10   z: -4.741750
20:10:32.879 : 3 of 10   z: -4.747257
20:10:48.551 : 4 of 10   z: -4.746005
20:11:04.233 : 5 of 10   z: -4.746506
20:11:19.925 : 6 of 10   z: -4.731238
20:11:35.588 : 7 of 10   z: -4.734992
20:11:51.257 : 8 of 10   z: -4.731488
20:12:06.926 : 9 of 10   z: -4.740499
20:12:22.614 : 10 of 10   z: -4.742752
20:12:27.829 : Mean: -4.739948
20:12:27.829 : Standard Deviation: 0.005703
20:12:27.832 : echo:endstops hit:  Z:-4.74


Черная бумага рядом, координаты те же
Код:
20:13:44.172 : 1 of 10   z: -4.936977
20:13:59.914 : 2 of 10   z: -4.938729
20:14:15.606 : 3 of 10   z: -4.884165
20:14:31.257 : 4 of 10   z: -4.885167
20:14:46.918 : 5 of 10   z: -4.885167
20:15:02.668 : 6 of 10   z: -4.922710
20:15:18.398 : 7 of 10   z: -4.933473
20:15:34.128 : 8 of 10   z: -4.927216
20:15:49.817 : 9 of 10   z: -4.883915
20:16:05.559 : 10 of 10   z: -4.946488
20:16:10.802 : Mean: -4.914401
20:16:10.802 : Standard Deviation: 0.025062
20:16:10.806 : echo:endstops hit:  Z:-4.95


Матовый полупрозрачный скотч рядом, координаты те же
Код:
20:17:02.956 : 1 of 10   z: -5.198029
20:17:18.653 : 2 of 10   z: -5.200532
20:17:34.354 : 3 of 10   z: -5.195527
20:17:50.043 : 4 of 10   z: -5.193524
20:18:05.727 : 5 of 10   z: -5.183513
20:18:21.392 : 6 of 10   z: -5.187767
20:18:37.081 : 7 of 10   z: -5.194526
20:18:52.772 : 8 of 10   z: -5.196027
20:19:08.457 : 9 of 10   z: -5.188018
20:19:24.159 : 10 of 10   z: -5.191021
20:19:29.378 : Mean: -5.192849
20:19:29.378 : Standard Deviation: 0.004961
20:19:29.378 : echo:endstops hit:  Z:-5.19


Добавлено спустя 56 секунд:
Алгоритм - поиск минимума(shutter - squal)

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания оптический, триангуляция
СообщениеДобавлено: 29 дек 2015, 06:44 
Не в сети
Аватара пользователя

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

Работаем, зацени визуализатор. Только удали передачу лишнего байта в исходниках датчика. Т.е. везде "+1 +6" надо заменить на "+6"
Визуализатор теперь не надо компилить при изменении конфигурации датчика. Смена скорости порта делается в программе, а также сама определяет колич. байт в потоке и выставляет нужный размер поля пзс.

Добавлено спустя 8 минут 52 секунды:
Менять скорость в визуализаторе можно на ходу. При нажатии "старт" полностью переинициализируется порт. Ну в линухе так, как в ваших вендах - хз, кста расскажите.

Исходник датчика тоже перезалил.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания оптический, триангуляция
СообщениеДобавлено: 29 дек 2015, 07:14 
Не в сети
Аватара пользователя

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

Добавлено спустя 11 минут 23 секунды:
Ээээ, ну заценил :-) Я уже неделю с таким работаю :-)
Только у тебя картинка сильнее скачет (строки съезжают на пиксел)

Добавлено спустя 37 секунд:
Порт реконфигурится в винде нормально

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


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

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

Рано еще, мы чайники :)

dccharacter писал(а):
Ээээ, ну заценил Я уже неделю с таким работаю
Только у тебя картинка сильнее скачет (строки съезжают на пиксел)

Тут главное что перекомпилировать не надо, один ехе на все.

Сделал картинки на adns2610, лазер слабый, shutter только на белой поверх. работает.

Белый, ход 3мм:
Вложение:
belyj_3mm.jpg
belyj_3mm.jpg [ 75.71 КиБ | Просмотров: 1715 ]

Белый, ход 7мм:
Вложение:
belyj_7mm.jpg
belyj_7mm.jpg [ 89.27 КиБ | Просмотров: 1720 ]

маркер, ход 3мм:
Вложение:
marker_3mm.jpg
marker_3mm.jpg [ 63.33 КиБ | Просмотров: 1719 ]

маркер, ход 7мм:
Вложение:
marker_7mm.jpg
marker_7mm.jpg [ 60.81 КиБ | Просмотров: 1721 ]

стекло, ход 3мм, дикий график за основным - сигнал от нижн. повех. Можно прямо посчитать толщину стекла, горб от основного поля около 2-х мм. От начала горба осн. поля до начала горба от нижнего слоя = 4мм :)
Вложение:
steklo_3mm.jpg
steklo_3mm.jpg [ 74.75 КиБ | Просмотров: 1723 ]

стекло, ход 7мм:
Вложение:
steklo_7mm.jpg
steklo_7mm.jpg [ 72.13 КиБ | Просмотров: 1720 ]

Ну что сказать? картинки абсолютно однозначные, видно почему на белой повертх. получается +0.17mm. Можно похимичить еще с мощностью лазера, но это если делать абсолютно всеядный датчик. Если использовать только один материал стола, то можно тупо подобрать лазер.
Я спать...

Добавлено спустя 5 минут 12 секунд:
Да, squal нагло показывает центр поля :shock:


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 1502 ]  На страницу Пред.  1 ... 25, 26, 27, 28, 29, 30, 31 ... 101  След.

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


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

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


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

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