roboforum.ru

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

Датчик касания из cd-rom брушлесика :)

Re: Датчик касания из cd-rom брушлесика :)

Dmitry__ » 10 окт 2015, 17:28

dccharacter писал(а): у меня сопротивление обмотки 1.3Ом ????

Это больше смахивает на мотор от обычного cd-rom.
Например, надо вдувать в двигатель 1 ватт для удержания положения. V = (P*R)^0.5 = (1 ватт * 1.3 ом)^0.5 = 1.14v. Такое напряжение надо делать или ШИМом или dc/dc. Вот если бы у тебя был cd-rom мотор с 7-10 ом. (миниатюрные движки), то (1ватт * 10 ом)^0.5 = 3.16v. А это или гасящий резистор или просто подача питания (при питании от 3.3v).
Вообще, если у тебя получится схема с возвратной пружиной, то ты уйдешь от H моста, нужен только один полевик. Тогда можно и простой cd-rom движок ставить без перемотки, т.к. dc/dc сейчас дешевые. А если dc/dc с управлением on/off, то и полевик не нужен. Например такой:
http://roboparts.ru/products/mp1584en

Добавлено спустя 1 минуту 1 секунду:
setar писал(а):Дима, ты описываешь ManualBedLevel, попробуй его

Спасибо, буду знать.

Добавлено спустя 7 минут 53 секунды:
Ой, забыл что у стандартных cd-rom двигателей габариты не очень.

Re: Датчик касания из cd-rom брушлесика :)

dccharacter » 10 окт 2015, 18:17

Блин, так это почти ампер в первом случае и почти 300мА во втором - это надо обвес пилить адский, который дороже принтера выйдет. А на вентилятор - прям с дуни кинул пару контактов и вот тебе готовый Н-мост

Re: Датчик касания из cd-rom брушлесика :)

Dmitry__ » 10 окт 2015, 22:02

dccharacter писал(а):Блин, так это почти ампер в первом случае и почти 300мА во втором - это надо обвес пилить адский

Ампер при низком напряжении - ниачом. Мыслить надо ваттами :) dc/dc преобразует этот ампер в 1/5 ампера при питании от 5 вольт или в 80ма. при питании от 12v подогрева стола.
Реальный щуп можно удерживать 0.125 ваттами.

dccharacter писал(а):это надо обвес пилить адский, который дороже принтера выйдет. А на вентилятор - прям с дуни кинул пару контактов и вот тебе готовый Н-мост

Тогда - перемотка. Но я считаю dc/dc за 150рэ - дешевле перемотки.

Добавлено спустя 12 минут 52 секунды:
Кста, для рукоблудников, статор cd-rom двигателя можно попилить, оставив только 1 или 2 полюса. ротор соотв. тоже укоротить, полюс перемотать тонким проводом. Получится облегченный круговой соленоид без возни с осями и подшипами :)

Re: Датчик касания из cd-rom брушлесика :)

dccharacter » 12 окт 2015, 02:03

Ну в общем сделал я датчик из вентилятора с ручным приводом

Наконец-то понял, как выставлять уровень X-оси - оно, понятно, очевидно, но я долго думал, почти с покупки принтера :-)
Фото 11.10.15, 15 05 40.jpg

А семья начала уже эксплуатировать принтер. Точнее меня (ты инженер или нет?)
Фото 10.10.15, 16 03 53.jpg


Добавлено спустя 4 минуты 30 секунд:
А, повторяемость, вроде, в нескольких тестах 2, 4, 7 микрон - это с ездой между замерами (параметр L10 - щуп перемещается 10 раз в рандомных направлениях и возвращается в точку замера). Вощим весьма неплохо :-))

Добавлено спустя 2 часа 40 минут 21 секунду:
Слушайте, я чего-то подвис сильно. Где в марлине мы говорим ему, куда подцеплен сигнал от проба? Вот у тебя, Дим, Y_MIN в тесте используется - откуда Марлин знает, что это ПРОБ? Че-т я вообще уже ниче не соображаю...

Re: Датчик касания из cd-rom брушлесика :)

Dmitry__ » 12 окт 2015, 02:30

dccharacter писал(а):Ну в общем сделал я датчик из вентилятора с ручным приводом

Теперь нас двое :D
dccharacter писал(а):Вот у тебя, Дим, Y_MIN в тесте используется - откуда Марлин знает, что это ПРОБ? Че-т я вообще уже ниче не соображаю...

У меня ендстопы стоят на max. Соотв. Y_MIN отключен как ендстоп и используется как выход для управления соленоида. А z_min подключен к датчику, но марлин его включает только при тестовых G командах. Функции: setup_for_endstop_move(), clean_up_after_endstop_move, а в них: enable_endstops(bool check).
И вот такой дефайн: ENDSTOPS_ONLY_FOR_HOMING. Чего я его не указал в сообщении по настройке -хз :pardon:

Re: Датчик касания из cd-rom брушлесика :)

dccharacter » 12 окт 2015, 04:26

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

Re: Датчик касания из cd-rom брушлесика :)

