roboforum.ru

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


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

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

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

Сообщение dccharacter » 31 дек 2015, 01:53

Вау, а вот это уже интересно - рузница между белой и черной бумагой всего 0.03, причем она может быть вполне из-за того, что это разные куски на скотче, выгнуты, наклон стола и т.д.
Шума только много. Иногда ошибка по 1.5мм на измерении из-за шума.
Код: Выделить всёРазвернуть
Черная бумага:
16:40:46.324 : 1 of 10   z: -3.286062 <- шум
16:40:58.612 : 2 of 10   z: -3.369158
16:41:10.946 : 3 of 10   z: -3.363151
16:41:23.255 : 4 of 10   z: -3.368407
16:41:35.562 : 5 of 10   z: -3.365404
16:41:47.890 : 6 of 10   z: -3.375415
16:42:00.217 : 7 of 10   z: -3.368407
16:42:12.537 : 8 of 10   z: -3.366655
16:42:24.827 : 9 of 10   z: -3.357394
16:42:37.147 : 10 of 10   z: -3.369659
16:42:41.936 : Mean: -3.358971
16:42:41.946 : Standard Deviation: 0.024704

Белая бумага:
16:43:37.135 : 1 of 10   z: -3.166423 <- шум
16:43:49.412 : 2 of 10   z: -3.144147 <- шум
16:44:01.890 : 3 of 10   z: -3.326108
16:44:14.352 : 4 of 10   z: -3.336871
16:44:26.729 : 5 of 10   z: -3.326359
16:44:39.099 : 6 of 10   z: -3.323105
16:44:51.533 : 7 of 10   z: -3.333867
16:45:03.979 : 8 of 10   z: -3.328361
16:45:16.332 : 9 of 10   z: -3.320852
16:45:28.699 : 10 of 10   z: -3.330363
16:45:33.515 : Mean: -3.293646
16:45:33.515 : Standard Deviation: 0.069503


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

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

Сообщение setar » 31 дек 2015, 02:41

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

репозитарий https://github.com/setar/RF3Sens
(Дима, пропиши его в первый пост плиз)

Почему не собирается я не понял, видимо порядок подключения инклудов не линейный (если читать код по порядку то вроде уже должно быть все определено).

Пробелы в коде сделал умышленно, так не съезжает разметка ни в форточках ни под маком ни в линухах,
а табуляция форматируется по разному.

Андрей, вопрос - ты многие дефайны в конфиге в начало строки посдвигал - это правило какое то? или так получилось
вроде когда они пробелами отбиты от условий их вставки удобнее читается

добавил все новые предложения Андрея по использованию inline
борду ардуино нано разделил на два варинта: классический и с питанием через mcu

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

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

Сообщение dccharacter » 31 дек 2015, 11:12

setar писал(а):Андрей, вопрос - ты многие дефайны в конфиге в начало строки посдвигал - это правило какое то? или так получилось
вроде когда они пробелами отбиты от условий их вставки удобнее читается

Это не я, это вижуал студио :-)

Добавлено спустя 1 минуту 12 секунд:
setar писал(а):объясните что делает TRIGGER_PIN ? (просто дублирует индикаторный led срабатывания ?)

Это вход. В режиме построения графиков пока он высокий, в порт сыпятся параметры. Когда опускается - тишина.

Добавлено спустя 28 минут 6 секунд:
Курю rebase
https://git-scm.com/book/en/v2/Git-Branching-Rebasing

Добавлено спустя 19 минут 3 секунды:
http://stackoverflow.com/questions/2316 ... -tabs?lq=1

