SlideShare a Scribd company logo
1 of 44
Download to read offline
1
Big Raspberry JAM TOKYO 2013
Hardware
Raspberry Pi と GPIO
お手軽 Physical Computing
~ LED チカチカと温度センサー ~
Japanese Raspberry Pi Users Group
あおしま ひでき (Hideki AOSHIMA)     
 
Sponsored by
2
自己紹介
● 某中小企業で何でも屋のエンジニア
● Raspberry Pi は販売初期に入手
– 現在は結局5台所有( Model A x1, Model B x4 )
● こういうアイコンで出没→
● twitter: @azarashi55
● OSC(Open Source Conference) で講演など
* http://www.ospn.jp/
3
Agenda
● Raspberry Pi の紹介
● Raspberry Pi の GPIO
– 質疑応答、ディスカッションなど
● LED チカチカ(俗にいう L チカ)
– 質疑応答、ディスカッションなど・休憩
● 温度センサーを接続して温度測定
– 質疑応答、ディスカッションなど
4
Raspberry Pi の紹介 -1-
● 超小型で超安価な ARM コンピューター
– The Raspberry Pi Foundation が開発
● 代表は Eben Upton 氏( Broadcom 社 Director )
– コンピューター教育用途として開発
– Model A( 約 $25) 、 Model B( 約 $35)
– ちなみに小中高生( K12 )のお小遣いで買える価格を目指したそうです
– 大きさはちょうどクレジットカードサイズ
5
Raspberry Pi の紹介 -2-
● なぜ” Raspberry Pi” ?
– ” コンピューター会社の名前にはフルーツの名前を
つけるのが一般的” by Eben 氏
– Pi は Python に由来
● 本セミナーではシェルスクリプトと Python を使用
● もちろん他の言語も使えます
6
Raspberry Pi の紹介 -3-
● Raspberry Pi の主な仕様
– SoC: Broadcom BCM2835
● CPU: ARM1176JZF-S(ARM11)
● GPU: Broadcom VideoCore IV
– OpenGL ES2 がかなり高速で動く
– I/O: USB2.0 、 Audio 、 HDMI 、 RCA Video 、 GPIO
– Storage: SD カード
– 電源 : 基本的に microUSB から入力( 5V )
7
Raspberry Pi の紹介 -4-
● Model A と Model B
– Model A (より低消費電力な廉価版)
● LAN ポート無し、 USB x 1 、 256MB メモリ
– Model B (こちらが主流)
● LAN ポート有り、 USB x 2 、現在は 512MB メモリ
● Rev.1 と Rev.2(256MB メモリ ) 、
Rev.2(512MB メモリ ) が存在します
8
Raspberry Pi の紹介 -5-
● cat /proc/cpuinfo
– Revision: の欄を見る
● Model B Rev.1 : 0002
● Model B Rev.2(RAM 256MB):0004,0005,0006
● Model B Rev.2(RAM 512MB):000d,000e,000f
● Model A : 0007,0008,0009
* http://elinux.org/RPi_HardwareHistory
9
Raspberry Pi を使う上での Tips
● 電源は大事
– スマートフォン用充電器などが使えますが、供給可能電
流が 1A 以上あると動作が安定します(特に Wi-Fi ドング
ル使用時)
● SD カード
– そこそこのブランドの SDHC カード class 10 、容量 4GB
以上がオススメ
10
Raspberry Pi の購入
● 発売当初は世界的に供給不足だったが今は供給
が安定
● RS コンポーネンツ
– 日本で唯一の公式 Reseller
– http://jp.rs-online.com/web/generalDisplay.html?id=raspberrypi
– Blue Raspberry Pi のキャンペーン中
11
Raspberry Pi のセットアップ -1-
● 最低限必要なもの( Model B の場合)
– 電源(スマートフォン用充電器など)
– SD カード( SDHC カードがオススメ)、 SD カードリーダー / ライター
– LAN ケーブル
● Model A や接続形態によって必要なもの
– USB キーボード、 USB マウス、ディスプレイ
– USB- シリアル変換ケーブル or アダプター( Model A の場合)
– Wi-Fi ドングル(多くの製品が Raspbian で使用可能)
* http://elinux.org/RPi_VerifiedPeripherals
12
Raspberry Pi のセットアップ -2-
● SD カードに OS イメージファイルを書き込む
– 本セミナーでは Raspbian ”Wheezy” 2013/2/9 版を使用
● 起動して初期設定
● 必要に応じてユーザー追加・パスワード変更など
● 詳細は Interface 12 月号・同誌増刊号などをご参照下さい
– 基本的に Debian GNU/Linux “Wheezy” です
* Interface 12 月号 P.50 ~、増刊号 P.22 ~
* http://www.raspberrypi.org/downloads
13
Raspberry Pi の GPIO -1- *
● 百聞は一見にしかず
GPIO
14
Raspberry Pi の GPIO -2-
● GPIO とは?
– General Purpose Input/Output (汎用入出力)の略語
– Raspberry Pi の場合  13 ピン2列の 26 ピン
● GPIO で何ができるか?
– 単純な入出力機能だけでも LED チカチカ、ボタン押下検出など
– I2C 、 SPI 、 UART などで様々な外部デバイスを接続可能
– I2C については後ほど温度センサーでご説明します
– UART は USB シリアル変換で使います
15
Raspberry Pi の GPIO を扱う上での
注意点
● GPIO ピンは SoC に直結されています
– 静電気、過電圧、過電流により Raspberry Pi 本体に損傷を与える可
能性があります
– 特に静電気(着衣、空気の乾燥など)、過電圧には注意しましょう
● 入出力電圧は 3.3V です
– 5V を入出力できません( Arduino とは異なります)
– 接続するデバイスも 3.3V で動作するものを選ぶ
16
Raspberry Pi の GPIO -3-
● Raspberry Pi の GPIO ピン配列 (Model B Rev.2 、 Model A)
– 3.3V と 5V とGND が隣接しているので要注意
– Model B Rev.1 は一部 GPIO ピンアサインが異なっているので注意して下さい
* http://www.orsx.net/blog/archives/4126
I2
C で使います
Rev.1 では GPIO21
17
Raspberry Pi の GPIO -4-
● Raspberry Leaf
* http://www.doctormonk.com/2013/02/raspberry-pi-and-breadboard-raspberry.html
18
質疑応答・ディスカッション・休憩
19
LED チカチカ -1-
● LED チカチカ(俗に L チカ)の利点
– 回路が簡単
– 動作結果が目で見てわかる
– ブレッドボード(次にご説明します)を使えばハン
ダ付け不要でお手軽
– パーツが超安価
20
LED チカチカ -2- *
ブレッドボード
● ブレッドボードとは?
– ブレッドボードの一例(色んな種類があります)
* http://akizukidenshi.com/catalog/g/gP-00315/
21
LED チカチカ -3- *
ブレッドボードの内部配線
● ブレッドボードの内部配線
溝の部分で
絶縁されています
22
LED チカチカ -4- *
  LED の基礎知識
