Цитата(Огурцов @ Jan 27 2012, 09:37)

Конечно, уверен. Можно сделать и в 10 раз лучше, но это будут несколько другие компоненты и они скорее всего будут дороже, чем на 200 баксов.
...
Наверное, как-то так:
http://www.youtube.com/watch?v=9bODRom1jrs...feature=related...
Т.е. это уже
2 камеры - одна ищет компонент, вторая определяет его центр. Далее, алгоритм, (который по Вашей ссылке) работает далеко не в автоматическом режиме, это явно видно. И явно видно, что данный алгоритм обучения не сможет обеспечить стабильную точность. Дело в том, что при определении центра компонента необходимо задавать не только габариты чипа, но и ширину/длинну его контактных площадок. А для микросхем еще учитывается количество выводов по каждой стороне, их шаг, их ширина, зона засвета вывода... А еще надо правильно "засветить компонент", чтобы машина правильно распознала компонент.
И еще. Как вы собираетесь брать и ставить компонент? Если это будет принцип пинцета, то о точности речи нет вообще, если захват вакуумный, то необходимы несколько типов насадок, которые должны как-то меняться, да и вакуум надо будет вовремя отключать. А с компонентами 0402 и меньше еще и "дунуть" в насадку, иначе чип просто на ней останется, никакая вязкость пасты не поможет.
К слову - в брендовых автоматах нет датчика усилия прижима компонента к плате, просто программно задается высота компонента.
Огурцов
Jan 27 2012, 18:04
Цитата(ZZmey @ Jan 27 2012, 18:47)

Т.е. это уже 2 камеры - одна ищет компонент, вторая определяет его центр
Где одна, там и две. Добавим десять-двадцать баксов в бюджет.
Цитата(Secter @ Jan 27 2012, 18:26)

Проще фрезернуть фанэру под питатели
Проблема не в фанере, а в пленке, которую нужно как-то сдирать. Ее и руками-то не очень подцепишь.
Цитата(Secter @ Jan 27 2012, 18:26)

для разгребания кучи деталей подошло БЫ это :
http://injapan.ru/auction/m92638294.html но уже продали...

Красиво. Только я боюсь что-то у япошек брать после фукусимы.
Secter
Jan 27 2012, 18:12
Цитата(Огурцов @ Jan 27 2012, 22:04)

Красиво. Только я боюсь что-то у япошек брать после фукусимы.

...это лечится...))) ...апосля первых 300 кило япоНИШТЯКофф...

...БАНЗАЙ!!!
Цитата(Огурцов @ Jan 27 2012, 22:04)

Проблема не в фанере, а в пленке, которую нужно как-то сдирать. Ее и руками-то не очень подцепишь.
Элементарно, Ватсон. Скотч решает все проблемы. Наклеиваешь его на пленку и сдираешь вместе с пленкой.
Огурцов
Jan 27 2012, 20:04
Не хотелось бы еще и скотчеприклеивательный станок городить
А и не надо - закладывать обрезки сразу с уже оторванными пленками
Vasily_
Jan 27 2012, 20:11
Цитата(Огурцов @ Jan 27 2012, 20:04)

Где одна, там и две. Добавим десять-двадцать баксов в бюджет.
Проблема не в фанере, а в пленке, которую нужно как-то сдирать. Ее и руками-то не очень подцепишь.
А пленка снимается элементарно, грузик с крокодилом на конце и всё готово, вот на видео видно грузики болтаются
http://www.youtube.com/watch?v=9G4m1dhjEjM...feature=related и вот кой-чего
http://www.ntscope.com/m2-2_parts.html
Огурцов
Jan 27 2012, 20:47
Цитата(SM @ Jan 27 2012, 21:08)

А и не надо - закладывать обрезки сразу с уже оторванными пленками
И что, считать их до или выбрасывать после ?
Я же просил четыреста капель, а тут четыреста две (с)
А может лучше ножницы с электроприводом ? Достал резистор, ножницами ленточку хлоп. И т.д. Тогда пленку вакуумом можно поднимать.
Vasily_
Jan 27 2012, 21:10
Цитата(Огурцов @ Jan 27 2012, 22:47)

