Технический форум по робототехнике.
linvinus » 05 фев 2016, 22:11
adns9800 у меня тоже есть

и не из мышки, из мышки я его выпаять не смог, отломал дорожки.
ладно я вас больше не отвлекаю
Пример отладки в geany

Dmitry__ » 05 фев 2016, 22:27
linvinus писал(а):Пример отладки в geany
Кхе, я тож на лубунте сижу

setar » 07 фев 2016, 00:55
сделал коммит в репозитарий новых дефайнов + FastPWM для регулировки мощности лазера (хотя управление в базового алгоритме закоментил - пока снижает точность).
так же добавил солидворкс модель своего корпуса для digispark
Добавлено спустя 9 минут 30 секунд:
Да, еще в программу визуализации передается на один байт больше : добавил значение мощности лазера
linvinus » 07 фев 2016, 01:13
- Код: Выделить всё • Развернуть
#define PIN_IN(PIN) GET_IN(PIN) & (1<<GET_PIN(PIN))
знак равно пропущен? гоню, имя неудачное
есть PIN_OUTPUT, PIN_INPUT а что значит PIN_IN непонятно (SET? GET?), может PIN_GET() ?
Ещё все константы например тут
https://github.com/setar/RF3Sens/blob/m ... DNS_2610.hя бы переименовал в верхний регистр и добавил приставку ADNS_
delayMicroseconds(delay_tSRAD); delay_tSRAD очень похожа на переменную
пауза 100мкс при чтении это эпик фейл, с такой паузой картинка грузится 35мс это 28 кадров в сек в лучшем случае.
Dmitry__ На каком расстоянии с лазерной оптикой у вас точка от лазера в фокусе сенсора?
хочу понять какое фокусное расстояние у линзы из лазерных модулей.
setar » 07 фев 2016, 02:13
может тогда лучше PIN_READ ?
про константы, да, большими будет понятнее
delayMicroseconds(delay_tSRAD); delay_tSRAD очень похожа на переменную
пауза 100мкс при чтении это эпик фейл, с такой паузой картинка грузится 35мс это 28 кадров в сек в лучшем случае.
видишь варианты как уйти от этой паузы?
фокусное расстояние у линзы из лезерных молулей диаметром 6мм и длиной 10мм порядка 5мм, лень собирать приспособу для точного измерения.
я переделываю их так:
то есть его родную линзу выношу наружу, приклеивая суперклеем (нужно навостриться чтобы оптическая ось хотя бы примерно по центру была) при такой сборке фокусное расстояние луча получается в 25мм от внешнего среза линзы.
для такого же расстояния детектирования , перед окном сенсора я помещаю оптику от еще одного модуля, уже без вынесения линзы наружу но с удаленной платой лазера. линзой к сенсору, бывшим посадочным местом платы лазера - наружу.
между срезом трубки оптики и самим сенсором порядка 3мм , при этом получается фокус на 25мм.
linvinus » 07 фев 2016, 12:20
видишь варианты как уйти от этой паузы?
ничего нового не скажу, чип медленный.
я обдумывал вариант со софтварным сбросом, т.е. грузить не всю картинку, но быстрее не получается.
получается в 25мм от внешнего среза линзы.
спасибо.
У меня ADNS-3080 с линзой 4.2mm М12 получалось на расстоянии 10мм получать достаточное количество features чтобы датчик отрабатывал перемещение практически на любой поверхности, лучше если поверхность с рисунком, например ткань.
Вот черная кошка а на заднем фоне окно, освещение естественное, объектив настроен на бесконечность.
В таком режиме лазер хорошо будет виден на большом расстоянии, хотя на большом (несколько сантиметров) расстоянии точность упадёт.
Добавлено спустя 7 минут 7 секунд:Меня вот такой подход интересует
http://specklesense.media.mit.eduточность намного выше
Dmitry__ » 07 фев 2016, 15:51
linvinus, ты на аватарку повесил картинку с мышиного датчика?

Вообще шикарные картинки этих 30х30 пзс. Просто вижу очередное улучшение разрешения датчика...
linvinus » 07 фев 2016, 17:16
да
оригинал выглядит так

- adns3080self2.png (7.46 КиБ) Просмотров: 2933
ales2k » 08 фев 2016, 12:10
Вчера присоединился к обществу препарирующих мыши.
Сперва попробовал сделать без матрицы, датчик на фотодиоде со светофильтром и длинным каналом. Работает, но точность даже без установки на принтер очень плохая.
Затем расковырял старого мыша, достал 12085(ADNS2620) сваял схемку на Nano. Залил ваш скетч с github, подогнал конфиги - нифига не пашет.
Взял библиотеку с форума Arduino.org - все завелось сразу. Даже картинка через родную линзу мыши видна.
Позже наткнулся
http://geektimes.ru/post/256950/. Тоже работает.
Где-то косяк в коде под Нано. Если интересно могу конфиг прислать.
Осталось прикрутить оптику. Лазер взял себе с линейкой, а не точкой, по моему так будет удобнее, после настройки дает очень четкий узкий штришок.
setar » 08 фев 2016, 12:28
дык ясно где косяк

