Upload
knit-tiger
View
2.197
Download
0
Embed Size (px)
DESCRIPTION
2012/12/22 プロ生勉強会@品川
Citation preview
レベルを上げて物理で殴る
ニットタイガーtwitter:@sdol
はじめに自己紹介とか
電子工作して MAKE に出展してます C 言語使うことが多いです ニコニコ生放送してたけど最近は疎遠気味 Surface Pro が欲しいのです
2
本日のお題
Raspberry Pi で物理的な何かをしてみよう
3
Raspberry Pi ?
$35 で買える格安 Linux マシン 名刺サイズのコンパクトボディ ARM 700MHz のパワフル CPU LAN, USB, HDMI など標準搭載 GPIO に簡単アクセス可能、 UART や
I2C 、 SPI も簡単操作 ⇐ ここ重要!
4
Linux の資産が使える
Linux 向けのツールが豊富- Web サーバ : apache, lighttpd
- 動画配信 : mjpg-streamer USB 機器も簡単接続
Wifi アダプタ USB メモリ Web カメラ Arduino も繋がるっぽい
5
+5 V
+3.3 V
GND
UART
GPIO
SPI
I²C
GPIO ってなに?
General Purpose Input / Outputの略称。色々つながる。
出力: HIGH/LOW の切替、 PWMで外部機器を操作
入力:接続先の状態読み取って内部処理に使用
6
GPIO 操作方法
デバイスファイル gpio コマンド C C#
7
1 つくらいは好みの環境がありそう
Ruby
Perl
Python
Java
gpio コマンドで制御 GIT で WiringPi を入手してビルド シェルスクリプトから使ってみる
8
#!/bin/shpin=4value=1gpio export $pin outgpio -g mode $pin outgpio -g write $pin $value
sleep 1
value=0gpio -g write $pin $value
4 番 PIN を出力に設定
1 秒待つ
4 番 PIN を HIGH( 1 )に設定
4 番 PIN をLOW ( 0 )に設定
Ruby で GPIO 制御 wiringpi GEM を require すれば OK インストールは “ gem install wiringpi”
9
#!/usr/bin/env rubyrequire 'rubygems'require 'wiringpi.rb'
pin = 7io = WiringPi::GPIO.newio.mode(pin,OUTPUT)io.write(pin,HIGH)sleep(1)io.write(pin,LOW)
7 番 PIN を出力に設定、その後で HIGH に設定
GPIO 制御用のGEM
1 秒後に LOW に設定
DEMO – CGI でモータ制御
10
Raspberry Pi
Web サーバ・ Lighttpd
Motor
CGI・ Shell script・ Ruby
Mobilerouter
GPIO・ 4 番 PIN
WebBrowser
GPIO,GND,3.3VPower
DEMO - クラウド露出狂 CGI に「ハズカシイ写真」「モータ制御」をセット! 写真が閲覧されるたびにモータが激しく振動! USB バッテリーを使えば屋外運用も可能!
11
+
12 まとめ
Raspberry Pi は安くて高機能 GPIO が簡単に制御可能 ModMyPi で注文すると 2 週間くらいで
届くのでオススメ https://www.modmypi.com/