Raspberry Pi を使って 電子工作をやってみようと思います。 この分野はホントに素人ですので 「いちから始める」という状態です。
今までソフトウェアしか触ってこなかったのですが Raspberry Pi にカメラを付けてみたり 色々と教えてくれる方がいるので ちょっと手を出してみることにしました。
低レベルの言語をやると色々と学べることがあるように 何かソフトウェアの開発に役に立つものを 見いだせる気もしています。
とりあえずテスターを買ってみました。
デジタルマルチテスターMAS830L Amazon で 980円でした。
実は何に使えるかもわかっていませんが、 ソフトウェアを開発する場合は、まずデバッグの手段を確保するのが重要なので ハードウェアならテスターかな?と買ってみました。
こういった機械物はあまり接点がないので 「何かできそう」なワクワク感が楽しいですね。
参考になる人もいるかもしれないので書いておきます。
2013年5月に 3DS LL を購入したのですが 体験版を落としまくっていたら容量が足りなくなったのと すれちがい合戦がエラーでよく落ちるので SD カードを交換することにしました。
交換する SD カードは 任天堂のサイトに動作確認済みのリストが載っていたので Lexar SDHCカード Class10 UHS-I 32GB を Amazon で購入しました。(写真右側)
最初から入っていた SD カードも 買ったのと同じ Lexar の class4 4G でした。(写真左側)
カードの交換は 簡単で、SD カードの中身を パソコン上で、一旦どこかに置いて、そのままそれを新しいカードに 書き込むだけです。
3DS を起動すると ブロック数が かなり増えていました。
また class4 から class10 になったおかげなのか 3DS で 写真を撮った後のカクカクが無くなりました。 ロードも気持ち早くなったような気がします。
ただ すれちがい合戦が落ちるのは改善されませんでした…。
コマンド (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 個ありました。
具体的に何に使うか決めていませんが、色々と遊べそうです。
コマンドプロンプトの COPY コマンドでは 次のように + を使うことで複数のファイルを連結することができます。
C:\> COPY /B 1.txt + 2.txt + 3.txt all.txt
ちなみに B オプションは ファイルをバイナリファイルとして扱う指定です。
フォルダに多数あるファイルを連結するとき いちいち + を書くのは大変です。 次のようにワイルドカードでファイルを指定しても連結することができます。
C:\> COPY /B *.txt all.txt
連結する順番がファイル順のときは こっちの方が簡単ですね。