月別アーカイブ: 2018年9月

ラズパイ・ゼロにパイカメラを接続してみる!

我が家の2代目となるラズパイ3で使おうと思っていたパイカメラを、パイゼロにつなげてムービーや静止画を撮影できるカメラ機能を実装しようと、

いざ、フレキシブルケーブルをパイゼロ側の専用コネクタに挿入しようとしたところ、、、、

あれ!?コネクタよりケーブルのほうが若干大きいことに気づき、しばらく途方にくれる。。。

意識を取り戻し、パイゼロ用のパイカメラなるものがあるのか!?と思いきや、

一般的には、オフィシャル・ラズパイゼロ用ケースに付属の変換フレキシブルケーブルを使うようです。

ケースはいらないので、単品でないかAmazonで調べたところ、、、、いずれも薄っぺらい物であるにもかかわらず千円台とかなりの値段でした!

なので、アキバで安いやつを探そうと、まずはAitendoへ。

コネクタの形状を忘れてしまい、”ラズパイゼロ用”といった説明書きがないのでどれかわからず、ここで購入することはできませんでした。しかし、ここでわかったのは、一般的にフレキシブルケーブル自体高価なもののようです。

次に、(平日会社帰りで来たので、すでに19時を回っており千石や秋月は閉店してたので)マルツに入ったところ、ちゃんと、”ラズパイゼロ用”と親切に書かれており、しかもお値段¥700!迷わず即決で購入!!(しかも、オフィシャルケース付属のものより、長さがある)

早速、帰宅してパイゼロとパイカメラVer2.1に接続したところ、、、、

”vcgencmd get_camera”コマンドを実行するも、出力結果で”detected=0”との表示。

どうやら認識してなさそうで、ケーブルの向きが違うものかと確認したところ、そうでもなさそうでした。

この間、全パッケージのアップデートを実行していたので、アップデート適用後の再起動ののち、再度上記コマンドを実行してみたところ、下記のような結果になった。

$> vcgencmd get_camera

supported=1  detected=1

上記のとおり、両方の値が”1”であれば、認識され利用可能な状態になっていることをあらわします。

なので、さっそくラズパイ標準実装のRASPICAMコマンド”raspistill(静止画撮影用)”と”raspivid(動画撮影用)”を実行してみることに。

$ raspistill -o testimage.jpg

まずは静止画。上記コマンドを実行すると、カメラのファインダーみたくカメラ画像が表示され、しばらくするとキャプチャーして静止画になって終了。

早速、出来上がった画像ファイル(上記のコマンド例では、testimage.jpg)を、これまた標準実装のイメージビューアで開くと。。。。。

動きがなんだか思いような。。。

って、イメージビューアのウィンドウタイトルを見ると、”3280×2464”との表示!

とんでもない大きさ!(ファイルサイズも、jpegで10MiB)

おもちゃ程度のものだとたかをくくっていたら、想像以上の代物。

改めてパイカメラV2のスペックを確認すると、、、、


・イメージセンサ=Sony製CMOSセンサ”IMX219”

固定フォーカス

実行画素数(H x V)=3280×2464

・静止画解像度=約800万画素

・動画撮影時フレームレート

1080p時30フレーム/秒

720p時60フレーム/秒

VGA640x480時90フレーム/sec

・露出・ホワイトバランス・輝度自動制御


こんなものでもHD動画撮影出来てしまうんですね。。。。

ということで、動画も撮ってみることに。

$ raspivid -o testvideo.h264 -t 10000 -w 640 -h 480

動画撮影の場合は、オプションで録画時間(-t)、横/縦サイズ(-w,-h)を指定のこと。

再生するには、ソフトがないので、VLCをインストールする。

ちなみにインストール方法は、

$ sudo apt-get install vlc

パイゼロで再生すると、、、、、

さすがに重くて再生は厳しかったです。

ラズパイ・ゼロのカスタマイズ

GPS端末の製作という最終目的からすると、ここもまた下ごしらえでしかないが、そのための、もしくは個人的な好みも含めた作業となるので、あえて別タイトルとして記述します。

なので、ここでの記載内容は必須ではなく、参考まで。

