roboforum.ru

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

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




Начать новую тему Ответить на тему  [ Сообщений: 1502 ]  На страницу Пред.  1 ... 34, 35, 36, 37, 38, 39, 40 ... 101  След.
Автор Сообщение
 Заголовок сообщения: Re: Датчик касания оптический, триангуляция
СообщениеДобавлено: 01 фев 2016, 23:39 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10990
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
я тут мал по малу разрабатываю новые концепты компановки.
вырисовывается вот такая универсальная модель под сменный тип крепления.
должна подойти на большинство типовых кареток (сами крепежи пока не смоделировал)
датчик работает с немного меньшей точностью ~0.05мм (вероятно из за меньшего угла между осевыми линиями)
которые мне удалось вернуть в желаемые 0.01 посредством вот такой проверки:
Код:
  byte dataMax, dataMin, dataPix_Sum, data_su;

  while(1){
    data_su = ADNS_read(Shutter_Upper);
    if (data_su < 3){
        dataMax = ADNS_read(Maximum_Pixel);
        dataMax > ConstMax ? pin_led_LOW : pin_led_HIGH;
    } else {
      pin_led_HIGH;
    }

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


Вложения:
Снимок экрана 2016-02-01 в 22.28.08.png
Снимок экрана 2016-02-01 в 22.28.08.png [ 969.41 КиБ | Просмотров: 2161 ]
Снимок экрана 2016-02-01 в 22.28.15.png
Снимок экрана 2016-02-01 в 22.28.15.png [ 1.43 МиБ | Просмотров: 2149 ]
Снимок экрана 2016-02-01 в 22.28.59.png
Снимок экрана 2016-02-01 в 22.28.59.png [ 1.57 МиБ | Просмотров: 2145 ]
Снимок экрана 2016-02-01 в 22.29.11.png
Снимок экрана 2016-02-01 в 22.29.11.png [ 3.42 МиБ | Просмотров: 2139 ]
Снимок экрана 2016-01-31 в 1.43.58.png
Снимок экрана 2016-01-31 в 1.43.58.png [ 42.66 КиБ | Просмотров: 2145 ]
Снимок экрана 2016-01-31 в 1.42.09.png
Снимок экрана 2016-01-31 в 1.42.09.png [ 49.97 КиБ | Просмотров: 2152 ]
Снимок экрана 2016-01-31 в 1.42.47.png
Снимок экрана 2016-01-31 в 1.42.47.png [ 79.6 КиБ | Просмотров: 2139 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания оптический, триангуляция
СообщениеДобавлено: 01 фев 2016, 23:55 
Не в сети
Аватара пользователя

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания оптический, триангуляция
СообщениеДобавлено: 02 фев 2016, 00:07 
Не в сети
Site Admin
Аватара пользователя

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

Добавлено спустя 1 минуту 21 секунду:
проявлялся эффект туннеля - эхо от лазера появлялось раньше основного луча, причем значительное по интенсивности


Вложения:
Снимок экрана 2016-02-01 в 23.05.29.png
Снимок экрана 2016-02-01 в 23.05.29.png [ 1.52 МиБ | Просмотров: 2144 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания оптический, триангуляция
СообщениеДобавлено: 02 фев 2016, 08:08 
Не в сети
Аватара пользователя

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания оптический, триангуляция
СообщениеДобавлено: 02 фев 2016, 11:25 
Не в сети
Site Admin
Аватара пользователя

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


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

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

Наверно ты говоришь про мгтф провод. По крайней мере только его я за монтажный провод считаю :)
Вообще у меня 2 технологии монтажа мгтфом. 1-й классический - откусил, зачистил, запаял. Но он очень трудоемкий, мгтф очень сложно зачистить, надо острые кусачки с ограничивающим смыкание винтиком.
2-й способ: Аккуратно снимаешь изоляция с провода (около 10-20см) и эту трубку используешь как кембрик для одножильного провода. Тогда монтаж напоминает шуструю вышиванку макраме :)
http://www.chipdip.ru/search/?searchtext=%D0%BC%D0%B3%D1%82%D1%84&auc=1

Добавлено спустя 3 минуты 2 секунды:
setar писал(а):
проявлялся эффект туннеля - эхо от лазера появлялось раньше основного луча, причем значительное по интенсивности

Блин, блин, блин, надо таки выложить прошивку с регулировкой мощности лазера, там такой засады не будет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания оптический, триангуляция
СообщениеДобавлено: 02 фев 2016, 16:18 
Не в сети

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

Изображение

отличный результат, только циферку дырки помнить надо (иначе можно несколько волосков провода скусить)


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

Зарегистрирован: 13 май 2011, 21:37
Сообщения: 3202
Откуда: Bb
А я мгтф турбозажигалкой. Обычная коптит. Пяток проводков в пальцах держишь и одним махом чирик. Тут-же сразу пролудить.
Такая у меня:


Вложения:
sids_zt-n-sh.jpg
sids_zt-n-sh.jpg [ 39.7 КиБ | Просмотров: 2037 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания оптический, триангуляция
СообщениеДобавлено: 02 фев 2016, 16:33 
Не в сети
Site Admin
Аватара пользователя

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

сейчас попробую, модулек как раз под руками есть


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

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Только надо марлин пилить, но там мало изменений. Алгоритм порога должен быть на обратном ходе головы:
Едем в стол, сработал датчик, замедляем скорость и проезжаем еще 0.3мм. Датчик в это время сильно уменьшает мощность лазера. Потом медленно поднимаем голову до порога от датчика. Только я разобрал все проги. Все в тестовом режиме. Щаз мой марлин больше смахивает на синклеровский синтезатор :) Но попробуй вытащить алгоритм:

Код:
static void run_z_probe() {

    plan_bed_level_matrix.set_to_identity();
    feedrate = homing_feedrate[Z_AXIS];
   st_synchronize();

    // move down until you find the bed
    float zPosition = -10;
    plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS], feedrate/60, active_extruder);
    st_synchronize();

   buzz(50, 500);
   delay(300);

    // we have to let the planner know where we are right now as it is not where we said to go.
    zPosition = st_get_position_mm(Z_AXIS);
    plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS]);
   st_synchronize();


    // move back down slowly to find bed
   clean_up_after_endstop_move();
    zPosition -= 0.3;
    plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS], feedrate/600, active_extruder);
    st_synchronize();
   setup_for_endstop_move();

    // we have to let the planner know where we are right now as it is not where we said to go.
    zPosition = st_get_position_mm(Z_AXIS);
    plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS]);
   st_synchronize();

   buzz(30, 500);
   delay(30);
   buzz(30, 500);
   delay(30);

   zPosition += 0.6;
   plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS], feedrate/1000, active_extruder);
   st_synchronize();

    current_position[Z_AXIS] = st_get_position_mm(Z_AXIS);
    // make sure the planner knows where we are as it may be a bit different than we last said to move to
    plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
   st_synchronize();

   buzz(30, 500);
   delay(30);
   buzz(30, 500);
   delay(30);
   buzz(30, 500);
   delay(30);

