2016/08/08(月) [n年前の日記]
#1 [raspberrypi] Raspberry Piの Camera Module V2 の画質を確認
Raspberry Piは、専用のカメラモジュールも販売されているのだけど。
「カメラモジュールV1用の部品がもう入手できなくなったから、もっとゴイスなSONY製センサをゲットしてV2を作ったよ」と謳いながらも、フォーカスが無限遠になってなくて風景を撮ったりするとピンぼけになる、という話があって。…や、「初期ロットはそういうフォーカスになってたけど、これから作るロットは無限遠にフォーカス合わせてから出荷する予定ではあるッス」てな話も出てたようだけど。
自分が持ってるカメラモジュールV2は、 _KSY さんから2016/07/10頃に購入した個体。コレは初期ロット版なのか、風景を撮るとピンぼけになっちゃうのか気になってたわけで。ということで近所で撮影してきたり。
比較対象は、Canon製コンパクトデジカメ _Canon PowerShot A3300 IS 。
撮影画像をDropboxに
置いときます。
_Raspberry Pi3 + Camera Module V2 (1)
_Canon Powershot A3300 IS (1)
_Raspberry Pi3 + Camera Module V2 (2)
_Canon Powershot A3300 IS (2)
_Raspberry Pi3 + Camera Module V2 (3)
_Canon Powershot A3300 IS (3)
_Raspberry Pi3 + Camera Module V2 (4)
_Canon Powershot A3300 IS (4)
一応ぼんやりと予想はしてたけど、まさかここまでピンボケ状態とは…。KSYさんから購入したコレって、おそらく初期ロットだよな…。違うのかな…。「これでも無限遠に合わせてあるのです」とか言われてしまった日には途方に暮れるけど…。
や、比較してる PowerShot A3300 IS が良すぎるのかもしれんけど。と言っても、PowerShot A300 IS って、価格や位置付けからしても正直そんなに良いデジカメってわけでも…。一眼レフデジカメを使ってる人達なら「そんな低価格コンデジと画質比較してどうすんだ。どうせ目糞鼻糞だろ」と言い出すランクのデジカメ、じゃないのかなと。しかしそこはさすがにCanon製品、なのだろうか。
何にせよ、Raspberry PiのカメラモジュールV2は、このままだとトイデジカメレベル。困った。こんな画質では目的が果たせぬ…。
「カメラモジュールV1用の部品がもう入手できなくなったから、もっとゴイスなSONY製センサをゲットしてV2を作ったよ」と謳いながらも、フォーカスが無限遠になってなくて風景を撮ったりするとピンぼけになる、という話があって。…や、「初期ロットはそういうフォーカスになってたけど、これから作るロットは無限遠にフォーカス合わせてから出荷する予定ではあるッス」てな話も出てたようだけど。
自分が持ってるカメラモジュールV2は、 _KSY さんから2016/07/10頃に購入した個体。コレは初期ロット版なのか、風景を撮るとピンぼけになっちゃうのか気になってたわけで。ということで近所で撮影してきたり。
比較対象は、Canon製コンパクトデジカメ _Canon PowerShot A3300 IS 。
撮影画像を
_Raspberry Pi3 + Camera Module V2 (1)
_Canon Powershot A3300 IS (1)
_Raspberry Pi3 + Camera Module V2 (2)
_Canon Powershot A3300 IS (2)
_Raspberry Pi3 + Camera Module V2 (3)
_Canon Powershot A3300 IS (3)
_Raspberry Pi3 + Camera Module V2 (4)
_Canon Powershot A3300 IS (4)
一応ぼんやりと予想はしてたけど、まさかここまでピンボケ状態とは…。KSYさんから購入したコレって、おそらく初期ロットだよな…。違うのかな…。「これでも無限遠に合わせてあるのです」とか言われてしまった日には途方に暮れるけど…。
や、比較してる PowerShot A3300 IS が良すぎるのかもしれんけど。と言っても、PowerShot A300 IS って、価格や位置付けからしても正直そんなに良いデジカメってわけでも…。一眼レフデジカメを使ってる人達なら「そんな低価格コンデジと画質比較してどうすんだ。どうせ目糞鼻糞だろ」と言い出すランクのデジカメ、じゃないのかなと。しかしそこはさすがにCanon製品、なのだろうか。
何にせよ、Raspberry PiのカメラモジュールV2は、このままだとトイデジカメレベル。困った。こんな画質では目的が果たせぬ…。
◎ フォーカスを調整できないものか。 :
_2016/07/15の日記
にもメモしたけど。海外の掲示板では、レンズ部分を回すことでフォーカスが調整できなくもない、という話が出ていたようなので、自分もチャレンジしてみようかと。
しかしこれが上手く行かない。4時間半も格闘したけど酷い結果に。
_ボロボロになったカメラモジュールの写真
それでもようやく、ピンセットでレンズ部分をギューッと押し込みながら挟んだ状態で、ジリジリと回せる状態にはなった。…コレ、ホントにここまで力を入れないと回せないものなのかな…。うっかりするとピンセットが外れて、レンズの上を「ガッ!」と削ってしまう。ヒヤヒヤモノ。とても頻繁に調整できる状態ではないなと。
しかし今度は、回す方向が分からん…。時計回りと反時計回り、どちらに回せば遠くにフォーカスが合うのか…。
フツーのWebカメラ ―― マニュアルでフォーカスリングとやらを回して調整するタイプのWebカメラではどうなってるのかググってみたけど。
一応、時計回りにするとコレ以上回せない感じになって、反時計回りにすると意外とある程度は回していける感じなので、おそらく反時計回りが「緩める」方向なのだろうと想像するのだけど。全く自信無し。
回してて気が付いたけど、コレ、センサに対してレンズが平行になってないというか、位置が合ってない気がする…。画面の隅がボケっぱなしというか…。「カメラモジュールV2は斜めになってる」と海外の掲示板で話が出ていて、「『斜め』ってのは一体何のことだろう」と疑問に思ったけど、コレのことかな…。
しかしこれが上手く行かない。4時間半も格闘したけど酷い結果に。
- ダイソーで購入した、厚さ0.75mmのPPシートをくり抜いて、レイズ部分を回すためのレンズスパナっぽいものを作ってみたけど。PPシートは柔らかすぎるのか、レンズ部分が全然回ってくれなかった。PPシートじゃダメだ…。
- そもそもレンズ部分は、3ヶ所ほど、接着剤っぽい透明な粒で固定されてるっぽい。デザインナイフ(デザインカッター)で、その粒を削り取れないか挑戦。
- ミス連発。レンズ部分の外枠がどんどんボロボロに。とうとう十字の出っ張りすら消滅してしまった…。
- それでも、レンズ部分はビクともしない。
_ボロボロになったカメラモジュールの写真
それでもようやく、ピンセットでレンズ部分をギューッと押し込みながら挟んだ状態で、ジリジリと回せる状態にはなった。…コレ、ホントにここまで力を入れないと回せないものなのかな…。うっかりするとピンセットが外れて、レンズの上を「ガッ!」と削ってしまう。ヒヤヒヤモノ。とても頻繁に調整できる状態ではないなと。
しかし今度は、回す方向が分からん…。時計回りと反時計回り、どちらに回せば遠くにフォーカスが合うのか…。
フツーのWebカメラ ―― マニュアルでフォーカスリングとやらを回して調整するタイプのWebカメラではどうなってるのかググってみたけど。
- 時計方向に回すと遠くにフォーカスが合う。
- 反時計方向に回すと近くにフォーカスが合う。
一応、時計回りにするとコレ以上回せない感じになって、反時計回りにすると意外とある程度は回していける感じなので、おそらく反時計回りが「緩める」方向なのだろうと想像するのだけど。全く自信無し。
回してて気が付いたけど、コレ、センサに対してレンズが平行になってないというか、位置が合ってない気がする…。画面の隅がボケっぱなしというか…。「カメラモジュールV2は斜めになってる」と海外の掲示板で話が出ていて、「『斜め』ってのは一体何のことだろう」と疑問に思ったけど、コレのことかな…。
◎ 2017/03/19追記。 :
DropboxのPublicフォルダが死んだので自宅サーバに画像を置き直し。
[ ツッコむ ]
#2 [zatta] 三脚が壊れた
たまに使ってる三脚、SLIK SDV-540 を部屋の片隅から引っ張り出してきて使おうとしたら、カメラを横方向に回転・固定するところのネジに被せてあるプラスチック製の取っ手がバキッ、と割れてしまった。経年劣化でプラスチックが脆くなってたのかな…。
修理できないかと、ダイソーで購入したプラスチック専用接着剤を発掘してくっつけてみたけど、力がかかる部分なので、たぶん直せたように見えてもまたバキッといきそうな気がするわけで。
とりあえず三脚が無いと各種実験ができないので、親父さんに余ってる三脚がないか尋ねてみたところ、「余ってるわけでは無くてたまに使うこともあるのだけど常時必ず使ってるわけでもない」扱いの三脚を一つ貸してもらえた。とりあえず当面は、新しい三脚を買わずに済みそう。
でも、一つ持っておいたほうが都合がいいのだよな…。親父さんの持ってる三脚は、どれも重くて頑丈なので、自転車のカゴに入れて気軽に持ち出すわけにもいかんし。
修理できないかと、ダイソーで購入したプラスチック専用接着剤を発掘してくっつけてみたけど、力がかかる部分なので、たぶん直せたように見えてもまたバキッといきそうな気がするわけで。
とりあえず三脚が無いと各種実験ができないので、親父さんに余ってる三脚がないか尋ねてみたところ、「余ってるわけでは無くてたまに使うこともあるのだけど常時必ず使ってるわけでもない」扱いの三脚を一つ貸してもらえた。とりあえず当面は、新しい三脚を買わずに済みそう。
でも、一つ持っておいたほうが都合がいいのだよな…。親父さんの持ってる三脚は、どれも重くて頑丈なので、自転車のカゴに入れて気軽に持ち出すわけにもいかんし。
[ ツッコむ ]
#3 [nitijyou] 自転車で買い物に
電動自転車を借りてケーズデンキとザ・ビッグまで。
ケーズデンキで三脚を探してみたけど、1,980円ぐらいのソレはあったものの、SLIK SDV-540とクリソツな形状で。これだとカメラが傾くんだよな…。2,980円の品なら傾かずに済みそうだけど、若干重くなる…。
ザ・ビッグに向けて走ってる最中、雨が降ってきた。降水確率は10%だったはずだけど、運が悪い。しかも店に着いたら雨が止んで。さらに、買い物を終えたら外は土砂降りの雨。
三脚は壊れるし、外出したタイミングで雨は降るし、Raspberry Piのカメラモジュールはピンボケだし。踏んだり蹴ったり。
ケーズデンキで三脚を探してみたけど、1,980円ぐらいのソレはあったものの、SLIK SDV-540とクリソツな形状で。これだとカメラが傾くんだよな…。2,980円の品なら傾かずに済みそうだけど、若干重くなる…。
ザ・ビッグに向けて走ってる最中、雨が降ってきた。降水確率は10%だったはずだけど、運が悪い。しかも店に着いたら雨が止んで。さらに、買い物を終えたら外は土砂降りの雨。
三脚は壊れるし、外出したタイミングで雨は降るし、Raspberry Piのカメラモジュールはピンボケだし。踏んだり蹴ったり。
[ ツッコむ ]
#4 [raspberrypi][ubuntu][python] Vimを設定その2
vim でプラグインを管理するなら NeoBundle ではなく dein を使うのがこれからのトレンド、という話になってるらしいので、昨日 NeoBundle で環境を作ったばかりだけど dein に移行してみたり。
環境は以下。
環境は以下。
- Windows10 x64 + VMware + Ubuntu 16.04 LTS
- Raspberry Pi3 (Raspbian Jessie?)
◎ deinを導入。 :
_dein.vimのインストール自体にハマってしまったメモ - Qiita
を参考にして作業。
今まで設定した ~/.vimrc をリネームバックアップしてから中身をクリア。
dein をインストール。git が必要なので、sudo pat-get install git で事前に入れておく。
インストール直後に「以下の記述を ~/.vimrc に書け」とメッセージが表示されるので、~/.vimrc にコピペ。ただし、各環境に合わせた内容が表示されるので、巷の解説ページのソレをコピペするのではなく、インストールスクリプトが表示した内容をコピペすること。
注意点。最後のあたりの3行のコメントアウトを外しておく。ココを外しておかないと、各プラグインがインストールされない。
vimを起動すると自動でプラグインをインストールしてくれる。
dein を使っていて、各プラグインを無効にしたい際は…。よく分かってないけど、~/.vimrc の該当行をコメントアウト等した後で、vim を起動後、以下を打ったりすれば反映されるらしい。
今まで設定した ~/.vimrc をリネームバックアップしてから中身をクリア。
cp ~/.vimrc ~/.vimrc.old rm ~/.vimrc touch ~/.vimrc
dein をインストール。git が必要なので、sudo pat-get install git で事前に入れておく。
mkdir ~/.cache/dein cd ~/.cache/dein curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh sh ./installer.sh ~/.cache/deinインストール場所は色々な事例があるらしいけど…。ひとまず ~/.cache/dein にしてみたり。
インストール直後に「以下の記述を ~/.vimrc に書け」とメッセージが表示されるので、~/.vimrc にコピペ。ただし、各環境に合わせた内容が表示されるので、巷の解説ページのソレをコピペするのではなく、インストールスクリプトが表示した内容をコピペすること。
"dein Scripts----------------------------- if &compatible set nocompatible " Be iMproved endif " Required: set runtimepath^=/home/mieki256/.cache/dein/repos/github.com/Shougo/dein.vim " Required: call dein#begin(expand('/home/mieki256/.cache/dein')) " Let dein manage dein " Required: call dein#add('Shougo/dein.vim') " Add or remove your plugins here: call dein#add('Shougo/neosnippet.vim') call dein#add('Shougo/neosnippet-snippets') " You can specify revision/branch/tag. call dein#add('Shougo/vimshell', { 'rev': '3787e5' }) " Required: call dein#end() " Required: filetype plugin indent on " If you want to install not installed plugins on startup. if dein#check_install() call dein#install() endif "End dein Scripts-------------------------
注意点。最後のあたりの3行のコメントアウトを外しておく。ココを外しておかないと、各プラグインがインストールされない。
"if dein#check_install() " call dein#install() "endif ↓ if dein#check_install() call dein#install() endif
vimを起動すると自動でプラグインをインストールしてくれる。
dein を使っていて、各プラグインを無効にしたい際は…。よく分かってないけど、~/.vimrc の該当行をコメントアウト等した後で、vim を起動後、以下を打ったりすれば反映されるらしい。
:call dein#clear_state() :call dein#update()どういう意味のコマンドなのかよく分かってない。
◎ Python2.x対応のVimを選ぶ。 :
jedi-vim なるプラグインを使うと、vim で Pythonスクリプトを書く時に色々補完してくれるらしい。導入を試みたい。
しかし、Ubuntu の場合、vim-gnome や vim-nox は Python3 が有効になっているので、jedi-vim が動いてくれないっぽい。Python2が有効になっている vim を使えば jedi-vim が動くようだけど、その場合は、vim-gnome-py2 や vim-nox-py2 をインストールしないといかんらしい。
ただ、インストールしただけでは py2版に切り替わらない。update-alternatives で、どの版を使うか選ぶ必要があるっぽい。
ちなみに、Raspberry Pi 上の vim-gnome は、Python2有効/Python3無効、でビルドされてた。UbuntuのようにPython3への移行をゴリ押ししてる状態ではない模様。
以下参考ページ。
_標準で使うコマンドを切り替えるコマンドalternativesを使ってみた - ケーズメモ
_Ubuntu 16.04 リリースノート 日本語訳 - Qiita
しかし、Ubuntu の場合、vim-gnome や vim-nox は Python3 が有効になっているので、jedi-vim が動いてくれないっぽい。Python2が有効になっている vim を使えば jedi-vim が動くようだけど、その場合は、vim-gnome-py2 や vim-nox-py2 をインストールしないといかんらしい。
sudo aptitude install vim-gnome-py2 sudo aptitude install vim-nox-py2
ただ、インストールしただけでは py2版に切り替わらない。update-alternatives で、どの版を使うか選ぶ必要があるっぽい。
$ sudo update-alternatives --config vim alternative vim (/usr/bin/vim を提供) には 3 個の選択肢があります。 選択肢 パス 優先度 状態 ------------------------------------------------------------ * 0 /usr/bin/vim.gnome 60 自動モード 1 /usr/bin/vim.basic 30 手動モード 2 /usr/bin/vim.gnome 60 手動モード 3 /usr/bin/vim.gnome-py2 59 手動モード 現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください:
$ sudo update-alternatives --display vim vim - 手動モード link best version is /usr/bin/vim.gnome リンクは現在 /usr/bin/vim.gnome-py2 を指しています link vim is /usr/bin/vim /usr/bin/vim.basic - 優先度 30 /usr/bin/vim.gnome - 優先度 60 /usr/bin/vim.gnome-py2 - 優先度 59
ちなみに、Raspberry Pi 上の vim-gnome は、Python2有効/Python3無効、でビルドされてた。UbuntuのようにPython3への移行をゴリ押ししてる状態ではない模様。
以下参考ページ。
_標準で使うコマンドを切り替えるコマンドalternativesを使ってみた - ケーズメモ
_Ubuntu 16.04 リリースノート 日本語訳 - Qiita
◎ jedi-vim をインストール。 :
Ubuntuの場合、apt-get でインストールできるらしいのだが…。
dein を導入した vim で、~/.vimrc に記述してインストールしてみる。以下を、call dein#begin と call dein#end の間に追加。
巷の解説記事によると、以下もしておく必要があるらしいので、一応しておく。
$ sudo aptitude search vim-python-jedi i vim-python-jedi - autocompletion tool for Python - VIM addon files $ sudo aptitude install vim-python-jediインストール出来てるのかどうか、よく分からない。
dein を導入した vim で、~/.vimrc に記述してインストールしてみる。以下を、call dein#begin と call dein#end の間に追加。
call dein#add('davidhalter/jedi-vim')vim を起動したらインストールされたっぽい。
巷の解説記事によると、以下もしておく必要があるらしいので、一応しておく。
cd ~/.cache/dein/repos/github.com/davidhalter/jedi-vim/jedi/ git submodule update --init
◎ dein と jedi-vim を使った場合の ~/.vimrc。 :
以下のような ~/.vimrc になった。
長い…。
"dein Scripts----------------------------- if &compatible set nocompatible " Be iMproved endif " Required: set runtimepath^=/home/mieki256/.cache/dein/repos/github.com/Shougo/dein.vim " Required: call dein#begin(expand('/home/mieki256/.cache/dein')) " Let dein manage dein " Required: call dein#add('Shougo/dein.vim') " Add or remove your plugins here: call dein#add('Shougo/neosnippet.vim') call dein#add('Shougo/neosnippet-snippets') call dein#add('tpope/vim-fugitive') call dein#add('ctrlpvim/ctrlp.vim') call dein#add('flazz/vim-colorschemes') call dein#add('Shougo/neocomplete.vim') call dein#add('davidhalter/jedi-vim') " call dein#add('Townk/vim-autoclose') " You can specify revision/branch/tag. call dein#add('Shougo/vimshell', { 'rev': '3787e5' }) " Required: call dein#end() " Required: filetype plugin indent on " If you want to install not installed plugins on startup. if dein#check_install() call dein#install() endif "End dein Scripts------------------------- filetype plugin on set ignorecase set smartcase set incsearch set hlsearch set encoding=utf-8 set fileencoding=utf-8 set fileencodings=utf-8,cp932 " ---------------------------------------- "Note: This option must be set in .vimrc(_vimrc). NOT IN .gvimrc(_gvimrc)! " Disable AutoComplPop. let g:acp_enableAtStartup = 0 " Use neocomplete. let g:neocomplete#enable_at_startup = 1 " Use smartcase. let g:neocomplete#enable_smart_case = 1 " Set minimum syntax keyword length. let g:neocomplete#sources#syntax#min_keyword_length = 2 let g:neocomplete#lock_buffer_name_pattern = '\*ku\*' " Define dictionary. let g:neocomplete#sources#dictionary#dictionaries = { \ 'default' : '', \ 'vimshell' : $HOME.'/.vimshell_hist', \ 'scheme' : $HOME.'/.gosh_completions' \ } " Define keyword. if !exists('g:neocomplete#keyword_patterns') let g:neocomplete#keyword_patterns = {} endif let g:neocomplete#keyword_patterns['default'] = '\h\w*' " Plugin key-mappings. inoremap <expr><C-g> neocomplete#undo_completion() inoremap <expr><C-l> neocomplete#complete_common_string() " Recommended key-mappings. " <CR>: close popup and save indent. inoremap <silent> <CR> <C-r>=<SID>my_cr_function()<CR> function! s:my_cr_function() return (pumvisible() ? "\<C-y>" : "" ) . "\<CR>" " For no inserting <CR> key. "return pumvisible() ? "\<C-y>" : "\<CR>" endfunction " <TAB>: completion. inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>" " <C-h>, <BS>: close popup and delete backword char. inoremap <expr><C-h> neocomplete#smart_close_popup()."\<C-h>" inoremap <expr><BS> neocomplete#smart_close_popup()."\<C-h>" " Close popup by <Space>. "inoremap <expr><Space> pumvisible() ? "\<C-y>" : "\<Space>" " AutoComplPop like behavior. "let g:neocomplete#enable_auto_select = 1 " Shell like behavior(not recommended). "set completeopt+=longest "let g:neocomplete#enable_auto_select = 1 "let g:neocomplete#disable_auto_complete = 1 "inoremap <expr><TAB> pumvisible() ? "\<Down>" : "\<C-x>\<C-u>" " Enable omni completion. autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS autocmd FileType python setlocal omnifunc=pythoncomplete#Complete autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags " Enable heavy omni completion. if !exists('g:neocomplete#sources#omni#input_patterns') let g:neocomplete#sources#omni#input_patterns = {} endif "let g:neocomplete#sources#omni#input_patterns.php = '[^. \t]->\h\w*\|\h\w*::' "let g:neocomplete#sources#omni#input_patterns.c = '[^.[:digit:] *\t]\%(\.\|->\)' "let g:neocomplete#sources#omni#input_patterns.cpp = '[^.[:digit:] *\t]\%(\.\|->\)\|\h\w*::' " For perlomni.vim setting. " https://github.com/c9s/perlomni.vim let g:neocomplete#sources#omni#input_patterns.perl = '\h\w*->\h\w*\|\h\w*::' " ---------------------------------------- " python setting autocmd FileType python setl autoindent autocmd FileType python setl smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class autocmd FileType python setl tabstop=8 expandtab shiftwidth=4 softtabstop=4 " ---------------------------------------- " jedi-vim setting autocmd FileType python setlocal completeopt-=preview autocmd FileType python setlocal omnifunc=jedi#completions let g:jedi#auto_vim_configuration = 0 if !exists('g:neocomplete#force_omni_input_patterns') let g:neocomplete#force_omni_input_patterns = {} endif let g:neocomplete#force_omni_input_patterns.python = '\h\w*\|[^. \t]\.\w*' let g:jedi#goto_assignments_command = "<C-g>" let g:jedi#goto_definitions_command = "<C-d>"
長い…。
◎ 使用感。 :
VMware + Ubuntu 16.04 LTS では、この設定をしたvimもまだサクサク動いてるけど。Raspberry Pi3上では、vimの動作がちょっと厳しくなってきた。Pythonスクリプトを開いた際に、数秒ほど真っ暗な画面が表示される…。CPUパワーが無いので、解析に時間がかかってるのかもしれない。
ひょっとすると、Raspberry Pi3上では、jedi-vim は使わないほうがいいのかも。あるいは、メインPC上でエディタを使って書き換えるようにするか…。
ひょっとすると、Raspberry Pi3上では、jedi-vim は使わないほうがいいのかも。あるいは、メインPC上でエディタを使って書き換えるようにするか…。
[ ツッコむ ]
以上、1 日分です。