先のラズパイゼロの下ごしらえでは、USB無線LANでインターネット接続できるようになるまでで終ってましたが、さらにそこからの続きの作業となります。

まずは、デフォルトでインストールされている不要プログラムパッケージをアンインストールして、少しでもシステム領域として使用しているSDメモリの空き容量を確保するよう努めます。

Applicationメニューから、不要なプログラムパッケージを下記とします。

  • (Programming>)Mathematica&Wolfram
  • (Programming>)Scratch
  • (Internet>)ClawsMail

現在インストール中のすべてのパッケージを漁っていくと、不要なものはいっぱい出て競うではありますが、キリがないのでまずは目に付くものから削除していくことにしました。

削除は、Applicationメニューから、「Prefernces」>「Add/Remove Software」で、上記プログラムを検索して、該当するパッケージを選択の上、削除実行。

Mathematica&Wolfram=「Mathematica and the Wolfram Language」

Scratch=「easy to use programming environment for ages 8and up」+ 「Squeak plugin for the Schratch…」

claws-mail=「fast ,lightweight and user-friendly GTK+2based email client」+ほかClaws-mailのPluginパッケージ

不要なパッケージがなくなったので、ここでパッケージ全体をアップデートさせる。

$> sudo apt-get update

$>sudo apt-get upgrade

正常に完了したら、つぎは日本語入力環境のインストール。

別ページにも記載しているとおり、jfbtermとmozcパッケージをインストールする。

これらのインストールが完了したら、ラズパイ設定画面(Menu>Preferences>Raspberry Pi Configuration)を開き、”Localization”タブ内の”Locale”設定項目を、日本語(ja.Japanese)に変更し、再起動させる。

そうすると、再起動後のデスクトップの表記が日本語に変わってます。

これで、文字入力しやすくなり、作業しやすくなったと思います。

あとは、ラズパイゼロで何をしたいのかという主機能となるソフトウェアやデバイスを追加していくことに。。。

たとえば、

  • Bluetoothキーボードを接続して脱USBハブ化
  • Piカメラを接続してムービー&スチルカメラ化
  • ハイレゾモジュールを接続してポータブルプレーヤ化
  • GPSモジュールを接続してGPS端末化
  • 液晶タッチパネルを接続してモバイル情報端末化

など。。。。

やりたいことはたくさん!

 

 

ラズパイ・ゼロの下ごしらえ

先のラズパイゼロ購入の続き、、、、

まずは、コンソール操作ができるようになったと言うことで、ラズパイの基本設定を実施することに。

メニューから、「Preferences」>「Raspberry Pi Configuration」を実行。

別ページにも記載しているとおり、設定を行います。

ただし、ここで注意すべきは、”Localization”タブの”Locale”ところで、現時点で”Ja(Japanese)”を選択してしまうと、日本語フォントが未導入のため、システムすべての文字が文字化けして操作が困難になってしまいます。なので、ここだけは、弄らずにほかの箇所(”Localization”タブ内の項目)を変更すること。

(後に、日本語環境をインストールできたら、忘れずここを変更しましょう)

次に、やっぱりN/W接続ができないことには、できる作業が制限されたり、かなり面倒になるので、無線LANを自宅の無線APに接続できるよう設定します。

ではさっそく、、、と思いきや、デスクトップ画面右上のあるWiFi設定アイコンをクリックしても、最寄りのアクセスポイントが全く検知されていない状態となってました。

あれ?ひょっとしてこの状況は、ラズパイゼロ内蔵(のはず)の無線LANインタフェースを認識していないのでは!?と驚愕し、ありきたりのコマンドを叩いて確認してみました。

pi@razpi0:~ $ sudo ifconfig -a
lo Link encap:Local Loopback
 inet addr:127.0.0.1 Mask:255.0.0.0
 inet6 addr: ::1/128 Scope:Host
 UP LOOPBACK RUNNING MTU:65536 Metric:1
 RX packets:393 errors:0 dropped:0 overruns:0 frame:0
 TX packets:393 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1
 RX bytes:31624 (30.8 KiB) TX bytes:31624 (30.8 KiB)

pi@razpi0:~ $

無線LANに接続できてなくても、普通ならここで見られるはずの”wlan0”が見当たらない。。。

