楽しく使おう・始めよう!raspberry pi入門〜実践編〜
DESCRIPTION
2013/10/20 OSC2013 Tokyo/Fall 2日目にて発表TRANSCRIPT
楽しく使おう・始めよう!Raspberry Pi入門~実践編~ Japanese Raspberry Pi Users Group あっきぃ OSC2013 Tokyo/Fall (2013/10/20)
自己紹介 • あっきぃと申します • Ejectコマンドユーザー会主宰 • わたしとRaspberry Pi
– 2012年8月デビュー – はじめはEjectサーバーとして使用 – RasPiの本にEjectについて書いた(???) – 電子工作もちょっとやるようになった – EjectとRasPiのコラボ?か今アツい(??)
※ Ejectはありません ※
∫ ,';:☜;.`,ਊ,,;';,;☞,.՞
՞ . . , .’ `:.
∞
RasPiとEject • http://www.raspberrypi.org/archives/4824
実践編の内容 • ハードウェア系中心にご紹介 • Raspberry Pi Camera Moduleについて • RasPiとスクリプトでLEDを光らせよう • 交通系ICカード残高チェッカーを作ろう • おまけ: CD-ROMドライブでハムスターにエサをあげよう
Raspberry Pi Camera Moduleについて
Raspberry Pi Camera Module
• 2013年5月頃に発売 • Raspberry Piに接続して使うことができる専用のカメラモジュール
特徴 • 安価($25/¥2,400) • 性能がいい
– 5メガピクセル(500万画素) – フルHD動画を30fpsで出力
• RasPiのGPU性能が良いため – H.264サポート – やはり元々はケータイ向けの部品
• 簡単なコマンドで写真や動画の撮影ができる
接続したようす • リボンケーブルをCSIポートに差し込む
– Camera Serial Interfaceの略 • 違う長さのリボンケーブルや、固定用アクセサリは通販で買える – shop.pimoroni.com – modmypi.com
アクセサリの例 • オーディオジャックにさせる固定アーム
• Pimoroni製マウントキット(大破済)
←三脚用穴付
使えるようになるまでの手順 • 最新のNOOBS(1.3)でRaspbianを用意 • カメラを接続して起動 • 初回起動時もしくはraspi-configコマンドでカメラサポートを有効にする
• 再起動する
写真を撮影してみる • raspistill ‒o test.jpg
• 意外とキレイに写る
フィルタオプション • ホワイトバランスや画像フィルタが充実 • sketchフィルタの例
$ raspis5ll –o test.jpg -‐t 3 -‐w 400 -‐h 300 -‐q 90 -‐ifx sketch
動画を撮影してみる • raspivid ‒o test.x264 ‒t 15000
– -tは撮影時間(上記は15秒) – 指定しない場合は5秒 – デフォルトではフルHD(1920x1080)で出力されるので、適宜-x,-yでサイズ変更可能
• mp4に変換するには、MP4Boxコマンドを使用(gpacパッケージをインストール) – MP4Box -fps 30 -add test.h264 test.mp4
ストリーミング • VLCを使った例 • vlcパッケージをインストールして、以下のコマンドを実行
• リモートのマシンの VLCからネットワーク 接続
$ raspivid -‐o -‐ -‐t 9999999 -‐w 320 -‐h 240 | cvlc -‐vvv stream:///dev/stdin -‐-‐sout '#standard{access=hMp,mux=ts,dst=:8080}' :demux=h264
他になにができる? • マクロレンズをつけてマクロ撮影 • OpenCVと組み合わせて顔認識など
– http://youtu.be/CxFW7X_d9IM • 気球につけて飛ばして空を撮る (先日Eben氏らがやっていた^^;) – http://www.raspberrypi.org/archives/4733
カメラを活用する • RaPiRo: RasPiを搭載して操作できるロボット。カメラも搭載できる
• Pi-Pan: カメラをケースに固定して、RasPiからアングルを操作するツール
RasPiとカメラを始めるなら今 • RSコンポーネンツにて、RasPi ModelAとカメラモジュールのセットが$42少々で購入できるキャンペーン中
• ネットワークは無線LANにすればいいのでModelAでも問題なし
• いますぐポチってRasPiをはじめよう • http://raspberrypi.rsdelivers.com/product/rs/picamera-1/type-a-sbc-with-camera/7902704.aspx
RasPiとスクリプトで LEDを光らせよう
Raspberry Piと電子工作 • Raspberry PiにはGPIOやI2Cと呼ばれるIO入出力機能が付いている
• これを利用して電子工作が学習できる • OSとの連携もLinuxなのでかんたん
– 専用のOSやアセンブラは不要 – シェルスクリプトやLightweight Languageで開発できる
• 入門にはうってつけ
用意するといいもの • ブレッドボード
– 電子部品をボードに差して接続できるボード • ジャンパーピン
– Raspberry Piとブレッドボードと部品とを つなぐ線
• 購入場所 – 近くの電子工作屋さん – 通販 – dx.com(海外の通販。2週間かかるけど送料無料)
LEDチカチカをしてみる • LEDをLinuxから点灯させてみよう
– 通称Lチカ……某コンビニのフライドチキンみたいな呼び方だな(?)
• 使うもの – LED(3.3Vのもの) – 270Ω~330Ωくらいの抵抗(ない時はもう少し値が大きくても良い。470Ωとか) ※値が小さいとLEDが壊れるけれど、 それもまた学習(?)
回路図 • 今回はGPIO4に接続(ピン番号では7)
※GNDはPin6が正しい (FritzingのRaspberry Piのデータが間違っている模様)
接続してみたようす
チカチカさせる • Rubyでチカチカさせてみよう • wiringpiを使用する $ sudo gem install wiringpi
• GPIOは7(ピン番号)を 指定
• ルート権限で実行 $ sudo ruby light.rb
require 'wiringpi'
gpio = 7 io = WiringPi::GPIO.new io.mode(gpio, OUTPUT)
io.write(gpio, 1) sleep 3 io.write(gpio, 0)
light.rb
光った!!
ね?簡単でしょ? • 簡単なサンプルでした • しかし、この動作に実用性を見いだせられれば、立派な作品になる、かも? – もう何個かLEDを並べてcronジョブで点灯させて、常夜灯代わりにする(電力量には注意)
– Webでオン・オフできるようにしてみるとか – 別のサーバーを死活監視して、障害を検知したら点滅させる
交通系ICカード 残高チェッカーを作ろう
概要 • 家電屋で購入できるPaSoRiと、有志が開発するオープンソースのライブラリとサンプルを利用して交通系ICカードの残高チェッカーを作る
• 「Raspberry Pi [実用] 入門」 で紹介されているLCDディス プレイモジュールを利用して 残高を表示する
用意するもの • PaSoRi(RC-S320/330/370)
– 最新モデルのRC-S380は非対応なので注意 – 3000円前後
• LCDモジュール – SB1602BW (http://strawberry-linux.com/catalog/items?code=27021)
– 800円少々
LCDモジュールを使ってみる • 書籍11章11-3を参考に組み立てる (ハンダ付けを10ヶ所ほどする)
• 書籍11章11-4を参考に接続して、Raspberry Pi側の設定を行う
• 書籍を参考にサンプルのシェルスクリプトを書いて動かしてみる
• 宣伝乙(◞‸◟).oO(説明も長く なるしね)
ライブラリの用意 • PaSoRi用にlibpafeライブラリを使用
– http://homepage3.nifty.com/slokar/pasori/libpafe.html
– ソースをDLしてコンパイルする • libpafe-rubyをベースにスクリプトを作る
– http://homepage3.nifty.com/slokar/pasori/libpafe-ruby.html
– DLしておく
スクリプトを組む • libpafe-rubyのサンプルから必要なコードだけ抜粋
• LCDの制御は書籍の11章11-5にあるシェルスクリプトを移植してクラス化 – ここでもwiringpiを使用する
• lcd.rbができた – https://gist.github.com/Akkiesoft/6971348
動かす • $ sudo ruby lcd.rb
スタンドを作る • ブレッドボードのままでは見栄えがよくない
• スタンドをつくってみた • 使ったもの
– 近いサイズの基板 – 丸ピンソケット(LCDパネルのピンが細い) – ケーブル – ハンズで買ったスタンド
レッツ工作 • ブレッドボードでつないでいたものを 基板で表現するだけの簡単なお仕事
• 線はなるべく束ねて接続しやすくした
完成 • 紅の豚を見ながら 作ったらかなり配線 間違えた
• ちゃんと集中して 作ろう!!!1
• 先に図を書こう!!
• ブースで展示中です
まとめ • まずは、わかんないなりに、公開されている手順を見て真似ればなんとかできる
• そこから自分で応用をきかせて新しいものを作っていくことで楽しみも増す
• まずはやってみよう!
• カメラボード安いのでとりあえず買おう