Dmitry__ » 12 окт 2015, 05:20

Да неееееее, намана все.
Приехали в хоминг, который высоко над столом. Текущие координаты записались x=200, y=200, z=210. Старт печати - долго и уныло езда в нулевую точку. Время езды по z реально большое, думаю поставить ендстоп z на 100мм, т.к. печатать что-то по 210мм. еще не скоро буду. Ну вооооот, голова ниже нуля не опускается, z_min получается программный.
Щуп выкидывается только тестовыми кодами, а я принимаю решение - оно мне надо или нет? (новые координаты).
Где-то, кто-то говорил, что хоминг в верхней точке - это не бага, это фича, Я почти согласен, не считая 2-х минут езды головы из верхней точки при старте печати. У меня за это время стол успевает остыть, т.к. программа - быдлокод. Во время отработки команд перемещения - замерзает опрос и обработка температуры стола :D

Re: Датчик касания из cd-rom брушлесика :)

dccharacter » 12 окт 2015, 07:41

Короче, че я придумал. Держать в положении этот датчик не надо - он там магнитами удерживается. Соответственно надо туда кинуть напругу в момент выброса ненадолго и все.
Соответственно нужен мост с ограничением тока, например как на драйверах шаговиков. Поставил макс ток 50мА, например, и усе. Оно дальше само щелкает. Только пина нужно два на управление...

Добавлено спустя 2 часа 3 минуты 11 секунд:
Че-то я расстроен - какие-то дикие сложности с неиллюзорной вероятностью фэйла и разноса принтера к чертям и все радли этого:
Код: Выделить всёРазвернуть
22:40:17.847 : 1 of 10   z: 2.751692
22:40:55.979 : 2 of 10   z: 2.753194
22:41:34.010 : 3 of 10   z: 2.853310
22:42:12.240 : 4 of 10   z: 2.832285
22:42:49.828 : 5 of 10   z: 2.862570
22:43:27.280 : 6 of 10   z: 2.896860
22:44:05.297 : 7 of 10   z: 2.866075
22:44:43.861 : 8 of 10   z: 2.834037
22:45:21.354 : 9 of 10   z: 2.838543
22:45:59.650 : 10 of 10   z: 2.830033
22:46:12.730 : Mean: 2.831860
22:46:12.730 : Standard Deviation: 0.044122

Т.е. это шанс ошибитьлся на те самые 0.1мм, которые почти целый слой...
Надо что-то проще и интереснее придумывать. Недоволен я сейчас не точностью датчика, а вообще процедурой с выкидным щупом. Процедура выглядит так:
1. Хомим Х и У
2. Выкатываемся на безопасную для щупа точку, хомим Z
3. В настоящий момент координата Z равна Z_PROBE_OFFSET_FROM_EXTRUDER, но Repetier Host думает, что 0, так как координату Z он берет из сообщения Endstop hit at ZZZZ. Это сообщение при хоуминге не выводится
4. Соответсвенно при попытке увести сопло ниже, хост выдает команду G1 Z-0.1, т.е. предлагает соплу упасть ниже стола. Побороть это можно только вручную сказав ему идти в G1 Z0
5. Сопло, опять же, при этом уйдет на Z_PROBE_OFFSET_FROM_EXTRUDER вниз, а это +-0.05...
Че с этим дальше делать пока непонятно

Добавлено спустя 1 минуту 7 секунд:
Почему, блин, не выделить z_probe в отдельный пин и спокойно делать все замеры отдельным пином...

Re: Датчик касания из cd-rom брушлесика :)

setar » 12 окт 2015, 16:52

коллеги посмотрите мои коммиты:
(тут начало и "доработки")
https://github.com/setar/MarlinDev/comm ... 7e1a90412e
https://github.com/setar/MarlinDev/comm ... e2fee55fe1
https://github.com/setar/MarlinDev/comm ... 7a35fdaa32
https://github.com/setar/MarlinDev/comm ... 0a7c203b2d

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

суть фикса:
Код: Выделить всёРазвернуть
+        uint8_t ind = abl2-1; // last point probe = current point
+        vector_3 probe_point = vector_3(eqnAMatrix[ind + 0 * abl2], eqnAMatrix[ind + 1 * abl2], eqnBVector[ind]);
+        probe_point.apply_rotation(inverse_bed_level_matrix);
+        current_position[Z_AXIS] = -zprobe_zoffset + (probe_point.z - rot_max_diff)
+        #if defined(SERVO_ENDSTOPS) || ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED)
+        + Z_RAISE_AFTER_PROBING
+        #endif
+        ;
         sync_plan_position();
+        //SERIAL_PROTOCOLPGM("current_position[Z_AXIS]=");SERIAL_PROTOCOL_F(current_position[Z_AXIS], 5);SERIAL_EOL;

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

Re: Датчик касания из cd-rom брушлесика :)

Madf » 12 окт 2015, 17:06

Dmitry__ писал(а):http://roboparts.ru/products/mp1584en

