На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила трёх "С"
Пожалуйста,
1. Соблюдайте правила Форума.
2. Слушайте советы Модераторов.
(например, http://forum.sources.ru/index.php?act=ST&f=7&t=80382 )
3. Сверяйтесь с учебником по Великому и Могучему
  
> Web-cam & мелкоскоп , Очередной изврат... :D
    0. Про что это.
    Про использование web-камеры в не-web целях. В "пристежке" -- то, что получилось.
    Использованы ингридиенты -- модули ядра video4linux, модуль stv680, софт -- xawtv,
    микроскоп -- "двухглазый", лабораторный, типа МБС-9 (vavikk где-то по случаю
    и по сходной цене отодрал... :D), скотч узкий, прозрачный, кусок плотного картона,
    камера -- Volcano DG640 Digital Camera (300К пикселей, 2 режима -- 640х480 VGA и
    320х240х16 QVGA). Shit, конечно, но лучшего под рукой ничего не было да, для
    наших целей, круче и не требуется.

    Итак, собственно идея.
    Блин! Все просто как автомат Калашникова! В настоящее время я "развлекаюсь" в области
    ремонта мобил (как CDMA, так и GSM). Весьма часто необходимо просмотреть под микроскопом
    мобилу на предмет наличия/отсутствия трещин. Если особенно она (мобила) то включается в
    сеть, то выпадает из сети. В этом случае, как правило, лучше сразу посмотреть передатчик
    на предмет микротрещин. А что делать, если мобил много? Мозги включить, пока глаза
    не поломал к черту.

    Намедни я видел микроскоп производства фирмы OLYMPUS, позволяющий решать такие задачи
    за... по-моему, $750. Угу... Облупятся. :D

    1. Hardware.
    На фото 1 (в пристежке) показано как сделано.
    Итак, берем кусок плотного картона, красим его в черный цвет с одной стороны, сворачиваем
    и склеиваем в трубочку, длиной порядка 1.5-2 см. Эта трубочка нам нужна для того, чтобы
    выдержать фокальное расстояние на окуляре микроскопа. Дело в том, что глаз у Вас не
    скользит своей поверхностью по линзе окуляра. Так?

    Так. Соответственно весь расчет оптики строится на том, что такой зазор должен быть.
    Думаю, не стоит приводить здесь законы оптики, которые можно посмотреть в "букваре" по физике.
    Ладно, пусть будет. Нам же лучше, т.к. мы сможем "глазом" охватывать максимально возможную
    поверхность.

    Теперь разбираем камеру, убеждаемся в том, что в ней стоит микруха stv0680-001,
    -002, -003 (with sound!). В разных случаях по-разному. Кстати, собирательное
    название таких микрух -- pencam, т.к. именно на базе таких микрух и делают камеры,
    помещающиеся в ручку. Поройтесь в Интернете, там есть примеры.

    Теперь, собираем всю эту байду на окуляре. Результат см. на фото 1 из "пристежки".
    Скрепить можно все это хозяйство прозрачным скотчем, чать не в Корее живем... :D

    2. Software.
    Напрягите гугля на поиск xawtv. Первая ссылка Вас приведет на www.bytesex.com,
    по-моему. Вот оттуда и надобно скачать сам xawtv и шрифты.

    Пара слов о самом пакете. Ну, честно говоря, позволяет этот пакет делать много чего:
    - захватывать и сохранять отдельный кадр.
    - писать видео (AVI, через /dev/video*) и звук (через /dev/dsp).
    - просматривать на экране как локально, так и в удаленном режиме видеопоток.
    И, кстати сказать, это не самый полный перечень того, что можно делать.

    Если ядрышко будет по-старше, нежели 2.4.20 или не содержит модуля stv680.c,
    то Вам еще и на http://stv0680-usb.sourceforge.net/ за модулем.

    Теперь в ядре.
    2.1 Заходим в /usr/src/linux-<kernel_num>/drivers/usb/usb-uchi.c,
    правим строку c #define CONFIG_USB_UCHI_HIGH_BANDWIDTH на #undef то_же_самое.
    Далее. Там же. Правим строки, переводя с 0 на 1:
    - #define USE_CTRL_DEPTH_FIRST,
    - #define USE_BULK_DEPTH_FIRST.

    2.2 Далее в make *config, разблокируем video4linux, в usb-устройствах -- stv680.
    По идее, все. Компилимся, ставимся как обычно. Если стоит пакет sane, то опосля
    установки нового ядра и модулей, вставляем разъем USB от камеры в порт компа, даем от рута
    scaneimage -L и тащимся от того, что система опознала камеру.

    Если модуль камеры качали отдельно, то все по-сложнее. Необходимо вручную его "наводить".
    В принципе, идущий в поставке Makefile такую задачу, наверное, сможет решить. Не пробовал.

    2.3 Теперь дошла очередь и до xawtv. Развернуть, скомпилить, "прикрутить",
    ExpandedWrap disabled
       
      $ xawtv -c /dev/video0 -geometry 640x480
    .

    Ну, в принципе, все. Глаза моих коллег по проекту "k207" спасены. См. часть 2 фото из
    "пристежки". Поганое качество, конечно, но... IMHO, суть понятна.

    Enjoy! :D
    See also -- /usr/src/linux-2.4.20/Documentation/video4linux, man v4l-conf, man v4-conf,
    man v4l, man v4lctl.

    PS Идея настолько "прибила", что решил написать отдельную софтинку взамен xawtv под
    GNOME (gqcam-0.9 не возбудила, скажу сразу). Выложу в открытый доступ по завершении.
    Прикреплённый файлПрикреплённый файлstv0680_u_scope.jpg (32.83 Кбайт, скачиваний: 436)
      Даю подсказку!

      Если видеокамера опознается как /dev/video0, то для просмотра картинки рекомендую tvtime (http://tvtime.sf.net).
      Программа полностью графическая, позволяет налету переключать разрешение картинки, цветность, рулить настройками и деинтерлеёсингом. Качество отличное. Собирается быстро и за четырехмесячный тестовый срок не было ни одного сбоя.
      P.S. Все бы так беты писали :)
        Мммм... Нет. Не совсем то, что мне нужно. :-(
        У меня сейчас бредовая идея по поводу того, чтоб даже в монитор не лупиться.
        Дело в том, что "трещина", которую мы так, собственно, и ищем, она в видеопоторе должна быть "видна" как цветовое смещение пикселов. Т.е., если трещина в микрухе, то она темнее. Если в экранчике, то она будет светлее. В результате я вообще хочу выводить чего-то на монитор, только если чего-то нашлось.

        Хотя, если честно, то такая "система" может быть "натаскана" на поиск и сравнение различных объектов -- хоть человеческих лиц. Просто немного пофантазировав мы получаем систему, которая, по-идее, реализует принципы "машинного зрения". Хотя, и далеко это от моих "запросов"... :-)
          в АСП 10 поставил stv680 (он собрался)
          всё пахало камера сама появилась как видео дивайс

          тепереча в АСП 12 карбон у них есть мультинаборная либа содержащая кучу сканеров и камер и наш stv680
          но v4l дивайса в списке не появилось

          в списках УСБ дивайсов она есть

          утилита sane-find-scanner

          # sane-find-scanner will now attempt to detect your scanner. If the
          # result is different from what you expected, first make sure your
          # scanner is powered up and properly connected to your computer.

          # No SCSI scanners found. If you expected something different, make sure that
          # you have loaded a kernel SCSI driver for your SCSI adapter.

          found USB scanner (vendor=0x0ac8 [Z-Star Corp.], product=0x301b [PC Camera]) at libusb:004:004
          found USB scanner (vendor=0x03f0 [Hewlett-Packard], product=0x3317 [HP LaserJet 3052]) at libusb:002:004
          радостно рапортует о 2 видеодивайсах

          scanimage -L
          device `hpaio:/usb/HP_LaserJet_3052?serial=00CNSK644569' is a Hewlett-Packard HP_LaserJet_3052 all-in-one
          device `v4l:/dev/video0' is a Noname BT878 video ( *** UNKNOWN/GENER virtual device

          видит сканер и ТВ тюнер(да и тв тюнер есть и чото показует)

          dmesg реакция на вытащить вставить
          usb 4-1: USB disconnect, address 5
          usb 4-1: new full speed USB device using uhci_hcd and address 6
          usb 4-1: configuration #1 chosen from 1 choice
          usb 4-1: ZC0301[P] Image Processor and Control Chip detected (vid/pid 0x0AC8:0x301B)
          usb 4-1: No supported image sensor detected
            Цитата the_Shadow @
            Хотя, если честно, то такая "система" может быть "натаскана" на поиск и сравнение различных объектов -- хоть человеческих лиц. Просто немного пофантазировав мы получаем систему, которая, по-идее, реализует принципы "машинного зрения". Хотя, и далеко это от моих "запросов"... :-)

            С ЦОС многое возможно. Для этого нужно показать изображения с видео-устройства и показать при каких условиях выдаётся тот или иной результат.
              Непонятно в чем проблема. Если в видео
              device `v4l:/dev/video0' is a Noname BT878 video ( *** UNKNOWN/GENER virtual device
              , то идем на http://www.bttv-gallery.de/
              Ищем там свою карточку, определяем магическое значение card=xxx
              Удаляем из системы можуль bttv
              rmmod bttv
              Вставляем с нужными параметрами
              insmod bttv card=xxx
              Если все получилось, то вписываем в
              /etc/modprobe.d/video4linux.conf
              строчку
              options bttv card=0x69 ....
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0253 ]   [ 15 queries used ]   [ Generated: 19.04.24, 15:42 GMT ]