Raspberry Pi と LuaJIT で 3D してみる (2)

以前試した 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 上で試しましたが 簡単に動きました。

WRITE_0788_01

[1] 〜 [6] を押すと、指が動きます。 終了したいときは [q] を押します。 その他、操作は [h] で表示されます。

3D モデルとアニメーションの定義が 取り込めて Lua のプログラムで利用できるようになっているのはすごいですね。

Raspberry Pi に MRTG を入れてみる (3)

前回の続き 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" が取得する情報の識別子です。

このコマンドを実行して、文字列がダーっと帰ってきたら成功です。

今回はここまで。

Raspberry Pi に MRTG を入れてみる (2)

短いですが、前回の続き。

前回、 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:*

今回はここまで。

Raspberry Pi に MRTG を入れてみる (1)

ちょっと 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 の rasbian を 2014-01-07 にする

久しぶりの 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)

とりあえずここまで。

しばらく放っておくと追いかけるのが大変ですね。

Raspberry Pi で始める電子工作 (5)

前回の続きです。

ブレッドボード上で 単3の eneloop 2本を直列につないで 赤色の LED を光らせました。

WRITE_0743_15

ただ、 LED が ものすごく熱くなってしまったので 今回は「抵抗」を付けてみます。

ブレッドボード&LEDパーツセット・タイプA - ビクトリーセブン・ネット通販 には 220Ω と 10KΩの抵抗が入っていました。

WRITE_0743_16 WRITE_0743_17

とりあえず 大きい方の 10KΩの抵抗 を付けてみます。

10KΩの抵抗の袋には「茶黒橙金」と書いてあって 抵抗本体にも、その色の線が入っています。

WRITE_0743_01

最初の 2つ 「茶黒」で値を表現していて 「茶」が「1」、「黒」が「0」なので「10」になります。

3つ目の「橙」は乗数を表現していて 「x10の3乗」になります。 「10x10の3乗Ω」なので「10KΩ」ですね。

最後の金色は精度で「±5%」だそうです。

昔、何かの授業で読み方を習った気もしますが 当然のことながら すっかり忘れてますね・・・。

実際に測ってみます。

WRITE_0743_13

9.86KΩでした。

この抵抗を 前回作った回路?に入れてみます。

WRITE_0743_06

LED は光りません。 抵抗が大きすぎたんでしょうか。

WRITE_0743_07

手で影を作ると少しだけ光ってました。

抵抗にかかっている電圧を測ってみます。

WRITE_0743_03

0.97V でした。

ということは 電圧 0.97V ÷ 抵抗 9.86KΩ で 電流は 0.1mA ですね。 (壊してしまったのか直接テスターで電流が測れません)

ちなみに LED にかかっていた電圧は 1.65 V でした。

WRITE_0743_04

10KΩ の抵抗を 200Ω の抵抗に変えてみます。

WRITE_0743_02

こちらも実際に測ってみます。

WRITE_0743_12

221Ω でした。 この抵抗に入れ替えます。

LED が光りました。

WRITE_0743_08

LED が光りました。

影を作ると、よりはっきりわかります。

WRITE_0743_09

抵抗にかかってる電圧を測ってみます。

WRITE_0743_10

0.69V でした。

電圧 0.69V ÷ 抵抗 221Ω で 電流は 3.1mA ですね。

このように LED に流す電流を 制限するための抵抗を 「電流制限抵抗」と呼ぶそうです。 そのまんまですね。

前回やったような 「電流制限抵抗」をつけない回路は LED を壊してしまうのでやってはいけないそうです。

今回はここまで。

Raspberry Pi で始める電子工作 (4)

今回は、Raspberry Pi から少し離れますが ブレッドボード&LEDパーツセット・タイプA - ビクトリーセブン・ネット通販 で買った LED やらブレッドボードやらを試してみます。

まずブレッドボード。

WRITE_0742_01

前にも書きましたが、ハンダ付けせずに電子工作できる 初心者にはありがたい板です。

この板は、内部で赤線のように線がつながってるそうです。

WRITE_0742_06

つぎに赤色の LED。

WRITE_0742_02

2本線が出てますが、長い方が「+」で短い方が「ー」だそうです。

WRITE_0742_03

アノード・カソードとか言うそうですが、そういう難しい用語は (間違ったことを書いてしまいそうなので) 扱いません。

ここでいきなり話が変わりますが、
先日 京都の寺町にある「パーツ屋さん」に行ってきました。

WRITE_0742_04

壁一面の引き出しに圧倒されながらも 小さなブレッドボード(200円)と 電池ケース(5個100円)を 買ってきました。