Будьте аккуратнее, последнее время, когда покупал у китацев, он не смог мне выдать 3.3В (если надо).
Из-за экономии, китайцы ставят не те номиналы на управление чипом, он выдает где-то 1-2В, потом провал и начиная с 4.5В...

Re: Датчик касания из cd-rom брушлесика :)

dccharacter » 13 окт 2015, 04:19


Сделал педальный привод - идея гениальная, но результат фиговый.
Вощим идея такая - на рампсе есть выводы для серв, поддержка серв по умолчанию реализована в марлине (надо только три дефайна поменять), и для датчика нужен H-мост с контролем напряжения. Вскрываем серву, достаем плату, впаиваем два резистора как при переделке на постоянное вращение, вместо мотора впаиваем катушку датчика (опыт показал, что важно, чтобы не было КЗ между контактами двигателя - защиты от сквозняка там нет и выгорает она очень быстро). Плата из семиграммовой сервы очень маленькая, ее можно на соплях где-нить пристроить. Все отлично работает в плане подачи нужных напряжений на датчик когда нужно.

А вот сам дачик работает фигово и неудобно:
1. Самый большой косяк, это что датчик срабатывает в момент прохода между секторами (сюрприз, да? ггг). Соответственно когда в выброшенном положении подаешь обратное напряжение, он пытается не убраться, а дальше додавить. Я понимаю, что я нефига непонятно написал, но если прочитать пять раз, поймете, что имел ввиду.
1а. Только что понял, что, скорее всего, я не к той обмотке подпаялся... А дачик уже опять склеен после приделки педалей и разбирать неохота.
2. Вся конструкция противно дребежжит при подаче небольшого напряжения. Дребезг становится меньше с увеличением напряжения, но плата сервы начинает греться неприлично
3. При подаче напруги на обмотку появляются фальшивые срабатывания (нру точно не на ту обмотку подпаялся :-()
4. Возникает необходимость в нахождении 5В для питания серв. А у меня БП без них - неудобно.

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

Re: Датчик касания из cd-rom брушлесика :)

Dmitry__ » 13 окт 2015, 04:48

dccharacter писал(а):Сделал педальный привод - идея гениальная, но результат фиговый.

Красивое решение, но я полностью выпилил из марлина поддержку серв, ибо это жесть.
dccharacter писал(а):1. Самый большой косяк, это что датчик срабатывает в момент прохода между секторами (сюрприз, да? ггг). Соответственно когда в выброшенном положении подаешь обратное напряжение, он пытается не убраться, а дальше додавить. Я понимаю, что я нефига непонятно написал, но если прочитать пять раз, поймете, что имел ввиду.

А я все понал с первого раза, т.к. по этим граблям гулял :)
В движке вентилятора статор прокручивается относительно платы с датчиком Холла. Сначала прокручиваешь верхнюю часть статора (зазор между полюсами уменьшается). Потом нижнюю часть. Какую-то часть статора держит пластиковая капелька в отверстии статора. Ее надо просто выломать. Зазор настраиваешь так, чтоб при срабатывании датчика, щуп улетал вверх.
dccharacter писал(а):2. Вся конструкция противно дребежжит при подаче небольшого напряжения. Дребезг становится меньше с увеличением напряжения, но плата сервы начинает греться неприлично

Я думаю, что это отрабатывает плата сервы, надо чтоб она выдавала четко 1/0. Иначе ни о какой точности говорить нельзя.
dccharacter писал(а):Вощим, чую, надо забивать. Нужны очумелые ручки как у некоторых тут, чтобы сделать надежный непожароопасный датчик. Это не про меня.

Ну, все настраивается, я просто не стал расписывать из-за явного отсутствия интереса народа :)
Надо было на столе подать напругу на мотор. Определить точку. Если не круто, то поменять полярность и еще раз посмотреть. Сдвигом статора настроить точнее.
И да, по видео у тебя щуп долго шкрябает по поверхности. Во-первых, плохо выбрана длина щупа, во-вторых, надо настроить датчик так, чтоб ход щупа до срабатывания был не больше 0.5мм.
Ну, в общем, да, рукоблудие жуткое :)
На брушлесах такой фигни не будет, там нет мертвых зон однотактового двигателя.

Re: Датчик касания из cd-rom брушлесика :)

dccharacter » 13 окт 2015, 04:57

Продолжаем думать! Надо отрубить этой гидре ВСЕ головы.
А я пока с git разбираюсь. Вроде все понятно (часа три сегодня интерактивные туториалы гонял), но вживую, собака, как-то не так работает.

Добавлено спустя 3 минуты 30 секунд:
А, не, работает
О, я, кажись, начал разбираться в git
А то ужос же совсем был...

Re: Датчик касания из cd-rom брушлесика :)

Dmitry__ » 13 окт 2015, 04:58

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

Re: Датчик касания из cd-rom брушлесика :)

dccharacter » 13 окт 2015, 05:13

Надо собрать оптический датчик по моей схеме и убедиться, что он не работает.
Вот неохота чередить с разным электронным обвесом, а так я придумал привод для твоего датчика на реле - степпер от сидирома.


Rambler\'s Top100 Mail.ru counter