И что, считать их до или выбрасывать после ?
Я же просил четыреста капель, а тут четыреста две (с)
А может лучше ножницы с электроприводом ? Достал резистор, ножницами ленточку хлоп. И т.д. Тогда пленку вакуумом можно поднимать.
Зачем что-то обрезать? вы вообще видели как работают такие машины? я вам даже видео скинул чтобы посмотрели.
Цитата(Огурцов @ Jan 28 2012, 00:47)

И что, считать их до или выбрасывать после ?
именно считать до. При помощи обычной стальной линейки. Зато никакой механики вообще не надо лишней, которая бы двигала ленты. Я что-то уже не понимаю, этот проект - это машина для серийного производства, или все таки для пайки прототипа? Для пайки прототипа проблема именно в точной установке компонентов на пасту, а не в том, чтобы их посчитать перед закладкой в машину и обрезать с катушки сколько надо. Не надо делать лишнего - или надо, но потом, опцией.
упд:
или добавить отматывалку-счетчик компонентов. этот девайс не сложен, когда есть система технического зрения, по крайней мере проще, чем протяжка кучи лент.
Огурцов
Jan 28 2012, 07:34
Согласен считать линейкой.
Цитата(SM @ Jan 27 2012, 22:18)

Я что-то уже не понимаю, этот проект
Для лени ; Хочется сказать девайсу, я вот тут тебе ленточку на 1000 резисторов воткнул. И забыть.
Цитата(SM @ Jan 27 2012, 22:18)

проще, чем протяжка кучи лент.
Нет, протяжка должна быть одна на кучу лент. Или не должна быть вообще, как более сложный вариант. А для кучи протяжек шестеренки задолбаешься выпиливать.
Цитата(Огурцов @ Jan 28 2012, 11:34)

Нет, протяжка должна быть одна на кучу лент. Или не должна быть вообще, как более сложный вариант. А для кучи протяжек шестеренки задолбаешься выпиливать.
Если уж делать, то одна на всех не прокатит. Так как один шаг ленты автоматически сопровождается отдиранием пленки, а разных компонентов надо извлечь в разы и десятки раз разные количества. Либо протяжка одна, но прижимные ролики в большом количестве. А лучше, конечно, по шаговому движку на ленту, с стандартной звездочкой под перфорацию, но это уже явно не бюджетно. Так что я за панель, в которую можно разложить обрезки, посчитанные вручную, и затем с вручную снятыми пленками, главное придумать ее так, чтобы обрезки там были прижаты к плоскости, не пучились, что в общем то не проблема.
Еще вариант, если самому лень посчитать, можно купить в конторах типа "смд-компонент" или digikey/mouser сразу сколько надо чего надо.
Огурцов
Jan 28 2012, 09:35
Цитата(SM @ Jan 28 2012, 09:42)

