• Like
SIerによるSIerのためのRaspberry Pi 入門4 (タイムラプス、Lチカ)
Upcoming SlideShare
Loading in...5
×

SIerによるSIerのためのRaspberry Pi 入門4 (タイムラプス、Lチカ)

  • 2,137 views
Uploaded on

2014/04 勉強会資料 …

2014/04 勉強会資料
サイト
http://77sites.appspot.com/2/page1.html

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,137
On Slideshare
0
From Embeds
0
Number of Embeds
6

Actions

Shares
Downloads
9
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. xx ・Raspberry Pi BerryCam タイムラプス 電子工作(Lチカ、温度センサー) 監視サーバ(munin) Fablab レーザー加工機でケース作り x 2014/4 catmoney http://77sites.appspot.com/2/page1.html SIerによるSIerのためのRaspberry Pi 入門 4
  • 2. 2 xx BerryCamとは BerryCamとは、iOSからPi Cameraをコントロールするアプリ https://itunes.apple.com/gb/app/berrycam/id687071023 http://www.fotosyn.com/berrycam-support/ BerryCam(ベリーカム)は、iPhoneやiPadなど のiOS機器からPi Cameraの静止画をコントロー ルするアプリです。 機能 - Pi Cameraのイメージ・プレビューや撮影、ファ イル保存の直接コントロール - イメージフィルターによる写真エフェクト - イメージ品質や露出などのPi Camera設定
  • 3. 3 xx BerryCamのインストールと仕組み インストール方法のサイト。この内容をそのままでやるだけでOK。 http://www.fotosyn.com/berrycam-support/ 作りはすごくシンプル。サーバサイドは、PythonのコードでberryCam.py(約100L)のみで動作 ・ソースのダウンロード cd /home sudo wget https://bitbucket.org/fotosyn/fotosynlabs/raw/9819edca892700e459b828517bba82b0984c82e4/BerryCam/berryCam.py ・Pythonの実行 sudo python /home/berryCam.py & ・App Storeからアプリをインストールして、アプリを起動。IPアドレスを設定すると利用できる。 berryCam.py ルータ 192.168.0.Xhttp://192.168.0.X/8000/berrycam getでカメラの設定値を渡す iphoneからパラメータを受け取って raspistillを実行し、 /home/berrycam/YYYYMMDD に写真が保存される BerryCam
  • 4. 4 xx Raspberry Piで タイムラプス サービス内容: 定位置で一定時間の間隔(秒単位~)で写真を撮影し、 その写真を加工し、短時間での変化を表現する。 利用するハード Raspberry Pi Type B SDHCカード Camera Module アクセサリ一覧 http://77sites.appspot.com/2/page2.html × モバイル バッテリー 無線LAN USBアダプタ モバイル ルーター
  • 5. 5 xx Raspberry Piで タイムラプス システム構成 持ち運びできるように下記の構成にした。 モバイルルータ ①起動時に ipアドレス通知 ②Cronで30秒ごとに 写真を撮る ③ブラウザ経由で 写真のアングルを確認。 問題なければ、そのまま 撮影継続 ④撮影が終わったら、PCから telnet経由で動画に変換。 scp経由でファイル取得
  • 6. 6 xx Raspberry Piで タイムラプス ①起動時にipアドレス通知 mutt メールクライアントのインストール ● sudo apt-get install mutt ● mkdir bin ● sudo vi /home/pi/bin/mutt.conf メールクライアントのアカウント設定 無線LANの設定方法 http://d.hatena.ne.jp/catmoney/20131103/p1 set charset="utf-8" set send_charset="us-ascii:iso-2022-jp" set from = "アカウント@gmail.com" set realname = "catmoney" set smtp_url = "smtp://アカウント@smtp.gmail.com:587/" set smtp_pass = "メールアカウントのパスワード" 動作確認。メールが届けばOK。 ● echo "Hello world" | mutt -F /home/pi/bin/mutt.conf -s "件名" 宛先@gmail.com ifconfigからipアドレスを抽出するシェルの作成( インターフェースのwlan0、eth0を読む場合) ● sudo vi /home/pi/bin/ip.sh #!/bin/bash echo `sudo ifconfig wlan0 | grep 'inet addr:' | sed -e 's/^.*inet addr://' -e 's/ .*//'`; echo `sudo ifconfig eth0 | grep 'inet addr:' | sed -e 's/^.*inet addr://' -e 's/ .*//'`;
  • 7. 7 xx Raspberry Piで タイムラプス ①起動時にipアドレス通知 無線LANの設定方法 http://d.hatena.ne.jp/catmoney/20131103/p1 実行権限を付与 ● sudo chmod +x /home/pi/bin/ip.sh メールを送信するシェル ● sudo vi /home/pi/bin/mail_ip.sh #!/bin/bash sleep 15 echo `/home/pi/bin/ip.sh` | mutt -F /home/pi/bin/mutt.conf -s "ipアドレス" 宛先@gmail.com 実行権限を付与 ● sudo chmod +x /home/pi/bin/mail_ip.sh 起動時に実行されるようにcronに追加 ● crontab -e @reboot /home/pi/bin/mail_ip.sh
  • 8. 8 xx Raspberry Piで タイムラプス ②Cronで30秒ごとに写真を撮る 30秒ごとに写真を撮るシェルを作成 ● mkdir /home/pi/timelapse ● sudo vi /home/pi/timelapse/timelapse.sh #!/bin/bash while : do filename=$(date '+%Y%m%d%H%M%S').jpg echo $filename # raspistill -o $filename raspistill -w 1920 -h 1080 -n -o /home/pi/timelapse/$filename sleep 30 done 実行権限を付与 ● sudo chmod +x /home/pi/timelapse/timelapse.sh 起動時に実行されるようにcronに追加 ● crontab -e @reboot /home/pi/timelapse/timelapse.sh
  • 9. 9 xx Raspberry Piで タイムラプス ③ブラウザ経由で写真のアングルを確認するための設定 ブラウザ経由で写真を見るためWebサーバの起動シェルの作成 ● mkdir /home/pi/bin ● sudo vi /home/pi/bin/starting.sh #!/bin/bash cd /home/pi/timelapse python -m CGIHTTPServer 80 実行権限を付与 ● sudo chmod +x /home/pi/bin/starting.sh 起動時に実行されるようにrc.localに追加 ● sudo vi /etc/rc.local /home/pi/bin/starting.sh これで接続時にスマホのブラウザから写真が見れる http://[メールで送られてきたIPアドレス]/ [注意]スマホは、モバイルルータに接続し、Raspberry Piと同じネットワーク内にいることが必要。
  • 10. 10 xx Raspberry Piで タイムラプス ④写真を動画に変換する 写真を動画に変換する起動シェルの作成 ● mkdir /home/pi/bin ● sudo vi /home/pi/timelapse/make_timelapse.sh #!/bin/bash ls *.jpg > stills.txt mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:aspect=16/9:vbitrate=16000 -vf scale=1920:1080 -o timelapse$(date '+%Y%m%d%H%M').avi -mf type=jpeg:fps=7 mf://@stills.txt 実行権限を付与 ● sudo chmod +x /home/pi/timelapse/make_timelapse.sh 写真が取れた状態で、下記を実行するとaviファイルが作成される。 ● sudo ./make_timelapse2.sh PCからWinSCPなどでファイルを取得する。 https://www.youtube.com/watch?v=syWfuPHo6oU 実際に作ったタイムラプス
  • 11. 11 xx Raspberry Piで タイムラプス システム構成の理想系 Raspberry Piにbluetoothアダプタをつけて、スマホアプリで すべて操作出来たら構成と使い勝手が一番良いような気がする。 私には、スマホアプリを作る時間も能力がないので、誰か作ってほし い。。。 スマホアプリ ・写真の撮影設定 ・写真の確認 ・タイムラプスの作成 ・タイムラプスの取得 bluetoothで接続
  • 12. 12 xx Raspberry Pi 電子工作 電子工作ってなに???? 細かいことは、気にせず やってみるのが一番。 まずは、プログラムで言うと 「Hello world!」にあたる LEDチカチカ(Lチカ)をやってみる。 お勧めslideshare 「Raspberry Pi と GPIOお手軽 Physical Computing~ LED チカチカと温度センサー 」 http://www.slideshare.net/azarashi55/big-raspberry-jam-tokyo-2013-hardware Raspberry Piに何かつないで遊ぼう http://www.slideshare.net/YasuhiroIshii/20130804-osc-raspberrypi
  • 13. 13 xx Raspberry Piで Lチカ サービス内容:LEDをチカチカさせる 利用するハード Raspberry Pi Type B SDHCカード ブレッドボード LED ジャンパー線 抵抗 ×
  • 14. 14 xx Raspberry Pi Lチカ GPIOを使います GPIOとは、General Purpose Input/Output(汎用入出力)の略語 入力・・・・電気回路のほかの部分からのデジタル信号を読み取る。 出力・・・・他デバイスの制御や信号の通知を行う。 Raspberry Piは、13ピン 2列の26ピン GPIOで出来ることは、LED を点滅させたり,スイッチの状態を読み取ることなどが可能 GPIO Raspberry Leaf http://www.doctormonk.com/2013/02/raspberry-pi-and-breadboard-raspberry.html
  • 15. 15 xx Raspberry Pi Lチカ ブレッドボードとは ハンダ付け不要で部品やリード線を差すだけで回路が組み立てられる回路基盤 部品エリア 電源エリア 中身は金属板が入っている 引用元ページ https://www.sunhayato.co.jp/products/item_data/howto_breadboard.pdf
  • 16. 16 xx Raspberry Pi Lチカ 抵抗 電気を流れにくくする部品。抵抗が大きいほど電気は流れにくい。 抵抗のカラーは4本(5本)のカラーの輪が印刷してある。 この帯で抵抗値と誤差がわかるようになっている。 カラー抵抗値の写真早読み表 http://part.freelab.jp/s_regi_list.html LED(発光ダイオード) 電気が流れると光る部品。 足が長い方 "アノード:電池の + 側につなげる" 足が短い方  "カソード:電池の - 側につなげる"
  • 17. 17 xx Raspberry Pi Lチカ GNDは、 マイナスに なります 回路図 カソード -極 アノード +極 GPIO端子 は18 ● rootになる sudo su ● GPIO18を認識させる echo 18 > /sys/class/gpio/export ● ディレクトリ移動 cd /sys/class/gpio/gpio18 ● GPIO18を出力に設定 echo out > direction ● LEDを点灯 echo 1 > value ● LEDを消灯 echo 0 > value
  • 18. 18 xx Raspberry Pi RubyでLチカ ● rubyの作成 sudo vi lchika.rb ● rubyの実行 sudo ruby lchika.rb io = open("/sys/class/gpio/export", "w") io.write(18) io.close dir = open("/sys/class/gpio/gpio18/direction", "w") dir.write("out") dir.close out = 1 10.times do v = open("/sys/class/gpio/gpio18/value", "w") v.write(out) v.close out = out == 1 ? 0 : 1 sleep 0.5 end uexport = open("/sys/class/gpio/unexport", "w") uexport.write(18) uexport.close 引用元 http://lchikaamazon.hatenablog.com/entry/2013/11/18/180435 lchika.rb
  • 19. 19 xx PWMでRaspberry PiのLEDの明るさ調整する PWMとはパルス幅変調という意味。 このパルスの1周期のOn/Off比率を操作 することによって、見かけ上の錯覚で明る さを制御する。 ● ライブラリのインストール sudo apt-get install ruby1.9.1-dev sudo gem install wiringpi ● rubyの作成 sudo vi lchika2.rb ● rubyの実行 sudo ruby lchika2.rb require "wiringpi.rb" LED = 1 s = WiringPi::GPIO.new s.mode(LED, PWM_OUTPUT) 5.times do (0..1023).each do |x| s.pwmWrite(LED,(1023 -x)) puts "#{1023 - x }" sleep(0.001) end (0..1023).each do |x| s.pwmWrite(LED, x) puts x sleep(0.001) end s.pwmWrite(LED,0) end 引用元 http://lchikaamazon.hatenablog.com/entry/2013/11/18/191031 lchika2.rb
  • 20. 20 xx Raspberry Piで温度センサー サービス内容:温度センサーを使って温度取得 利用するハード Raspberry Pi Type B SDHCカード ブレッドボード ADコンバータ MCP3002 ジャンパー線 × セラミックコンデンサー 温度センサー
  • 21. 21 xx ADコンバータとは Raspberry Pi には、アナログ入力はないので、そのままでは、ア ナログ値を測ることはできません。そのためADコンバータ(アナロ グ-デジタル変換器)を使用して、アナログ値を取得します。 SPI(Serial Peripheral Interfac)を使います シリアルバスの一種で、比較的低速なデータ転送を行うデバイスに利用される。 Raspberry Piで温度センサー コンデンサとは コンデンサは電気を蓄えたり放出したりする電子部品。 直流を通さないで絶縁するはたらきもあります。 引用元 http://www.murata.co.jp/elekids/ele/compo/capacitor/
  • 22. 22 xx Raspberry Piで温度センサー MCP3002側 Raspberry Pi側 ピン番号 ピン名称 ピン名称 1 CS CS0 2 CH0 温度センサー 3 CH1 4 Vss GND 5 Din SPI MOSI 6 Dout SPI MISO 7 CLK SPI SCLK 8 Vdd/Vref 3.3V
  • 23. 23 xx Raspberry Piで温度センサー ● シリアル通信を有効化 sudo vi /etc/modprobe.d/raspi-blacklist.con #blacklist spi-bcm2708 blacklist i2c-bcm2708 ● 再起動 sudo reboot ● デバイスの確認 ls -la /dev/spi* crw-rw---T 1 root spi 153, 0 Jan 1 1970 /dev/spidev0.0 crw-rw---T 1 root spi 153, 1 Jan 1 1970 /dev/spidev0.1 ● ライブラリのインストール sudo gem install pi_piper ● ライブラリの確認(pi_piper(1.3.2)があればOK) gem list #!/usr/bin/ruby require 'pi_piper' value = 0 PiPiper::Spi.begin do |spi| raw = spi.write [0b01101000,0] value = ((raw[0]<<8) + raw[1]) & 0x03FF end volt = (value * 3300.0)/1024.0 degree = (volt - 500.0)/10 puts degree.round(1) ● rubyの実行 sudo ruby tmp.rb 引用元 http://lchikaamazon.hatenablog.com/entry/2013/11/30/232006 ● sudo vi tmp.rb
  • 24. 24 xx 監視サーバ(munin) ● Webサーバ”Nginx”をインストール sudo apt-get update sudo apt-get install nginx ● 公開ディレクトリの作成 cd ~ mkdir -p www ● Nginxの設定の変更 sudo vi /etc/nginx/sites-available/default server { root /home/pi/www; index index.html index.htm;   ・   ・ } 引用元 http://nofx2.txt-nifty.com/it/2013/07/raspberry-pi-ng.html
  • 25. 25 xx 監視サーバ(munin) ● サイトを有効にするため、シンボリックリンクを張る。 sudo ln -s /etc/nginx/sites-available/pi /etc/nginx/sites-enabled/ ● Nginxの設定ファイルに問題が無いかチェック sudo nginx -t ● 設定再読み sudo nginx -s reload ● Nginx再起動 sudo service nginx restart ● 自動起動設定 sudo update-rc.d nginx defaults --ディフォルトのログファイル /var/log/nginx/access.log /var/log/nginx/error.log
  • 26. 26 xx 監視サーバ(munin) ● muninのインストール sudo apt-get install munin munin-node ● 出力フォルダの作成 mkdir -p /home/pi/www/munin sudo chown -R munin:munin /home/pi/www/munin ● 出力フォルダの変更 sudo vi /etc/munin/munin.conf ● ブラウザから表示されることを確認 http://[IPアドレス]/munin もっとMuninを知りたい場合は、こちら Muninではじめる実践★リソース監視 -俺のサーバがこんなに重いはずがない、を乗り切るために- http://www.slideshare.net/zembutsu/practical-resource-monitoring-with-munin Muninは舞い降りた ~リソース監視を通して、運用現場を変える話~ http://www.slideshare.net/zembutsu/munin-has-landed-infotalk50 htmldir /home/pi/www/munin
  • 27. 27 xx 温度センサーの結果をmuninで表示 #!/bin/sh #%# family=auto #%# capabilities=autoconf GETNUM=`ruby /home/pi/tmp.rb` if [ "$1" = "autoconf" ]; then if [ -n ${GETNUM} ] ; then echo yes exit 0 else echo no exit 0 fi fi if [ "$1" = "config" ]; then echo 'graph_title Temperature' echo 'graph_args --base 1000 -l 0 -u 50' echo 'graph_vlabel Temp(C)' echo 'graph_category Room' echo 'total.label temperature' echo 'total.type GAUGE' exit 0 fi echo "total.value $GETNUM"; ● プラグインの作成 cd /usr/share/munin/plugins/ sudo vi FetchTemperature ● ライブラリーのインストール sudo gem install munin-ruby ● 設定 sudo chmod +x FetchTemperature sudo ln -s FetchTemperature /usr/share/munin/plugins/FetchTemperature sudo vi /etc/munin/plugin-conf.d/munin-node sudo munin-node restart ● 実行確認 sudo munin-run FetchTemperature [FetchTemperature] user root FetchTemperature
  • 28. 28 xx Raspberry Pi 電子工作 電子回路設計ツール Fritzing はWindows/Mac/Linux で動作し、回路図の設計、シミュレーション等ができる。 【ダウンロードURL】 http://fritzing.org/download/ 【使い方】 配置したいパーツを右上のパーツから選択してブレッドボードのウィンドウにドラッグ&ドロッ プするだけで配線できる。作成した回路図は各種ファイルに書き出すことも可能。 【Raspberry Pi パーツ】 Adafruit の Fritzing Library を使うことで Raspberry Pi のパーツを利用することができる。 以下の URL からファイルをダウンロードして Fritzing の [ファイル] -> [開く] から必要な .fzpz ファイルを開けばパーツウィンドウにパーツが追加される。 https://github.com/adafruit/Fritzing-Library
  • 29. 29 xx 紹介 ぼちぼちぼっち開発 with Raspberry Pi in 大阪 場所:Namba CoWorking     http://namba.cc/price 費用:1000円(場所代) 必要な物:raspberry pi、PC 日時:Doorkeerperで通知予定
  • 30. 30 xx FabLab Kitakagaya レーザー加工機 report 3月14日にFabLab 北 加賀屋でレーザー加工 機の基礎講習に行って 来ました。
  • 31. 31 xx FabLab とは ● 「ほぼあらゆるもの」をつくることを目標とした、3Dプリンタやカッティン グマシンなど多様な工作機械を備えたワークショップ。 ● 世界中に存在し、市民が自由に利用できる事が特徴。「ほぼあらゆる もの」の中には、大量生産・規模の経済といった市場原理に制約さ れ、 ● いままでつくり出されなかったものが含まれる。ファブラボは、個人 が、自らの必要性や欲求に応じて、そうした「もの」を自分(たち) ● 自身で作り出せるようになるような社会をビジョンとして掲げており、そ れを「ものづくり革命 (第2次産業革命)」とも呼んでいる。 ● 「ファブ」には、「Fabrication」(ものづくり)と「Fabulous」(楽しい・愉快 な)の2つの単語がかけられている。 wikipediaより 引用 http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%83%96%E3%83%A9%E3%83%9C
  • 32. 32 xx FabLab Kitakagaya レーザー加工機 report Venus 12Wを使って、レー ザー加工機を初体験。 手順 1.データの作成、もしくは素材のインポート 2.カットは、極細線(0.1mm)。彫刻は、彫る強さを変えたい部分は、色分けする。 3.印刷をして、レーザー加工機にデータを送ります。また印刷設定で、始点の設定 や色によってパワー調整などをします。 4.レーザー操作パネルで送ったファイルを選択し、ボタンを押して開始して、出来 上がりを待つだけ。 レーザー加工機とはレーザービームでいろいろな素材にカット・彫刻をする工作機械です。 利用したソフト、CorelDRAW(有料ソフト)です。
  • 33. 33 xx FabLab Kitakagaya レーザー加工機 report データは、Adafruit Pi Boxを利用、下記からダウンロードできる。 raspberry piのケースを作りました。 http://www.thingiverse.com/thing:24461 素材は、アクリル板 180×320ミリ 2ミリ 出来上がりはこれ。見た目は良いが、実は、データが3mm用 だったため、立て付けが悪く、かつ一部、Audio Outの穴が ずれました。。。とは、いえ初心者でもクオリティが高いものが 出来ることを確認できました。 次回は、事前にInkscape、Jw_cadなどのフリーのソフトを使って、少しカスタマイズしてケース作りをしてみたい