「Raspberry Pi」カテゴリーアーカイブ

画面右上の謎のアイコンにご注意を!

最近、あまり成果物が生み出されていないにもかかわらず、ラズパイもなんだかんだで数が4基(ラズパイ2TypeB✕2+ラズパイ3B+ラズパイzero)となり、これにあわせて使用するラズパイ用電源アダプタも増えていきました。

いずれも、いつか使うだろうと押し入れに蓄えていた廃棄した電子機器に付属のACアダプタから、5V/1A出力を見つけ出しては、コネクタをUSBのものにはんだづけして付け替えたもので、電源アダプタの形状や大きさもまばらで、このため電源タップの口を無駄に塞いでしまう状態となってしまいました。

そこで、ラズパイ一台につき1電源アダプタという無駄を改善しようと、複数のUSBポートをもち、それらに十分な電源を供給できる電源アダプタ(最大8A)を購入して、ラズパイの電源として利用するようになりました。(下図参照)

DSC_0122

そのころから、、、なのか、定かではないですが、いままで見たこともない、四角い小さくて色鮮やかなアイコンが、画面右上(下図中右上のピンクの丸囲み)に表示されるようになったことに気づきました。

初めて目撃した時は、マウスカーソルをそこへ移動させてクリックしても何も起こらないことから、OS(Raspbian)のトレードマークかなと思い続けていたいのですが、、、

どうやら、そうではなく重要なメッセージを表したサインであることをとあるサイトを見て知ることとなり、驚きました。

なんと、この画面右上の謎のアイコンの意味は、ラズパイの供給電源の状況を表しており、出力電流が1A程度でラズパイがなんとか起動できる状態であるときに出現するとのこと。

ちなみにstretchあたりからは、雷マークに替わったようです。

供給電源からの電流量が少なければ、当然ラズパイのUSBポートやGPIOポートの利用に制限がかかり、使えなくなる恐れあり。

GPSモジュールについて

ラズパイを用いた自作GPS端末を製作するにあたり、購入したGPSモジュールについて、紹介していこうと思う。

購入したのは以下の2つ。

(1)GPS受信機キット[AE-GYSFDMAXB](1PPS出力付き「みちびき」3機受信対応)・・・¥2,100。秋月電子通商にて購入。

<主なスペック>

  • 受信(トラッキング)感度:-164dBm
  • 測位確度(緯経度の水平位置):2m(-135dBm時)
  • 電源電圧:DC5V(電源電流:40mA)
  • 入出力信号レベル:3.3V(CMOSレベル)
  • 出力データ更新レート:毎秒1回(デフォルト。毎秒1~10回出力可)
  • サイズ:30x30x13.5 mm(電池ボックス実装時)
  • 重量:11g(バックアップ電池装着時)

(2)ADAFRUIT GPSモジュール[ID:746]・・・¥2,649。Amazonで購入。

<主なスペック>

  • ウォーム/コールドスタート 34秒
  • 受信(トラッキング)感度: -165dBm
  • 更新レート 最大10Hz
  • 電源電圧 3.0〜5.5VDC (最大電流 20mA)
  • 寸法:25.5x35x6.5(うち、アンテナ部:15x15x4)[mm]
  • 重量 8.5g

当初は、(1)で進める予定であったが、GPS端末用に用意したケースに固定して、バッテリやラズパイなどの必要なパーツを稼動可能な状態で、とりあえずケースに押し込み、公園に行って、ラズパイのシリアルポートからのデータをシリアルコンソールプログラム(cu)で画面に出力させてみたところ、いつまでたってもGPSから正しくデータを受信することができなかった!(30分程度放置したり、向きを変えたりするものの、自宅内で動作させたときと同様な出力状況であった)

当時、原因として、GPSモジュールに対して、半田付けやケースに固定する際に物理的に無理をさせてしまったのが原因で壊れてしまったのでは?と思い、

後日、あらたに(2)のGPSモジュールを購入して、今度はノートパソコン(Debian)に前回とほぼ同様の構成で接続して動作確認してみたところ、正しく測位されたNMEAデータが出力された。

寸法も(2)のモジュールのほうが、長方形型で寸法形状的にレイアウトしやすいことから、(2)を採用することにした。

