{"id":18787,"date":"2016-11-20T16:30:13","date_gmt":"2016-11-20T07:30:13","guid":{"rendered":"http:\/\/www.sssg.org\/blogs\/hiro345\/?p=18787"},"modified":"2016-11-21T13:40:33","modified_gmt":"2016-11-21T04:40:33","slug":"%e3%83%a9%e3%82%ba%e3%83%91%e3%82%a4%e3%81%a7usb%e3%82%ab%e3%83%a1%e3%83%a9%e3%82%92%e4%bd%bf%e3%81%86%e3%81%a8%e3%81%8d%e3%81%ab%e7%9f%a5%e3%81%a3%e3%81%a6%e3%81%8a%e3%81%8d%e3%81%9f%e3%81%84","status":"publish","type":"post","link":"https:\/\/www.hiro345.net\/blogs\/hiro345\/archives\/18787.html","title":{"rendered":"\u30e9\u30ba\u30d1\u30a4\u3067USB\u30ab\u30e1\u30e9\u3092\u4f7f\u3046\u3068\u304d\u306b\u77e5\u3063\u3066\u304a\u304d\u305f\u3044\u3053\u3068"},"content":{"rendered":"<p>\u30e9\u30ba\u30d1\u30a4\u306b\u3064\u3051\u308bUSB\u30ab\u30e1\u30e9\u306b\u3064\u3044\u3066\u8abf\u3079\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<p>\u30e9\u30ba\u30d1\u30a4\u306b\u306f\u516c\u5f0f\u30ab\u30e1\u30e9\u30e2\u30b8\u30e5\u30fc\u30eb\u3068USB\u30ab\u30e1\u30e9\u3092\u3064\u3051\u308b\u3053\u3068\u304c\u3067\u304d\u3066\u3001\u8907\u6570\u53f0\u306e\u30ab\u30e1\u30e9\u3092\u642d\u8f09\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u305f\u3060\u3057\u3001\u5168\u90e8\u3092\u30d5\u30eb\u30d1\u30ef\u30fc\u5168\u958b\u3067\u5229\u7528\u3059\u308b\u306b\u306f\u3001\u96fb\u6e90\u7684\u306b\u3082CPU\u7684\u306b\u3082\u30c7\u30a3\u30b9\u30af\u30a2\u30af\u30bb\u30b9\u7684\u306b\u3082\u53b3\u3057\u3044\u3082\u306e\u304c\u3042\u3063\u305f\u308a\u3059\u308b\u306e\u3067\u3001\u7528\u9014\u306b\u5fdc\u3058\u3066\u5207\u308a\u66ff\u3048\u3092\u3057\u306a\u304c\u3089\u4f7f\u3046\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u304d\u3061\u3093\u3068\u4f7f\u3046\u305f\u3081\u306b\u306f\u3001\u3044\u308d\u3044\u308d\u8abf\u3079\u3068\u304b\u306a\u3044\u3068\u306a\u3041\u3001\u3068\u601d\u3063\u305f\u306e\u304c\u304d\u3063\u304b\u3051\u3067\u3059\u3002<\/p>\n<p><a href=\"\/\/www.sssg.org\/blogs\/hiro345\/?attachment_id=18800\" rel=\"attachment wp-att-18800\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-content\/uploads\/2016\/11\/img_3877-300x225.jpg\" alt=\"img_3877.jpg\" width=\"300\" height=\"225\" class=\"alignleft size-medium wp-image-18800\" srcset=\"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-content\/uploads\/2016\/11\/img_3877-300x225.jpg 300w, https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-content\/uploads\/2016\/11\/img_3877-768x576.jpg 768w, https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-content\/uploads\/2016\/11\/img_3877-1024x768.jpg 1024w, https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-content\/uploads\/2016\/11\/img_3877-400x300.jpg 400w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>\u3068\u3044\u3046\u3053\u3068\u3067\u3001\u624b\u5143\u306bUSB\u30ab\u30e1\u30e9\u304c4\u53f0\u3042\u3063\u305f\u306e\u3067\u3001\u305d\u308c\u305e\u308c1\u53f0\u305a\u3064\u30e9\u30ba\u30d1\u30a4\u306b\u3064\u3051\u3066\u307f\u307e\u3057\u305f\u3002\u305d\u308c\u306b\u3064\u3044\u3066\u7c21\u5358\u306b\u8abf\u3079\u305f\u3053\u3068\u3092\u8a18\u9332\u3057\u3066\u304a\u304d\u307e\u3059\u3002UVC\uff08USB video device class\u307e\u305f\u306fUSB video class\uff09\u5bfe\u5fdc\u306e\u30ab\u30e1\u30e9\u3067\u3042\u308c\u3070\u8a8d\u8b58\u3057\u3066\u4f7f\u3048\u308b\u3088\u3046\u3067\u3059\u3002<br \/>\n<!--more--><\/p>\n<h2>Logicool C270<\/h2>\n<p>\u307e\u305a\u3001\u5b9a\u756a\u306e\u300c<a type=\"amzn\" asin=\"B003YUB660\">LOGICOOL \u30a6\u30a7\u30d6\u30ab\u30e0 HD\u753b\u8cea 120\u4e07\u753b\u7d20 C270 <\/a>\u300d\u3067\u3059\u3002\u3053\u308c\u306f\u512a\u79c0\u3067\u30e9\u30ba\u30d1\u30a4\u3078\u3064\u3051\u308b\u3068\u666e\u901a\u306b\u4f7f\u3048\u307e\u3059\u3002\u5024\u6bb5\u3082\u5b89\u304f\u3066\u3044\u3044\u3067\u3059\u3088\u306d\u3002<\/p>\n<div>\n<iframe loading=\"lazy\" style=\"width: 120px; height: 240px;\" src=\"\/\/rcm-jp.amazon.co.jp\/e\/cm?t=hiro345-22&amp;o=9&amp;p=8&amp;l=as1&amp;asins=B003YUB660&amp;ref=tf_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr\" height=\"240\" width=\"320\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div>\n<p>USB\u30c7\u30d0\u30a4\u30b9\u304c\u8a8d\u8b58\u3055\u308c\u3066\u3044\u308b\u304b\u3092\u8abf\u3079\u308b\u306b\u306flsusb\u3092\u4f7f\u3044\u307e\u3059\u3002C270\u306e\u5834\u5408\u306f\u3001\u4e0b\u8a18\u306e\u3088\u3046\u306b\u3059\u308c\u3070\u308f\u304b\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ lsusb | grep C270\r\nBus 001 Device 005: ID 046d:0825 Logitech, Inc. Webcam C270\r\n<\/pre>\n<p>\u3053\u3053\u3067\u306fC270\u3068\u3044\u3046\u30ad\u30fc\u30ef\u30fc\u30c9\u304c\u308f\u304b\u3063\u3066\u3044\u308b\u306e\u3067grep\u3092\u4f7f\u3063\u3066\u307e\u3059\u304c\u3001\u30ad\u30fc\u30ef\u30fc\u30c9\u304c\u308f\u304b\u3089\u306a\u3044\u30c7\u30d0\u30a4\u30b9\u306e\u5834\u5408\u306f\u3001\u30c7\u30d0\u30a4\u30b9\u3092\u3064\u3051\u308b\u524d\u5f8c\u3067lsusb\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066\u8ffd\u52a0\u3055\u308c\u305f\u3082\u306e\u304c\u4f55\u304b\u3067\u5224\u65ad\u3057\u307e\u3059\u3002<\/p>\n<p>\u305d\u308c\u3067\u3001USB\u30ab\u30e1\u30e9\u306e\u30c7\u30d0\u30a4\u30b9\u304c\u8a8d\u8b58\u3055\u308c\u3066\u3044\u308b\u3068\u3001\/dev\/video0\u304c\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u8907\u6570\u53f0\u306eUSB\u30ab\u30e1\u30e9\u3092\u3064\u3051\u308b\u3068\u3001\/dev\/video1\u3001\/dev\/video2\u3068\u5897\u3048\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<p>\u6614\u306e\u30e9\u30ba\u30d1\u30a4\u306e\u5834\u5408\u306f\u30d0\u30b9\u30d1\u30ef\u30fc\u3067USB\u30ab\u30e1\u30e9\u3092\u4f7f\u304a\u3046\u3068\u3059\u308b\u3068\u96fb\u529b\u4e0d\u8db3\u306b\u306a\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3057\u305f\u3002Raspberry Pi 3\u3060\u30681\u53f0\u3050\u3089\u3044\u306a\u3089\u5927\u4e08\u592b\u306a\u3088\u3046\u3067\u3059\u304c\u3001\u8907\u6570\u53f0\u3064\u3051\u308b\u5834\u5408\u306f\u52d5\u4f5c\u304c\u4e0d\u5b89\u5b9a\u306b\u306a\u308b\u3053\u3068\u3082\u3042\u308a\u3048\u308b\u306e\u3067\u3001\u30bb\u30eb\u30d5\u30d1\u30ef\u30fc\u306eUSB HUB\u3092\u7528\u610f\u3059\u308b\u306a\u3069\u3057\u3066\u5bfe\u5fdc\u304c\u5fc5\u8981\u306a\u3053\u3068\u3082\u3042\u308b\u3068\u3044\u3046\u8a8d\u8b58\u306f\u3057\u3066\u304a\u3044\u305f\u307b\u3046\u304c\u826f\u3044\u3067\u3057\u3087\u3046\u3002<\/p>\n<h2>\u30ab\u30e1\u30e9\u306e\u89e3\u50cf\u5ea6<\/h2>\n<p>\u3000\u30ab\u30e1\u30e9\u304c\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u89e3\u50cf\u5ea6\u306b\u3064\u3044\u3066\u306f\u3001lsusb\u306e\u300c-v\u300d\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u8868\u793a\u3067\u304d\u307e\u3059\u3002\u540c\u6642\u306b\u300c-s\u300d\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u300cBus:Device\u300d\u306e\u5024\u3092\u6307\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u60c5\u5831\u306f\u305f\u304f\u3055\u3093\u51fa\u3066\u304f\u308b\u306e\u3067\u3001grep\u3067Width\u3067\u7d5e\u3063\u3066\u3001\u305d\u306e\u524d\u5f8c1\u884c\u3092\u8868\u793a\u3059\u308b\u3068\u898b\u3084\u3059\u304f\u306a\u308a\u307e\u3059\u3002\u6574\u7406\u3059\u308b\u3068\u3001\u3055\u3063\u304d\u306eC270\u306e\u60c5\u5831\u304b\u3089\u300cBus\u300d\u304c\u300c001\u300d\u3067\u300cDevice\u300d\u304c\u300c005\u300d\u3068\u308f\u304b\u308b\u306e\u3067\u3001C270\u306e\u5bfe\u5fdc\u3059\u308b\u89e3\u50cf\u5ea6\u3092\u53d6\u5f97\u3059\u308b\u5b9f\u969b\u306e\u30b3\u30de\u30f3\u30c9\u306f\u4e0b\u8a18\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ lsusb -s 001:005 -v | grep -1 Width\r\n<\/pre>\n<h2>fswebcam<\/h2>\n<p>\u753b\u50cf\u53d6\u5f97\u7528\u30b3\u30de\u30f3\u30c9\u3068\u3057\u3066\u6709\u540d\u306a\u306e\u306ffswebcam\u3067\u3001\u8ffd\u52a0\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304c\u5fc5\u8981\u3067\u3059\u3002\u4f7f\u3046\u306b\u306f\u3001\u4fdd\u5b58\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u3067\u5b9f\u884c\u3067\u304d\u308b\u306e\u3067\u3001\u30e2\u30cb\u30bf\u306b\u3064\u306a\u3044\u3067\u306a\u3044\u30e9\u30ba\u30d1\u30a4\u3067\u306f\u91cd\u5b9d\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ sudo apt-get -y install fswebcam\r\n$ fswebcam 001.jpg\r\n<\/pre>\n<p>\u30ab\u30e1\u30e9\u306b\u3088\u3063\u3066\u306f\u521d\u671f\u51e6\u7406\u306b\u6642\u9593\u304c\u304b\u304b\u308b\u5834\u5408\u304c\u3042\u308a\u3001\u64ae\u5f71\u958b\u59cb\u307e\u3067\u9045\u5ef6\u3055\u305b\u305f\u307b\u3046\u304c\u826f\u3044\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002\u305d\u306e\u5834\u5408\u306f\u300c-D\u300d\u3092\u4f7f\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ fswebcam -D 2 snap.jpg\r\n<\/pre>\n<p>\u30ab\u30e1\u30e9\u306b\u3088\u3063\u3066\u306f\u6700\u521d\u306b\u4f55\u56de\u304b\u64ae\u5f71\u3092\u3059\u308b\u3053\u3068\u3067\u5404\u7a2e\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u8abf\u6574\u3055\u308c\u308b\u3082\u306e\u304c\u3042\u308a\u3001\u305d\u306e\u5834\u5408\u306f\u300c-S\u300d\u3092\u4f7f\u3063\u3066\u8abf\u6574\u3092\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ fswebcam -S 10 snap.jpg\r\n<\/pre>\n<h2>luvcview\u306a\u3069<\/h2>\n<p>\u3000luvcview\u3092\u4f7f\u3046\u3068\u30ab\u30e1\u30e9\u306e\u30d7\u30ec\u30d3\u30e5\u30fc\u3092\u898b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u3067USB\u30ab\u30e1\u30e9\u306e\u60c5\u5831\u3092\u53d6\u5f97\u3067\u304d\u3066\u4fbf\u5229\u306a\u306e\u3067\u3001uvccapture \u3068 uvcdynctrl\u3082\u4e00\u7dd2\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304a\u304f\u3068\u826f\u3044\u3067\u3057\u3087\u3046\u3002uvcdynctrl\u3067\u8a2d\u5b9a\u3092\u4fdd\u5b58\u3057\u305f\u308a\u8aad\u307f\u8fbc\u3093\u3060\u308a\u3067\u304d\u307e\u3059\u304c\u3001\u305d\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306f\u5f8c\u3067\u7d39\u4ecb\u3059\u308bguvcview\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3068\u4e92\u63db\u6027\u304c\u3042\u308b\u3088\u3046\u3067\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ sudo apt-get -y install luvcview uvccapture uvcdynctrl\r\n$ luvcview\r\n<\/pre>\n<p>uvcdynctrl\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u3064\u3044\u3066\u3001\u30d8\u30eb\u30d7\u306f\u300c-h\u300d\u3001\u30c7\u30d0\u30a4\u30b9\u4e00\u89a7\u8868\u793a\u304c\u300c-l\u300d\u3067\u3059\u3002\u5229\u7528\u53ef\u80fd\u306a\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u4e00\u89a7\u306f\u300c-d\u300d\u3067\u30c7\u30d0\u30a4\u30b9\u3092\u6307\u5b9a\u3057\u3066\u300c-c\u300d\u3001\u8a73\u7d30\u3092\u77e5\u308a\u305f\u3044\u306a\u3089\u300c-v\u300d\u3092\u8ffd\u52a0\u3068\u3057\u307e\u3059\u3002\u5229\u7528\u53ef\u80fd\u306a\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u4e00\u89a7\u306f\u300c-f\u300d\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ uvcdynctrl -h\r\n$ uvcdynctrl -l\r\n$ uvcdynctrl -d video0 -c \r\n$ uvcdynctrl -d video0 -c -v\r\n$ uvcdynctrl -f\r\n<\/pre>\n<p>\u500b\u5225\u306b\u5024\u3092\u53d6\u5f97\u3057\u305f\u308a\u3001\u8a2d\u5b9a\u3059\u308b\u306b\u306f\u3001\u305d\u308c\u305e\u308c\u300c-g\u300d\u3001\u300c-s\u300d\u3092\u4f7f\u3044\u307e\u3059\u3002\u4f8b\u3048\u3070\u300c$ uvcdynctrl -d video0 -c \u300d\u3067Brightness\u304c\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u3067\u304d\u308b\u306a\u3089\u3001\u4e0b\u8a18\u306e\u3088\u3046\u306b\u4f7f\u3044\u307e\u3059\u3002\u4f8b\u3067\u306f\u73fe\u5728\u5024\u304c128\u306e\u3068\u3053\u308d\u309240\u306b\u8a2d\u5b9a\u3057\u306a\u304a\u3057\u3066\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ uvcdynctrl -d video0 -g &quot;Brightness&quot;\r\n128\r\n$ uvcdynctrl -d video0 -s &quot;Brightness&quot; 40\r\n<\/pre>\n<p>uvccapture\u3092\u4f7f\u3046\u3068\u5199\u771f\u64ae\u5f71\u304c\u3067\u304d\u3066\u3001snap.jpg\u306b\u4fdd\u5b58\u3067\u304d\u307e\u3059\u3002\u300c-o\u300d\u3067\u30d5\u30a1\u30a4\u30eb\u540d\u6307\u5b9a\u3082\u3067\u304d\u307e\u3059\u3002\u7a7a\u767d\u3092\u3044\u308c\u305a\u306b\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u300c-v\u300d\u306f\u8a73\u7d30\u60c5\u5831\u306e\u51fa\u529b\u3067\u3059\u3002\u30a8\u30e9\u30fc\u304c\u51fa\u305f\u3068\u304d\u306e\u78ba\u8a8d\u306b\u4f7f\u3048\u307e\u3059\u3002\u30ab\u30e1\u30e9\u306b\u3088\u3063\u3066\u306f\u52d5\u4f5c\u3057\u307e\u305b\u3093\u3067\u3057\u305f\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ uvccapture -m -v\r\n$ uvccapture -m -v -osnapshot.jpg\r\n<\/pre>\n<h2>guvcview\u306a\u3069<\/h2>\n<p>luvcview\u3060\u3068\u5199\u771f\u64ae\u5f71\u3084\u52d5\u753b\u64ae\u5f71\u304c\u5927\u5909\u306a\u306e\u3067\u3001\u305d\u3046\u3044\u3046\u3053\u3068\u3092\u3057\u305f\u3044\u5834\u5408\u306f\u3001GUI\u7248\u306e guvcview \u3092\u4f7f\u3044\u307e\u3059\u3002\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u3059\u308b\u3068\u30e1\u30cb\u30e5\u30fc\u306e\u300c\u30b5\u30a6\u30f3\u30c9\u3068\u30d3\u30c7\u30aa\u300d-\u300cguvcview\u300d\u304b\u3089\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ sudo apt-get -y install guvcview\r\n<\/pre>\n<p>\u8d77\u52d5\u3059\u308b\u3068\u30ab\u30e1\u30e9\u306e\u81ea\u52d5\u8abf\u6574\u3092\u3057\u3066\u304f\u308c\u308b\u3088\u3046\u3067\u3059\u3002\u3053\u306e\u3042\u3068\u7d39\u4ecb\u3059\u308bDigio2\u3084ELECOM UCAM-C0220FBNWH\u3082\u5199\u771f\u64ae\u5f71\u306b\u4f7f\u3048\u307e\u3057\u305f\u3002<\/p>\n<p>\u8a2d\u5b9a\u5024\u306f\u30e1\u30cb\u30e5\u30fc\u306e\u300cSettings\u300d-\u300cSave\u300d\u3067\u4fdd\u5b58\u3067\u304d\u307e\u3059\u3002\u4fdd\u5b58\u3057\u305f\u8a2d\u5b9a\u5024\u306f\u300cSettings\u300d-\u300cLoad\u300d\u3067\u5229\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\n<h2>v4l-utils<\/h2>\n<p>v4l-utils\u306f\u3001Web\u30ab\u30e1\u30e9\u7528\u306e\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u3092\u63d0\u4f9b\u3059\u308b\u3082\u306e\u3067\u3001libv4l\u3067\u5229\u7528\u53ef\u80fd\u306a\u72ec\u81ea\u306e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3092\u51e6\u7406\u3057\u3001V4L\u30c7\u30d0\u30a4\u30b9\u3092\u30c6\u30b9\u30c8\u3059\u308b\u305f\u3081\u306e\u30c4\u30fc\u30eb\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u3088\u3046\u3067\u3059\u3002\u6700\u521d\u304b\u3089\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u3088\u3046\u3067\u3059\u304c\u3001\u306a\u3044\u5834\u5408\u306f\u6b21\u306e\u3088\u3046\u306b\u3057\u3066\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ sudo apt-get -y install v4l-utils\r\n<\/pre>\n<p>\u3053\u308c\u306b\u542b\u307e\u308c\u308bv4l2-ctl\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3068\u3001\u5229\u7528\u53ef\u80fd\u306a\u30c7\u30d0\u30a4\u30b9\u306e\u4e00\u89a7\u3092\u8868\u793a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ v4l2-ctl --list-devices\r\n<\/pre>\n<p>\u660e\u308b\u3055\u3001\u30ba\u30fc\u30e0\u3001\u30d5\u30a9\u30fc\u30ab\u30b9\u306a\u3069\u306f\u3001v4l2-ctl\u3067\u8abf\u6574\u3067\u304d\u307e\u3059\u3002\u3059\u3079\u3066\u306e\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u3068\u305d\u306e\u30e1\u30cb\u30e5\u30fc\u3092\u8868\u793a\u3059\u308b\u306b\u306f\u3001\u300c-L\u300d\u3092\u4f7f\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ v4l2-ctl -L\r\n<\/pre>\n<p>\u5024\u3092\u8abf\u6574\u3059\u308b\u306b\u306f\u3001\u300c-c\u300d\u3092\u4f7f\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ v4l2-ctl -c &lt;option&gt; = &lt;value&gt;\r\n<\/pre>\n<p>C270\u3092\u4f7f\u3063\u305f\u5834\u5408\u306e\u7d50\u679c\u3092\u5165\u308c\u3066\u304a\u304d\u307e\u3059\u3002UVC\u30ab\u30e1\u30e9\u3068\u3057\u3066\u8a8d\u8b58\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ v4l2-ctl --list-devices\r\nUVC Camera (046d:0825) (usb-3f980000.usb-1.4):\r\n\t\/dev\/video0\r\n\r\n$ v4l2-ctl -L\r\n                     brightness (int)    : min=0 max=255 step=1 default=-8193 value=128\r\n                       contrast (int)    : min=0 max=255 step=1 default=57343 value=32\r\n                     saturation (int)    : min=0 max=255 step=1 default=57343 value=32\r\n white_balance_temperature_auto (bool)   : default=1 value=1\r\n                           gain (int)    : min=0 max=255 step=1 default=57343 value=64\r\n           power_line_frequency (menu)   : min=0 max=2 default=2 value=2\r\n\t\t\t\t0: Disabled\r\n\t\t\t\t1: 50 Hz\r\n\t\t\t\t2: 60 Hz\r\n      white_balance_temperature (int)    : min=0 max=10000 step=10 default=61432 value=4000 flags=inactive\r\n                      sharpness (int)    : min=0 max=255 step=1 default=57343 value=24\r\n         backlight_compensation (int)    : min=0 max=1 step=1 default=57343 value=0\r\n                  exposure_auto (menu)   : min=0 max=3 default=0 value=3\r\n\t\t\t\t1: Manual Mode\r\n\t\t\t\t3: Aperture Priority Mode\r\n              exposure_absolute (int)    : min=1 max=10000 step=1 default=166 value=166 flags=inactive\r\n         exposure_auto_priority (bool)   : default=0 value=1\r\n                     brightness (int)    : min=0 max=255 step=1 default=-8193 value=128\r\n                       contrast (int)    : min=0 max=255 step=1 default=57343 value=32\r\n                     saturation (int)    : min=0 max=255 step=1 default=57343 value=32\r\n white_balance_temperature_auto (bool)   : default=1 value=1\r\n                           gain (int)    : min=0 max=255 step=1 default=57343 value=64\r\n           power_line_frequency (menu)   : min=0 max=2 default=2 value=2\r\n\t\t\t\t0: Disabled\r\n\t\t\t\t1: 50 Hz\r\n\t\t\t\t2: 60 Hz\r\n      white_balance_temperature (int)    : min=0 max=10000 step=10 default=61432 value=4000 flags=inactive\r\n                      sharpness (int)    : min=0 max=255 step=1 default=57343 value=24\r\n         backlight_compensation (int)    : min=0 max=1 step=1 default=57343 value=0\r\n<\/pre>\n<h2>\u30ed\u30a2\u30b9 Digio2<\/h2>\n<p>\u300c<a type=\"amzn\" asin=\"B001DU8OPO\">Digio2 UVC\u5bfe\u5fdc\u30ea\u30a2\u30eb130\u4e07\u753b\u7d20\u8d85\u5c0f\u578b\u30b9\u30c6\u30a3\u30c3\u30afPC\u30ab\u30e1\u30e9 \u30db\u30ef\u30a4\u30c8 MCM-14W <\/a>\u300d\u3082\u3064\u3051\u3066\u307f\u307e\u3057\u305f\u3002Amazon\u3060\u3068\u7d50\u69cb\u306a\u5024\u6bb5\u304c\u3057\u307e\u3059\u304c\u3001\u5ef6\u9577\u30b1\u30fc\u30d6\u30eb\u3064\u304d\u3067\u30e9\u30ba\u30d1\u30a4\u306b\u3082\u30b3\u30f3\u30d1\u30af\u30c8\u306b\u3064\u3051\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u306e\u3067\u3001\u4eba\u6c17\u304c\u3042\u308b\u306e\u3067\u3057\u3087\u3046\u304b\u3002<\/p>\n<div>\n<iframe loading=\"lazy\" style=\"width: 120px; height: 240px;\" src=\"\/\/rcm-jp.amazon.co.jp\/e\/cm?t=hiro345-22&amp;o=9&amp;p=8&amp;l=as1&amp;asins=B001DU8OPO&amp;ref=tf_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr\" height=\"240\" width=\"320\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div>\n<p>lsusb\u30b3\u30de\u30f3\u30c9\u306e\u5b9f\u884c\u7d50\u679c\u306f\u6b21\u306e\u901a\u308a\u3067\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ lsusb|grep Z-Star\r\nBus 001 Device 009: ID 0ac8:0332 Z-Star Microelectronics Corp. \r\n<\/pre>\n<p>fswebcam\u30b3\u30de\u30f3\u30c9\u3060\u3068\u8272\u304c\u304a\u304b\u3057\u304f\u306a\u308a\u307e\u3059\u3002\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u300c-S\u300d\u3092\u4f7f\u3063\u3066\u64ae\u5f71\u3059\u308b\u3068\u826f\u304f\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n<p>guvcview\u3067\u898b\u308b\u3068\u8abf\u6574\u304c\u3055\u308c\u3066\u4f7f\u3048\u307e\u3057\u305f\u3002guvcview\u306e\u300cSettings\u300d-\u300cSave Profile\u300d\u3067\u4fdd\u5b58\u3067\u304d\u308b\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306f\u4e0b\u8a18\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u30d5\u30a1\u30a4\u30eb\u540d\u306fdigio2.gpfl\u3067\u4fdd\u5b58\u3057\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ cat digio2.gpfl \r\n#V4L2\/CTRL\/0.0.2\r\nAPP{&quot;guvcview 2.0.1&quot;}\r\n# control data\r\n#Brightness\r\nID{0x00980900};CHK{-16:16:1:-8193}=VAL{2}\r\n#Contrast\r\nID{0x00980901};CHK{1:32:1:57343}=VAL{16}\r\n#Saturation\r\nID{0x00980902};CHK{0:15:1:57343}=VAL{4}\r\n#Hue\r\nID{0x00980903};CHK{-45:45:1:-8193}=VAL{0}\r\n#White Balance Temperature, Auto\r\nID{0x0098090c};CHK{0:1:1:1}=VAL{1}\r\n#Gamma\r\nID{0x00980910};CHK{100:200:10:61432}=VAL{190}\r\n#Gain\r\nID{0x00980913};CHK{64:64:1:57343}=VAL{64}\r\n#Power Line Frequency\r\nID{0x00980918};CHK{0:2:1:1}=VAL{1}\r\n#Sharpness\r\nID{0x0098091b};CHK{0:15:1:57343}=VAL{1}\r\n#Backlight Compensation\r\nID{0x0098091c};CHK{0:1:1:57343}=VAL{0}\r\n#Exposure, Auto\r\nID{0x009a0901};CHK{0:3:1:0}=VAL{3}\r\n#Exposure, Auto Priority\r\nID{0x009a0903};CHK{0:1:1:0}=VAL{1}\r\n<\/pre>\n<p>\u300cSettings\u300d-\u300cHardware Default\u300d\u3068\u3059\u308b\u3068\u3001\u8f1d\u5ea6\u304c -16 \u306b\u306a\u3063\u305f\u308a\u3001\u8272\u76f8\u304c -45 \u306b\u306a\u3063\u305f\u308a\u3001\u30ac\u30f3\u30de\u304c 200 \u306b\u306a\u3063\u305f\u308a\u3068\u3001\u3044\u308d\u3044\u308d\u3068\u304a\u304b\u3057\u306a\u5024\u306b\u306a\u308a\u307e\u3059\u3002\u3067\u3059\u304b\u3089\u3001\u6700\u521d\u306bguvcview\u3092\u8d77\u52d5\u3057\u3066\u81ea\u52d5\u8abf\u6574\u3067\u826f\u3044\u611f\u3058\u306b\u306a\u3063\u3066\u3044\u305f\u3089\u300cSettings\u300d-\u300cSave Profile\u300d\u3057\u3066\u8a2d\u5b9a\u3092\u4fdd\u5b58\u3057\u3066\u304a\u304d\u3001\u554f\u984c\u304c\u8d77\u304d\u305f\u3089\u300cSettings\u300d-\u300cLoad Profile\u300d\u3067\u8a2d\u5b9a\u3092\u30ed\u30fc\u30c9\u3057\u306a\u304a\u3059\u306e\u304c\u826f\u3044\u3088\u3046\u3067\u3059\u3002<\/p>\n<p>\u30b3\u30de\u30f3\u30c9\u304b\u3089\u4f7f\u3046\u5834\u5408\u306e\u30ab\u30e1\u30e9\u8a2d\u5b9a\u306b\u3064\u3044\u3066\u306f\u3001uvcdynctrl\u3092\u4f7f\u3048\u3070\u3044\u3044\u304b\u3068\u601d\u3063\u3066\u3001\u8a2d\u5b9a\u3092\u3057\u3066\u307f\u305f\u308a\u3057\u305f\u306e\u3067\u3059\u304c\u3001uvccapture\u3082fswebcam\u3082uvcdynctrl\u3067\u8a2d\u5b9a\u3057\u305f\u5024\u3092\u4f7f\u3063\u3066\u304f\u308c\u306a\u3044\u3088\u3046\u3067\u3046\u307e\u304f\u5199\u771f\u64ae\u5f71\u304c\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002<\/p>\n<p>GUI\u30a2\u30d7\u30ea\u3092\u4f7f\u3048\u308b\u74b0\u5883\u306a\u3089\u3001guvcview\u3092\u4f7f\u3048\u3070\u3044\u3044\u306e\u3067\u3059\u304c\u3001fswebcam\u30b3\u30de\u30f3\u30c9\u306a\u3069\u3092\u4f7f\u3044\u305f\u3044\u5834\u5408\u306f\u300c-S\u300d\u3067\u8abf\u6574\u3057\u3066\u4f7f\u3046\u3053\u3068\u306b\u306a\u308a\u305d\u3046\u3067\u3059\u3002motion\u3084MJPG Streamer\u3067\u3069\u3046\u306a\u308b\u304b\u307e\u3067\u306f\u898b\u3066\u307e\u305b\u3093\u304c\u3001\u52d5\u753b\u7cfb\u3060\u3068\u81ea\u52d5\u8abf\u6574\u304c\u3046\u307e\u304f\u5165\u3063\u3066\u5927\u4e08\u592b\u306a\u306e\u3060\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>v4l-ctl\u30b3\u30de\u30f3\u30c9\u306e\u7d50\u679c\u3067\u306f\u3001USB 2.0 \u30ab\u30e1\u30e9\u3068\u3057\u3066\u8a8d\u8b58\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ v4l2-ctl --list-devices\r\nUSB 2.0 Camera (usb-3f980000.usb-1.4):\r\n\t\/dev\/video0\r\n$ v4l2-ctl -L\r\n                     brightness (int)    : min=-16 max=16 step=1 default=-8193 value=2\r\n                       contrast (int)    : min=1 max=32 step=1 default=57343 value=16\r\n                     saturation (int)    : min=0 max=15 step=1 default=57343 value=4\r\n                            hue (int)    : min=-45 max=45 step=1 default=-8193 value=0\r\n white_balance_temperature_auto (bool)   : default=1 value=1\r\n                          gamma (int)    : min=100 max=200 step=10 default=61432 value=190\r\n                           gain (int)    : min=64 max=64 step=1 default=57343 value=64\r\n           power_line_frequency (menu)   : min=0 max=2 default=1 value=1\r\n\t\t\t\t0: Disabled\r\n\t\t\t\t1: 50 Hz\r\n\t\t\t\t2: 60 Hz\r\n      white_balance_temperature (int)    : min=2800 max=6500 step=1850 default=11693 value=6500 flags=inactive\r\n                      sharpness (int)    : min=0 max=15 step=1 default=57343 value=3\r\n         backlight_compensation (int)    : min=0 max=1 step=1 default=57343 value=0\r\n                  exposure_auto (menu)   : min=0 max=3 default=0 value=3\r\n\t\t\t\t1: Manual Mode\r\n\t\t\t\t3: Aperture Priority Mode\r\n              exposure_absolute (int)    : min=2 max=20 step=2 default=4 value=4 flags=inactive\r\n         exposure_auto_priority (bool)   : default=0 value=1\r\n                     brightness (int)    : min=-16 max=16 step=1 default=-8193 value=2\r\n                       contrast (int)    : min=1 max=32 step=1 default=57343 value=16\r\n                     saturation (int)    : min=0 max=15 step=1 default=57343 value=4\r\n                            hue (int)    : min=-45 max=45 step=1 default=-8193 value=0\r\n white_balance_temperature_auto (bool)   : default=1 value=1\r\n                          gamma (int)    : min=100 max=200 step=10 default=61432 value=190\r\n                           gain (int)    : min=64 max=64 step=1 default=57343 value=64\r\n           power_line_frequency (menu)   : min=0 max=2 default=1 value=1\r\n\t\t\t\t0: Disabled\r\n\t\t\t\t1: 50 Hz\r\n\t\t\t\t2: 60 Hz\r\n      white_balance_temperature (int)    : min=2800 max=6500 step=1850 default=11693 value=6500 flags=inactive\r\n                      sharpness (int)    : min=0 max=15 step=1 default=57343 value=3\r\n         backlight_compensation (int)    : min=0 max=1 step=1 default=57343 value=0\r\n<\/pre>\n<p>\u5024\u306e\u5909\u66f4\u306fuvcdynctrl\u3067\u3082\u3044\u3044\u3068\u601d\u3044\u307e\u3059\u304c\u3001v4l2-ctl\u3067\u3082\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ v4l2-ctl -c brightness=2\r\n$ v4l2-ctl -c contrast=16\r\n$ v4l2-ctl -c saturation=4\r\n$ v4l2-ctl -c hue=0\r\n$ v4l2-ctl -L\r\n<\/pre>\n<h2>ELECOM UCAM-C0220FBNWH<\/h2>\n<p>\u300c<a type=\"amzn\" asin=\"B00UZNLIOY\">\u30a8\u30ec\u30b3\u30e0 WEB\u30ab\u30e1\u30e9 200\u4e07\u753b\u7d20 \u30de\u30a4\u30af\u5185\u8535 MAC\u5bfe\u5fdc \u30db\u30ef\u30a4\u30c8 UCAM-C0220FBNWH <\/a>\u300d\u3082\u3064\u3051\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<div>\n<iframe loading=\"lazy\" style=\"width: 120px; height: 240px;\" src=\"\/\/rcm-jp.amazon.co.jp\/e\/cm?t=hiro345-22&amp;o=9&amp;p=8&amp;l=as1&amp;asins=B00UZNLIOY&amp;ref=tf_til&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr\" height=\"240\" width=\"320\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div>\n<p>lsusb\u30b3\u30de\u30f3\u30c9\u306e\u5b9f\u884c\u7d50\u679c\u306f\u6b21\u306e\u901a\u308a\u3067\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ lsusb|grep Elecom\r\nBus 001 Device 006: ID 056e:7016 Elecom Co., Ltd \r\n<\/pre>\n<p>\u3053\u3061\u3089\u3082fswebcam\u3067\u5199\u771f\u3092\u64ae\u5f71\u3059\u308b\u3068\u7dd1\u8272\u304c\u304b\u3063\u3066\u3057\u307e\u3044\u307e\u3059\u3002\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u300c-S\u300d\u3092\u4f7f\u3063\u3066\u64ae\u5f71\u3059\u308b\u3068\u826f\u304f\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n<p>guvcview\u306e\u300cSettings\u300d-\u300cSave Profile\u300d\u3067\u4fdd\u5b58\u3067\u304d\u308b\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306f\u4e0b\u8a18\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u30d5\u30a1\u30a4\u30eb\u540d\u306felecom_ucam-c0220fbnwh.gpfl\u3067\u4fdd\u5b58\u3057\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ cat elecom_ucam-c0220fbnwh.gpfl \r\n#V4L2\/CTRL\/0.0.2\r\nAPP{&quot;guvcview 2.0.1&quot;}\r\n# control data\r\n#Brightness\r\nID{0x00980900};CHK{-127:127:1:-8193}=VAL{0}\r\n#Contrast\r\nID{0x00980901};CHK{0:127:1:57343}=VAL{64}\r\n#Saturation\r\nID{0x00980902};CHK{0:255:1:57343}=VAL{64}\r\n#Hue\r\nID{0x00980903};CHK{-16000:16000:1:-8193}=VAL{0}\r\n#White Balance Temperature, Auto\r\nID{0x0098090c};CHK{0:1:1:1}=VAL{1}\r\n#Gamma\r\nID{0x00980910};CHK{16:500:1:57343}=VAL{100}\r\n#Power Line Frequency\r\nID{0x00980918};CHK{0:2:1:1}=VAL{1}\r\n#Sharpness\r\nID{0x0098091b};CHK{0:63:1:57343}=VAL{10}\r\n#Exposure, Auto\r\nID{0x009a0901};CHK{0:3:1:0}=VAL{3}\r\n#Exposure, Auto Priority\r\nID{0x009a0903};CHK{0:1:1:0}=VAL{64}\r\n<\/pre>\n<p>v4l2-ctl\u30b3\u30de\u30f3\u30c9\u3067\u306e\u7d50\u679c\u3082\u8a18\u8f09\u3057\u3066\u304a\u304d\u307e\u3059\u3002UCAM-C0220F\u3068\u8868\u793a\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ v4l2-ctl --list-devices\r\nUCAM-C0220F (usb-3f980000.usb-1.4):\r\n\t\/dev\/video0\r\n\r\n$ v4l2-ctl -L\r\n                     brightness (int)    : min=-127 max=127 step=1 default=-8193 value=0\r\n                       contrast (int)    : min=0 max=127 step=1 default=57343 value=64\r\n                     saturation (int)    : min=0 max=255 step=1 default=57343 value=64\r\n                            hue (int)    : min=-16000 max=16000 step=1 default=-8193 value=0\r\n white_balance_temperature_auto (bool)   : default=1 value=1\r\n                          gamma (int)    : min=16 max=500 step=1 default=57343 value=100\r\n           power_line_frequency (menu)   : min=0 max=2 default=1 value=1\r\n\t\t\t\t0: Disabled\r\n\t\t\t\t1: 50 Hz\r\n\t\t\t\t2: 60 Hz\r\n      white_balance_temperature (int)    : min=2800 max=6500 step=1 default=57343 value=5200 flags=inactive\r\n                      sharpness (int)    : min=0 max=63 step=1 default=57343 value=10\r\n                  exposure_auto (menu)   : min=0 max=3 default=0 value=3\r\n\t\t\t\t1: Manual Mode\r\n\t\t\t\t3: Aperture Priority Mode\r\n              exposure_absolute (int)    : min=1 max=5000 step=1 default=625 value=625 flags=inactive\r\nerror 5 getting ext_ctrl Exposure, Auto Priority\r\n                     brightness (int)    : min=-127 max=127 step=1 default=-8193 value=0\r\n                       contrast (int)    : min=0 max=127 step=1 default=57343 value=64\r\n                     saturation (int)    : min=0 max=255 step=1 default=57343 value=64\r\n                            hue (int)    : min=-16000 max=16000 step=1 default=-8193 value=0\r\n white_balance_temperature_auto (bool)   : default=1 value=1\r\n                          gamma (int)    : min=16 max=500 step=1 default=57343 value=100\r\n           power_line_frequency (menu)   : min=0 max=2 default=1 value=1\r\n\t\t\t\t0: Disabled\r\n\t\t\t\t1: 50 Hz\r\n\t\t\t\t2: 60 Hz\r\n      white_balance_temperature (int)    : min=2800 max=6500 step=1 default=57343 value=5200 flags=inactive\r\n                      sharpness (int)    : min=0 max=63 step=1 default=57343 value=10\r\n<\/pre>\n<h2>\u8a73\u7d30\u4e0d\u660e\u306eWeb\u30ab\u30e1\u30e9<\/h2>\n<p>\u304b\u306a\u308a\u6614\u306b\u8cfc\u5165\u3057\u305fWeb\u30ab\u30e1\u30e9\u3067640&#215;480, 320&#215;240\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u3082\u306e\u3067\u3001lsusb\u30b3\u30de\u30f3\u30c9\u3067\u306fZC0302 Webcam\u3068\u8a8d\u8b58\u3057\u3066\u3044\u307e\u3059\u300215cm \u307b\u3069\u306e\u8ddd\u96e2\u3067\u3082\u30d4\u30f3\u307c\u3051\u3057\u3066\u3057\u307e\u3046\u306e\u3068\u3001\u53cd\u5fdc\u304c\u9045\u304f\u30011fps\u3057\u304b\u306a\u3044\u3088\u3046\u306a\u306e\u3067\u3001\u4f7f\u3044\u307f\u3061\u304c\u3042\u308a\u307e\u305b\u3093\u3002\u3068\u306f\u3044\u3048\u3001\u8a8d\u8b58\u3057\u3066\u4f7f\u3048\u305f\u306e\u3067\u8a18\u9332\u3068\u3057\u3066\u3044\u308c\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ lsusb|grep ZC0302\r\nBus 001 Device 008: ID 0ac8:0302 Z-Star Microelectronics Corp. ZC0302 Webcam\r\n<\/pre>\n<h2>python-opencv<\/h2>\n<p>python-opencv\u3092\u4f7f\u3046\u3068USB\u30ab\u30e1\u30e9\u3092\u30d7\u30ed\u30b0\u30e9\u30e0\u304b\u3089\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002pygame\u3067\u3082\u3044\u3051\u307e\u3059\u304c\u3001\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u6307\u5b9a\u304cpygame.camera.Camera.set_controls(hflip = bool, vflip = bool, brightness)\u3057\u304b\u306a\u304b\u3063\u305f\u306e\u3067\u3001OpenCV\u306e\u65b9\u304c\u7d30\u304b\u304f\u6307\u5b9a\u3067\u304d\u3066\u3044\u3044\u304b\u3068\u601d\u3044\u8abf\u3079\u307e\u3057\u305f\u3002python-opencv\u306fpython\u30b3\u30de\u30f3\u30c9\u7528\u306a\u306e\u3067\u3001python3\u3067\u306f\u4f7f\u3048\u307e\u305b\u3093\u3002python3\u30b3\u30de\u30f3\u30c9\u3067\u4f7f\u3044\u305f\u3044\u5834\u5408\u306f\u5225\u9014\u5bfe\u5fdc\u3057\u305fopencv\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ sudo apt-get -y install python-opencv\r\n<\/pre>\n<p>\u30d7\u30ed\u30b0\u30e9\u30e0\u4f8b snap.py \u306f\u4e0b\u8a18\u3067\u3059\u3002\u305f\u3060\u3001\u3053\u308c\u3060\u3068\u8272\u8abf\u304c\u304a\u304b\u3057\u3044\u30ab\u30e1\u30e9\u3060\u3068\u304a\u304b\u3057\u306a\u8272\u3067\u64ae\u5f71\u3055\u308c\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n#!\/usr\/bin\/env python\r\n# -*- coding: utf-8 -*-\r\nimport cv2\r\ncamera_port = 0   # \/dev\/video0\u306b\u5bfe\u5fdc\r\ncap = cv2.VideoCapture(camera_port)\r\nprint(&quot;Taking image...&quot;)\r\nret, im = cap.read()\r\nif ret==True:\r\n    file_name = &quot;snap.jpg&quot;\r\n    cv2.imwrite(file_name, im)\r\ncap.release()\r\n<\/pre>\n<p>\u4f7f\u3044\u65b9\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ python snap.py\r\n<\/pre>\n<p>\u81ea\u52d5\u3067\u8272\u8abf\u306a\u3069\u3092\u8abf\u6574\u3059\u308b\u30ab\u30e1\u30e9\u306e\u5834\u5408\u306f\u3001\u6642\u9593\u3092\u304a\u3044\u3066\u8abf\u6574\u304c\u6e08\u3093\u3067\u304b\u3089\u64ae\u5f71\u3092\u3059\u308c\u3070\u826f\u3044\u304b\u3082\u3057\u308c\u306a\u3044\u3068\u3044\u3046\u3053\u3068\u3067\u3001time.sleep(3)\u3068\u3057\u305f\u3082\u306e\u304c\u4e0b\u8a18\u3067\u3059\u3002Digio2\u306e\u30ab\u30e1\u30e9\u3067\u306f\u826f\u304f\u306a\u308a\u307e\u3057\u305f\u3002Elecom\u306e\u30ab\u30e1\u30e9\u3067\u306f\u305d\u308c\u307b\u3069\u826f\u304f\u306f\u306a\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n#!\/usr\/bin\/env python\r\n# -*- coding: utf-8 -*-\r\nimport cv2\r\nimport time\r\n\r\ncamera_port = 0   # \/dev\/video0\u306b\u5bfe\u5fdc\r\ncap = cv2.VideoCapture(camera_port)\r\nprint(&quot;Ready...&quot;)\r\ntime.sleep(3)\r\nprint(&quot;Taking image...&quot;)\r\nret, im = cap.read()\r\nif ret==True:\r\n    file_name = &quot;snap.jpg&quot;\r\n    cv2.imwrite(file_name, im)\r\ncap.release()\r\n<\/pre>\n<p>\u305f\u30603\u79d2\u5f85\u3064\u306e\u3067\u306a\u304f\u3001\u64ae\u5f71\u309230\u56de\u3059\u308c\u3070\u88dc\u6b63\u3055\u308c\u308b\u304b\u3082\u3057\u308c\u306a\u3044\u3068\u3044\u3046\u3053\u3068\u3067\u3001\u305d\u3046\u3044\u3046\u51e6\u7406\u3092Ready\u306e\u76f4\u5f8c\u306b\u3044\u308c\u305f\u306e\u304c\u4e0b\u8a18\u3067\u3059\u3002Digio2\u3001Elecom\u306e\u30ab\u30e1\u30e9\u4e21\u65b9\u3067\u826f\u304f\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n#!\/usr\/bin\/env python\r\n# -*- coding: utf-8 -*-\r\nimport cv2\r\n\r\ncamera_port = 0   # \/dev\/video0\u306b\u5bfe\u5fdc\r\nramp_frames = 30\r\ncap = cv2.VideoCapture(camera_port)\r\nprint(&quot;Ready...&quot;)\r\nfor i in xrange(ramp_frames):\r\n    ret, im = cap.read()\r\nprint(&quot;Taking image...&quot;)\r\nret, im = cap.read()\r\nif ret==True:\r\n    file_name = &quot;snap.jpg&quot;\r\n    cv2.imwrite(file_name, im)\r\ncap.release()\r\n<\/pre>\n<p>opencv\u304b\u3089\u30ab\u30e1\u30e9\u306e\u8a2d\u5b9a\u3092\u3059\u308b\u3088\u3046\u306b\u3057\u3066\u307f\u307e\u3057\u305f\u304c\u3001Digio2\u3067\u306f\u304d\u3061\u3093\u3068\u52d5\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6574\u6570\u5024\u3092\u305d\u306e\u307e\u307e\u6e21\u3059\u3068\u3046\u307e\u304f\u3044\u304b\u306a\u3044\u306e\u3067\u3001\u5999\u306a\u6570\u5f0f\u306b\u3057\u3066\u3042\u308a\u307e\u3059\u304c\u3001\u3044\u304f\u3064\u304b\u5024\u3092\u3044\u308c\u3066\u307f\u3066\u3001v4l2-ctl -L \u3067\u78ba\u8a8d\u3092\u3057\u3066\u8abf\u6574\u3092\u3057\u3066\u3044\u307e\u3059\u3002\u3044\u307e\u306e\u3068\u3053\u308d\u306f\u5f79\u306b\u7acb\u305f\u306a\u3044\u306e\u3067\u3059\u304c\u3001\u8a18\u9332\u3068\u3057\u3066\u6b8b\u3057\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n#!\/usr\/bin\/env python\r\n# -*- coding: utf-8 -*-\r\nimport cv2\r\nimport time\r\n\r\ncamera_port = 0  # \/dev\/video0\u306b\u5bfe\u5fdc\r\ncap = cv2.VideoCapture(camera_port)\r\ncap.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH, 640)\r\ncap.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT, 480)\r\nx = 2\r\ncap.set(cv2.cv.CV_CAP_PROP_BRIGHTNESS, (x + 16) \/ 32.0)\r\nx = 16\r\ncap.set(cv2.cv.CV_CAP_PROP_CONTRAST, x \/ 32.0)\r\nx = 4\r\ncap.set(cv2.cv.CV_CAP_PROP_SATURATION, x \/ 15.0)\r\nx = 0\r\ncap.set(cv2.cv.CV_CAP_PROP_HUE, (x + 45) \/ 90.0)\r\nx = 64\r\ncap.set(cv2.cv.CV_CAP_PROP_GAIN, x \/ 64.0)\r\n\r\nprint(&quot;Ready...&quot;)\r\ntime.sleep(1)\r\nprint(&quot;Taking image...&quot;)\r\nret, im = cap.read()\r\nif ret==True:\r\n    file_name = &quot;snap.jpg&quot;\r\n    cv2.imwrite(file_name, im)\r\n\r\ncap.release()\r\n<\/pre>\n<h2>uv4l<\/h2>\n<p>\u3044\u308d\u3044\u308d\u8abf\u3079\u3066\u3044\u305f\u3089\u3001uv4l\u3068\u3044\u3046\u306e\u3082\u3042\u308b\u306e\u3067\u3059\u306d\u3002\u9762\u767d\u305d\u3046\u3067\u3059\u3002\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u65b9\u6cd5\u306f\u300c<a href=\"http:\/\/www.linux-projects.org\/uv4l\/installation\/\">Installation for ARM (Raspberry Pi) \u2013 (advanced) Projects<\/a>\u300d\u306b\u3042\u308a\u307e\u3059\u3002\u4e0b\u8a18\u306e\u3088\u3046\u306b\u3057\u3066\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u307f\u307e\u3057\u305f\u3002\u305f\u3060\u3001USB\u30ab\u30e1\u30e9\u306f\u3046\u307e\u304f\u52d5\u4f5c\u3057\u306a\u304f\u3066\u3001\u3044\u308d\u3044\u308d\u3084\u3063\u3066\u3044\u305f\u3089\u74b0\u5883\u304c\u304a\u304b\u3057\u304f\u306a\u3063\u3066USB\u30ab\u30e1\u30e9\u306e\/dev\/video0\u304c\u4f5c\u3089\u308c\u306a\u304f\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3057\u305f\u3002\u30e9\u30ba\u30d1\u30a4\u306e\u516c\u5f0f\u30ab\u30e1\u30e9\u306f\u3059\u3093\u306a\u308a\u3068\u52d5\u304d\u307e\u3057\u305f\u3002\u3068\u3044\u3046\u3053\u3068\u3067\u3001\u30e1\u30e2\u3068\u3044\u3046\u524d\u63d0\u3067\u8aad\u3093\u3067\u3082\u3089\u3048\u3070\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ curl http:\/\/www.linux-projects.org\/listing\/uv4l_repo\/lrkey.asc | sudo apt-key add -\r\n$ sudo su -c &quot;echo &#039;&#039; &gt;&gt; \/etc\/apt\/sources.list&quot;\r\n$ sudo su -c &quot;echo &#039;deb http:\/\/www.linux-projects.org\/listing\/uv4l_repo\/raspbian\/ jessie main&#039; &gt;&gt; \/etc\/apt\/sources.list&quot;\r\n$ sudo apt-get update\r\n$ sudo apt-get -y install uv4l uv4l-raspicam\r\n<\/pre>\n<p>\u3053\u308c\u3067 \u30e9\u30ba\u30d1\u30a4\u306eIP\u30a2\u30c9\u30ec\u30b9\u304c192.168.0.100\u3060\u3068\u3057\u305f\u3089\u3001http:\/\/192.168.0.100:8080\/ \u3078\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068\u30e9\u30ba\u30d1\u30a4\u306e\u516c\u5f0f\u30ab\u30e1\u30e9\u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u52d5\u304d\u307e\u3057\u305f\u3002<\/p>\n<p>USB\u30ab\u30e1\u30e9\u3092\u4f7f\u3046\u5834\u5408\u306f\u3001\u8ffd\u52a0\u4f5c\u696d\u304c\u5fc5\u8981\u306a\u306e\u3067\u3059\u304c\u3001\u66f8\u3044\u3066\u3042\u308b\u901a\u308a\u306b\u3057\u3066\u3082\u52d5\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002uv4l-uvc\u304c\u5fc5\u8981\u306a\u306e\u3067\u3059\u304c\u3001\u307b\u304b\u3082\u3042\u3063\u305f\u307b\u3046\u304c\u3044\u3044\u3088\u3046\u306a\u306e\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ sudo apt-get -y install uv4l-server uv4l-uvc uv4l-xscreen uv4l-mjpegstream uv4l-dummy uv4l-raspidisp\r\n<\/pre>\n<p>ID\u304c\u5fc5\u8981\u306a\u306e\u3067\u3001lsusb\u30b3\u30de\u30f3\u30c9\u3067\u53d6\u5f97\u3002awk\u3092\u4f7f\u3046\u3068\u53d6\u308a\u51fa\u305b\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ lsusb | grep C270\r\nBus 001 Device 008: ID 046d:0825 Logitech, Inc. Webcam C270\r\n$ lsusb | grep C270 | awk &#039;{print $6}&#039;\r\n046d:0825\r\n<\/pre>\n<p>\/etc\/uv4l\/uv4l-uvc.conf\u306edevice-id\u306b\u3055\u3063\u304d\u306eID\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u305d\u308c\u304b\u3089\u3001uv4l\u30b3\u30de\u30f3\u30c9\u3067\u5b9f\u884c\u3002device-id\u3092\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u6307\u5b9a\u3057\u3066\u307e\u3059\u304c\u3001\u3053\u308c\u304c\u306a\u3044\u3068\u30a8\u30e9\u30fc\u306b\u306a\u308b\u306e\u3067\u6307\u5b9a\u3057\u3066\u307e\u3059\u3002\u8b66\u544a\u306a\u3069\u304c\u3067\u3066\u307e\u3059\u304c\u3001\u3053\u308c\u3067uv4l\u304c\u8d77\u52d5\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ uv4l --driver uvc --device-id 046d:0825 --config-file=\/etc\/uv4l\/uv4l-uvc.conf\r\n&lt;notice&gt; [core] Trying driver &#039;uvc&#039; from built-in drivers...\r\n&lt;warning&gt; [core] Driver &#039;uvc&#039; not found\r\n&lt;notice&gt; [core] Trying driver &#039;uvc&#039; from external plug-in&#039;s...\r\n&lt;notice&gt; [driver] Video functionality &#039;&#039; recognized at 046d:0825\r\n&lt;notice&gt; [core] Device detected!\r\n&lt;notice&gt; [core] Registering device node \/dev\/video0\r\n<\/pre>\n<p>\u30e9\u30ba\u30d1\u30a4\u306eIP\u30a2\u30c9\u30ec\u30b9\u304c192.168.0.100\u3060\u3068\u3057\u305f\u3089\u3001http:\/\/192.168.0.100:8090\/ \u3078\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068\u753b\u9762\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002uvc\u306e\u5834\u5408\u306f8090\u306a\u306e\u3067\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u305f\u3060\u3001\u624b\u5143\u3067\u306f\u5199\u771f\u64ae\u5f71\u3082\u52d5\u753b\u914d\u4fe1\u3082\u3046\u307e\u304f\u52d5\u304b\u306a\u304b\u3063\u305f\u3067\u3059\u3002\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30d1\u30cd\u30eb\u3082\u30ab\u30e1\u30e9\u3092\u8a8d\u8b58\u3057\u3066\u3044\u306a\u3044\u3088\u3046\u306a\u611f\u3058\u3002\u300cDevice detected!\u300d\u3068\u304b\u300cRegistering device node \/dev\/video0\u300d\u3068\u8d77\u52d5\u6642\u306b\u8868\u793a\u3055\u308c\u3066\u3044\u308b\u306e\u306b\u4e0d\u601d\u8b70\u3067\u3059\u3002<\/p>\n<p>\u505c\u6b62\u306fpkill\u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ pkill uv4l\r\n<\/pre>\n<p>\u81ea\u52d5\u8d77\u52d5\u3092\u3057\u305f\u3044\u306a\u3089\u3001uv4l-raspicam-extras\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3002WebRTC\u3092\u4f7f\u3044\u305f\u3044\u306a\u3089uv4l-webrtc\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308c\u3070\u826f\u3044\u305d\u3046\u3067\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ sudo apt-get -y install uv4l-raspicam-extras\r\n$ sudo apt-get -y install uv4l-webrtc\r\n<\/pre>\n<p>\u3068\u3044\u3046\u3053\u3068\u3067\u3001\u4eca\u56de\u306f\u3053\u3053\u307e\u3067\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u30e9\u30ba\u30d1\u30a4\u306b\u3064\u3051\u308bUSB\u30ab\u30e1\u30e9\u306b\u3064\u3044\u3066\u8abf\u3079\u3066\u307f\u307e\u3057\u305f\u3002 \u30e9\u30ba\u30d1\u30a4\u306b\u306f\u516c\u5f0f\u30ab\u30e1\u30e9\u30e2\u30b8\u30e5\u30fc\u30eb\u3068USB\u30ab\u30e1\u30e9\u3092\u3064\u3051\u308b\u3053\u3068\u304c\u3067\u304d\u3066\u3001\u8907\u6570\u53f0\u306e\u30ab\u30e1\u30e9\u3092\u642d\u8f09\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u305f\u3060\u3057\u3001\u5168\u90e8\u3092\u30d5\u30eb\u30d1\u30ef\u30fc\u5168\u958b\u3067\u5229\u7528\u3059\u308b\u306b\u306f\u3001\u96fb\u6e90\u7684\u306b\u3082CP &hellip; <a href=\"https:\/\/www.hiro345.net\/blogs\/hiro345\/archives\/18787.html\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[1255,1317,1320,1315,994,1318,1319,1314,1316,1227],"class_list":["post-18787","post","type-post","status-publish","format-standard","hentry","category-linux","tag-c270","tag-digio2","tag-elecom-ucam-c0220fbnwh","tag-logicool-c270","tag-raspberry-pi","tag-ucam-c0220f","tag-ucam-c0220fbnwh","tag-uv4l","tag-v4l-utils","tag-1227"],"_links":{"self":[{"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/posts\/18787","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/comments?post=18787"}],"version-history":[{"count":13,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/posts\/18787\/revisions"}],"predecessor-version":[{"id":18804,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/posts\/18787\/revisions\/18804"}],"wp:attachment":[{"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/media?parent=18787"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/categories?post=18787"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/tags?post=18787"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}