В 20 раз дешевле, в 2,5 раза точнее и в двое удобнее
Приветствую, уважаемое сообщество!
Сегодня ровно год, как я написал первый пост на Хабре. Второй и до этого момента крайний пост, я написал примерно через неделю и…
Этот год я активно занимался освоению новой профессии — Трабл-Шутер. Тех, кто не знает такой специальности (но хотел бы узнать), милости прошу в мой профиль. Если кратко, то Трабл-Шутер — это человек решающий чужие бизнес-проблемы, не традиционными способами.
Так вот, в честь юбилея моего присутствия на Хабре, я решил написать серию статей, в которой расскажу о некоторых проектах и разработках, сделанных в ходе работы над этими проектами. Конечно, я буду рассказывать только о разработках, которые по тем или иным причинам не принял заказчик (соответственно все права на интеллектуальную собственность принадлежат мне) или которые я делал вне проектов, для себя. И естественно, все проекты будут технической направленности, это около 40% всех проектов (остальные относятся к области маркетинга, HR, экономики).
Долго думать с какого проекта начать, не пришлось, логично начать с самого первого проекта. Тем более решение, которое я опишу, получилось действительно эффективное и простое (у Трабл-шутеров часто решения на столько простые, что заказчик хватается за голову: «Как же я сам не догадался?»). В теме поста нет никакого обмана, действительно разработанное оборудование получилось минимум в 20 раз дешевле аналогов (для некоторых брендов конкурентов, этот показатель достигает и 40х), в 2,5 раза точнее и значительно удобнее.
И так, как вы уже поняли разрабатывали мы в этом проекте не ПО, не процессы, а оборудование (железку). Под катом вы узнаете все подробности о проекте.
Заказчик: Крупная региональная организация, занимающаяся оптовой продажей бытовой химии и хозяйственных товаров для дома. Более 10.000 наименований продукции на складе.
Проблема: Для автоматизации некоторых логистических процессов, необходимо в базе данных товара иметь характеристики по его габаритным размерам. Например, при расчете загрузки машин, автоматически считается, сколько товара поместится и сколько и каких машин нужно.
На момент обращения, в базу данных эти характеристики заносились вручную, впрочем, так же в ручную производились измерения (линейкой). Это приводило к неточностям, которые иногда выливались в большие проблемы.
Задача: Разработать систему автоматического и точного измерения габаритных размеров товаров любой формы (с прямоугольными коробками все значительно проще).
Первичный анализ: Простой Гугл-поиск, показал, что на рынке существуют специальные измерительные системы, полностью удовлетворяющие требованиям заказчика в части технических характеристик.
Самым популярный бренд CubiScan, предлагал несколько моделей, но все они основаны на 1 принципе: измеряемый предмет кладут на прозрачный стол, затем вдоль стола передвигают рамку со встроенными ИК светодиодами на 2х сторонах и встроенных ИК приемниках с противоположных сторон. Контроллер считает количество перекрытых лучей по горизонтали и вертикали умножает на расстояние между светодиодами и получает размер по 2 м осям. По 3й оси размер получается путем отслеживания перемещения рамки. Рамка, в зависимости от модели, может перемещаться по прямой или по окружности (образуя сектор 90 град.).
Единственный параметр которого не устроил заказчика — это цена. Действительно цены на иностранные приборы стартовали от $30.000, а самый дорогой японский прибор стоял $62.000. Чуть позже появился Российский аналог фирмы «Сенсотек» ценой более 1 млн. рублей.
Уточненная задача: Разработать систему по техническим характеристикам не уступающую зарубежным аналогам, стоимостью не более 100 тыс. рублей.
Анализ:
Изобретать велосипед не очень благодарная задача, поэтому первое, что я попытался сделать это рассчитать себестоимость производства аналога Кубискана. Самая дорога и труднодоступная вещь, в этом приборе оказалась ИК светодиодная линейка, не смотря на всю простоту изделия, разработка ее выливалась в довольно приличные деньги и стоимость выпуска единичных изделий тоже не позволяла значительно удешевить конструкцию.
Вторым этапом, было разработано несколько альтернативных методик измерения (в т.ч. с помощью Кинекта, 3D сканера, 2х видеокамер, физических щупов и т.д.). Не буду подробно останавливаться на этих методиках, скажу только, что от них отказались из-за стоимости разработки.
Вывод: нужно возвращаться к первому варианту (аналог Кубискана) и сильно удешевить его.
Разработка:
Для удешевления Кубискана нужно было решить 3 подзадачи:
1. Удешевить ИК линейку и ее разработку.
2. Удешевить систему измерения веса. Дело в том, что в Кубискан встроены весы и это очень удобно и хотя в задании заказчика не было такого требования, я решил, что от такого удобства не стоит отказываться, а стоит поработать с его более дешевым воплощением.
3. Разработать простую систему вычисления 3й координаты.
Удешевить ИК линейку.
Для удешевления какой-то составной части технической системы, я всегда начинаю с поиска серийно выпускаемых аналогов (или не совсем аналогов, но некоего девайса способного заменить исходный). Понятно, что массовый продукт будет стоить в разы дешевле.
Поиск аналогов по приемлемой цене, не увенчался успехом. Что-то подобное применяют для измерения геометрии древесины, например, но это тоже дорогие системы.
Помог его величество случай. Потратив огромное количество времени и сил на поиск решения, я решил переключиться на другой проект, немного отдохнуть, в надежде что это поможет взглянуть на задачу по-новому. Новый проект включал в себя сенсорный экран. Начав изучать сенсорные технологии я узнал о существовании ИК рамок для сенсорных экранов. Принцип их работы 1 в 1 как у измерительной ИК линейки, только они определяют не размер, а координаты.
Связавшись с Российскими дилерами одного из китайских брендов, я выяснил, что их SDK позволяет получать значения площади предмета, который перекрыл лучи. Это было то, что мне нужно! К тому же, эта рамка имела большее разрешение (2 мм), доступную цену и производитель мог выпускать рамки по размерам заказчика.
Подзадача №1 была решена — мерить будем сенсорной ИК рамкой.
Удешевить систему измерения веса.
В Кубискане и его аналогах весы представляют собой стеклянную пластину с датчиками по углам. Это достаточно сложное решение, т.к. показания датчиков нужно синхронизировать и обрабатывать, а сами датчики с требуемыми параметрами стоят дороже, чем готовые торговые весы. Поэтому решение было таким, что нужно использовать готовые весы. Но они не прозрачные.
Кто знаком с ТРИЗом знают, что в таких ситуациях, когда есть противоречие и проявляется вся мощь этого инструмента. Не вдаваясь в подробности, скажу, что решение было простым (как и многие решения, созданные по ТРИЗ) — будем перемещать рамку не по горизонтали, а по вертикали, т.е. двигаться она будет сверху вниз и обратно.
Т.о. подзадача №2 была решена — будем использовать существующие торговые весы (выбор пал на встраиваемые весы ШТРИХ-Слим), при этом измерительную рамку будем перемещать по вертикали.
Разработать простую систему вычисления 3й координаты.
В Кубискане для измерения 3й координаты видимо используется какой-то датчик измерения расстояния. Т.е. во время перемещения рамки датчик с некоторой частотой сканирует расстояние от некоторого выбранного нуля, до текущего положения рамки, в этот же момент происходит измерение 2х координат самой рамкой и в конце измерения получается некоторый набор площадей срезов, и информация о расстоянии между этими срезами.
Мне показалось, что это не надежный и способ. Т.к. для точного измерения, требуется обучить оператора двигать рамку со скоростью, не выше определенного значения. И вертикальное перемещение, вносило свои коррективы (если оператор отпустит рамку в верхней точки, то она упадет, т.е. нужно продумывать некие амортизаторы).
Изначально я подумал о перемещении рамки с помощью шагового двигателя. В этом случае все легко двигается и измерения по всем координатам легко синхронизируются. Но стоимость ШВП, направляющих рельсов и т.п. комплектующих меня остановили.
Далее были разработки рычажной системы, системы с использование газлифтов и т.д. Все это не то. Нужно решать вопрос с шаговым двигателем. Т.е. шаговый двигатель должен быть, а ШВП быть в системе на должно.
Долгий поиск привел к проекту Openbuilds. Это открытый проект, где ребята разрабатывают модули линейного перемещения на основе алюминиевого конструкционного профиля и ременной передачи.
Это решение позволяло совместить каркас прибора и направляющие для перемещения рамки. Что еще больше удешевило конечное устройство.
«Мозги»
Использование шагового двигателя вместо ручного привода внесло некоторые коррективы в систему. Изначально планировалось встроить в систему USB разветвитель и таким образом одним кабелем подключить весы и ИК рамку к ПК (и весы, и рамка имеют USB интерфейс), а уже на ПК устанавливать ПО для обработки данных.
Но теперь понадобилось управлять шаговым двигателем и вместо еще одно USB устройства (контроллер типа Ардуина), было решено внедрить в устройство Raspberry. Написать для него софт и подключать устройство к Ethernet, что позволяет (при написания плагина) отправлять данные измерений сразу в центральную БД системы 1С. Также к малине можно на прямую подключить любой считыватель штрих кодов (хоть USB, хоть RS-232).
ИТОГ
В итоге разработки получилось такое устройство:
— Несущий каркас из конструкционного профиля (от Соберизавод), легко собирается (почти как «лего»);
— ИК рамка сенсорная в кожухе из П-образного алюминиевого профиля;
— Шаговый двигатель и система линейного перемещения Openbuilds;
— Встроенные весы Штрих слим;
— Встроенный Raspberry в качестве контроллера системы;
— Встроенный ЖК-дисплей;
— Единственная кнопка управления системой («Начало измерения»).
- Себестоимость устройства — порядка 50–60 тыс. рублей, это действительно в 20 раз дешевле самого дешевого аналога и почти в 60 раз дешевле японского монстра.
- Точность измерения — 2 мм, против 5 мм у аналогов.
- Шаговый двигатель, вместо ручного привода.
- Масштабируемость — можно легко сделать систему для измерения легкового автомобиля или человека (например, автоматический обмер в ателье), т.к. ИК рамки выпускаются в большом ассортименте по размерам.
К сожалению, заказчик остановил проект на стадии составления ТЗ для программистов, не желая вкладываться в разработку. Поэтому в свет не вышел даже прототип.
Если кто-то из читателей, загорится воплотить идею в жизнь, буду только рад. Можете задавать вопросы.
Если сделаете рабочий образец, пожалуйста, поделитесь результатом.
P.S. В следующих статьях я расскажу:
- о разработке 3D принтера для «печати» любыми металлами и сплавами, с разрешением около 20 мкм, скоростью «печати» около 10.000 куб.см. в час и уникально низкой себестоимостью конечного изделия («desktopmetal» тихо плачет в сторонке).
- о турке в которой не убегает кофе и в которой нет ни одного датчика («timecup» присоединился к «desktopmetal»).
- о системе которая заставит врачей и поваров дизенфицировать руки.
- и еще о нескольких разработках.
Подписывайтесь, чтобы не пропустить!
А может зря я затеял этот марафон? Пишите свое мнение в комментариях, стоит ли продолжать?