● LED (発光ダイオード)
– ダイオードなので極性有り
● 足の長さや切欠きで区別
– Vf (順方向降下電圧)が
3.3V 以下のものを選ぶ
– 電流制限抵抗を入れて LED
に過電流が流れないようにする
23
LED チカチカ -5-
 配線図・回路図
● 配線図・回路図(みんな大好き Fritzing )
* http://fritzing.org/
電流制限抵抗
24
LED チカチカ -6- *
 実際の配線
● 実際の配線
– 静電気に注意
– 電源は抜いておく
– 配線ミスに注意
– LED には極性があります
25
LED チカチカ -7- *
 シェルスクリプト
● Raspbian の場合すごく簡単( root ユーザーで実行)
– GPIO7 の使用開始
echo “7” > /sys/class/gpio/export
– GPIO7 を出力に設定
echo “out” > /sys/class/gpio/gpio7/direction
– GPIO7 に 3.3V を出力
echo “1” > /sys/class/gpio/gpio7/value
– GPIO7 への出力を止める
echo “0” > /sys/class/gpio/gpio7/value
– GPIO7 の使用終了
echo “7” > /sys/class/gpio/unexport
* Interface 誌 P.70 ~ 72 、 Interface 誌増刊号 P.48 ~ 50
26
LED チカチカ
質疑応答・ディスカッション・休憩
27
I2
C 接続の温度計 -1-
● なぜ温度計か?
– 使用する I2C 接続の温度センサー( TMP102 )が比較的安価
– Raspberry Pi の GPIO ヘッダーに I2C (後でご説明します)
専用の端子がある
– I2C なのでデジタル入出力で結線数が少ない
– 温度計が GPS とかより身近
* http://www.switch-science.com/catalog/258/ など
28
I2
C 接続の温度計 -2-
  I2
C について
● I2C とは
– 1980 年代初頭に開発されたプロトコル
● その後改訂されて現在に至る
– シリアルデータ( SDA )とシリアルクロック( SCL )の 2 本の
信号線によるシリアル通信
● 電源ラインを含めてもたった 4 本の結線で使用可能
– Raspbian のデフォルトのカーネルで I2C が使える
– 「アイ・スクエアド・シー」が正しい読み方
– ただ「アイ・ツー・シー」とも呼ばれる
29
I2
C 接続の温度計 -3-
  I2
C でのデバイスの接続
● I2C でのデバイス接続方法
– 一つのマスターデバイス(今回は Raspberry Pi )にスレーブデバイス
( 2 つ以上でも OK )を接続
– スレーブデバイスは I2C アドレス(大抵 7bit )を持ち、識別されます
30
I2
C 接続の温度計 -4-
  TMP102
● TMP102 の特徴
– I2C 接続で結線数が少ない(電源ライン込みで 4 本)
– 3.3V で動作し、消費電力が少ない
– 比較的安価
– 精度が 0.5℃
(分解能は 0.0625℃ )
– 使用例が多く WEB 上に情報が多い
31
I2
C 接続の温度計 -5- *
  TMP102
● TMP102 にピンヘッダーをハンダ付け
– ブレッドボードに仮固定するとうまくできます
32
I2
C 接続の温度計 -6-
 配線の確認
● 事前に Fritzing で配線の確認
33
I2
C 接続の温度計 -7- *
 実際に配線
● I2C 用ピンヘッダーの配置上、配線が1ヶ所に集中します
34
I2
C 接続の温度計 -8-
  Raspbian の準備
● I2C モジュールの有効化(コメントアウトするだけ)
$ sudo nano /etc/modprobe.d/raspi-blacklist.conf
* Interface 誌増刊号 P.95 ~ 97
35
I2
C 接続の温度計 -9-
  Raspbian の準備
● i2c-dev モジュールを起動時に読み込ませる
$ sudo nano /etc/modules
36
I2
C 接続の温度計 -10-
  Raspbian の準備