そもそもシステム的に無線LANモジュールがロードされてるの?ということで、更に下記コマンドを実行してみた。

pi@razpi0:~ $ sudo lsmod
Module Size Used by
bnep 11853 2
bluetooth 365780 5 bnep
rfkill 21397 2 bluetooth
joydev 9194 0
ads7846 12525 0
hwmon 4552 1 ads7846
evdev 11650 8
snd_bcm2835 23131 1
snd_pcm 95473 1 snd_bcm2835
snd_timer 22556 1 snd_pcm
snd 68400 5 snd_bcm2835,snd_timer,snd_pcm
i2c_bcm2708 5740 0
spi_bcm2835 7424 0
bcm2835_gpiomem 3823 0
bcm2835_wdt 4133 0
uio_pdrv_genirq 3718 0
uio 10230 1 uio_pdrv_genirq
sg 20799 0
i2c_dev 6578 0
fuse 90504 3
ipv6 367671 34


pi@razpi0:~ $

のとおり、”cfg80211″といったモジュールが見当たらず、残念な結果になってました。。。

いままで、ラズパイをセットアップする際は、最初のうちはほとんど有線LANで済ませており、一通り必要な作業が済んだら無線LAN接続に切り替えて使うという段取りで、このような状況に陥ろうとは、結構ショックでした!(大概のOS初期状態の問題を解決してくれそうなパッケージのアップデートすらできない状態なので)

こうなると、このまま進められそうもなく、ラズパイゼロユーザがほとんど行っているUSBポート経由でのN/W接続に切り替えようかと思いましたが、¥1,000以上するUSBハブを買ってしまった以上、その道へ進むことは、もったいない精神から許すことができませんでした。

なので、意地でも今のままでなんとかならないものかと、あたりを見回したところ、初代ラズパイを自走ローバーに組み込んでいた時に使用していた、USB無線LANアダプタがあることを思い出し、これを引っこ抜いて、今のラズパイゼロに増設したUSBハブの最後の空きポートに差し込んでみました。

すると、いままでのラズパイすべてて苦労なく使えてきたUSB無線LANモジュール(Planex製GW-USNANO2)だけあって、刺しただけで無線LANが使えそうな状態になりました。

$ sudo dmesg

<抜粋>

[ 5000.133886] usb 1-1.1: new high-speed USB device number 6 using dwc_otg
[ 5000.235819] usb 1-1.1: New USB device found, idVendor=2019, idProduct=ab2a
[ 5000.235860] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 5000.235883] usb 1-1.1: Product: GW-USNANO2
[ 5000.235904] usb 1-1.1: Manufacturer: Planex Communications Inc.
[ 5000.235922] usb 1-1.1: SerialNumber: 00e04c000001
[ 5001.847076] cfg80211: World regulatory domain updated:
[ 5001.847189] cfg80211: DFS Master region: unset

この直後、WiFi設定のアイコンを再度クリックして見ても、状況が変わらなかったので、とりあえず再起動することに。

すると、ようやくWiFi設定のアイコンをクリックすれば、最寄りの無線LANのアクセスポイントが検知され表示されるようになりました。

そのなかから、私のWiFiルータのSSIDを見つけ、N/Wキーを入力すれば、無事に接続出来ました!(ただし、このあと追加した我が家の無線LANアクセスポイントのほうには、ステルスモードなので、手動でwpa_supplicant.confに追記しましたがつながりませんでした。)

とりあえず、WEBブラウザを開き、インターネットにアクセスすることが確認できたので、まずは初回セットアップでお約束の現行の全パッケージのアップデートを行うことにしました。

後日談。。。

ようやく、次の作業に進める!ということで喜んでしまい、肝心なラズパイゼロに内蔵されている無線NICを利用可能にすることを忘れてました。。。。

とはいえ、ここまでできたら、別段なにもすることなく、一緒に内蔵無線NICも認識されてました。”ifconfig -a”コマンドを実行すれば、内蔵無線NICのほうも認識され、IPアドレスも払い出されて利用可能な状態になっていました。

(素人っぽい解釈ですが)パッケージを最新のものにすれば、認識できるということでしょうか。。。

あとは、リブートとともにUSB無線LANモジュールを引っこ抜けば、これ以降内蔵無線NICで接続してくれます。