Добавлено спустя 1 час 50 минут 51 секунду:
Под мое железо собирается, но появился непонятный баг. КОгда посылаем картинку на комп, когда пятно в поле зрения все ОК, картинка отличная и все хорошо. Но когда поле зрения темнеет, вместо картинки появляется просто регулярный снег. И, судя по всему, никакой разницы, кроме использования инлайна, нет. :-(

Добавлено спустя 1 минуту 15 секунд:
Кстати, для сохранения своей конфигурации, я сделал ветку config, сделал там все изменения и сделал коммит. Теперь если мастер обновляется, я собираюсь делать просто cherry-pick этого коммита из конфига. Это правильно?

Добавлено спустя 1 час 26 минут 58 секунд:
git это *№^*#$$%^#$$!!!!!!!!!

Добавлено спустя 29 минут 51 секунду:
уф, вашу ж мать

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


Добавлено спустя 54 минуты 48 секунд:
https://help.github.com/articles/using-pull-requests/
Так что, не клонировать, а форкать надо что ли репу, чтобы что-то менять?

Добавлено спустя 53 минуты 34 секунды:
remote: Permission to setar/RF3Sens.git denied to dccharacter.
fatal: unable to access 'https://github.com/setar/RF3Sens.git/': The requested URL returned error: 403
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

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

Сообщение elmot » 31 дек 2015, 13:00

dccharacter писал(а):git это *№^*#$$%^#$$!!!!!!!!!

Ну поначалу он всех бесит. Потом, когда проникаешься идеей, как оно работает, понимаешь, что реально хорошая штука.
Так что, не клонировать, а форкать надо что ли репу, чтобы что-то менять?

Да, на гитхабе так - форкаешь себе репу, меняешь, потом делаешь pull request в исходную репу. Мейнтейнер либо мержит к себе, либо нет.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

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

Сообщение setar » 31 дек 2015, 14:06

Всех с наступающим!

ниже шпаргалка по гиту которую нашел и сохранил для себя когда изучал:
Код: Выделить всёРазвернуть
Создать новый репозиторий:
git init project-name
Клонировать репозиторий с удаленной машины:
git clone git@bitbucket.org:afiskon/hs-textgen.git
Добавить файл в репозиторий:
git add text.txt
Текущее состояние репозитория (изменения, неразрешенные конфликты и тп):
git status
Сделать коммит:
git commit -a -m "Commit description"
Сделать коммит, введя его описание с помощью $EDITOR:
git commit -a
Замерджить все веткилокального репозитория на удаленный репозиторий:
git push origin
Аналогично предыдущему, но делается пуш только ветки master:
git push origin master
Запушить текущую ветку, не вводя целиком ее название:
git push origin HEAD
Замерджить все ветки с удаленного репозитория:
git pull origin
Аналогично предыдущему, но накатывается только ветка master:
git pull origin master
Накатить текущую ветку, не вводя ее длинное имя:
git pull origin HEAD
Скачать все ветки с origin, но не мерджить их в локальный репозиторий:
git fetch origin
Аналогично предыдущему, но только для одной заданной ветки:
git fetch origin master
Начать работать с веткой some_branch (уже существующей):
git checkout -b some_branch origin/some_branch
Создать новый бранч (ответвится от текущего):
git branch some_branch
Переключиться на другую ветку (из тех, с которыми уже работаем):
git checkout some_branch
Получаем список веток, с которыми работаем:
git branch# звездочкой отмечена текущая ветвь
Просмотреть все существующие ветви:
git branch -a # | grep something
Замерджить some_branch в текущую ветку:
git merge some_branch
Удалить бранч (после мерджа):
git branch -d some_branch
Просто удалить бранч (тупиковая ветвь):
git branch -D some_branch
Последние изменения:
git log
История конкретного файла:
git log file.txt
Аналогично предыдущему, но с просмотром сделанных изменений:
git log -p file.txt
История с именами файлов и псевдографическим изображением бранчей:
git log --stat --graph
Изменения, сделанные в заданном коммите:
git show d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4
Посмотреть, кем в последний раз правилась каждая строка файла:
git blame file.txt
Удалить бранч из репозитория на сервере:
git push origin :branch-name
Откатиться к конкретному коммиту (хэш смотрим в «git log»):
git reset --hard d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4
Аналогично предыдущему, но файлы на диске остаются без изменений:
git reset --soft d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4
Попытаться обратить заданный commit (но чаще используется branch/reset + merge):
git revert d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4
Просмотр изменений (суммарных, а не всех по очереди, как в «git log»):
git diff# подробности см в "git diff --help"
Используем vimdiff в качестве программы для разрешения конфликтов (mergetool) по умолчанию:
git config --global merge.tool vimdiff
Отключаем диалог «какой mergetool вы хотели бы использовать»:
git config --global mergetool.prompt false
Разрешение конфликтов (когда оные возникают в результате мерджа):
git mergetool
Создание тэга:
git tag some_tag # за тэгом можно указать хэш коммита
Удаление untracked files:
git clean -f
Следует отметить, что Git позволяет использовать короткую запись хэшей. Вместо «d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4» можно писать «d8578edf» или даже «d857».


и малость от себя общие приемы работы:
самый первый раз гиту нужно представиться (локально создаст профиль с именем фамилией и почтой),
обычно он подсказывает в каком формате это сделать

теперь например есть какие то свои наработки и хотим не потеряв их влиться в текущий проект на гите.
  • переименовываем папку с проектом например в *_my
  • берем проект проект целиком, в текущем каталоге будет создана папка с его именем
    git clone https://github.com/setar/RF3Sens.git
  • теперь в папку проекта копируем свое смело заменяя подконтрольные гиту файлы своими
  • начинаем анализировать изменения, сначала смотрим что вообще сейчас отличается от проекта на уровне файлов
    git status
  • теперь смотрим конкретные различия в формате diff (кстати для любителей работать в текстовой строке рекомендую использовать аналог colordiff - чем подсвечивать различия настраивается в гите)
    git diff имя файла
    и так анализируем все файлы.
  • после того как дзен достигнут делаем коммит изменений в локальный репозитарий
    обычно изменения делают гранулировано, в одном шаге чтобы затрагивало одно конкретное изменения функционала или синтаксиса, при этом может быть затронуто несколько файлов
    git commit config.h

Добавлено спустя 23 минуты 58 секунд:
подумал что описаный выше путь больше для индивидуальной работы,
а нам для общей разработки подходит следующее:
  1. регистрируемся на гитхабе github.com
  2. заходим на страницу базового репозитария https://github.com/setar/RF3Sens и делаем fork по кнопочке в правом верхнем углу. У вашего пользователя появляется такой же репозитарий, полная копия но со связями к родительскому репо.
  3. на странице своего проекта https://github.com/ваш_пользователь/RF3Sens копируем ссылку на ваш репозитарий https://github.com/ваш_пользователь/RF3Sens.git
  4. копируем к себе ваш проект:
    git clone https://github.com/ваш_пользователь/RF3Sens.git
  5. для своих конфигурационных изменений делаем новую ветку
    git branch myconfig
    Переключиться на другую ветку:
    git checkout myconfig
  6. дальше работаем как описано выше, завершая процесс отправкой обновлений из бранча master в свой репозитарий
    при этом myconfig оставляем локально (хотя можно и заслать, не страшно, он же в вашем репо только будет)
    git push origin master
  7. после того как в вашем репозитарии отобразились нужные изменения можно нажать кнопочку pull request и в исходный репозитарий приходят предложения по изменениям

Добавлено спустя 3 минуты 41 секунду:
для работы с master репозитарием чтобы сохранять свои конфиги удобно использовать стек:

git stash //запоминаем текущие наработки в стек - как пенка на молоке (все что вне коммита)

git pull //обновляем базовый код

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

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

Сообщение Dmitry__ » 01 янв 2016, 00:01

Сергей, а можно на примере исправления ошибки увидеть нужность этого git?. Чо-то совсем нет у меня мотивации лопатить такую кучу информации. :shock:
setar писал(а):поэтому в первый коммит пошла версия не до конца собирающаяся, надеюсь это карму не испортит


Надо в боарды переносить инклуды сенсоров. Т.к. инклуды боардов прописаны раньше инклудов сенсоров в Config.h. тогда пропадет ошибка компиляции:
Код: Выделить всёРазвернуть
#if defined(sens_type_ADNS_5020)
  #include "sensor_ADNS_5020.h"
#endif
#if defined(sens_type_ADNS_2610)
  #include "sensor_ADNS_2610.h"
#endif
#if defined(sens_type_ADNS_2620)
  #include "sensor_ADNS_2620.h"
#endif


Добавлено спустя 11 минут 42 секунды:
С Новым годом! :)

