Поставили нам недавно вполне конкретную задачу, от склада одного из российских дистрибьюторов электронных компонентов, с которого мы отправляем свою продукцию нашим покупателем, среди множества других посылок. Ну, хорошо! Попробуем…. Тем более, еще некоторое время назад у нас в образцах появился такой ультразвуковой датчик для измерения расстояний. По цене он заметно отличался от широко распространенных, но производитель обещал лучшую точность измерения. Да и как раз в это время мы сделали собственную версию микроконтроллера, по функциям совместимую с Ардуино Леонардо, снабдив плату винтовыми разъемами, гнездами для LCD и рядом других примочек, рассчитанных на расширение возможностей модуля в дальнейшем.

Вот так вот выглядит рабочее место упаковщика, где он взвешивает и измеряет упаковку:



Попробуем его улучшить и автоматизировать.

Серебристая поверхность это весы, они подключены к компьютеру через собственный COM-порт и автоматически передают вес в учетную систему. А вот для измерения размеров коробки местные рационализаторы разместили рядом с весами линейки, из подручных средств. Это заметно повысило производительность труда, но данные в систему приходилось вводить руками с помощью клавиатуры.

Итак, для опытного образца берем рабочее место за основу и добавляем к Древесно-Декартовой системе координат датчики, разворачиваем их внутрь осей, подключаем к микроконтроллеру, в ARDUINO IDE пишем скетч, используя библиотеку датчика и встроенные возможности Leonardo. А именно то, что в используемом микроконтроллере Atmega 32u4 реализовано подключение к компьютеру по встроенному интерфейсу USB по технологии HID-устройств. Так работают клавиатуры, мыши, торговые сканеры штрих-кодов. Это именно то, что нам и надо – передать данные в буфер клавиатуры, сымитировав ручной ввод данных.

Вот посмотрите ролик, что получилось в «черновом варианте»



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

А пока скетч работает по такой логике:

• После включения каждый из трех датчиков измеряет расстояние от себя до противоположно стенки и запоминает это расстояние как базовое
• Переходит в рабочий режим и циклически измеряет текущее расстояние
• Если текущее расстояние заметно отличается от базового – прибор считает, что в зону измерения помещена коробка. Измерение происходит по трем осям по формуле:
Размер стороны = Базовое – текущее расстояние
• Размер по трем осям записывается в соответствующие переменные.
• Передача в компьютер осуществляется по нажатию кнопки оператором. Это сделано для устранения ложных срабатываний.
• После передачи данных нажатие кнопки блокируется до момента, пока коробку не уберут. Система почувствует это по измерению текущего расстояния – оно опять станет равным базовому.
• Цикл повторяется – система ждет новую коробку

Итак, мы сделали, установили, настроили датчики для эксперимента на фиксированные базовые расстояния… и оставили на опытную эксплуатацию. Что она показала? Наноточности измерений мы не получили, но для поставленной логистической задачи точность вполне подходящая.

Кроме этого:

• Повышение производительности – Да.
• Удобство для упаковщика – Да.

Наступил второй этап нашей разработки – приведение к товарному виду. За дело взялся конструктор и с помощью программы SketchUp и нескольких чашек кофе разработал конструкцию, чем-то похожую на хорошо известный 3D-принтер RepRap.



Собственно говоря на 3D принтере мы и собирались напечатать необходимые для конструктора детали. Вот что получилось в итоге:













Здесь можно скачать STL файлы.

Поразвлекавшись с ушками и безумными наручными часами, мы нашли и коммерческое применение нашему 3D принтеру.

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

Комментарии (15)


  1. eta4ever
    30.04.2015 12:49
    +2

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


  1. eta4ever
    30.04.2015 12:54
    +3

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

    UPD. Выдайте конструктору чистую клавиатуру, плз.


    1. masterkit Автор
      30.04.2015 13:03

      Она и сейчас достаточно прочная ) Но, конечно, проверим в «боевых» условиях.


  1. serafims
    30.04.2015 12:59

    Интересное решение. Какая точность измерения получилась? Как обрабатывает коробки, упакованные в целлофан?


    1. masterkit Автор
      30.04.2015 13:11

      В целлофане не пробовали, т.к. товар внутри коробки в пупырку упакован (даже если он сам в коробке уже, все равно потом кладется в стандартную тару), а снаружи все коробки «голые».
      Точность в пределах 1 см, т.к. стандартная библиотека, которая идет в к данному датчику, возвращает значения в сантиметрах. Для данной задачи точность достаточная, поэтому мы не стали ничего переделывать. Точность самого датчика +- 3 мм, если мне память не изменяет.


  1. masterkit Автор
    30.04.2015 13:01

    Посмотрим по результатам реальной эксплуатации, может быть чуть изменим конструкцию и усилим жесткость.
    Забыл в публикации указать — сейчас использованы шпильки М8.
    Да, обратите внимание на детали из белого пластика (две пластины, образующие борт). Без них датчики врали, т.к. отражение сигнала шло от деталей самого устройства и т.п. А еще на эти детали можно наклеить линейки, для визуального контроля.


  1. trueClearThinker
    30.04.2015 13:02
    +2

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


    1. masterkit Автор
      30.04.2015 13:12

      Спасибо за идею, действительно, полезная фича.


      1. eta4ever
        30.04.2015 13:16
        +1

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


        1. masterkit Автор
          30.04.2015 13:37

          У нас уже стоит 3 УЗ датчика, с помощью которых можно отловить факт установки коробки, пробовали. Но, конкретно в нашем случае, оператору надо обеспечить, чтобы курсор стоял в нужном окне программы, иначе данные влетят не туда. Поэтому мы остановились на ручном управлении вводом. В проработке вариант измерения размеров на движущемся конвейере.


          1. eta4ever
            30.04.2015 13:45

            А что противоречит? Поставил курсор, поставил коробку.


    1. reallord
      02.05.2015 08:49

      В большинстве случаев на складе, считывание размеров, без считывания ШК товара или ШК грузоместа бессмысленно.
      Это лучше делать интерактивно, считали на ТСД штрихкод коробки/товара, взяли размеры с устройства.


  1. reallord
    01.05.2015 22:35

    Реально, отличная идея. Присматривались к такому девайсу для склада, но стоимость 2-3млн рублей сильно отпугивает.
    Как я понимаю, здесь совокупная стоимость устройства не превышает 1000$?


    1. eta4ever
      01.05.2015 22:45

      Я думаю, в килобакс можно уложиться даже при покупке 3D-принтера для изготовления устройства.


    1. masterkit Автор
      05.05.2015 08:13

      вместе принтером — да )) если принтер не покупать, то можно в 10 тыр уложиться и еще останется ))