Raspberry Pi 2

とりあえずやったことだけ全部書き出してみるよ!!たぶん他の環境でもへいきだよ!
※知らないけど

・いまだにタイムゾーンがデフォルトのままだったので直す

$ sudo dpkg-reconfigure tzdata

で、Asia -> Tokyo を選択すれば解決。


・gcc4.7を突っ込む(デフォだと4.6はいってる)

$ gcc -dumpversion
4.6
$ sudo apt-get install gcc-4.7

このインストールだけで25MBほど使うらしい
RasPi環境はデフォで4.6だけど、Perlが4.7でクロスコンパイルされてるらしいのでこうしておく必要ががが

・GPIO用のCライブラリを突っ込む

http://www.airspayce.com/mikem/bcm2835/bcm2835-1.36.tar.gz
こっからとってきて、

$ tar xvf bcm2835-1.36.tar.gz
$ cd bcm2835-1.36
$ ./configure
$ make
$ sudo make install

・↑をPerlで使うためのモジュールを突っ込む

$ sudo perl -MCPAN -e shell
cpan[1]> install Device::BCM2835

依存モジュールごろごろ沸いてくるけどとりあえずほいほい突っ込む。
http://search.cpan.org/~mikem/Device-BCM2835-1.0/lib/Device/BCM2835.pm
でもってCPANの該当箇所ここなので、サンプルみながらぼけっと作ってみることに。

・LEDの突き刺す方向

いまだに覚えられないのでメモ。
ブレッドボードのー側に短い方を、+側に長い方を。

・とりあえずPerlで光らせる

配線は、Raspberryのボードを見て、すみっこにちっさく「P1」とか書いてあるところを右上に持って(縦持ち)、
1 2
3 4
5 6
7 8
ていう具合に数えていった場合に、
 11pinからブレッドボードの+に突き刺す (GPIO17)
 13pinからブレッドボードのーに突き刺す (Groundならどこでも)
でもって、LEDを繋ぐ。抵抗適当に繋いだけどいるんかなこれ・・・

#!usr/bin/perl

use Device::BCM2835;
use strict;

Device::BCM2835::init();

my $pin = 11;
my $device_name = sprintf("RPI_GPIO_P1_%02d", $pin);

# 多分初期設定みたいなもの。このピン使うよーみたいな
Device::BCM2835::gpio_fsel(eval("&Device::BCM2835::$device_name"), &Device::BCM2835::BCM2835_GPIO_FSEL_OUTP);

# 点灯させる(gpio_writeでも可)
Device::BCM2835::gpio_set(eval("$device_name"));
sleep(5);
# 消灯させる(gpio_writeでも可)
Device::BCM2835::gpio_clr(eval("$device_name"));

とりあえずこれで点灯する。
ただ、gpio_fselで使うことを宣言したあと以後は、再起動するまではこの記述なくてもいい感じになってる(シェルでやった場合のexportに相当してる)ので、その逆の、「もう使わないよー」って宣言するやつ(シェルでやった場合のunexport)がなんか無さげな気がする。
調べないといけないかなー。


今日はここまで。