WRITE_0742_05

この電池ケースを使って、電池で LED を光らせたいと思います。

まず、電池ケースに 単3の eneloop を入れます。

WRITE_0742_07

電圧は 1.3V でした。

WRITE_0742_08

次に ブレッドボードに LED を刺します。

WRITE_0742_09

電池ケースから出ている線も ブレッドボードに刺します。

WRITE_0742_10

・・・LED が光りません。

電池ケースは 5個あるので もう 1つ直列につなげてみました。

WRITE_0742_11

LED が光りました!

電池を 2つ直列につないだときの電圧は 2.5V でした。

WRITE_0742_12

ただ、この後 LED が ものすごく熱くなっていました。

電圧をかけすぎたのかもしれないですが その辺りはまだよくわからないので、 とりあえず LED が光ったということで 今回はここまで。

Raspberry Pi で始める電子工作 (3)

Raspberry Pi で電子工作をするには GPIO というものを使えば良いそうで 下の写真の黄色矢印の先のトゲトゲのピンが その GPIO のポートになります。

WRITE_0739_01

ピンは 26 本あって 今回は電力を供給してくれるピンを 使って電圧を測ってみます。

こんな記事を書いてますが 電子工作はまったくの初心者です。 どれくらい初心者かと言うと テスターの棒のキャップに気付かなかったくらいです。

WRITE_0739_02

(当然かもしれませんが、棒の先端はキャップで外れます)

テスターで電圧を測ってみる

ピンに直接テスター棒をあてると 他のピンにもあたってしまいそうなので 1ピンと 6ピンに オス-メスのケーブルをつなぎます。

WRITE_0739_03

ピンの意味は 下のサイトの早見シートを付けるとわかりやすくなりそうです。

Raspberry Piブログ : Raspberry PiのGPIO早見シートを作りました

1ピンからのケーブルにテスターの赤(+)を 6ピンからのケーブルに黒(-)をあてます。

テスターは、前に買った デジタルマルチテスターMAS830L です。

WRITE_0739_04

3.34V でした。 1ピンと 6ピンのアースをつなぐことで 3.3V の電圧が供給されるそうです。

次は 2ピンと 6ピンにつないでみます。

WRITE_0739_05

WRITE_0739_06

4.67V でした。 2ピンと 6ピンのアースをつなぐことで 5V の電圧が供給されるそうです。

今回はここまで。

Raspberry Pi で始める電子工作 (2)

前回、テスターを購入しました。

ただ当然ながら それだけでは電子工作はできません。 電子部品を用意しなくてはならないのですが Raspberry Pi で始めるにあたって ちょうどいいセットが出ていました。

ブレッドボード&LEDパーツセット・タイプA - ビクトリーセブン・ネット通販

こちらは「Raspberry PiでGPIOポートの制御方法を学びたい方のために〜」ということで Raspberry Pi で使うための部品がセットになっています。

さっそく購入。

すぐ届きました。

WRITE_0738_01

いろいろ入ってました。

↓ブレッドボード。

WRITE_0738_02

ハンダ付けなしで 回路を試せるありがたい板です。

↓LED。 3色あります。 赤x8 黄x4 緑x4。

WRITE_0738_03 WRITE_0738_04

光って出力が確認できます。

↓プッシュボタン。

WRITE_0738_05

まだどうやって使うかわかりません。

↓抵抗。220Ωx20 10kΩx6。

WRITE_0738_06 WRITE_0738_07

昔、値の読み方を覚えた気がします。

↓ケーブル。いっぱいあります。

WRITE_0738_08

少しずつ道具が増えていきます。 楽しいですね。

Raspberry Pi で始める電子工作 (1)

Raspberry Pi を使って 電子工作をやってみようと思います。 この分野はホントに素人ですので 「いちから始める」という状態です。

今までソフトウェアしか触ってこなかったのですが Raspberry Pi にカメラを付けてみたり 色々と教えてくれる方がいるので ちょっと手を出してみることにしました。

低レベルの言語をやると色々と学べることがあるように 何かソフトウェアの開発に役に立つものを 見いだせる気もしています。

とりあえずテスターを買ってみました。

WRITE_0737_01

デジタルマルチテスターMAS830L Amazon で 980円でした。

実は何に使えるかもわかっていませんが、 ソフトウェアを開発する場合は、まずデバッグの手段を確保するのが重要なので ハードウェアならテスターかな?と買ってみました。

こういった機械物はあまり接点がないので 「何かできそう」なワクワク感が楽しいですね。

Raspberry Pi でカメラモジュールを試してみる (5)