/*
    plan_bed_level_matrix.set_to_identity();
    feedrate = homing_feedrate[Z_AXIS];
   st_synchronize();

    // move down until you find the bed
    float zPosition = -10;
    plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS], feedrate/60, active_extruder);
    st_synchronize();

    // we have to let the planner know where we are right now as it is not where we said to go.
    zPosition = st_get_position_mm(Z_AXIS);
    plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS]);
   st_synchronize();

    // move back down slowly to find bed
   clean_up_after_endstop_move();
    zPosition -= 0.15;
    plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS], feedrate/600, active_extruder);
    st_synchronize();
   setup_for_endstop_move();

    // we have to let the planner know where we are right now as it is not where we said to go.
    zPosition = st_get_position_mm(Z_AXIS);
    plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS]);
   st_synchronize();
   
   zPosition += 0.3;
   plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS], feedrate/60, active_extruder);
   st_synchronize();

   zPosition -= 0.3;
   plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS], feedrate/600, active_extruder);
   st_synchronize();

    current_position[Z_AXIS] = st_get_position_mm(Z_AXIS);
    // make sure the planner knows where we are as it may be a bit different than we last said to move to
    plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
   st_synchronize();
*/



/*
    plan_bed_level_matrix.set_to_identity();
    feedrate = homing_feedrate[Z_AXIS];

    // move down until you find the bed
    float zPosition = -10;
    plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS], feedrate/60, active_extruder);
    st_synchronize();

    // we have to let the planner know where we are right now as it is not where we said to go.
    zPosition = st_get_position_mm(Z_AXIS);
    plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS]);

    // move up the retract distance
    zPosition += home_retract_mm(Z_AXIS);
    plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS], feedrate/60, active_extruder);
    st_synchronize();

    // move back down slowly to find bed
    feedrate = homing_feedrate[Z_AXIS]/4;
    zPosition -= home_retract_mm(Z_AXIS) * 2;
    plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS], feedrate/60, active_extruder);
    st_synchronize();

    current_position[Z_AXIS] = st_get_position_mm(Z_AXIS);
    // make sure the planner knows where we are as it may be a bit different than we last said to move to
    plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
*/
}



Добавлено спустя 13 минут 33 секунды:
Судя по твоим последним фоткам, я так понял, тебе больше приглянулись мелкие дуины? Типа спарка?

Добавлено спустя 2 минуты 24 секунды:
Я пзс также мечтал в печатный корпус заделать :) Еще мечтал об проводочках от пзс в печатных каналах прокладывать :) Тогда можно перейти на тиньку в дип корпусе и будет совсем удобно и без текстолита...


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

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

А ты, дим, учись пользоваться гитом, тогда сборка-разборка программ не будет проблемой :-)

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


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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания оптический, триангуляция
СообщениеДобавлено: 02 фев 2016, 18:37 
Не в сети

Зарегистрирован: 03 янв 2012, 12:55
Сообщения: 3298
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...
Вам ещё для пущей неволи не хватает "код ревью" делать. :D
Гит собирать умеет, но при условии, что все ковырялись не в одном месте, иначе - да, Ж!


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

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

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

Тупи cherry-pick

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Датчик касания оптический, триангуляция
СообщениеДобавлено: 02 фев 2016, 18:49 
Не в сети

Зарегистрирован: 25 янв 2016, 23:06
Сообщения: 351
Madf писал(а):
Вам ещё для пущей неволи не хватает "код ревью" делать. :D
Гит собирать умеет, но при условии, что все ковырялись не в одном месте, иначе - да, Ж!

Когда все ковырялись в одном месте в гите надо будет из 3х диффов собрать один, а руками проще застрелиться :crazy:


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 1502 ]  На страницу Пред.  1 ... 34, 35, 36, 37, 38, 39, 40 ... 101  След.

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


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

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


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

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