● 一旦 Raspberry Pi を再起動してログを確認
$ dmesg | grep i2c
で以下の 3 行が出力されていることを確認 (lsmod コマンドでも
OK)
[ 4.686775] bcm2708_i2c bcm2708_i2c.0: BSC0     
Controller at 0x20205000 (irq 79) (baudrate 100k)
[ 4.897084] bcm2708_i2c bcm2708_i2c.1: BSC1     
Controller at 0x20804000 (irq 79) (baudrate 100k)
[ 14.220329] i2c /dev entries driver
37
I2
C 接続の温度計 -11-
  I2
C 関連のパッケージをインストール
●I2Cデバイスを操作するのに必要なパッケージをインストール
$ sudo apt-get install i2c-tools python-smbus
●今回使用している温度センサーTMP102はさきほどのように配線
すると、I2Cアドレスが0x49となります
●ちなみに、TMP102はI2Cアドレスを変えれば複数個接続出来ます
– ADD0端子の接続先を変更するとI2Cアドレスが変わります
38
I2
C 接続の温度計 -12- *
  TMP102 の動作確認
● i2cdetect で確認
– 0x49 のところに 49 と表示されれば正常に通信できてい
ます
– なお、 Raspberry Pi Model B Rev.1 と
それ以外で i2cdetect の引数が異なります
39
I2
C 接続の温度計 -13-
● 今回は I2C 操作に SMBus モジュールを使います
– ただし、ドキュメントが極端に少ないです
– Python3 系列が必須ですが quick2wire-python-api とい
うものもあります
● スライドの関係上クラス等は作りませんでした
* https://github.com/quick2wire/quick2wire-python-api
40
I2
C 接続の温度計 -14-
  Python スクリプト