сразу сколько надо чего надо
Семь резисторов одного номинала и три другого. Ага.
Мне оно видится несколько иначе. Я купил весь ряд E6 по 1000 штук (жаль не E12/24 по 4000 ))) ) Мне их хочется в куда-то загрузить и забыть до того момента, когда какой-либо номинал закончится. Будет совсем хорошо, если программа заранее предупредит меня, что такой-то номинал почти заканчивается, чтобы успеть заказать новые.
И еще хочется иметь импорт partlist`а
Цитата(Огурцов @ Jan 28 2012, 13:35)

Семь резисторов одного номинала и три другого. Ага.
именно так. Ну или почти так - для дешовки округление до десятков. Уже несколько лет так делаю, и доволен системой, получаю из смд-компонета подписанные номиналом обрезки, в каждом чуть больше, чем мне надо, из дижикея и моузера точно также. А катушки это на производстве уже, очень далеко от меня, совсем в другом часовом поясе. У меня катушкой разве что блокировочные кондеры, которые точно везде и всегда нужны, остальное не вижу смысла покупать больше, чем надо на тот или иной образец, чтобы это потом валялось и надо было искать, когда понадобится. Тем более весь ряд (пройденный давно этап) - сейчас средства моделирования таковы, что позволяют сразу точно и быстро рассчитать все номиналы, подбор бывает нужен крайне редко.
Огурцов
Jan 28 2012, 10:07
Цитата(SM @ Jan 28 2012, 10:45)

именно так
До этого еще нужно дойти. И то при условии, что весь комплект собирается у одного поставщика, что обычно вряд ли.
Кроме того, 3 резистора будут стоить ровно столько же, как и 10, 100 или 1000 и моя жаба не позволит. Хотя выбирать конечно вам.
Цитата(Огурцов @ Jan 28 2012, 14:07)

До этого еще нужно дойти. И то при условии, что весь комплект собирается у одного поставщика, что обычно вряд ли.
Кроме того, 3 резистора будут стоить ровно столько же, как и 10, 100 или 1000 и моя жаба не позволит. Хотя выбирать конечно вам.
Насчет "надо дойти" - согласен, сам не сразу пришел. Насчет "у одного поставщика" - это совсем не надо. Я например ориентируюсь на то, что пробивается в ABN Universal, там целый список поставщиков, а чаще просто ориентируюсь на каталоги digikey, mouser, реже farnell, с условием текущих таможенных раскладов для почты и частных лиц очень даже вполне для прототипирования. Ну ориентиры у всех конечно разные. Для разработки самое то, а на производстве поставки все равно уже совсем по другому принципу. Насчет жабы - есть такое... Но потом доходит до огромных мешков с обрезками лент, в которых нужную ищешь по полдня - ну не хватает времени у меня на порядок в этом вопросе, да и та же жаба не дает купить хранилище для упорядоченного их хранения (все равно перемесится и потеряется). В общем, к теме - по любому питатели с протяжкой IMHO не тема обсуждаемого устройства, по крайней мере далеко не первоочередная.
SSerge
Jan 28 2012, 10:33
С протяжкой, если не гнаться за скоростью, есть сравнительно простое решение.
Протягивать ленту с деталями можно самой головкой, цеплять специальным штифтом за перфорацию и протягивать на один шаг.
Огурцов
Jan 28 2012, 11:12
Цитата(SM @ Jan 28 2012, 11:24)

не хватает времени у меня на порядок в этом вопросе, да и та же жаба не дает купить хранилище для упорядоченного их хранения
Питатели и должны быть этим хранилищем. А установщик - вести складской учет. Иначе на самом деле помнишь, что точно покупал, а куда положил...быстрее еще раз купить.
проходил ммимо, и несмог удержатся.
1) - готовый проект с 2-мя USB видеокамерами под техническое зрение и по сути под стандартный CNC контроллер:
http://www.dockerty.co.nz/software/pickandplace.zipкак особенный бонус - открытый исходный код.
По сути к нему надо только механическую часть приаттачить в виде самого стандартного любительского CNC.
2) -
http://www.ntscope.com/m2-2.html - наверное имеет смысл порытся и скопировать некоторые технические решения и идеи.
Про "весь склад на pick&place" (обращение к товарищу Огурцову!) - поверьте, это бредовая идея изначально. Заправлять надо только тем, что используется чаще всего. Ибо:
1) меньше возможностей напутать с номиналами
2) меньшие размеры самого аппарата, и соответственно, собестоимость. А собестоимость и размер - это в геометрической прогрессии.
3) чем меньше размеры, тем больше быстродействие - меньшие подвижные массы, более короткий путь от фидера до платы.
Если уж на что и надо обращать внимание, так это на хорошее и быстрое "техническое зрение". Может те же самые TELEDYNE DALSA...
Огурцов
Jan 29 2012, 10:47
Цитата(girts @ Jan 28 2012, 22:21)

проходил ммимо, и несмог удержатся.
Первая тема за пять лет пробила ? )
Цитата(girts @ Jan 28 2012, 22:21)

Заправлять надо только тем, что используется чаще всего. Ибо:
1) меньше возможностей напутать с номиналами
Чтобы не путать номиналы, не нужно (пере)заправлять. Т.е. один раз заправил и не дергай больше.
Второй вариант - высыпать все в кучу и брать оттуда с измерением каждого. Но это пока в теории.
Цитата(girts @ Jan 28 2012, 22:21)

2) меньшие размеры самого аппарата, и соответственно, собестоимость. А собестоимость и размер - это в геометрической прогрессии.
Нет тут геометрической прогрессии - растет только одна координата, а если хорошо подумать, то растет только размер питателя.
Цитата(girts @ Jan 28 2012, 22:21)

3) чем меньше размеры, тем больше быстродействие - меньшие подвижные массы, более короткий путь от фидера до платы.
Тоже никак не так. Или совсем не обязательно.
Огурцов
Jan 29 2012, 13:38
Цитата(girts @ Jan 28 2012, 23:21)

1) - готовый проект с 2-мя USB видеокамерами под техническое зрение и по сути под стандартный CNC контроллер:
http://www.dockerty.co.nz/software/pickandplace.zipкак особенный бонус - открытый исходный код.
Прикольно

Migrates from Delphi to C#
http://www.netcoole.com/delphi2cs.htmСкачать Delphi
http://www.delphilab.ru/content/blogcategory/53/96/Пишем Linux приложение на Delphi
http://www.delphilab.ru/content/view/307/1/
Огурцов
Jan 30 2012, 22:47
Что-то не очень собирается. Судя по всему отсутствует AudioLabBasicPkg, DSCaptureDevice.dcu в частности.
Огурцов
Feb 1 2012, 10:59
Собрал я эту ...ерунду. Некоторые модули в оригинальном виде просто не могут быть откомпилированы, значит выложено абы что, а не исходники. Совершенно понятно, что не запускается. Это м.б. и не беда, но написано аццки. Детально не разбирался, но при исправлении ошибок компиляции особенно порадовали куски, коих полно, вот типа таких:
Код
begin
Speak('FAILED TO PICK PART');
MessageDlg('FAILED TO PICK PART!', mtInformation, [mbCancel], 0, mbCancel);
end;
end
else
begin
Speak('FAILED TO PICK PART');
MessageDlg('FAILED TO PICK PART!', mtInformation, [mbCancel], 0, mbCancel);
end;
end
else
begin
Speak('FAILED TO PICK PART');
MessageDlg('Fiducial Check Failure.', mtInformation, [mbCancel], 0, mbCancel);
end;
end;
Смиялсо. Всякое желание копаться в этом ....исходнике пропало.
Огурцов
Feb 1 2012, 16:20
Цитата(Огурцов @ Feb 1 2012, 20:20)

Можно оцээрить:...
1000 штук 0603 147k

...не выходит "аленький цветочек" ?! ))) ...правильней добавить в кучу всяких-разных!!!
andrey_s
Feb 1 2012, 16:36
Золушка, перебери мешок фасоли, белую отдели от коричневой (из какого-то сценария).
Огурцов
Feb 1 2012, 16:43
Цитата(Secter @ Feb 1 2012, 16:24)

правильней добавить в кучу всяких-разных
Ну а как оцээрщики обломят, мне потом их руками разбирать ? Пожалуй, проще выбросить будет.
Цитата(Огурцов @ Feb 1 2012, 20:43)

Пожалуй, проще выбросить будет.

...ПЕРВЫЙ этап видится конвейером, на манер приведённого видео с укладкой белых=черных кисточек в маникюрные наборы!!! ...т.е. плывущие по бесконечному конвейеру смд с последующим сбросом в бункер-элеватор и снова на конвейер!!!

...сильное видео будет.
Огурцов
Feb 1 2012, 16:59
Мысль интересная. Только это на пескоструйку очень похоже. Думаю, после сотни циклов надписи будет не прочитать.
Цитата(Огурцов @ Feb 1 2012, 20:59)

Думаю, после сотни циклов надписи будет не прочитать.

...а кисточки должны в хлам превратиться на 10 круге....
http://www.youtube.com/watch?v=7I6IRKRVYUY...feature=related
Огурцов
Feb 1 2012, 17:13
а ничего, что кисточек полсотни в круге не наберется, а резисторов полсотни тысяч ?
Цитата(Огурцов @ Feb 1 2012, 21:13)

а ничего, что ...

...дык ПП - одна!!! ))) -(тире) не подвижна...
Огурцов
Feb 1 2012, 17:24
Не понимаю я вас, то вы про резисторы кисточки на конвейере, то про неподвижную плату.
Цитата(Огурцов @ Feb 1 2012, 21:24)

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

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

...элементарно!!! )))
Огурцов
Feb 1 2012, 17:41
Цитата(Secter @ Feb 1 2012, 17:29)

причем реверсивному
Предупреждать надо. Но это плохой вариант, в отличие от предыдущего, со сбросом, потому, что резисторы не будут автоматично переворачиваться и не будут разгребаться кучки.
Цитата(Огурцов @ Feb 1 2012, 21:41)

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

...призванный компенсировать нерасторопность механики манипулятора в целях уменьшения пустых пробегов конвейера...а сброс в бункер никто не отменял!
Огурцов
Feb 1 2012, 18:55
Почти боевые условия, видимая область всего в полтора раза больше. Нужно бы еще ближе, но и так объектив уже вываливается и на сопли приделан:
Нажмите для просмотра прикрепленного файлаВекторизация по градиенту:
Нажмите для просмотра прикрепленного файлаЦитата(Secter @ Feb 1 2012, 17:51)

реверсивный, есть апгрейд первого варианта со сбросом
Не надо реверсивный, надо инверсивный. Т.е. эсэмдешки должны не по внешней поверхности конвейера ползать, а по внутренней.
При виде такой кучи появляется интересная мысль про создание карты высот. Не надо забывать, что мы можем управлять камерой (и источниками света, если понадобится) как захотим. То есть простым перемещением камеры, и при этом отслеживая скорость перемещения градиентов, нетрудно рассчитать высоту.
Огурцов
Feb 1 2012, 22:53
Интересно, что примерно правильным образом лежит не более 1% резисторов.
Логично было бы использовать стереоосвещение и далее распознавать трехмерные объекты по _стереоизображению_. Однако в инете на эту тему абсолютная тишина.
Второй вариант - использование трехмерной модели компонентов и дальнейшее сравнение ее вариантов проекций с изображением с камеры. Но ресурсов это утянет.
В реальности предполагается что компоненты больше рассредоточены по поверхности и не лежат кучей. В рассредоточенной области процентов 30 компонентов должно лежать правильно.
Если же встречается свалка компонентов, то можно рассредоточить либо руками, либо вибрацией, либо инструментом - уцепить что получится из центра кучи и сбросить неподалеку.
Напомнило институт... Я участвовал тогда в работе по созданию сортировочной машины. Надо попытаться вспомнить, как их правильно перевернуть. Если вспомню - напишу.
Всплыло из памяти, С.Лем "Эдем" - там описывалось, что лоток с деталями трясся и они непонятным образом укладывались рядами. Вот так и было, микровибрация и сброс в накопитель лежащего кверх ногами. Правда, детали тогда у нас покрупнее были. Вибрирующий лоток, чтобы детали легли в один слой. С наклоном. На выходе просто выталкивали не так лежащие на второй круг. Помню, целый курс возились, пока не заработало. Систему зрения тогда писали на ЕС-1035 :-), сейчас тот парень профессор.
Заглянул в коробку с 0805. Что-то у меня больше правильно лежит. Стукнул по донышку, стало меньше :-)
Интересная тема. Себе такой же хочется.
Огурцов
Feb 2 2012, 14:59
В принципе, с кинематикой сегодня я определился, что радует. Хочется какой-то рабочий софт.
По распознаванию. Не известно, насколько будет работоспособно, но с прицелом на аппаратную реализацию можно бы попробовать такой вариант. В основном все элементы черно-белые, поэтому цветовая составляющая нам не нужна. Поэтому входной видеопоток переводим в серый. 480*480 230К. Наверное можно даже 4бита - 115К. Преобразуем в градиенты (монохром). Дальше ксорим с паттерном (который тоже в градиенте) и считаем сумму установленных бит. Этакая пародия на сумму наименьших квадратов. Результат записываем на место анализируемого пикселя. Хотя нам не нужно знать, где располагается каждый компонент, достаточно знать, где располагается несколько наиболее определившихся, поэтому достаточно иметь короткий массивчик с тремя координатами - X, Y, A.
Огурцов
Feb 4 2012, 23:48
Первый третий блин:
Нажмите для просмотра прикрепленного файла25 секунд. Предыдущий вариант считался минут десять. А первый - вообще бы неизвестно сколько. Есть вероятность, что при переходе от 8bpp к монохрому будет раз в 8 быстрее. 3 секунды - это уже более менее терпимо.
Но это все без градиентного фильтра - даже не знаю, как его реализовать, если градиент будет вычисляться по двум измерениям.
зы: не, монохром сделать будет слишком сложно, придется сдвигать все изображение по биту, так что в результате будет работать наверное даже медленнее, чем сейчас.
Как вариант - сделать предварительный поиск подходящих областей по картинке с меньшим разрешением, после чего - уточняющий, детальный поиск внутри их.
ззы: есть такая либа Open Source Computer Vision Library
http://ru.wikipedia.org/wiki/OpenCV которая используется в проекте, который был приведен выше.
А смысл сейчас - париться с распознаванием ?
Если для конденсаторов всё равно прикручивать измерительный пинцет, то не проще ли им же и сопротивление мерять ?
Цитата(Demeny @ Feb 5 2012, 15:55)

А смысл сейчас - париться с распознаванием?
да и элементы сваленные в кучу друг на дружку, а не лежащие один слоем тоже сомнительно выглядят.
один механизм захвата как попало лежащего резистора чего стоит.
зы
выводы резисторов слегка магнитятся, то есть если рассыпать их на тонкую пластинку, под которой будет периодически намагниченный магнит (смена полярности через несколько мм) то большинство еще и по углам распределяться правильно с точностью до 180 град.
ззы этой ссылки тут вроде еще не было:
http://www.marsohod.org/index.php/projects/138-cloning
Огурцов
Feb 5 2012, 19:08
Цитата(Demeny @ Feb 5 2012, 09:55)

А смысл сейчас - париться с распознаванием ?
Это потому, что :
Цитата(_pv @ Feb 5 2012, 12:13)

элементы сваленные в кучу друг на дружку
Кстати, в предыдущем варианте время нужно умножить на 360 (зависит от круговой точности, 256 тоже должно хватить). Ну так минуток 180 на поиск одного компонента потребуется )))
Но в кучке-то элементы одинаковые ... поэтому, если распознавать номинал - то один раз для кучки.
Думаю, рассыпать элементы по кучкам несложно - поэтому это несущественное ограничение.
Другое дело - распознать ориентацию элемента в пространстве (поворот, наклон), тут все проще и быстрее должно быть.
Огурцов
Feb 6 2012, 10:27
Совершенно наоборот. Основное время займет поиск координат элемента в поле 640x480 (хотелось бы больше, но нормальные камеры дорогие, и время обработки тоже поджимает, оно в 4й степени от линейного разрешения). После того, как координаты будут найдены, потребуется обработка поля 96x80 (сейчас), что в полсотни раз быстрее и при абсолютно любых алгоритмах OCR будет не хуже.
зы: кстати, OCR - O. Chip R. тоже ;
Огурцов
Feb 9 2012, 01:56
Нажмите для просмотра прикрепленного файлаИнвертировал алгоритм (маску с источником) плюс сделал обработку на базе полутоновго изображения, что избавило от векторного преобразования (все равно не понятно, что с векторами делать). Время увеличилось раза в полтора, в зависимости от внутреннего масштабирования (и качества) от 45 (оптимально) до 90 секунд. При уменьшении размеров изображений в два раза время уменьшается примерно до 2х..3х секунд, как раз 1/N^4 - было бы терпимо, если бы не нужно было определять угол поворота. В общем какбэ в этом варианте тупик. Ускориться можно если уйти от виндовых типов и методов, либо уйти от брутфорса к какому-нибудь последовательному древовидному поиску в разных масштабах.
Народ, не то мучаем! Сначала сделать надо девайс, который из заранее известных мест расставлял бы заранее известные компоненты, а уж потом...
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.