at_kazutaka.bito
2017年6月2日 19時31分
Armadillo-X1で、カメラの画像からQRコードを読む方法(zbarcam)です。カメラはUSBカメラを使用しました。 当方が確認したのは、Armadillo-X1ですが、Armadillo-IoT(G3/G3L)も同様の手順が使えるはずです。
1.必要なパッケージのインストール
Armadiilo-X1をインターネットにつながるネットワークに接続します。
下記のように、apt-getコマンドを使って、パッケージのアップグレードと、libzbar0、zbar-tools、imagemagickのインストールを行います。
root@armadillo:~# apt-get update & apt-get upgrade
root@armadillo:~# apt-get install libzbar0
root@armadillo:~# apt-get install zbar-tools
root@armadillo:~# apt-get install imagemagick
2.PCでカメラの画像を見れるようにする
QRコードの認識自体には必要ありませんが、QRコードの画像の位置が見えないと不便なので、ネットワーク経由でカメラの画像をPCで見れるようにします。 ここでは、ATDE上に表示させます。
ATDEの/etc/gdm3/daemon.confを編集します。
atmark@atde6:~$ sudo gedit /etc/gdm3/daemon.conf
で/etc/gdm3/daemon.confファイルを開いて、[security]箇所に下記のように追加します。
[security]
DisallowTCP=false
上記の編集後、ATDEを再起動してください。
ATDE起動後、下記のようにxhostコマンドを実行します。
atmark@atde6:~$ xhost +
access control disabled, clients can connect from any host
3.QRコードを読む(zbarcamの実行)
Armadillo-X1で、下記のようにzbarcamを実行すると、上記2でxhostを実行中のATDEにカメラの画像が表示されます。
QRコードを検出すると、
Armadillo-X1の標準出力にQRコードの値が表示されます。
ATDEのカメラの画像では、QRコードに緑線の淵が表示されます。
(ATDEのIPアドレスが192.168.11.35の場合)
DISPLAY=192.168.11.35:0 zbarcam --prescale=320x240 /dev/video0
カメラとQRコードの位置が固定となって、画像が不要な場合は、下記のように実行します。
zbarcam --nodisplay --prescale=320x240 /dev/video0