У меня знакомый был, ломал программы для синклеров только по пьяни. У меня синклер был - атм-турбо, многие программы не работали из-за жуткой защиты. Так вот, пришел он ко мне на день рождения за 2 часа до всех. Сидит, ломает защиту, на экране кирпичи (это так защита показывала свою работу). 2 часа не мог сломать, гости опаздывали, я ему говорю: "Давай дерябнем". Через 20 минут все игрушки с защитами уже работали. :shock:
Как он это делал - фиг знает...
Это я к чему, чего-то перемудрили вы с такой кучей файлов, я сидел смотрел как баран. Без пол-литра не разобраться :)
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение dccharacter » 01 янв 2016, 01:22

Из наблюдений за реакцией больных после оглашения им смертельного диагноза Кюблер-Росс выделяла пять стадий:

Отрицание. Больной не может поверить, что это действительно с ним случилось.
Гнев. Возмущение работой врачей, ненависть к здоровым людям.
Торг. Попытка заключить сделку с судьбой. Больные загадывают, допустим, что они поправятся, если монетка упадет орлом.
Депрессия. Отчаяние и ужас, потеря интереса к жизни.
Принятие. «Я прожил интересную и насыщенную жизнь. Теперь я могу умереть».

Добавлено спустя 3 минуты 2 секунды:
Во-первых, с новым годом ваще-то
Во-вторых, с прогой наконец-то можно работать, а не сидеть и тупить в дефайны :-) Мы ж дрова запилили! Скоро вынесем все твои itoa в файл bantiki.c, и ваще все классно будет :-) В конфиге не осталось ничего почти кроме конфига. В логике программы не осталось почти ничего кроме логики программы. Все остальная ненужная на 90% шушера типа дигиспарка вынесена в отдельный файл и перенастраивается единожды одним дефайном. Ну не красота?

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

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