#!/usr/bin/env python
import smbus
# TMP102のI2Cアドレスは0x49
addr = 0x49
# SMBusの引数はModel B Rev.1の場合0、Model B Rev.2、Model Aの場合1
i2c = smbus.SMBus(1)
# TMP102から2バイト読み込みます
temp = i2c.read_i2c_block_data( addr, 0 ,2)
# 最後に、TMP102のデータシート通りに温度を計算して、画面表示します
print temp[0] + (temp[1] >> 4) * 0.0625
41
I2
C 接続の温度計 -15- *
● GPIO へのアクセスは root 権限が必要なの
で sudo コマンドを使います
42
I2
C 接続の応用
● I2C 接続をマスターすると・・・
– 様々なセンサー類をつなぐことができる
● 温度、湿度、大気圧、 GPS 、加速度など
– センサーの他にもいろいろつながります
● LCD 、 A/D コンバータ、 RTC(Real Time Clock) など
– ぜひ TMP102 以外にもトライしてみて下さい
43
質疑応答・ディスカッション
44
ありがとうございました
『 Big Raspberry JAM TOKYO 2013
Hardware 』
主催: Japanese Raspberry PI Users Group (http://www.RasPi.jp/)
後援:アールエスコンポーネンツ株式会社 (http://rs-components.jp/)
   株式会社 KDDI ウェブコミュニケーションズ (http://www.cloudcore.jp/)

More Related Content

What's hot

ESP32特集の内容紹介
ESP32特集の内容紹介ESP32特集の内容紹介
ESP32特集の内容紹介Kenta IDA
 
Analog Devices の IP コアを使う
Analog Devices の IP コアを使うAnalog Devices の IP コアを使う
Analog Devices の IP コアを使うryos36
 
FPGAによるHDMI to LVDS変換器
FPGAによるHDMI to LVDS変換器FPGAによるHDMI to LVDS変換器
FPGAによるHDMI to LVDS変換器I_HaL
 
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステムPython, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステムJunichi Kakisako
 
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)hiro345
 
配布用Raspberry pi+arduino+scratchでフィジカルコンピューティング体験!
配布用Raspberry pi+arduino+scratchでフィジカルコンピューティング体験!配布用Raspberry pi+arduino+scratchでフィジカルコンピューティング体験!
配布用Raspberry pi+arduino+scratchでフィジカルコンピューティング体験!Kazuhiro Abe
 
M5StackにFPGAをつないでみた
M5StackにFPGAをつないでみたM5StackにFPGAをつないでみた
M5StackにFPGAをつないでみたKenta IDA
 
Microsemi FPGAで RISC-V を動かしてみた話 (Lチカ)
Microsemi FPGAで RISC-V を動かしてみた話 (Lチカ)Microsemi FPGAで RISC-V を動かしてみた話 (Lチカ)
Microsemi FPGAで RISC-V を動かしてみた話 (Lチカ)Takayasu Shibata
 
ESP32開発環境まとめ
ESP32開発環境まとめESP32開発環境まとめ
ESP32開発環境まとめKenta IDA
 
Rust で RTOS を考える
Rust で RTOS を考えるRust で RTOS を考える
Rust で RTOS を考えるryuz88
 
ACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyoACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyoTakefumi MIYOSHI
 
PYNQで○○してみた!
PYNQで○○してみた!PYNQで○○してみた!
PYNQで○○してみた!aster_ism
 
ESP32開発環境まとめ2
ESP32開発環境まとめ2ESP32開発環境まとめ2
ESP32開発環境まとめ2Kenta IDA
 
FPGA startup 第一回 LT
FPGA startup 第一回 LTFPGA startup 第一回 LT
FPGA startup 第一回 LTYamato Kazuhiro
 
ソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うかソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うかなおき きしだ
 
NFC キャンドル
NFC キャンドルNFC キャンドル
NFC キャンドルtreby
 
PSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニットPSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニットKenta IDA
 

What's hot (20)

Pynq祭り資料
Pynq祭り資料Pynq祭り資料
Pynq祭り資料
 
ESP32特集の内容紹介
ESP32特集の内容紹介ESP32特集の内容紹介
ESP32特集の内容紹介
 
Analog Devices の IP コアを使う
Analog Devices の IP コアを使うAnalog Devices の IP コアを使う
Analog Devices の IP コアを使う
 
FPGAによるHDMI to LVDS変換器
FPGAによるHDMI to LVDS変換器FPGAによるHDMI to LVDS変換器
FPGAによるHDMI to LVDS変換器
 
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステムPython, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
 
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)
 
配布用Raspberry pi+arduino+scratchでフィジカルコンピューティング体験!
配布用Raspberry pi+arduino+scratchでフィジカルコンピューティング体験!配布用Raspberry pi+arduino+scratchでフィジカルコンピューティング体験!
配布用Raspberry pi+arduino+scratchでフィジカルコンピューティング体験!
 
Linux : PSCI
Linux : PSCILinux : PSCI
Linux : PSCI
 
M5StackにFPGAをつないでみた
M5StackにFPGAをつないでみたM5StackにFPGAをつないでみた
M5StackにFPGAをつないでみた
 
Microsemi FPGAで RISC-V を動かしてみた話 (Lチカ)
Microsemi FPGAで RISC-V を動かしてみた話 (Lチカ)Microsemi FPGAで RISC-V を動かしてみた話 (Lチカ)
Microsemi FPGAで RISC-V を動かしてみた話 (Lチカ)
 
ESP32開発環境まとめ
ESP32開発環境まとめESP32開発環境まとめ
ESP32開発環境まとめ
 
Rust で RTOS を考える
Rust で RTOS を考えるRust で RTOS を考える
Rust で RTOS を考える
 
ACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyoACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyo
 
PYNQで○○してみた!
PYNQで○○してみた!PYNQで○○してみた!
PYNQで○○してみた!
 
ESP32開発環境まとめ2
ESP32開発環境まとめ2ESP32開発環境まとめ2
ESP32開発環境まとめ2
 
FPGA startup 第一回 LT
FPGA startup 第一回 LTFPGA startup 第一回 LT
FPGA startup 第一回 LT
 
FPGAことはじめ
FPGAことはじめFPGAことはじめ
FPGAことはじめ
 
ソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うかソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うか
 
NFC キャンドル
NFC キャンドルNFC キャンドル
NFC キャンドル
 
PSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニットPSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニット
 

Viewers also liked

Shutter Speed Tester with Raspberry Pi
Shutter Speed Tester with Raspberry PiShutter Speed Tester with Raspberry Pi
Shutter Speed Tester with Raspberry PiYuriko IKEDA
 
Raspberry piでシリアルサーボ
Raspberry piでシリアルサーボRaspberry piでシリアルサーボ
Raspberry piでシリアルサーボTatsuya Yamamoto
 
2016プロシンスポンサー 加筆版
2016プロシンスポンサー 加筆版2016プロシンスポンサー 加筆版
2016プロシンスポンサー 加筆版Hirokazu Nishio
 
RaspberryPiでおもちゃを作る
RaspberryPiでおもちゃを作るRaspberryPiでおもちゃを作る
RaspberryPiでおもちゃを作るMasataka Tsukamoto
 
I2CでRaspberry Piから 複数の周辺機器を制御する
I2CでRaspberry Piから複数の周辺機器を制御するI2CでRaspberry Piから複数の周辺機器を制御する
I2CでRaspberry Piから 複数の周辺機器を制御するHirokazu Nishio
 
医者に煽られたので10kg痩せたった
医者に煽られたので10kg痩せたった医者に煽られたので10kg痩せたった
医者に煽られたので10kg痩せたったMasataka Tsukamoto
 
Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
 Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjpHideyuki TAKEI
 
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側Takeshi HASEGAWA
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析Yuki Mizuno
 
LinuxをインストールしてWebサーバーを立ち上げてみよう
LinuxをインストールしてWebサーバーを立ち上げてみようLinuxをインストールしてWebサーバーを立ち上げてみよう
LinuxをインストールしてWebサーバーを立ち上げてみようMasataka Tsukamoto
 

Viewers also liked (13)

Shutter Speed Tester with Raspberry Pi
Shutter Speed Tester with Raspberry PiShutter Speed Tester with Raspberry Pi
Shutter Speed Tester with Raspberry Pi
 
モータ位置制御
モータ位置制御モータ位置制御
モータ位置制御
 
Raspberry piでシリアルサーボ
Raspberry piでシリアルサーボRaspberry piでシリアルサーボ
Raspberry piでシリアルサーボ
 
2016プロシンスポンサー 加筆版
2016プロシンスポンサー 加筆版2016プロシンスポンサー 加筆版
2016プロシンスポンサー 加筆版
 
RaspberryPiでおもちゃを作る
RaspberryPiでおもちゃを作るRaspberryPiでおもちゃを作る
RaspberryPiでおもちゃを作る
 
岐阜高専B-ロボット紹介
岐阜高専B-ロボット紹介岐阜高専B-ロボット紹介
岐阜高専B-ロボット紹介
 
岐阜高専A-ロボット紹介
岐阜高専A-ロボット紹介岐阜高専A-ロボット紹介
岐阜高専A-ロボット紹介
 
I2CでRaspberry Piから 複数の周辺機器を制御する
I2CでRaspberry Piから複数の周辺機器を制御するI2CでRaspberry Piから複数の周辺機器を制御する
I2CでRaspberry Piから 複数の周辺機器を制御する
 
医者に煽られたので10kg痩せたった
医者に煽られたので10kg痩せたった医者に煽られたので10kg痩せたった
医者に煽られたので10kg痩せたった
 
Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
 Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
 
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
 
LinuxをインストールしてWebサーバーを立ち上げてみよう
LinuxをインストールしてWebサーバーを立ち上げてみようLinuxをインストールしてWebサーバーを立ち上げてみよう
LinuxをインストールしてWebサーバーを立ち上げてみよう
 

Similar to Big Raspberry JAM TOKYO 2013 Hardware

楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~Hideki Aoshima
 
簡単に楽しく始めよう!Raspberry Pi入門
簡単に楽しく始めよう!Raspberry Pi入門簡単に楽しく始めよう!Raspberry Pi入門
簡単に楽しく始めよう!Raspberry Pi入門Hideki Aoshima
 
ロボットシステム学2015年第7回
ロボットシステム学2015年第7回ロボットシステム学2015年第7回
ロボットシステム学2015年第7回Ryuichi Ueda
 
NetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry PiNetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry Pitokudahiroshi
 
Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6Kazuo Asano (@kazuo_asa)
 
Preview of Pidora18 at Big Raspberry JAM TOKYO 2013 Networking
Preview of Pidora18 at Big Raspberry JAM TOKYO 2013 NetworkingPreview of Pidora18 at Big Raspberry JAM TOKYO 2013 Networking
Preview of Pidora18 at Big Raspberry JAM TOKYO 2013 NetworkingHideki Aoshima
 
20150919 raspistable (bis)
20150919 raspistable (bis)20150919 raspistable (bis)
20150919 raspistable (bis)Yoshimasa Kawano
 
ぼちぼちぼっち開発 With raspberry pi アイデアソン 20141019
ぼちぼちぼっち開発 With raspberry pi アイデアソン 20141019ぼちぼちぼっち開発 With raspberry pi アイデアソン 20141019
ぼちぼちぼっち開発 With raspberry pi アイデアソン 20141019catmoney
 
Raspberry Jam #1 20121229
Raspberry Jam #1 20121229Raspberry Jam #1 20121229
Raspberry Jam #1 20121229Hideki Aoshima
 
Code4NaraHandson2_151118
Code4NaraHandson2_151118Code4NaraHandson2_151118
Code4NaraHandson2_151118康司 石塚
 
楽しく始めるRaspberry Pi、および最新動向(OSC 2014 Tokyo/Spring)
楽しく始めるRaspberry Pi、および最新動向(OSC 2014 Tokyo/Spring)楽しく始めるRaspberry Pi、および最新動向(OSC 2014 Tokyo/Spring)
楽しく始めるRaspberry Pi、および最新動向(OSC 2014 Tokyo/Spring)Hideki Aoshima
 
AppGameKit on raspberry pi概概要
AppGameKit on raspberry pi概概要AppGameKit on raspberry pi概概要
AppGameKit on raspberry pi概概要SI系、ゲーム系
 
組込みAndroid入門実習
組込みAndroid入門実習組込みAndroid入門実習
組込みAndroid入門実習ksk sue
 
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...Netwalker lab kapper
 
Singularityで分散深層学習
Singularityで分散深層学習Singularityで分散深層学習
Singularityで分散深層学習Hitoshi Sato
 
Raspberry Pi を楽しもう
Raspberry Pi を楽しもうRaspberry Pi を楽しもう
Raspberry Pi を楽しもうhiro345
 
Android-controlled robot,Original PCB to work as a bridge between Android-pho...
Android-controlled robot,Original PCB to work as a bridge between Android-pho...Android-controlled robot,Original PCB to work as a bridge between Android-pho...
Android-controlled robot,Original PCB to work as a bridge between Android-pho...Yasuhiro Ishii
 

Similar to Big Raspberry JAM TOKYO 2013 Hardware (20)

楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
 
簡単に楽しく始めよう!Raspberry Pi入門
簡単に楽しく始めよう!Raspberry Pi入門簡単に楽しく始めよう!Raspberry Pi入門
簡単に楽しく始めよう!Raspberry Pi入門
 
Rasberrypi 2013-08-17
Rasberrypi 2013-08-17Rasberrypi 2013-08-17
Rasberrypi 2013-08-17
 
ロボットシステム学2015年第7回
ロボットシステム学2015年第7回ロボットシステム学2015年第7回
ロボットシステム学2015年第7回
 
NetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry PiNetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry Pi
 
Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6
 
Osc2013 tokyospring
Osc2013 tokyospringOsc2013 tokyospring
Osc2013 tokyospring
 
Preview of Pidora18 at Big Raspberry JAM TOKYO 2013 Networking
Preview of Pidora18 at Big Raspberry JAM TOKYO 2013 NetworkingPreview of Pidora18 at Big Raspberry JAM TOKYO 2013 Networking
Preview of Pidora18 at Big Raspberry JAM TOKYO 2013 Networking
 
20150919 raspistable (bis)
20150919 raspistable (bis)20150919 raspistable (bis)
20150919 raspistable (bis)
 
ぼちぼちぼっち開発 With raspberry pi アイデアソン 20141019
ぼちぼちぼっち開発 With raspberry pi アイデアソン 20141019ぼちぼちぼっち開発 With raspberry pi アイデアソン 20141019
ぼちぼちぼっち開発 With raspberry pi アイデアソン 20141019
 
Raspberry Jam #1 20121229
Raspberry Jam #1 20121229Raspberry Jam #1 20121229
Raspberry Jam #1 20121229
 
Code4NaraHandson2_151118
Code4NaraHandson2_151118Code4NaraHandson2_151118
Code4NaraHandson2_151118
 
楽しく始めるRaspberry Pi、および最新動向(OSC 2014 Tokyo/Spring)
楽しく始めるRaspberry Pi、および最新動向(OSC 2014 Tokyo/Spring)楽しく始めるRaspberry Pi、および最新動向(OSC 2014 Tokyo/Spring)
楽しく始めるRaspberry Pi、および最新動向(OSC 2014 Tokyo/Spring)
 
Pdp11 on-fpga
Pdp11 on-fpgaPdp11 on-fpga
Pdp11 on-fpga
 
AppGameKit on raspberry pi概概要
AppGameKit on raspberry pi概概要AppGameKit on raspberry pi概概要
AppGameKit on raspberry pi概概要
 
組込みAndroid入門実習
組込みAndroid入門実習組込みAndroid入門実習
組込みAndroid入門実習
 
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...
 
Singularityで分散深層学習
Singularityで分散深層学習Singularityで分散深層学習
Singularityで分散深層学習
 
Raspberry Pi を楽しもう
Raspberry Pi を楽しもうRaspberry Pi を楽しもう
Raspberry Pi を楽しもう
 
Android-controlled robot,Original PCB to work as a bridge between Android-pho...
Android-controlled robot,Original PCB to work as a bridge between Android-pho...Android-controlled robot,Original PCB to work as a bridge between Android-pho...
Android-controlled robot,Original PCB to work as a bridge between Android-pho...
 

Recently uploaded

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 

Recently uploaded (10)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 

Big Raspberry JAM TOKYO 2013 Hardware

  • 1. 1 Big Raspberry JAM TOKYO 2013 Hardware Raspberry Pi と GPIO お手軽 Physical Computing ~ LED チカチカと温度センサー ~ Japanese Raspberry Pi Users Group あおしま ひでき (Hideki AOSHIMA)        Sponsored by
  • 2. 2 自己紹介 ● 某中小企業で何でも屋のエンジニア ● Raspberry Pi は販売初期に入手 – 現在は結局5台所有( Model A x1, Model B x4 ) ● こういうアイコンで出没→ ● twitter: @azarashi55 ● OSC(Open Source Conference) で講演など * http://www.ospn.jp/
  • 3. 3 Agenda ● Raspberry Pi の紹介 ● Raspberry Pi の GPIO – 質疑応答、ディスカッションなど ● LED チカチカ(俗にいう L チカ) – 質疑応答、ディスカッションなど・休憩 ● 温度センサーを接続して温度測定 – 質疑応答、ディスカッションなど
  • 4. 4 Raspberry Pi の紹介 -1- ● 超小型で超安価な ARM コンピューター – The Raspberry Pi Foundation が開発 ● 代表は Eben Upton 氏( Broadcom 社 Director ) – コンピューター教育用途として開発 – Model A( 約 $25) 、 Model B( 約 $35) – ちなみに小中高生( K12 )のお小遣いで買える価格を目指したそうです – 大きさはちょうどクレジットカードサイズ
  • 5. 5 Raspberry Pi の紹介 -2- ● なぜ” Raspberry Pi” ? – ” コンピューター会社の名前にはフルーツの名前を つけるのが一般的” by Eben 氏 – Pi は Python に由来 ● 本セミナーではシェルスクリプトと Python を使用 ● もちろん他の言語も使えます
  • 6. 6 Raspberry Pi の紹介 -3- ● Raspberry Pi の主な仕様 – SoC: Broadcom BCM2835 ● CPU: ARM1176JZF-S(ARM11) ● GPU: Broadcom VideoCore IV – OpenGL ES2 がかなり高速で動く – I/O: USB2.0 、 Audio 、 HDMI 、 RCA Video 、 GPIO – Storage: SD カード – 電源 : 基本的に microUSB から入力( 5V )
  • 7. 7 Raspberry Pi の紹介 -4- ● Model A と Model B – Model A (より低消費電力な廉価版) ● LAN ポート無し、 USB x 1 、 256MB メモリ – Model B (こちらが主流) ● LAN ポート有り、 USB x 2 、現在は 512MB メモリ ● Rev.1 と Rev.2(256MB メモリ ) 、 Rev.2(512MB メモリ ) が存在します
  • 8. 8 Raspberry Pi の紹介 -5- ● cat /proc/cpuinfo – Revision: の欄を見る ● Model B Rev.1 : 0002 ● Model B Rev.2(RAM 256MB):0004,0005,0006 ● Model B Rev.2(RAM 512MB):000d,000e,000f ● Model A : 0007,0008,0009 * http://elinux.org/RPi_HardwareHistory
  • 9. 9 Raspberry Pi を使う上での Tips ● 電源は大事 – スマートフォン用充電器などが使えますが、供給可能電 流が 1A 以上あると動作が安定します(特に Wi-Fi ドング ル使用時) ● SD カード – そこそこのブランドの SDHC カード class 10 、容量 4GB 以上がオススメ
  • 10. 10 Raspberry Pi の購入 ● 発売当初は世界的に供給不足だったが今は供給 が安定 ● RS コンポーネンツ – 日本で唯一の公式 Reseller – http://jp.rs-online.com/web/generalDisplay.html?id=raspberrypi – Blue Raspberry Pi のキャンペーン中
  • 11. 11 Raspberry Pi のセットアップ -1- ● 最低限必要なもの( Model B の場合) – 電源(スマートフォン用充電器など) – SD カード( SDHC カードがオススメ)、 SD カードリーダー / ライター – LAN ケーブル ● Model A や接続形態によって必要なもの – USB キーボード、 USB マウス、ディスプレイ – USB- シリアル変換ケーブル or アダプター( Model A の場合) – Wi-Fi ドングル(多くの製品が Raspbian で使用可能) * http://elinux.org/RPi_VerifiedPeripherals
  • 12. 12 Raspberry Pi のセットアップ -2- ● SD カードに OS イメージファイルを書き込む – 本セミナーでは Raspbian ”Wheezy” 2013/2/9 版を使用 ● 起動して初期設定 ● 必要に応じてユーザー追加・パスワード変更など ● 詳細は Interface 12 月号・同誌増刊号などをご参照下さい – 基本的に Debian GNU/Linux “Wheezy” です * Interface 12 月号 P.50 ~、増刊号 P.22 ~ * http://www.raspberrypi.org/downloads
  • 13. 13 Raspberry Pi の GPIO -1- * ● 百聞は一見にしかず GPIO
  • 14. 14 Raspberry Pi の GPIO -2- ● GPIO とは? – General Purpose Input/Output (汎用入出力)の略語 – Raspberry Pi の場合  13 ピン2列の 26 ピン ● GPIO で何ができるか? – 単純な入出力機能だけでも LED チカチカ、ボタン押下検出など – I2C 、 SPI 、 UART などで様々な外部デバイスを接続可能 – I2C については後ほど温度センサーでご説明します – UART は USB シリアル変換で使います
  • 15. 15 Raspberry Pi の GPIO を扱う上での 注意点 ● GPIO ピンは SoC に直結されています – 静電気、過電圧、過電流により Raspberry Pi 本体に損傷を与える可 能性があります – 特に静電気(着衣、空気の乾燥など)、過電圧には注意しましょう ● 入出力電圧は 3.3V です – 5V を入出力できません( Arduino とは異なります) – 接続するデバイスも 3.3V で動作するものを選ぶ
  • 16. 16 Raspberry Pi の GPIO -3- ● Raspberry Pi の GPIO ピン配列 (Model B Rev.2 、 Model A) – 3.3V と 5V とGND が隣接しているので要注意 – Model B Rev.1 は一部 GPIO ピンアサインが異なっているので注意して下さい * http://www.orsx.net/blog/archives/4126 I2 C で使います Rev.1 では GPIO21
  • 17. 17 Raspberry Pi の GPIO -4- ● Raspberry Leaf * http://www.doctormonk.com/2013/02/raspberry-pi-and-breadboard-raspberry.html
  • 19. 19 LED チカチカ -1- ● LED チカチカ(俗に L チカ)の利点 – 回路が簡単 – 動作結果が目で見てわかる – ブレッドボード(次にご説明します)を使えばハン ダ付け不要でお手軽 – パーツが超安価
  • 20. 20 LED チカチカ -2- * ブレッドボード ● ブレッドボードとは? – ブレッドボードの一例(色んな種類があります) * http://akizukidenshi.com/catalog/g/gP-00315/
  • 21. 21 LED チカチカ -3- * ブレッドボードの内部配線 ● ブレッドボードの内部配線 溝の部分で 絶縁されています
  • 22. 22 LED チカチカ -4- *   LED の基礎知識 ● LED (発光ダイオード) – ダイオードなので極性有り ● 足の長さや切欠きで区別 – Vf (順方向降下電圧)が 3.3V 以下のものを選ぶ – 電流制限抵抗を入れて LED に過電流が流れないようにする
  • 23. 23 LED チカチカ -5-  配線図・回路図 ● 配線図・回路図(みんな大好き Fritzing ) * http://fritzing.org/ 電流制限抵抗
  • 24. 24 LED チカチカ -6- *  実際の配線 ● 実際の配線 – 静電気に注意 – 電源は抜いておく – 配線ミスに注意 – LED には極性があります
  • 25. 25 LED チカチカ -7- *  シェルスクリプト ● Raspbian の場合すごく簡単( root ユーザーで実行) – GPIO7 の使用開始 echo “7” > /sys/class/gpio/export – GPIO7 を出力に設定 echo “out” > /sys/class/gpio/gpio7/direction – GPIO7 に 3.3V を出力 echo “1” > /sys/class/gpio/gpio7/value – GPIO7 への出力を止める echo “0” > /sys/class/gpio/gpio7/value – GPIO7 の使用終了 echo “7” > /sys/class/gpio/unexport * Interface 誌 P.70 ~ 72 、 Interface 誌増刊号 P.48 ~ 50
  • 27. 27 I2 C 接続の温度計 -1- ● なぜ温度計か? – 使用する I2C 接続の温度センサー( TMP102 )が比較的安価 – Raspberry Pi の GPIO ヘッダーに I2C (後でご説明します) 専用の端子がある – I2C なのでデジタル入出力で結線数が少ない – 温度計が GPS とかより身近 * http://www.switch-science.com/catalog/258/ など
  • 28. 28 I2 C 接続の温度計 -2-   I2 C について ● I2C とは – 1980 年代初頭に開発されたプロトコル ● その後改訂されて現在に至る – シリアルデータ( SDA )とシリアルクロック( SCL )の 2 本の 信号線によるシリアル通信 ● 電源ラインを含めてもたった 4 本の結線で使用可能 – Raspbian のデフォルトのカーネルで I2C が使える – 「アイ・スクエアド・シー」が正しい読み方 – ただ「アイ・ツー・シー」とも呼ばれる
  • 29. 29 I2 C 接続の温度計 -3-   I2 C でのデバイスの接続 ● I2C でのデバイス接続方法 – 一つのマスターデバイス(今回は Raspberry Pi )にスレーブデバイス ( 2 つ以上でも OK )を接続 – スレーブデバイスは I2C アドレス(大抵 7bit )を持ち、識別されます
  • 30. 30 I2 C 接続の温度計 -4-   TMP102 ● TMP102 の特徴 – I2C 接続で結線数が少ない(電源ライン込みで 4 本) – 3.3V で動作し、消費電力が少ない – 比較的安価 – 精度が 0.5℃ (分解能は 0.0625℃ ) – 使用例が多く WEB 上に情報が多い
  • 31. 31 I2 C 接続の温度計 -5- *   TMP102 ● TMP102 にピンヘッダーをハンダ付け – ブレッドボードに仮固定するとうまくできます
  • 32. 32 I2 C 接続の温度計 -6-  配線の確認 ● 事前に Fritzing で配線の確認
  • 33. 33 I2 C 接続の温度計 -7- *  実際に配線 ● I2C 用ピンヘッダーの配置上、配線が1ヶ所に集中します
  • 34. 34 I2 C 接続の温度計 -8-   Raspbian の準備 ● I2C モジュールの有効化(コメントアウトするだけ) $ sudo nano /etc/modprobe.d/raspi-blacklist.conf * Interface 誌増刊号 P.95 ~ 97
  • 35. 35 I2 C 接続の温度計 -9-   Raspbian の準備 ● i2c-dev モジュールを起動時に読み込ませる $ sudo nano /etc/modules
  • 36. 36 I2 C 接続の温度計 -10-   Raspbian の準備 ● 一旦 Raspberry Pi を再起動してログを確認 $ dmesg | grep i2c で以下の 3 行が出力されていることを確認 (lsmod コマンドでも OK) [ 4.686775] bcm2708_i2c bcm2708_i2c.0: BSC0      Controller at 0x20205000 (irq 79) (baudrate 100k) [ 4.897084] bcm2708_i2c bcm2708_i2c.1: BSC1      Controller at 0x20804000 (irq 79) (baudrate 100k) [ 14.220329] i2c /dev entries driver
  • 37. 37 I2 C 接続の温度計 -11-   I2 C 関連のパッケージをインストール ●I2Cデバイスを操作するのに必要なパッケージをインストール $ sudo apt-get install i2c-tools python-smbus ●今回使用している温度センサーTMP102はさきほどのように配線 すると、I2Cアドレスが0x49となります ●ちなみに、TMP102はI2Cアドレスを変えれば複数個接続出来ます – ADD0端子の接続先を変更するとI2Cアドレスが変わります
  • 38. 38 I2 C 接続の温度計 -12- *   TMP102 の動作確認 ● i2cdetect で確認 – 0x49 のところに 49 と表示されれば正常に通信できてい ます – なお、 Raspberry Pi Model B Rev.1 と それ以外で i2cdetect の引数が異なります
  • 39. 39 I2 C 接続の温度計 -13- ● 今回は I2C 操作に SMBus モジュールを使います – ただし、ドキュメントが極端に少ないです – Python3 系列が必須ですが quick2wire-python-api とい うものもあります ● スライドの関係上クラス等は作りませんでした * https://github.com/quick2wire/quick2wire-python-api
  • 40. 40 I2 C 接続の温度計 -14-   Python スクリプト #!/usr/bin/env python import smbus # TMP102のI2Cアドレスは0x49 addr = 0x49 # SMBusの引数はModel B Rev.1の場合0、Model B Rev.2、Model Aの場合1 i2c = smbus.SMBus(1) # TMP102から2バイト読み込みます temp = i2c.read_i2c_block_data( addr, 0 ,2) # 最後に、TMP102のデータシート通りに温度を計算して、画面表示します print temp[0] + (temp[1] >> 4) * 0.0625
  • 41. 41 I2 C 接続の温度計 -15- * ● GPIO へのアクセスは root 権限が必要なの で sudo コマンドを使います
  • 42. 42 I2 C 接続の応用 ● I2C 接続をマスターすると・・・ – 様々なセンサー類をつなぐことができる ● 温度、湿度、大気圧、 GPS 、加速度など – センサーの他にもいろいろつながります ● LCD 、 A/D コンバータ、 RTC(Real Time Clock) など – ぜひ TMP102 以外にもトライしてみて下さい
  • 44. 44 ありがとうございました 『 Big Raspberry JAM TOKYO 2013 Hardware 』 主催: Japanese Raspberry PI Users Group (http://www.RasPi.jp/) 後援:アールエスコンポーネンツ株式会社 (http://rs-components.jp/)    株式会社 KDDI ウェブコミュニケーションズ (http://www.cloudcore.jp/)