ты подключение к нано как делал ?
я про то что там подключение толком не документировано еще, спросил бы хоть.
Добавлено спустя 7 минут 9 секунд:у меня из новостей пока хороших нету,
PWM модуляция лазера постоянно ведет к ухудшению результата,
графики показывает что нужно анализировать squal при MaxPixel находящемся в максимуме:
однако значение squal скачет как бешеное, пробую прикрутить анализ среднескользящими на предмет прохождения максимума.
пока результаты не точные, лучше чем 0.05 не получается (пятно останавливается в произвольном месте матрицы, где ему показалось пошло ухудшение качества поверхности).
пока самым точным (но зависимым от цвета поверхности) остается факт появления пятна в поле зрения по MaxPixel
ales2k » 08 фев 2016, 12:58
Напряжение на постоянку +5v, не парился с включением с ноги, мне это не нужно.
SCL - D12
SDA - D10
Как в конфиге.
Debug 1(пробовал разные)
Serial аппаратный (просто текст выдает, то есть рабочий)
Тип Nano - компиляет, значит переменные установились как надо.
Мож чего недопонял?
Добавлено спустя 4 минуты 36 секунд:
>>>> пока самым точным (но зависимым от цвета поверхности) остается факт появления пятна в поле зрения по MaxPixel
Тогда лазер с черточкой будет лучше пятна.
setar » 08 фев 2016, 13:02
попробуй так:
RF3Sens/doc
ArduinoNano_wPower_pins.txt
- Код: Выделить всё • Развернуть
режим питания сенсора и лазера с ног микроконтроллера (подаем питание на нужные ноги)
--- сенсор ADNS-2610 ---.
OSC_IN (1 pin) : на кварц 24MHz
OSC_OUT (2 pin) : на кварц 24MHz
MOSI(3 pin) : PB5 D13
SCK (4 pin) : PB2 D10
GND (6 pin) : PB4 D12
VDD (7 pin) : PB3 D11
REFA (8 pin) : через конденсатор 2.2МКФ на землю (6 pin)
--- лазерный диод 5mW ---
Laser VCC : PD2 D2
Laser GND : через сопротивление 100Ом на землю.
--- выход ---
MCU POWER (sensor +5V): VCC
MCU GND (sensor GND) : GND
led (sensor signal) : PC5 A5
в конфиге плата должна быть выбрана как #define ARDUINON_NANO_wPOWER
Добавлено спустя 2 минуты 12 секунд:ales2k писал(а):Тогда лазер с черточкой будет лучше пятна.
не угадал - у него мощь размазана (на черном не сработает и воткнется в стол),
кроме того его не сфокусируешь а ширина линии по сравнению с фокусированной точкой - громадна
ales2k » 08 фев 2016, 13:34
MOSI(3 pin) : PB5 D13 /// А в конфиге у меня была PB4 D12 написана, туда и подключал. наверное в этом и дело. Вечерком попробую.
>>ales2k писал(а):
>>Тогда лазер с черточкой будет лучше пятна.
>>не угадал - у него мощь размазана (на черном не сработает и воткнется в стол),
По моему мощи там на 2 порядка больше чем надо, даже в 5mWt лазере, не попортилась бы матрица...
>>кроме того его не сфокусируешь а ширина линии по сравнению с фокусированной точкой - громадна
Так вот, после фокусировки получается штришок - типа "-" толщиной в волос. и его будет удобно ловить как сверх яркую горизонтальную линию на матрице или как MaxPixel (он сразу засветит линейку) будет удобнее.
Короче вопрос эксперимента, с оптикой только начал возиться. У меня есть лазеры и с линией и с точкой, оба попробую.
setar » 08 фев 2016, 14:09
в процессе разработки было два варианта подключения к arduino nano(полистайте - выше фотки встречаются)
в первом варианте подключение было с рассчётом на аппаратный SPI, а потом когда от него отказались, я решил что удобнее датчик монтировать прямо на плате питая ноги с контроллера :
forum107/topic15929-360.html#p343641
kindrat » 08 фев 2016, 14:11
Я к нано 2620 тоже подключил, все работает (пины только свои указывал). Но руки пока не доходят дальше датчик собирать, на данный момент только изображение с сенсора получаю.
Прошивка с софтовым SPI
Последний раз редактировалось
kindrat 08 фев 2016, 14:12, всего редактировалось 1 раз.