以前試した LjES が ver.2.00 になったということで さっそく試してみたいと思います。
[参考]
Raspberry Pi メモ (29) - LuaJITでお手軽3D (5)
今回のバージョンでは Blender で作成し Collada 形式でエクスポートした 3D モデルを読み込む機能が追加されていて お手軽に 3D アニメーション ができるそうです。
上記サイトにも書いてありますが、 以下のコマンドを実行するだけで デモを動かすことができます。
$ cd /tmp $ curl -O http://www.mztn.org/rpi/ljes-2.00.tar.gz $ tar zxf ljes-2.00.tar.gz $ cd ljes-2.00 $ cd examples $ luajit hand.lua
2014-01-07-wheezy-raspbian 上で試しましたが 簡単に動きました。
[1] 〜 [6] を押すと、指が動きます。 終了したいときは [q] を押します。 その他、操作は [h] で表示されます。
3D モデルとアニメーションの定義が 取り込めて Lua のプログラムで利用できるようになっているのはすごいですね。
前回の続き SNMP の設定です。 とりあえず SNMP からデータを取得できるように設定していきます。
まず snmpd の設定ファイルを編集します。
$ sudo vi /etc/snmp/snmpd.conf
内容は次のような感じです(全文)。
############################################################################### # # AGENT BEHAVIOUR # # Listen for connections from the local system only agentaddress udp:161 ############################################################################### # # ACCESS CONTROL # # sec.name source community com2sec PI_LOCAL localhost RASPBERRY_PI com2sec PI_NETWOEK 192.168.3.0/24 RASPBERRY_PI # group.name sec.model sec.name group LOCAL_GROUP v1 PI_LOCAL group LOCAL_GROUP v2c PI_LOCAL group LOCAL_GROUP usm PI_LOCAL group NETWORK_GROUP v1 PI_NETWOEK group NETWORK_GROUP v2c PI_NETWOEK group NETWORK_GROUP usm PI_NETWOEK # view.name incl/excl subtree mask view all included .1 80 # group.name context sec.model sec.level match read write notif access LOCAL_GROUP "" any noauth exact all none none access NETWORK_GROUP "" any noauth exact all none none ############################################################################### # # SYSTEM INFORMATION # syslocation Raspberry Pi raspbian syscontact Studio ODIN <xxxxx@xxxxx.xx.xx> sysservices 72
ネットワークは 192.168.3.x を使用しているので、その範囲からのアクセスを許可しています。 community 名の "RASPBERRY_PI" はパスワードの意味も含まれているので、 コピペする場合は、適宜変更してください。
syslocation と syscontact は、ただの情報ですので適当に。
設定ファイルの編集が終わったら サービスを再起動します。
$ sudo service snmpd restart
あとは試しに snmpd にアクセスしてみます。
$ sudo snmpwalk -v 2c -c RASPBERRY_PI localhost 1.3.6.1.4.1.2021
"RASPBERRY_PI" は、設定ファイル内の community 名、 "1.3.6.1.4.1.2021" が取得する情報の識別子です。
このコマンドを実行して、文字列がダーっと帰ってきたら成功です。
今回はここまで。
短いですが、前回の続き。
前回、 MRTG でグラフ化するデータを取得するために SNMP のパッケージも入れました。
インストールすだけで起動しているので見てみます。
$ netstat -lun Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 127.0.0.1:161 0.0.0.0:*
このように UDP 127.0.0.1 で待機しています。
サーバ内部で使用する場合はこれでも良いのですが 別のサーバからも SNMP にアクセスすることを 考えて設定を変更します。
SNMP の設定ファイルを編集します。
$ sudo vi /etc/snmp/snmpd.conf
これを。
# Listen for connections from the local system only agentAddress udp:127.0.0.1:161
こうします。
# Listen for connections from the local system only agentAddress udp:161
あとはサービスを再起動。
$ sudo /etc/init.d/snmpd restart
これで別サーバからもアクセスできるようになりました。
$ netstat -lun Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 0.0.0.0:161 0.0.0.0:*
今回はここまで。
ちょっと MRTG の復習がてら Raspberry Pi に MRTG を入れてみたいと思います。
とりあえずパッケージを最新の状態に。
$ sudo apt-get update
ちなみに 2014-01-07-wheezy-raspbian が入っています。
$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages have been kept back:
wolfram-engine
The following packages will be upgraded:
curl dpkg dpkg-dev file libcurl3 libcurl3-gnutls libdpkg-perl libgnutls26 libmagic1 libxfont1 libyaml-0-2
lsb-base python3-pifacedigital-scratch-handler tzdata udisks wget
16 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Need to get 8,296 kB of archives.
After this operation, 570 kB of additional disk space will be used.
Do you want to continue [Y/n]?
インストール前後のパッケージのリストも取得しておきます。
$ sudo dpkg -l > ~/package_list_before_mrtg.txt
MRTG と SNMP のデーモンとクライアントを入れます。
$ sudo apt-get install snmpd snmp mrtg
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libio-socket-inet6-perl libperl5.14 libsensors4 libsnmp-base libsnmp-session-perl libsnmp15
libsocket6-perl
Suggested packages:
lm-sensors snmp-mibs-downloader mrtg-contrib
The following NEW packages will be installed:
libio-socket-inet6-perl libperl5.14 libsensors4 libsnmp-base libsnmp-session-perl libsnmp15
libsocket6-perl mrtg snmp snmpd
0 upgraded, 10 newly installed, 0 to remove and 1 not upgraded.
Need to get 5,863 kB of archives.
After this operation, 9,507 kB of additional disk space will be used.
Do you want to continue [Y/n]?
途中で "Make /etc/mrtg.cfg owned by and readable only by root?" とか聞かれるので "Yes" と答えておきます。
$ sudo dpkg -l > ~/package_list_after_mrtg.txt
インストール前後のパッケージの差分は次のような感じ。
$ cd $ diff package_list_after_mrtg.txt package_list_before_mrtg.txt 292d291 < ii libio-socket-inet6-perl 2.69-2 all object interface for AF_INET6 domain sockets 357d355 < ii libperl5.14 5.14.2-21+rpi2 armhf shared Perl library 403d400 < ii libsensors4:armhf 1:3.3.2-2+deb7u1 armhf library to read temperature/voltage/fan sensors 413,416d409 < ii libsnmp-base 5.4.3~dfsg-2.7 all SNMP (Simple Network Management Protocol) MIBs and documentation < ii libsnmp-session-perl 1.13-1 all Perl support for accessing SNMP-aware devices < ii libsnmp15 5.4.3~dfsg-2.7 armhf SNMP (Simple Network Management Protocol) library < ii libsocket6-perl 0.23-1 armhf Perl extensions for IPv6 549d541 < ii mrtg 2.17.4-2 armhf multi router traffic grapher 639,640d630 < ii snmp 5.4.3~dfsg-2.7 armhf SNMP (Simple Network Management Protocol) applications < ii snmpd 5.4.3~dfsg-2.7 armhf SNMP (Simple Network Management Protocol) agents
なんか色々と入りました。
今回はここまで。
久しぶりの Raspberry PI ネタです。
今回は raspbian を配布されている最新にしたいと思います。 というわけで、 2014-01-07-wheezy-raspbian を入れます。
[参考サイト]
Raspberry Pi メモ (26) まとめ - Jun's homepage
いつものように 上記サイトを参考に進めます。
ダウンロードして、解凍して、SDカードに書き込んで起動。
2013-12-20-wheezy-raspbian で Mathematica が入ってます。 適当にコマンドを実行。
$ mathematica -v
10.0
なんか出ました。
2013-09-25-wheezy-raspbian から Java が入ってます。
$ java -version
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) Client VM (build 24.0-b56, mixed mode)
とりあえずここまで。
しばらく放っておくと追いかけるのが大変ですね。
前回の続きです。
ブレッドボード上で 単3の eneloop 2本を直列につないで 赤色の LED を光らせました。
ただ、 LED が ものすごく熱くなってしまったので 今回は「抵抗」を付けてみます。
ブレッドボード&LEDパーツセット・タイプA - ビクトリーセブン・ネット通販 には 220Ω と 10KΩの抵抗が入っていました。
とりあえず 大きい方の 10KΩの抵抗 を付けてみます。
10KΩの抵抗の袋には「茶黒橙金」と書いてあって 抵抗本体にも、その色の線が入っています。
最初の 2つ 「茶黒」で値を表現していて 「茶」が「1」、「黒」が「0」なので「10」になります。
3つ目の「橙」は乗数を表現していて 「x10の3乗」になります。 「10x10の3乗Ω」なので「10KΩ」ですね。
最後の金色は精度で「±5%」だそうです。
昔、何かの授業で読み方を習った気もしますが 当然のことながら すっかり忘れてますね・・・。
実際に測ってみます。
9.86KΩでした。
この抵抗を 前回作った回路?に入れてみます。
LED は光りません。 抵抗が大きすぎたんでしょうか。
手で影を作ると少しだけ光ってました。
抵抗にかかっている電圧を測ってみます。
0.97V でした。
ということは 電圧 0.97V ÷ 抵抗 9.86KΩ で 電流は 0.1mA ですね。 (壊してしまったのか直接テスターで電流が測れません)
ちなみに LED にかかっていた電圧は 1.65 V でした。
10KΩ の抵抗を 200Ω の抵抗に変えてみます。
こちらも実際に測ってみます。
221Ω でした。 この抵抗に入れ替えます。
LED が光りました。
LED が光りました。
影を作ると、よりはっきりわかります。
抵抗にかかってる電圧を測ってみます。
0.69V でした。
電圧 0.69V ÷ 抵抗 221Ω で 電流は 3.1mA ですね。
このように LED に流す電流を 制限するための抵抗を 「電流制限抵抗」と呼ぶそうです。 そのまんまですね。
前回やったような 「電流制限抵抗」をつけない回路は LED を壊してしまうのでやってはいけないそうです。
今回はここまで。
今回は、Raspberry Pi から少し離れますが ブレッドボード&LEDパーツセット・タイプA - ビクトリーセブン・ネット通販 で買った LED やらブレッドボードやらを試してみます。
まずブレッドボード。
前にも書きましたが、ハンダ付けせずに電子工作できる 初心者にはありがたい板です。
この板は、内部で赤線のように線がつながってるそうです。
つぎに赤色の LED。
2本線が出てますが、長い方が「+」で短い方が「ー」だそうです。
アノード・カソードとか言うそうですが、そういう難しい用語は (間違ったことを書いてしまいそうなので) 扱いません。
ここでいきなり話が変わりますが、
先日
京都の寺町にある「パーツ屋さん」に行ってきました。
壁一面の引き出しに圧倒されながらも 小さなブレッドボード(200円)と 電池ケース(5個100円)を 買ってきました。
この電池ケースを使って、電池で LED を光らせたいと思います。
まず、電池ケースに 単3の eneloop を入れます。
電圧は 1.3V でした。
次に ブレッドボードに LED を刺します。
電池ケースから出ている線も ブレッドボードに刺します。
・・・LED が光りません。
電池ケースは 5個あるので もう 1つ直列につなげてみました。
LED が光りました!
電池を 2つ直列につないだときの電圧は 2.5V でした。
ただ、この後 LED が ものすごく熱くなっていました。
電圧をかけすぎたのかもしれないですが その辺りはまだよくわからないので、 とりあえず LED が光ったということで 今回はここまで。
Raspberry Pi で電子工作をするには GPIO というものを使えば良いそうで 下の写真の黄色矢印の先のトゲトゲのピンが その GPIO のポートになります。
ピンは 26 本あって 今回は電力を供給してくれるピンを 使って電圧を測ってみます。
こんな記事を書いてますが 電子工作はまったくの初心者です。 どれくらい初心者かと言うと テスターの棒のキャップに気付かなかったくらいです。
(当然かもしれませんが、棒の先端はキャップで外れます)
ピンに直接テスター棒をあてると 他のピンにもあたってしまいそうなので 1ピンと 6ピンに オス-メスのケーブルをつなぎます。
ピンの意味は 下のサイトの早見シートを付けるとわかりやすくなりそうです。
Raspberry Piブログ : Raspberry PiのGPIO早見シートを作りました
1ピンからのケーブルにテスターの赤(+)を 6ピンからのケーブルに黒(-)をあてます。
テスターは、前に買った デジタルマルチテスターMAS830L です。
3.34V でした。 1ピンと 6ピンのアースをつなぐことで 3.3V の電圧が供給されるそうです。
次は 2ピンと 6ピンにつないでみます。
4.67V でした。 2ピンと 6ピンのアースをつなぐことで 5V の電圧が供給されるそうです。
今回はここまで。
前回、テスターを購入しました。
ただ当然ながら それだけでは電子工作はできません。 電子部品を用意しなくてはならないのですが Raspberry Pi で始めるにあたって ちょうどいいセットが出ていました。
ブレッドボード&LEDパーツセット・タイプA - ビクトリーセブン・ネット通販
こちらは「Raspberry PiでGPIOポートの制御方法を学びたい方のために〜」ということで Raspberry Pi で使うための部品がセットになっています。
さっそく購入。
すぐ届きました。
いろいろ入ってました。
↓ブレッドボード。
ハンダ付けなしで 回路を試せるありがたい板です。
↓LED。 3色あります。 赤x8 黄x4 緑x4。
光って出力が確認できます。
↓プッシュボタン。
まだどうやって使うかわかりません。
↓抵抗。220Ωx20 10kΩx6。
昔、値の読み方を覚えた気がします。
↓ケーブル。いっぱいあります。
少しずつ道具が増えていきます。 楽しいですね。
Raspberry Pi を使って 電子工作をやってみようと思います。 この分野はホントに素人ですので 「いちから始める」という状態です。
今までソフトウェアしか触ってこなかったのですが Raspberry Pi にカメラを付けてみたり 色々と教えてくれる方がいるので ちょっと手を出してみることにしました。
低レベルの言語をやると色々と学べることがあるように 何かソフトウェアの開発に役に立つものを 見いだせる気もしています。
とりあえずテスターを買ってみました。
デジタルマルチテスターMAS830L Amazon で 980円でした。
実は何に使えるかもわかっていませんが、 ソフトウェアを開発する場合は、まずデバッグの手段を確保するのが重要なので ハードウェアならテスターかな?と買ってみました。
こういった機械物はあまり接点がないので 「何かできそう」なワクワク感が楽しいですね。
コマンド (raspistill) で 写真が取れるということは cron で自動的に写真が撮れるわけです。 今回は インターバル撮影して、その画像を動画にしてみたいと思います。
まず、画像を出力するディレクトリを作成します。
以下、ユーザは pi です。
$ mkdir -p ~/raspistill/test001
お試しなので cron の定義ファイルに直接コマンドを書きます。
$ env EDITOR=vi crontab -e
SHELL=/bin/bash HOME=/home/pi PATH=/usr/sbin:/usr/bin:/sbin:/bin:/opt/vc/bin MAILTO="" * * * * * raspistill -w 400 -h 300 -o ~/raspistill/test001/`date +"\%Y\%m\%d\%H\%M"`.jpg > /dev/null 2>&1 * * * * * echo `date +"\%Y/\%m/\%d \%H:\%M " && /opt/vc/bin/vcgencmd measure_temp` >> ~/raspistill/test001/temp.log 2> /dev/null
ついでに温度も記録しておきます。
これで しばらく経つと /home/pi/raspistill/test001 にファイルが 作成されます。
$ ls -l ~/raspistill/test001
201308170905.jpg
201308170906.jpg
201308170907.jpg
これをしばらく放置しておきます。(10時間くらい)
$ ls ~/raspistill/test001 | wc -l
600
10時間で 600 の画像ができました。
今回は、この画像を GIF アニメ画像にします。
GIF アニメ画像作成には ImageMagick を使います。
$ sudo apt-get update $ sudo apt-get install imagemagick
画像のサイズを小さくしないと ファイルサイズが大きくなりすぎるので 同時にサイズも変更します。
$ convert -geometry 100x75 -delay 10 -loop 0 ~/raspistill/test001/*.jpg /tmp/test001_1.gif
このコマンドで 画像のサイズを 100x75 に変更しながら、 1枚 0.1秒で GIF アニメ画像を作成しました。
他にも色々なパターンで作成してみました。
100x75 300枚 600倍 30秒 (9時〜13時) 1.89MB → 表示 200x150 300枚 600倍 30秒 (9時〜13時) 6.07MB → 表示 100x75 600枚 1200倍 30秒 (9時〜18時) 3.81MB → 表示 160x120 600枚 1200倍 30秒 (9時〜18時) 8.27MB → 表示 200x150 600枚 1200倍 30秒 (9時〜18時) 12.30MB → 表示
Raspberry Pi で 変換するのは結構時間がかかります。 100x75の 600枚で 8分、 200x150の 600枚で 13分かかりました。
ついでに 温度のログ も上げておきます。
Raspberry Pi の使い道として
インターバル撮影は面白いですね。
今回はここまで。続きます。
前回、前々回で カメラモジュールを ハードウェア的・ソフトウェア的に Raspberry Pi に接続しました。
今回は、写真を撮ってみます。
写真を撮るには raspistill というコマンドを使います。
$ raspistill -w 300 -h 200 -o /tmp/test1.jpg
これだけで写真が撮れます。
この例では /tmp/test1.jpg に出力されます。
実際に取った画像です。
(丁度良い被写体が見つからなかったのでちょっとアレですが・・・)
オプション1つで画像に効果を付けられます。
$ raspistill -w 300 -h 200 -ifx sketch -o /tmp/test2.jpg
コマンドのオプションについては、下記のサイトに詳しく書いてありますので そちらを参照してください。
[参考]
Raspberry Pi メモ (23) - カメラモジュールの使い方 - Jun's Homepage
HDMI で TV などに Raspberry Pi から出力していれば、 raspistill のコマンド実行時に 出力側の画面にもカメラで写した画像が表示されます。
今回はここまで。続きます。
前回、カメラモジュールを Raspberry Pi にハードウェア的に接続しました。 今回は ソフトウェア的に接続します。
[参考]
Raspberry Pi メモ (23) - カメラモジュールの使い方 - Jun's Homepage
まず OS (Raspbian) を起動します。
SSH かコンソールでログインして raspi-config を起動します。
$ sudo raspi-config
上記の参考サイトに書いてあるように 『Raspberry Pi Software Configuration Tools』のメニューから 『5. Enable Camera』を選らんで 設定値を【Enable】にします。
raspi-config を終了させて OS を再起動します。
これで設定は終わりです。簡単ですね。
今回はここまで。続きます。
今回は Raspberry Pi に カメラモジュールを接続してみます。
[参考]
Raspberry Pi メモ (23) - カメラモジュールの使い方 - Jun's Homepage
まず、カメラモジュールを本体に接続します。 OS をシャットダウンして 電源ケーブルを抜いておきます。
カメラモジュールから出ている ペラペラのケーブルを 下の図の黄色で囲ってあるコネクタに刺します。
コネクタは横の突起を 爪に引っ掛けて引っ張ると 黒い部分が、上にスライドします。
下の図の赤い部分に隙間ができます。
隙間にケーブルを差し込んで 黒い部分を下げて挟みます。
ケーブルは、裏表があるので注意してください。
これでハードウェア的な接続は終了です。 簡単ですね。
今回はここまで。続きます。
Raspberry Pi のカメラモジュールを 色々試していきます。
今使っている 2012-09-18-wheezy-raspbian には カメラ用のコマンドが入っていないので アップグレードします。
いつものように下記サイトを参考に進めます。
[参考]
Raspberry Pi メモ (23) - カメラモジュールの使い方 - Jun's Homepage
カメラ用のコマンドは /opt/vc/bin に入るようです。
$ ls -lt /opt/vc/bin
total 228
-rwxr-xr-x 1 root root 58483 Oct 29 2012 edidparser
-rwxr-xr-x 1 root root 36147 Oct 29 2012 tvservice
-rwxr-xr-x 1 root root 61435 Oct 29 2012 vcdbg
-rwxr-xr-x 1 root root 15015 Oct 29 2012 vcgencmd
-rwxr-xr-x 1 root root 54194 Oct 29 2012 vchiq_test
まだありません。
アップグレードします。
$ sudo apt-get update $ sudo apt-get upgrade
この作業は 10分〜20分くらいかかります。
アップグレードが終わったら 再度確認してみます。
$ ls -lt /opt/vc/bin total 364 -rwxr-xr-x 1 root root 59825 Aug 08 22:08 edidparser -rwxr-xr-x 1 root root 44483 Aug 08 22:08 raspistill -rwxr-xr-x 1 root root 40243 Aug 08 22:08 raspivid -rwxr-xr-x 1 root root 38070 Aug 08 22:08 raspiyuv -rwxr-xr-x 1 root root 44950 Aug 08 22:08 tvservice -rwxr-xr-x 1 root root 62584 Aug 08 22:08 vcdbg -rwxr-xr-x 1 root root 15054 Aug 08 22:08 vcgencmd -rwxr-xr-x 1 root root 55013 Aug 08 22:08 vchiq_test
raspistill などのカメラ用のコマンドが追加されています。
今回はここまで。続きます。
Raspberry Pi 用のカメラモジュールが届きました。
8/3 に RSオンラインから発注したのですが 8/5 には発送メールが来て、 昨日(8/6)に不在通知が入っていました。
8/3 時点で RS オンラインに カメラモジュールの在庫は 730 個くらいあり 今日(8/7)時点でも 600 個ありました。
具体的に何に使うか決めていませんが、色々と遊べそうです。
jun さんが Raspberry Pi 上で動く LuaJIT の 3D ライブラリを作られたので 3D で 遊んでみたいと思います。
[参考サイト]
Raspberry Pi メモ (20) LuaJITでお手軽3D (2) LjESリリース - Jun's homepage
LuaJIT や OpenGL ES2 についても書かれてますので 詳しくは次のページなんかを参照してください。
[参考サイト]
Raspberry Pi メモ (19) LuaJITでお手軽3D (1) - Jun's homepage
Raspberry Pi メモ (7) OpenGL ES2 (1) 概要 - Jun's homepage
とりあえず動かしてみます。
まず Raspberry Pi を起動して HDMI からの出力を TV などに出しておきます。
次に LuaJIT の 3D ライブラリをダウンロードして 解凍します。
$ cd /tmp $ wget http://www.mztn.org/rpi/ljes-1.00.tar.gz $ tar zxf ljes-1.00.tar.gz
$ cd ljes-1.00 $ ls -F COPYRIGHT examples/ LjES/ README test/
examples の中にサンプルがあります。
$ cd examples $ ls *.lua axis.lua donut.lua term.lua demo_shape.lua double_cone.lua truncated_cone.lua demo_spheres.lua sphere.lua
demo_shape.lua を実行してみます。
$ luajit demo_shape.lua
HDMI の出力先に次のような 3D が表示されます。
[Q]キーで終了します。 [Ctrl]+[C]で終了した場合、コンソールの設定が変更されたままになります。 そのときは、エコーされませんが、次のように term.lua を実行すると元に戻ります。
$ ./term.lua
今回はここまで。
前回(2012/12/21)から かなり放置していましたが ようやく 2台目に火を入れました。
Amazon で Amazonベーシック SDHCカード 4GB class10 を 3枚買って とりあえず 2枚に 2012-12-16-wheezy-raspbian を入れました。
インストール作業は次のサイトの通りです。
[参考サイト]
Raspberry Pi メモ (16) Raspbian 2012-12-16 - Jun's homepage
とりあえず今日はここまで。
不在票がようやく本体になりました。
今回はケースも買いました。
白い箱がケースの箱です。
ケースは透明です。
メカメカした中身が見える方が楽しいですよね。
Raspberry Pi を入れるとこんな感じです。
(中に入っているのは Rev.1 の方)
とりあえず今日はここまで。
12/19 に郵便局の不在票が入っていました。
前回同様、発送のメールから 7 日でした。
前回は、郵便受けに入れておいてくれたんですが 今回はケースも購入したためか 郵便局だからなのか 不在票でした。
受け取りは週末になりそうです。
前回の (1) から少し間が開きましたが、無線 LAN の続きです。
せっかく Raspberry Pi に VNC 接続できるようにしたので GUI で設定していきたいと思います。
Raspbian の デスクトップには 「WiFi Config」というアイコンがあります。 このアイコンから 無線 LAN を設定することができます。
起動すると、次のような画面が出てきます。
「Manage Network」の「Scan」ボタンをクリックします。
検出された SSID が表示されます。
自分が接続する SSID をダブルクリックします。
設定内容の入力画面が出るので入力します。
DHCP サーバがあれば、これで設定は終了です。
接続されてました。
設定は保存されるので 次は GUI を起動しなくても Raspberry Pi を起動すれば 自動的に 無線 LAN に接続されます。
前回は、 引退した iPhone4 にキーボードを装備して iPhone4 から Raspberry Pi に SSH 接続しました。 今回は、このキーボードを使って NVC 経由で Raspberry Pi を操作したいと思います。
といっても iPhone4 から 直接 VNC 接続するわけではありません。 iPhone4 にも VNC app は入れられるのですが iPhone4 の画面は小さいので iPad をモニタとして代わりに使います。
こんなイメージです。
キーボードは、iPhone4 に装備していますが、Bluetooth なので
そのまま iPad のキーボードとしても使うことができます。
(当然ながら iPhone4 は居るだけで何もしていません・・・)
このようになりました。
(iPhone4=カメラが使用中のためガラケーで撮影)
キーボードからだと タブやハイフンの入力と カーソルによる移動やコマンド履歴ができるので かなり打ちやすくなりました。
引退した iPhone4 にキーボードを装備したので このキーボードを使って Raspberry Pi を操作したいと思います。
Raspberry Pi には SSH 接続します。
というのも、Raspberry Pi の VNC Server を止めてしまうと Raspberry Pi を操作する手段が 無くなってしまうためです。
SSH 接続は、無料の『SolarWinds Mobile Admin Client』を使います。 快適にサクサク、というわけにはいきませんが、 VNC Server の起動や シャットダウンくらいなら問題ありません。
[参考サイト]
iPad/iPhoneからフリーでSSHを使う | TECHoh!
さっそく接続してみます。
コマンドを実行。
ちゃんと色もついて表示されます。
ただ、キーボードのタブ、コントロール、カーソルキーは 反応しませんでした。 ちょっと残念ですが タブやコントロールキーが必要なときは 画面上部の [tab],[ctrl] などの操作アイコンを使います。
ちなみに、外付けキーボードが無く 横長モードで、キーボードを表示すると かなり画面が狭くなります。
この辺りは、キーボードが別にあることのメリットですね。
画面上部 [ctrl] などの操作アイコンは 表示・非表示を切り替えできるので 更に広く使うこともできます。
無料でここまでできるのはありがたいですね。
せっかく Raspberry Pi が NVC 接続できるようになったので iPad とつなげてみます。
iPad 側の VNC app は、『Mocha VNC Lite』(無料) を使います。 Mocha VNC Lite には、制限事項もありますが、無料なのでお試しするには丁度良い app です。
[参考サイト]
iPhoneとiPad用VNCアプリ17種類まとめ :: 実践CMS*IA
まず設定画面で SVN Server の IPアドレス、ポート、パスワードを指定します。
接続。
接続できました。
コンソールでコマンドを入力してみます。
良い感じです。
これで Raspberry Pi と iPad だけで作業できるようになりました。
無線 LAN の設定の途中なんですが Raspberry Pi に VNC Server を入れて PC から Raspberry Pi の X の画面の キャプチャーを取れるようにしたいと思います。
以下のサイトを参考に作業開始。
[参考サイト]
工作と小物のがらくた部屋: Raspberry Pi に VNC Server をインストール
インストール。
$ sudo apt-get install tightvncserver
インストールしたパッケージを起動。 パスワードを設定します。
$ tightvncserver
もうこれで VNC Server が使用できます。
ポートが LISTEN されています。
$ netstat -lnt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:6001 0.0.0.0:* LISTEN
1 つ目は 5901 です。
VNC Server を止めてみます。
$ vncserver -kill :1
ポートの LISTEN (5901, 6001) が無くなりました。
$ netstat -lnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
もう 1度 VNC Server を起動します。
$ vncserver :1 -geometry 1024x768 -depth 24
次は PC 側です。
PC 側は、Windows で UltraVNC を使います。
[参考サイト]
窓の杜 - 【REVIEW】Windows向けに最適化された「VNC」互換のPCリモート操作ソフト「UltraVNC」
バッチリ接続できました。
今日、RS Online に注文していた 2台目の Raspberry Pi の発送メールが 来ました。
メモリ 512M で Revision2 です。
ちなみに今回は、次のような流れでした。
Raspberry Pi に USB の無線 LAN アダプタを接続します。
昔、3 つくらいまとめて買った PLANEX の GW-USValue-EZ が 余っていたので それを使います。
2012-09-18-wheezy-raspbian のイメージは 何もしなくても GW-USValue-EZ を認識できるようです。
$ lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 004: ID 2019:ed17 PLANEX GW-USValue-EZ 802.11n ...
USB ポートに挿すだけで GW-USValue-EZ を認識しました。
ifconfig を見ると、新しいインターフェースが追加されています。
$ ifconfig wlan0
wlan0 Link encap:Ethernet HWaddr 00:22:cf:44:XX:XX
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
インターフェースは wlan0 という名前になります。
追加されたインターフェース(GW-USValue-EZ)から見える アクセスポイントを確認してみます。
$ iwlist wlan0 scan
wlan0 Scan completed :
Cell 01 - Address: 10:6F:3F:XX:XX:XX
ESSID:"45365416543FJELGG"
(省略)
Cell 02 - Address: 00:18:84:XX:XX:XX
ESSID:"FON_FREE_INTERNET"
(省略)
アクセスポイントが周囲にあれば、ずらっと表示されます。
今回はここまで。
前回、画面に三角形を表示しましたが 背景を透明にする方法を教えてもらったので 改造してみます。
↓前回の三角形。
またダウンロードからやるので 今回の作業だけで 三角形を表示して、背景を透明にします。
まず、ダウンロードして実行。
pi@raspberrypi ~ $ cd /tmp/ pi@raspberrypi /tmp $ wget http://www.mztn.org/rpi/triangle03.tar.gz pi@raspberrypi /tmp $ tar xzf triangle03.tar.gz pi@raspberrypi /tmp $ cd triangle03/ pi@raspberrypi /tmp/triangle03 $ ./triangle
これだけで、画面に三角形が回ります。
ソースファイルを変更します。
pi@raspberrypi /tmp/triangle03 $ vi triangle.c
まず、アルファ値を可変にするために次の箇所を変更します。
// 139 行目をコメントアウトします VC_DISPMANX_ALPHA_T alpha = {DISPMANX_FLAGS_ALPHA_FIXED_ALL_PIXELS, 255, 0}; ↓ //VC_DISPMANX_ALPHA_T alpha = {DISPMANX_FLAGS_ALPHA_FIXED_ALL_PIXELS, 255, 0}; // 152〜153 行目の &alpha を 0 に変更します dispman_element = vc_dispmanx_element_add(dispman_update, dispman_display, 0, &dst_rect, 0, &src_rect, DISPMANX_PROTECTION_NONE, &alpha, 0, 0); ↓ dispman_element = vc_dispmanx_element_add(dispman_update, dispman_display, 0, &dst_rect, 0, &src_rect, DISPMANX_PROTECTION_NONE, 0, 0, 0);
背景の設定箇所を変更します。
// 508 行目の関数 glClearColor の第 4 引数を 0.0f に変更します。 glClearColor(0.4f, 0.2f, 0.0f, 1.0f); ↓ glClearColor(0.4f, 0.2f, 0.0f, 0.0f);
第 4 引数がアルファ値で 0 にするほど透明になります。
変更したソースをコンパイルします。 コンパイル用のコマンドも同梱されているので 次のようにコマンドを実行するだけです。
pi@raspberrypi /tmp/triangle03 $ ./build
プログラムを実行します。
pi@raspberrypi /tmp/triangle03 $ ./triangle
コンソールの画面の上に重なって三角形が回ります。
カッコいいですね。
11/10 大阪で開催された『LPIC レベル3 303 Security 技術解説無料セミナー』で tripwire が解説されていたので、 せっかくなので Raspberry Pi に入れてみます。
tripwire は、ファイル改竄などを検出するためのツールです。
ある時点のファイルの状態をデータベースに保存しておいて 現時点の状態と比較することができます。
tripwire の設定ファイルやデータベース自体が改ざんされないように 認証用のキーを作成する必要があるのですが 最近は、インストールの流れで作成することができます。
apt-get します。
$ sudo apt-get update $ sudo apt-get install tripwire
途中、サイトキーを作成するためのパスフレーズを求められます。
サイトキーは、設定ファイルを改ざんされないためのキーです。
ローカルキーを作成するためのパスフレーズを求められます。
ローカルキーは、データベースを改ざんされないために使用するキーです。
インストールが終了したら、データベースを初期化します。 これによって、「この時点」のファイルの情報をデータベースに保存します。
$ sudo tripwire --init
Please enter your local passphrase:
ローカルキーのパスフレーズが求められます。
データベースに保存した情報と、「現時点」のファイルの情報を 比較するには "--check" オプションを使用します。
$ sudo tripwire --check
レポートが表示されます。
レポートを再度表示するには、比較時に生成された twr ファイルを読み込みます。
$ cd /var/lib/tripwire/report $ sudo twprint --print-report --twrfile raspberrypi-20121115-211440.twr
「比較した時点」のファイルの情報でデータベースを更新するには、 比較時に生成された twr ファイルを使って以下のようにコマンドを実行します。
$ cd /var/lib/tripwire/report $ sudo tripwire --update -a --twrfile raspberrypi-20121115-211440.twr Please enter your local passphrase:
データベースの更新なのでやはりローカルキーのパスフレーズが求められます。
Raspberry Pi で何か変わったことがしたいのですが、 下のサイトによると Raspberry Pi は、OpenGL ES2 をするのに適している環境らしいです。
[参考サイト]
Raspberry Pi メモ (7) OpenGL ES2(1) - Jun's homepage
サンプルを試してみます。
ダウンロードして解凍します。 サンプルは HDMI で接続した画面に表示されますが、操作は SSH で接続したコンソールからできます。
pi@raspberrypi ~ $ cd /tmp/ pi@raspberrypi /tmp $ wget http://www.mztn.org/rpi/triangle03.tar.gz pi@raspberrypi /tmp $ tar xzf triangle03.tar.gz
実行します。
pi@raspberrypi /tmp $ cd triangle03/ pi@raspberrypi /tmp/triangle03 $ ./triangle
これだけで HDMI で接続した画面に三角形が回ります。
なんかすごいですね。
前回の「準備中」から間が開いてしまいましたが、今回は Raspberry Pi (ラズベリーパイ) に OS を入れて起動します。
Raspbian という Debian ベースの Linux を Raspberry Pi 用に最適化したものがあるので、それを使用します。
Raspbian をダウンロードして SD カードに書き込んでいくのですが、手順は下のサイトが参考になります。
[参考サイト]
Raspberry Pi メモ (14) - Jun's homepage
「最初の起動時に表示される設定画面」で expand_rootfs を選択したところ 再起動後の拡張で結構 (10 分くらい?) 待たされました。
あと、最初は、overscan を有効にしていなかったので 出力が TV の画面よりも大きくなってしまい、 ログインプロンプトが画面の端で切れてしまっていました。
ラズベリーのマークも半分見切れてしまいました。
overscan を有効にしたら全部表示されるようになりました。
ちなみに うちの TV の場合、overscan の有効・無効で解像度が次のようになっていました。
状態 | 解像度 |
---|---|
overscan 有効 | 1184x624 |
overscan 無効 | 1280x720 |
HDMI 未接続 | 656x416 |
Raspberry Pi (ラズベリーパイ) は、35$ でありながら Linux が起動する、USB が 2ポート、LAN、HDMI などなど かなりお得感があります。
消費電力も小さく、 USB ケーブルで給電できるので PC につなげて起動しておくこともできます。
今はメモリが 512M 版が同じ値段で売られていますが、 うちに来たのは Rev1 256M 版です。
起動するためには、本体の他に、 SD カード 電源ケーブルや HDMI ケーブルなどが必要になります。
次のサイトが参考になります。
Raspberry Pi が到着しました。
DHL は再配達の時間指定が厳しいようなので いつ受け取れるのかと思っていたんですが、 今日帰ったらポストに入っていました。
ケースも入っていました。
中はこんな感じ。
基盤の下に QUICK START GUIDE が入っていました。
RS Components に注文した Raspberry Pi がようやく発送されました。
こんなメールが来ました(一部省略)。
Date: 2012-10-15 17:06 JST Subject: Your Raspberry Pi Order 1010125xxx has been Dispatched Your Raspberry Pi Order 1010125xxx has been Dispatched Your Raspberry Pi order has been despatched today. Expected Delivery by Mail within:- 5 Days for European destinations. 21 Days for Countries Outside of Europe.
ちなみに次のような流れでした。
到着が待ち遠しいです。