インターバル撮影してみる

コマンド (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 でカメラモジュールを試してみる (4)

実際に写真を撮ってみる

前回、前々回で カメラモジュールを ハードウェア的・ソフトウェア的に Raspberry Pi に接続しました。

今回は、写真を撮ってみます。
写真を撮るには raspistill というコマンドを使います。

$ raspistill -w 300 -h 200 -o /tmp/test1.jpg

これだけで写真が撮れます。
この例では /tmp/test1.jpg に出力されます。

実際に取った画像です。

WRITE_0731_01
(丁度良い被写体が見つからなかったのでちょっとアレですが・・・)

オプション1つで画像に効果を付けられます。

$ raspistill -w 300 -h 200 -ifx sketch -o /tmp/test2.jpg

WRITE_0731_02

コマンドのオプションについては、下記のサイトに詳しく書いてありますので そちらを参照してください。

[参考]
Raspberry Pi メモ (23) - カメラモジュールの使い方 - Jun's Homepage

HDMI で TV などに Raspberry Pi から出力していれば、 raspistill のコマンド実行時に 出力側の画面にもカメラで写した画像が表示されます。

今回はここまで。続きます。

Raspberry Pi でカメラモジュールを試してみる (3)

カメラモジュールをソフトウェア的に接続する

前回、カメラモジュールを 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 でカメラモジュールを試してみる (2)

カメラモジュールをハードウェア的に接続する

今回は Raspberry Pi に カメラモジュールを接続してみます。

WRITE_0727_01

[参考]
Raspberry Pi メモ (23) - カメラモジュールの使い方 - Jun's Homepage

まず、カメラモジュールを本体に接続します。 OS をシャットダウンして 電源ケーブルを抜いておきます。

カメラモジュールから出ている ペラペラのケーブルを 下の図の黄色で囲ってあるコネクタに刺します。

WRITE_0727_02

コネクタは横の突起を 爪に引っ掛けて引っ張ると 黒い部分が、上にスライドします。

下の図の赤い部分に隙間ができます。

WRITE_0727_03

隙間にケーブルを差し込んで 黒い部分を下げて挟みます。

ケーブルは、裏表があるので注意してください。

WRITE_0727_04

これでハードウェア的な接続は終了です。 簡単ですね。

今回はここまで。続きます。

Raspberry Pi でカメラモジュールを試してみる (1)

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 カメラモジュール 到着(入手)

Raspberry Pi 用のカメラモジュールが届きました。

WRITE_0723_01

8/3 に RSオンラインから発注したのですが 8/5 には発送メールが来て、 昨日(8/6)に不在通知が入っていました。

8/3 時点で RS オンラインに カメラモジュールの在庫は 730 個くらいあり 今日(8/7)時点でも 600 個ありました。

具体的に何に使うか決めていませんが、色々と遊べそうです。

Raspberry Pi と LuaJIT で 3D してみる (1)

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 が表示されます。

WRITE_0709_01

[Q]キーで終了します。 [Ctrl]+[C]で終了した場合、コンソールの設定が変更されたままになります。 そのときは、エコーされませんが、次のように term.lua を実行すると元に戻ります。

$ ./term.lua

今回はここまで。

Raspberry Pi 2台目 起動

前回(2012/12/21)から かなり放置していましたが ようやく 2台目に火を入れました。

Amazon で Amazonベーシック SDHCカード 4GB class10 を 3枚買って とりあえず 2枚に 2012-12-16-wheezy-raspbian を入れました。

WRITE_0681_01

インストール作業は次のサイトの通りです。

[参考サイト]
Raspberry Pi メモ (16) Raspbian 2012-12-16 - Jun's homepage

WRITE_0681_02

とりあえず今日はここまで。

祝 Raspberry Pi 2台目 到着(入手)

不在票がようやく本体になりました。

今回はケースも買いました。

WRITE_0656_01

白い箱がケースの箱です。

ケースは透明です。

WRITE_0656_02

メカメカした中身が見える方が楽しいですよね。

Raspberry Pi を入れるとこんな感じです。
(中に入っているのは Rev.1 の方)

WRITE_0656_03

とりあえず今日はここまで。

祝 Raspberry Pi 2台目 到着(不在票)

12/19 に郵便局の不在票が入っていました。

WRITE_0652_01

前回同様、発送のメールから 7 日でした。

前回は、郵便受けに入れておいてくれたんですが 今回はケースも購入したためか 郵便局だからなのか 不在票でした。

受け取りは週末になりそうです。

Raspberry Pi で無線 LAN 接続 (2)

前回の (1) から少し間が開きましたが、無線 LAN の続きです。

WRITE_0650_01

せっかく Raspberry Pi に VNC 接続できるようにしたので GUI で設定していきたいと思います。

Raspbian の デスクトップには 「WiFi Config」というアイコンがあります。 このアイコンから 無線 LAN を設定することができます。

WRITE_0650_02

起動すると、次のような画面が出てきます。

WRITE_0650_03

「Manage Network」の「Scan」ボタンをクリックします。

検出された SSID が表示されます。

WRITE_0650_04

自分が接続する SSID をダブルクリックします。

設定内容の入力画面が出るので入力します。

WRITE_0650_05

DHCP サーバがあれば、これで設定は終了です。

接続されてました。

WRITE_0650_06

設定は保存されるので 次は GUI を起動しなくても Raspberry Pi を起動すれば 自動的に 無線 LAN に接続されます。

iPhone4 のキーボードから VNC 経由で Raspberry Pi を操作

前回は、 引退した iPhone4 にキーボードを装備して iPhone4 から Raspberry Pi に SSH 接続しました。 今回は、このキーボードを使って NVC 経由で Raspberry Pi を操作したいと思います。

といっても iPhone4 から 直接 VNC 接続するわけではありません。 iPhone4 にも VNC app は入れられるのですが iPhone4 の画面は小さいので iPad をモニタとして代わりに使います。

こんなイメージです。

WRITE_0648_01

キーボードは、iPhone4 に装備していますが、Bluetooth なので そのまま iPad のキーボードとしても使うことができます。
(当然ながら iPhone4 は居るだけで何もしていません・・・)

このようになりました。

WRITE_0648_02
(iPhone4=カメラが使用中のためガラケーで撮影)

キーボードからだと タブやハイフンの入力と カーソルによる移動やコマンド履歴ができるので かなり打ちやすくなりました。

iPhone から Raspberry Pi に SSH 接続

引退した iPhone4 にキーボードを装備したので このキーボードを使って Raspberry Pi を操作したいと思います。

Raspberry Pi には SSH 接続します。

というのも、Raspberry Pi の VNC Server を止めてしまうと Raspberry Pi を操作する手段が 無くなってしまうためです。

SSH 接続は、無料の『SolarWinds Mobile Admin Client』を使います。 快適にサクサク、というわけにはいきませんが、 VNC Server の起動や シャットダウンくらいなら問題ありません。

[参考サイト]
iPad/iPhoneからフリーでSSHを使う | TECHoh!

さっそく接続してみます。

WRITE_0644_02

コマンドを実行。

WRITE_0644_02

ちゃんと色もついて表示されます。

ただ、キーボードのタブ、コントロール、カーソルキーは 反応しませんでした。 ちょっと残念ですが タブやコントロールキーが必要なときは 画面上部の [tab],[ctrl] などの操作アイコンを使います。

ちなみに、外付けキーボードが無く 横長モードで、キーボードを表示すると かなり画面が狭くなります。

WRITE_0644_03

この辺りは、キーボードが別にあることのメリットですね。

画面上部 [ctrl] などの操作アイコンは 表示・非表示を切り替えできるので 更に広く使うこともできます。

WRITE_0644_04

無料でここまでできるのはありがたいですね。

Raspberry Pi で iPad と VNC 接続

せっかく Raspberry Pi が NVC 接続できるようになったので iPad とつなげてみます。

iPad 側の VNC app は、『Mocha VNC Lite』(無料) を使います。 Mocha VNC Lite には、制限事項もありますが、無料なのでお試しするには丁度良い app です。

[参考サイト]
iPhoneとiPad用VNCアプリ17種類まとめ :: 実践CMS*IA

まず設定画面で SVN Server の IPアドレス、ポート、パスワードを指定します。

WRITE_0641_02

接続。

WRITE_0641_01

接続できました。

コンソールでコマンドを入力してみます。

WRITE_0641_03

良い感じです。

これで Raspberry Pi と iPad だけで作業できるようになりました。

Raspberry Pi で VNC 接続

無線 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」

WRITE_0639_01

バッチリ接続できました。

祝 Raspberry Pi 2台目 発送

今日、RS Online に注文していた 2台目の Raspberry Pi の発送メールが 来ました。

メモリ 512M で Revision2 です。

ちなみに今回は、次のような流れでした。

  • 2012/10/16 RS Online に登録
  • 2012/12/12 発送連絡メールを受信

Raspberry Pi で無線 LAN 接続 (1)

Raspberry Pi に USB の無線 LAN アダプタを接続します。

昔、3 つくらいまとめて買った PLANEX の GW-USValue-EZ が 余っていたので それを使います。

WRITE_0633_01

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"
             (省略)

アクセスポイントが周囲にあれば、ずらっと表示されます。

今回はここまで。

Raspberry Pi で OpenGL ES2 ? (2)

前回、画面に三角形を表示しましたが 背景を透明にする方法を教えてもらったので 改造してみます。

↓前回の三角形。

WRITE_0625_01

またダウンロードからやるので 今回の作業だけで 三角形を表示して、背景を透明にします。

まず、ダウンロードして実行。

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

コンソールの画面の上に重なって三角形が回ります。

WRITE_0628_01

カッコいいですね。

Raspberry Pi に tripwire を入れてみる

11/10 大阪で開催された『LPIC レベル3 303 Security 技術解説無料セミナー』で tripwire が解説されていたので、 せっかくなので Raspberry Pi に入れてみます。

tripwire は、ファイル改竄などを検出するためのツールです。

ある時点のファイルの状態をデータベースに保存しておいて 現時点の状態と比較することができます。

tripwire の設定ファイルやデータベース自体が改ざんされないように 認証用のキーを作成する必要があるのですが 最近は、インストールの流れで作成することができます。

apt-get します。

$ sudo apt-get update
$ sudo apt-get install tripwire

途中、サイトキーを作成するためのパスフレーズを求められます。

WRITE_0626_09

サイトキーは、設定ファイルを改ざんされないためのキーです。

ローカルキーを作成するためのパスフレーズを求められます。

WRITE_0626_11

ローカルキーは、データベースを改ざんされないために使用するキーです。

インストールが終了したら、データベースを初期化します。 これによって、「この時点」のファイルの情報をデータベースに保存します。

$ 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 で OpenGL ES2 ?

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 で接続した画面に三角形が回ります。

WRITE_0625_01

なんかすごいですね。

Raspberry Pi 起動

前回の「準備中」から間が開いてしまいましたが、今回は Raspberry Pi (ラズベリーパイ) に OS を入れて起動します。

Raspbian という Debian ベースの Linux を Raspberry Pi 用に最適化したものがあるので、それを使用します。

Raspbian をダウンロードして SD カードに書き込んでいくのですが、手順は下のサイトが参考になります。

[参考サイト]
Raspberry Pi メモ (14) - Jun's homepage

「最初の起動時に表示される設定画面」で expand_rootfs を選択したところ 再起動後の拡張で結構 (10 分くらい?) 待たされました。

WRITE_0621_03

あと、最初は、overscan を有効にしていなかったので 出力が TV の画面よりも大きくなってしまい、 ログインプロンプトが画面の端で切れてしまっていました。

WRITE_0621_04

ラズベリーのマークも半分見切れてしまいました。

WRITE_0621_05

overscan を有効にしたら全部表示されるようになりました。

WRITE_0621_06

ちなみに うちの TV の場合、overscan の有効・無効で解像度が次のようになっていました。

状態解像度
overscan 有効1184x624
overscan 無効1280x720
HDMI 未接続656x416

Raspberry Pi 準備中

Raspberry Pi (ラズベリーパイ) は、35$ でありながら Linux が起動する、USB が 2ポート、LAN、HDMI などなど かなりお得感があります。

消費電力も小さく、 USB ケーブルで給電できるので PC につなげて起動しておくこともできます。

今はメモリが 512M 版が同じ値段で売られていますが、 うちに来たのは Rev1 256M 版です。

WRITE_0618_01

起動するためには、本体の他に、 SD カード 電源ケーブルや HDMI ケーブルなどが必要になります。

次のサイトが参考になります。

[参考サイト]
Raspberry Pi メモ (1) - Jun's homepage

祝 Raspberry Pi 到着

Raspberry Pi が到着しました。

WRITE_0616_01

DHL は再配達の時間指定が厳しいようなので いつ受け取れるのかと思っていたんですが、 今日帰ったらポストに入っていました。

ケースも入っていました。

WRITE_0616_02

中はこんな感じ。

WRITE_0616_03

基盤の下に QUICK START GUIDE が入っていました。

WRITE_0616_04

祝 Raspberry Pi 発送

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.

ちなみに次のような流れでした。

  • 2012/03/13 RS Online に登録
  • 2012/06/21 注文受付開始連絡メールを受信
  • 2012/06/29 注文
  • 2012/08/28 出荷遅延連絡メールを受信
  • 2012/10/15 発送連絡メールを受信

到着が待ち遠しいです。

[参考]
RSオンライン|電子部品・半導体の通販/販売サイト