あらためてこの(2)のモジュールを、新たに別のケースを用意。設置方法はモジュール(1)のときと同様、ケースにGPSセンサ部の四角い形状に合わせて穴を開け、ケースの内側からその窓穴からGPSセンサが空を覗けるように固定した。

下図は、(1)使用時の固定方法

側面図
上面図

この状態で、改めて動作確認をしたところ、最初はGPSデータが受信できず、20~30分ほどケースの向き(GPSセンサーの向き)を変えるなどして格闘してたところ、ようやくデータが表示された!

前回のケース固定との違いから、ケースの厚さが薄くなり、センサ部位がケース表面近くにまで露出させたことがよかったのかもしれない。

 

GPSDのインストール

以下に、GPSモジュールの利用に有効なGPSDサービスプログラムおよびGPS関連のユーティリティプログラムのパッケージインストール手順を示す。

0.準備作業として、前提となるGPSモジュールを接続してシリアルポートの信号受信を確認
1)シリアルポートのデバイスファイルの確認

 pi@raspberrypi:/boot $ ls -l /dev/* |grep serial
 lrwxrwxrwx 1 root root 5 Jan 3 00:52 /dev/serial0 -> ttyS0
 lrwxrwxrwx 1 root root 7 Jan 3 00:52 /dev/serial1 -> ttyAMA0
 pi@raspberrypi:/boot $

2)シリアルポートの設定確認

# vi /boot/cmdline.txt
 dwc_otg.lpm_enable=0 console=tty1 console=ttyAMA0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait fbcon=map:10 fbcon=font:ProFont6x11 logo.nologo
 # vi /boot/config.txt
 enable_uart=1

3)以上から、下記コマンドを実行して、シリアルポートの信号受信を確認。

 $ sudo cat /dev/serial0
 <出力内容は省略するが、NMEAフォーマットのデータが表示されることを確認>

※NMEAフォーマットデータについては、こちらを参照のこと。

以上、GPSモジュールが接続され正しく動作し、その出力がラズパイに届いていることを確認できたら、ここから本題のGPSDの導入作業に移る。

1.GPSモジュールを接続したラズパイにて下記コマンドを実行して、gpsd及びそのクライアントパッケージをインストールする。

pi@raspberrypi:/boot $ sudo apt-get install gpsd gpsd-clients
 Reading package lists... Done
 Building dependency tree
 Reading state information... Done
 The following extra packages will be installed:
 libgps21 python-gps
 The following NEW packages will be installed:
 gpsd gpsd-clients libgps21 python-gps
 0 upgraded, 4 newly installed, 0 to remove and 11 not upgraded.
 Need to get 524 kB of archives.
 After this operation, 1,079 kB of additional disk space will be used.
 Do you want to continue? [Y/n] Y
 Get:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main libgps21 armhf 3.11-3 [208 kB]
 Get:2 http://mirrordirector.raspbian.org/raspbian/ jessie/main gpsd armhf 3.11-3 [93.4 kB]
・・・・・・・

<一部省略>
・・・・・・・
 Setting up gpsd-clients (3.11-3) ...
 Processing triggers for libc-bin (2.19-18+deb8u10) ...
 Processing triggers for systemd (215-17+deb8u7) ...
 pi@raspberrypi:/boot $

2.インストール直後にプロセスが上がるとのことなので、確認する。

pi@raspberrypi:/boot $ ps aux|grep gps
 gpsd 2572 0.0 0.7 13924 7204 ? S<s 22:09 0:00 /usr/sbin/gpsd -N

3.これを以下の手順で停止させる。
1)サービス名の確認と停止

# systemctl --all | grep gps
 gpsd.service loaded active running GPS (Global Positioning System) Daemon
 gpsd.socket loaded active running GPS (Global Positioning System) Daemon Sockets
# service gpsd stop

2)Defaultサービスのスタートアップ無効化

root@raspberrypi:~# systemctl disable gpsd.socket
Removed symlink /etc/systemd/system/sockets.target.wants/gpsd.socket.
root@raspberrypi:~#

4.スタートアップスクリプト/etc/default/gpsdにて、下記の通り追加修正する。

USBAUTO=”true”   =>"false"に変更

DEVICES=""      =>”/dev/serial0”に変更
 GPSD_OPTIONS=""   =>"-n"に変更
 

下記の一文を追加

GPSD_SOCKET=/var/run/gpsd.sock"

5.GPSDデーモンを起動させる。(上記設定の確認も含めて)

# service gpsd start
# ps -ef|grep gps
gpsd 2671 1 3 19:54 ? 00:00:00 /usr/sbin/gpsd -N -n /dev/serial0

参考)GPSD起動中にpsコマンドでプロセスを確認すると、上記ファイル内のGPSD_OPTIONSの値に記述されていないくても、デフォルトでgpsdのオプションとして”-N”が指定されているが、これは /lib/systemd/system/gpsd.service内にて、記述されているためである。

6.gpsmonを実行して動作確認を図る。

$> sudo gpsmon

[q]<RET>で、CUI画面を終了させることができる。

7.GPSDデーモンのスタートアップ起動の有効化

$ sudo insserv -d gpsd
または
$ sudo systemctl enable gpsd
Synchronizing state for gpsd.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d gpsd defaults
Executing /usr/sbin/update-rc.d gpsd enable
Created symlink from /etc/systemd/system/sockets.target.wants/gpsd.socket to /lib/systemd/system/gpsd.socket.
$
本来なら、上記のいずれかでスタートアップが有効になるはずだが、
下記のコマンドを実施しないと、OS起動時に自動起動してくれない。
$ sudo ln -s /lib/systemd/system/gpsd.service /etc/systemd/system/multi-user.target.wants/

以上により、端末起動後、GPSDからGPSモジュールの測位データをいつでも取得できる状態となった。

以上

 

ラズパイのUSBポートの出力電流

ラズパイの初代B+, 2代目model B の USB ポートからの電源供給量はデフォルトでは、全ポート合計で500ないし 600mA までに制限されています。
しかし、ラズパイ Model B+以降からは、スペック的に全ポート合計で 1200mA(1.2A) まで出力できるよう設計され、/boot/config.txt の設定によって変更することができます。さらに、Raspberry Pi 3からはデフォルトで1.2Aとなっています。
ラズパイモデル USB ポート最大合計電源供給量
Raspberry Pi Model A 500mA
Raspberry Pi Model B 500mA
Raspberry Pi Model A+ 500mA
Raspberry Pi Model B+ 600mA
Raspberry Pi 2 Model B 600mA
Raspberry Pi 3 Model B 1200mA
Raspberry Pi 3 Model B+ 1200mA
 ※ラズパイ・ゼロの USB ポートの電力供給量が 1200mAに対応しているかは不明。

1200mA にすることで、USB機器をやたらと接続して、電力不足によって、起動できなかったり、動作が不安定になったり、リセットがかかったりしていた症状を解消してくれます。(USBポート全てに、キーボード+光学式マウス+WiFiドングル+USBメモリであれば利用可能。)
とはいえ、バスパワーのポータブルHDDは厳しいかと思われ、不足したらデータ消失のリスクが大きいので利用は避けたほうがいいかと思われます。
設定:
/boot/config.txt に以下の内容を追加します。
max_usb_current=1
最新の kernel では max_usb_current=1 だけ追加してください。
なお、古い kernel では
safe_mode_gpio=4
を追加する必要があったが、現在では追加不要。
/boot/config.txt を変更後、再起動(シャットダウン&電源ON)してください。
注) 変更後、ラズパイ本体への供給電源は、
2A 以上の電力を供給できるものに交換すること。

ラズパイとLinuxパソコンをシリアル接続する方法

ラズパイゼロを使って思ったのですが、、、

ラズパイゼロを使った装置(作品)を完成させて、いざ初回起動開始!のときに、「あれれ?うごかないぞ。。。」ってなった時や、「いままで動いてたのに急に動かなくなったぞ!?」って時に、無線LAN接続が使えればいいのですが、往々にして動かない時は、繋がらないもの。

なので、USBハブ+マウス+キーボード+HDMIモニタを接続して状況を確認・対処するということになるのですが、

それが自宅外とすると、そんなに機材を持ち歩くことは、しんどい!というか無理。

そこで、以前につい衝動買いで秋月で購入したUSB->RS232シリアル変換ケーブル「FTDI TTL-232R-3V3」(USB to TTL Serial Cable(3.3V)-1.8m)を使って、ラズパイとLinux(Debian)端末をシリアル接続する方法を以下に示す。

まずは、変換ケーブルの接続端子のピンアサインは、以下の通り。

黒=GND
 黄=RXD
 橙=TXD
 赤=Vcc(+5V)
 茶=CTS#
 緑=RTS#

この内、接続に必要なものは、黒と黄と橙の3つ。

一方、ラズパイのシリアル接続用のGPIOのピン番号は、
8番(TXD)、10番(RXD)、14番または6番(GND)

私のラズパイは、6番ピンをクーラーファンに使用しているため、14番としました。

6番ピンを使えれば、縦3つで横並びとなるので、3端子のコネクタがあれば、
変換ケーブルに既存の6端子コネクタから、うまい具合に端子を抜き取って※移植すれば、
ハンダ付けや工具や端子を購入する必要もなくなるかと思います。

※端子の抜き取り方法は、千枚通しとかシャーペン(壊れてもよいもの。要領が解れば壊すこともない)を使って、
コネクタ側面の端子金具が見える窓(=金具の出っ張りを引っ掛けるところ)に上記の道具の先を押し付けながら、
ケーブル方向に押し出すと、金属端子ごときれいに抜けるので、3端子のコネクタにそのまま差し込めると思います。

変換ケーブルとGPIOの接続は、以下の通りクロス接続させます。
 <変換ケーブル> |   <GPIO>
 黒(GND)   <=>  14番または6番(GND)
 黄(RXD)   <=>  8番(TXD)
 橙(TXD)   <=>  10番(RXD)

次に、ラズパイの方は、
/boot/cmdline.txtをエディタで開き、下記の箇所を確認の上修正。

 dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

修正ないし確認した後、シリアルコンソール接続するため、ラズパイをシャットダウンしておく。

接続するDebian端末において、
変換ケーブルをUSBポートに接続させた後、コンソールプログラムを立ち上げて、以下のコマンドを実行し、変換ケーブルのデバイスファイルを確認する。

 $> dmesg
 [201786.992092] usb 5-1: new full-speed USB device number 2 using uhci_hcd
 [201787.188131] usb 5-1: New USB device found, idVendor=0403, idProduct=6001
 [201787.188142] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
 [201787.188150] usb 5-1: Product: TTL232R-3V3
 [201787.188156] usb 5-1: Manufacturer: FTDI
 [201787.188162] usb 5-1: SerialNumber: FTA3BBZ5
 [201788.243386] usbcore: registered new interface driver usbserial
 [201788.243444] usbcore: registered new interface driver usbserial_generic
 [201788.243491] usbserial: USB Serial support registered for generic
 [201788.247032] usbcore: registered new interface driver ftdi_sio
 [201788.247089] usbserial: USB Serial support registered for FTDI USB Serial Device
 [201788.247346] ftdi_sio 5-1:1.0: FTDI USB Serial Device converter detected
 [201788.247458] usb 5-1: Detected FT232RL
 [201788.247465] usb 5-1: Number of endpoints 2
 [201788.247472] usb 5-1: Endpoint 1 MaxPacketSize 64
 [201788.247478] usb 5-1: Endpoint 2 MaxPacketSize 64
 [201788.247484] usb 5-1: Setting MaxPacketSize 64
 [201788.252298] usb 5-1: FTDI USB Serial Device converter now attached to ttyUSB0
 以上の出力結果から、変換ケーブルのデバイスファイルは、”/dev/ttyUSB0”

さらに、Debian端末にて、シリアルポートがサポートされたターミナルプログラム(cuなど)をインストールする。

シリアル通信するデバイスを接続後、シリアル通信プログラムを実行して、シリアル通信が可能かを確認する。

参考)以下、シリアル通信プログラムとして、”cu”を使用して通信を確認する場合
% sudo chmod 666 /dev/ttyUSB0

補足)ラズパイのGPIOのシリアルポートは、”/dev/ttyUSB0”である。

% sudo cu -s 115200 -l /dev/ttyUSB0

と入力する(ボーレートとデバイス名は、接続機器にあわせて指定のこと)。

上記コマンド実行後,/dev/ttyUSB0に接続が成功すると,

Connected.

が表示され、ラズパイ待ち状態になるので、ラズパイの電源をONする。

しばらくすると、ラズバイのOS起動時のコンソール出力が、Debian端末のシリアル通信プログラムのウィンドウに表示される。

 pi@debian:~$ cu -s 115200 -l /dev/ttyUSB0
 Connected.
 [ 0.000000] Booting Linux on physical CPU 0x0
 [ 0.000000] Linux version 4.9.35+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611) ) #1014 Fri Jun 30 14:34:49 BST 2017
 [ 0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d
 [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
 [ 0.000000] OF: fdt:Machine model: Raspberry Pi Model B Plus Rev 1.2
 [ 0.000000] cma: Reserved 8 MiB at 0x17400000
 [ 0.000000] Memory policy: Data cache writeback
 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 97440
 [ 0.000000] Kernel command line: bcm2708_fb.fbwidth=1360 bcm2708_fb.fbheight=768 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
 [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
 ・・・・省略・・・・

ログインプロンプトが表示されるので、ラズパイのアカウント情報を入力してログインし、間違いなくシリアル接続したラズパイであることを確認する。

・・・・省略・・・・
 b1/1-1/1-1.5/1-1.5:1.0/0003:093A:2521.0003/input/input2
 [ 4.981346] hid-generic 0003:093A:2521.0003: input,hidraw2: USB HID v1.11 Mouse [USB OPTICAL MOUSE] on usb-20980000.usb-1.5/input0
 [ 5.017712] fuse init (API version 7.26)
 [ 5.061482] i2c /dev entries driver

Raspbian GNU/Linux 8 raspberrypi ttyAMA0

raspberrypi login: pi
 Password:
 Last login: Mon Oct 8 22:27:33 JST 2018 on tty1
 Linux raspberrypi 4.9.35+ #1014 Fri Jun 30 14:34:49 BST 2017 armv6l

The programs included with the Debian GNU/Linux system are free software;
 the exact distribution terms for each program are described in the
 individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
 permitted by applicable law.
 pi@raspberrypi:~$

以上

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

我が家の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で接続してくれます。

ラズパイ・ゼロを買ってみた!

ラズパイ3で製作していたGPS機能付ポータブル端末(仮)を製作していて、試作機だからと我慢していた大きさだったが、このラズパイ3を別の用途に転用してしまい、製作はあえなく頓挫。。。

ラズパイ3+も出たので、そちらを購入しようかと迷ってんですが、、、この端末の要件を改めて考えると、やはりCPU処理性能をはじめとするラズパイ3+の機能や形状は無駄が多すぎると判断し、ラズパイ・ゼロを代替品とすることに決めました。

購入は、いつものAmazonでもよかったのですが、どうしても待ちきれずに、アキバへ直行して、マルツで購入しました。(¥2,000税別)

SDメモリは、8GB未使用品が家に転がっていたので、これを流用。

これに書き込むOSは、GPS機能付ポータブル端末(仮)に使用している、Kumanの5インチ液晶タッチパネルモニタに付属のカスタマイズ版Raspbian(Jessie)とし、これをLinuxノートPCで書き込ませて、さっそく起動!

かなりのコンパクトサイズで喜ばしい反面、セットアップ作業がいままでどおりにはできないことに気づきました。

というのも、、、USBポートがMicroBタイプのUSBポートが1つしかないと言うことです。(そういう無駄を削いだところが選定理由だったのに)

そこでUSBハブを家に落ちてないか探したところ、見当たらず。。。

なので、近所のあきばおーへ、自転車でひとっとびして、microBtoAメスの変換ケーブル、USBハブ、USBメモリを、いずれも安かったのと、今回のラズパイ・ゼロで必要になると思い込み、衝動買いしてしまいました。。。。

自宅に帰って、早速購入品とセットアップ作業に必要なマウスとキーボード、モニタをラズパイ・ゼロにつなげて、いざ起動!!

いつものデスクトップ画面が表示されたので、マウスとキーボードで操作しようとしたところ、、、、なぜかキーボードの入力を受け付けないし、マウスも使えない!!!

このUSBポートって、まさかrootハブ機能を持っていないのでは!?と思い、とりあえずキーボードだけをラズパイ・ゼロに接続して最低限の操作ができるようにと起動させて、下記コマンドを実行した。

pi@razpi0:~ $ lsusb
Bus 001 Device 005: ID 0930:1408 Toshiba Corp.
Bus 001 Device 004: ID 093a:2521 Pixart Imaging, Inc.
Bus 001 Device 003: ID 099a:0638 Zippy Technology Corp. Sanwa Supply Inc. Small Keyboard
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

※さらに詳しくUSBの接続状況を確認するには、”lsusb -v”

と、Bus 001 Device 001に”root hub”の記述があることから、(流石にそれはないよな。。。と)ひと安心。

となれば、各USBデバイスへの電源供給が不足しているのではと推測し、後日会社の帰りにアキバへ向かい、電源供給機能付きのUSBハブを購入!(ヨドバシAKBにて、バッファロー製BSH4A11¥1,120税別)

帰宅して早速、マウス・キーボード(とついでにUSBメモリ)をこれに接続してラズパイゼロを立ち上げてみた。

すると、、、、マウスの底面から赤い光を放つようになり、キーボードもCAPSロックをかけると、そのLEDが点灯。もちろんその後ノートパッドアプリで文字入力ができることを確認!!

これでようやくセットアップ作業ができるようになった!

しかし、ラズパイゼロ・ユーザのセットアップ作業のページを読むと、USBポートを使って母艦のPCにシリアルコンソール接続して、これを使ってセットアップ操作を実施するというのが、当たり前なようで、、、余計なものを買ってしまった!とがっかり。。。

次回は、この状態でのラズパイゼロのセットアップ作業の続きをご紹介。

ラズパイ(Jessie)に画面キャプチャツールを追加

通常PC版のDebianには、当たり前のように画面キャプチャツール(kshapshot)がインストールされてますが、Raspbianには、容量削減のためか、インストールされてません。

これからラズパイをいじくり倒すことをするときに、画面キャプチャをとっておくと、作業手順の記録になるので、本手順を実施されることをおすすめします。

まずは、”ksnapshot”パッケージのインストールから。。。

GUI操作で実施する場合、

「Menu」>「設定」>「Add/Remove Software」を起動させて、”ksnapshot”で検索する。

しばらく待つと、検索結果の一覧の中に、「screen capture tool」(ksnapshot-*.*…)のパッケージが存在するはずなので、これを選択して「Apply」をクリックする。

コマンドラインで操作する場合、

$> sudo apt-get install ksnapshot

実施の前に、全パッケージのアップデート(apt-get update)も忘れず実施しておきましょう。

「メニュー」への”ksnapshot”の追加

以上のいずれか一方の操作でインストール後、「Menu」のアプリケーションリストから実行できるように、以下の操作を引き続き実施します。

ちなみに、なぜか上述のksnapshotのインストールが完了すると、「サウンドとビデオ」には”VLCメディアプレーヤ”が勝手に追加されています。(最初にあった”QjackCtl”は消えています。)

今回の”ksnapshot”は、「グラフィックス」に追加することになります。

「Menu」>「設定」>「Mani Menu Editor」を起動させます。

「Mani Menu Editor」画面左側のメニュー項目一覧から、”グラフィックス”を選択し、中央のアイテムリストに対して”ksnapshot”にチェックが入っていることを確認のうえ、「OK」ボタンをクリックします。(デフォルトでチェックが入っていて本来表示されているはずなのですが、儀式的に行わないと追加がメニューに反映されないようです)

「OK」ボタンをクリックして、「Mani Menu Editor」を終了後、あらためて「Menu」>「グラフィックス」をクリックすると、「ksnapshot」が表示されるので、これをクリックして起動するか確認してください。

無事起動できて、画面キャプチャができるようになります。

以上