Сообщение Dmitry__ » 01 янв 2016, 01:24

dccharacter писал(а):Все остальная ненужная на 90% шушера типа дигиспарка

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

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

Сообщение dccharacter » 01 янв 2016, 01:25

Вот смотри, у меня все нужные для фцнуционирования проги на моем железе хранятся локально. А вы там постоянно че-то меняете. Раньше мне новую версию запустить 10-15 минут отнимало. А теперь git pull; git cherry-pick my_config
все.

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

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

Сообщение Dmitry__ » 01 янв 2016, 01:44

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

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

Сообщение dccharacter » 01 янв 2016, 04:40

Dmitry__ писал(а):Надо в боарды переносить инклуды сенсоров. Т.к. инклуды боардов прописаны раньше инклудов сенсоров в Config.h. тогда пропадет ошибка компиляции:
Код: Выделить всёРазвернуть
#if defined(sens_type_ADNS_5020)
  #include "sensor_ADNS_5020.h"
#endif
#if defined(sens_type_ADNS_2610)
  #include "sensor_ADNS_2610.h"
#endif
#if defined(sens_type_ADNS_2620)
  #include "sensor_ADNS_2620.h"
#endif

10 минут уже смотрю на это и не пойму, почему

Добавлено спустя 2 минуты 58 секунд:
А, ясно. Вот этот дефайн сидит в хедере сенсора: #define use_nCS

Добавлено спустя 1 минуту 50 секунд:
А все вот из-за этого:
Код: Выделить всёРазвернуть
#define sens_type_ADNS_5020
//#define sens_type_ADNS_2610
//#define sens_type_ADNS_2620

/*
Тип контроллера, выбрать один нужный
*/
//#include "board_Digispark.h"
//#include "board_ArduinoNano.h" // базовая распайка arduino nano
#include "board_ArduinoNano_mcupower.h" // распайка сенсора на arduino nano для питания с ног микроконтроллера

Т.е. в сенсорах мы просто определили тип, а библиотеки включаем в секции "подключение библиотек"
А с контроллерами сразу хэдеры подключаем

Добавлено спустя 24 минуты 36 секунд:
Dmitry__ писал(а):Ну так чего не оттестил компиляцию во всех режимах? Ты сейчас можешь все менять? Сейчас зип файл заберу, там будут исправления? И как увидеть, кто что менял, покажи на пальцах...
Больше всего регистрация убивает, куда не плюнь, везде надо регистрироваться.


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

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

Сообщение Madf » 01 янв 2016, 13:45

dccharacter писал(а):Зато фонарь вообще все гробит на этом алгоритме :-(

Ну так правильно, надо уходить в ИК диапазон какой нить 950 mn...

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

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

Сообщение Dmitry__ » 01 янв 2016, 21:08

Madf писал(а):Ну так правильно, надо уходить в ИК диапазон какой нить 950 mn...

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

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

Сообщение Dmitry__ » 02 янв 2016, 04:12

Хватит водку бухать. Уже 2 число того года, когда мы лузеры, а датчика все нет :)
Зарегся на гите, форкнулся от Сергея, потом увидев исправления - убил и форкнулся от Андрея. В коде увидел замечательный "#define SERIAL_SPEED", но не понял куда вы выпилили настройку этого спид для своих дуин? Там ведь 230400...

Что это за код? Кто все эти люди? Оставлено ли главное свойство начального (МОЕГО) кода - работоспособность? :)

Добавлено спустя 2 минуты 3 секунды:
Да, для софтового сериал надо прописать проверку скорости, и если она выше 115200, то #error

Добавлено спустя 1 час 8 минут 39 секунд:
Запилил нетленку:
https://github.com/DmitLil/MouseSensViewer
Вроде собирается, отредактировал первое сообщение.
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение Madf » 02 янв 2016, 13:20

Dmitry__ писал(а):Ик диапазон шире видимого в тцать раз, уж лучше красный фильтр на оптику (уже проверял). Решит все проблемы с фонарями...

Я про жесткую волну говорю, в этом спектре обычно только солнце конкурент, которое светит вообще во всем диапазоне...и никакие фонарики и даже пульты не попадают.

А на счет "бухать 2 число": дык как понимаю, мы тут ща боримся с зайчиками, а грядет проблема высоких температур, что с ней делать - непонятно. У вас же сковородка... :roll:
Сдается надо отталкиваться от другого.
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Пред.След.

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

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

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