Big Raspberry JAM TOKYO 2013 Hardware

Hideki Aoshima
Hideki AoshimaSystems engineer at ALS Technology Co., Ltd.
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/)
1 of 44

Recommended

OSC Tokyo 2013 Spring JRPUG by
OSC Tokyo 2013 Spring JRPUGOSC Tokyo 2013 Spring JRPUG
OSC Tokyo 2013 Spring JRPUGHideki Aoshima
2.6K views23 slides
Takep lpc1114-190614 by
Takep lpc1114-190614Takep lpc1114-190614
Takep lpc1114-190614たけおか しょうぞう
521 views32 slides
Riscv+fpga200606 by
Riscv+fpga200606Riscv+fpga200606
Riscv+fpga200606たけおか しょうぞう
670 views26 slides
M5StackをRustで動かす by
M5StackをRustで動かすM5StackをRustで動かす
M5StackをRustで動かすKenta IDA
5.3K views18 slides
PYNQ祭りLT todotani by
PYNQ祭りLT todotaniPYNQ祭りLT todotani
PYNQ祭りLT todotaniKenshi Kamiya
3.8K views16 slides
レベルを上げて物理で殴る 16x9 by
レベルを上げて物理で殴る 16x9レベルを上げて物理で殴る 16x9
レベルを上げて物理で殴る 16x9Knit Tiger
2.8K views12 slides

More Related Content

What's hot

Pynq祭り資料 by
Pynq祭り資料Pynq祭り資料
Pynq祭り資料一路 川染
4.7K views41 slides
ESP32特集の内容紹介 by
ESP32特集の内容紹介ESP32特集の内容紹介
ESP32特集の内容紹介Kenta IDA
1.8K views23 slides
Analog Devices の IP コアを使う by
Analog Devices の IP コアを使うAnalog Devices の IP コアを使う
Analog Devices の IP コアを使うryos36
1.2K views25 slides
FPGAによるHDMI to LVDS変換器 by
FPGAによるHDMI to LVDS変換器FPGAによるHDMI to LVDS変換器
FPGAによるHDMI to LVDS変換器I_HaL
5.1K views25 slides
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム by
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステムPython, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステムJunichi Kakisako
22.1K views52 slides
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19) by
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
3.8K views16 slides

What's hot(20)

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

Viewers also liked

Shutter Speed Tester with Raspberry Pi by
Shutter Speed Tester with Raspberry PiShutter Speed Tester with Raspberry Pi
Shutter Speed Tester with Raspberry PiYuriko IKEDA
3.8K views22 slides
モータ位置制御 by
モータ位置制御モータ位置制御
モータ位置制御Tatsuya Yamamoto
1.3K views17 slides
Raspberry piでシリアルサーボ by
Raspberry piでシリアルサーボRaspberry piでシリアルサーボ
Raspberry piでシリアルサーボTatsuya Yamamoto
4K views16 slides
2016プロシンスポンサー 加筆版 by
2016プロシンスポンサー 加筆版2016プロシンスポンサー 加筆版
2016プロシンスポンサー 加筆版Hirokazu Nishio
1.4K views18 slides
RaspberryPiでおもちゃを作る by
RaspberryPiでおもちゃを作るRaspberryPiでおもちゃを作る
RaspberryPiでおもちゃを作るMasataka Tsukamoto
2.4K views50 slides
岐阜高専B-ロボット紹介 by
岐阜高専B-ロボット紹介岐阜高専B-ロボット紹介
岐阜高専B-ロボット紹介東海北陸ロボコン 交流会
1.3K views14 slides

Viewers also liked(13)

Shutter Speed Tester with Raspberry Pi by Yuriko IKEDA
Shutter Speed Tester with Raspberry PiShutter Speed Tester with Raspberry Pi
Shutter Speed Tester with Raspberry Pi
Yuriko IKEDA3.8K views
2016プロシンスポンサー 加筆版 by Hirokazu Nishio
2016プロシンスポンサー 加筆版2016プロシンスポンサー 加筆版
2016プロシンスポンサー 加筆版
Hirokazu Nishio1.4K views
I2CでRaspberry Piから 複数の周辺機器を制御する by Hirokazu Nishio
I2CでRaspberry Piから複数の周辺機器を制御するI2CでRaspberry Piから複数の周辺機器を制御する
I2CでRaspberry Piから 複数の周辺機器を制御する
Hirokazu Nishio22.9K views
Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp by Hideyuki TAKEI
 Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
Hideyuki TAKEI13.3K views
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側 by Takeshi HASEGAWA
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
Takeshi HASEGAWA132.6K views
実践イカパケット解析 by Yuki Mizuno
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
Yuki Mizuno118.7K views
LinuxをインストールしてWebサーバーを立ち上げてみよう by Masataka Tsukamoto
LinuxをインストールしてWebサーバーを立ち上げてみようLinuxをインストールしてWebサーバーを立ち上げてみよう
LinuxをインストールしてWebサーバーを立ち上げてみよう

Similar to Big Raspberry JAM TOKYO 2013 Hardware

楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~ by
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~Hideki Aoshima
20.8K views26 slides
簡単に楽しく始めよう!Raspberry Pi入門 by
簡単に楽しく始めよう!Raspberry Pi入門簡単に楽しく始めよう!Raspberry Pi入門
簡単に楽しく始めよう!Raspberry Pi入門Hideki Aoshima
6.5K views29 slides
Rasberrypi 2013-08-17 by
Rasberrypi 2013-08-17Rasberrypi 2013-08-17
Rasberrypi 2013-08-17Hashimoto Hisashi
57 views15 slides
ロボットシステム学2015年第7回 by
ロボットシステム学2015年第7回ロボットシステム学2015年第7回
ロボットシステム学2015年第7回Ryuichi Ueda
5.9K views22 slides
NetBSD/evbarm on Raspberry Pi by
NetBSD/evbarm on Raspberry PiNetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry Pitokudahiroshi
2.3K views8 slides
Starting qt5beta at_raspberry_pi Qtnagoya#6 by
Starting qt5beta at_raspberry_pi Qtnagoya#6Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6Kazuo Asano (@kazuo_asa)
2.1K views53 slides

Similar to Big Raspberry JAM TOKYO 2013 Hardware(20)

楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~ by Hideki Aoshima
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
Hideki Aoshima20.8K views
簡単に楽しく始めよう!Raspberry Pi入門 by Hideki Aoshima
簡単に楽しく始めよう!Raspberry Pi入門簡単に楽しく始めよう!Raspberry Pi入門
簡単に楽しく始めよう!Raspberry Pi入門
Hideki Aoshima6.5K views
ロボットシステム学2015年第7回 by Ryuichi Ueda
ロボットシステム学2015年第7回ロボットシステム学2015年第7回
ロボットシステム学2015年第7回
Ryuichi Ueda5.9K views
NetBSD/evbarm on Raspberry Pi by tokudahiroshi
NetBSD/evbarm on Raspberry PiNetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry Pi
tokudahiroshi2.3K views
Preview of Pidora18 at Big Raspberry JAM TOKYO 2013 Networking by Hideki Aoshima
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
Hideki Aoshima2.1K views
ぼちぼちぼっち開発 With raspberry pi アイデアソン 20141019 by catmoney
ぼちぼちぼっち開発 With raspberry pi アイデアソン 20141019ぼちぼちぼっち開発 With raspberry pi アイデアソン 20141019
ぼちぼちぼっち開発 With raspberry pi アイデアソン 20141019
catmoney2K views
Raspberry Jam #1 20121229 by Hideki Aoshima
Raspberry Jam #1 20121229Raspberry Jam #1 20121229
Raspberry Jam #1 20121229
Hideki Aoshima1.6K views
Code4NaraHandson2_151118 by 康司 石塚
Code4NaraHandson2_151118Code4NaraHandson2_151118
Code4NaraHandson2_151118
康司 石塚213 views
楽しく始めるRaspberry Pi、および最新動向(OSC 2014 Tokyo/Spring) by Hideki Aoshima
楽しく始めるRaspberry Pi、および最新動向(OSC 2014 Tokyo/Spring)楽しく始めるRaspberry Pi、および最新動向(OSC 2014 Tokyo/Spring)
楽しく始めるRaspberry Pi、および最新動向(OSC 2014 Tokyo/Spring)
Hideki Aoshima8.3K views
組込みAndroid入門実習 by ksk sue
組込みAndroid入門実習組込みAndroid入門実習
組込みAndroid入門実習
ksk sue10.2K views
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma... by Netwalker lab kapper
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で分散深層学習 by Hitoshi Sato
Singularityで分散深層学習Singularityで分散深層学習
Singularityで分散深層学習
Hitoshi Sato9.4K views
Raspberry Pi を楽しもう by hiro345
Raspberry Pi を楽しもうRaspberry Pi を楽しもう
Raspberry Pi を楽しもう
hiro3451.1K views
Android-controlled robot,Original PCB to work as a bridge between Android-pho... by Yasuhiro Ishii
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 Ishii595 views

Recently uploaded

Web3 Career_クレデン資料 .pdf by
Web3 Career_クレデン資料 .pdfWeb3 Career_クレデン資料 .pdf
Web3 Career_クレデン資料 .pdfnanamatsuo
14 views9 slides
SSH応用編_20231129.pdf by
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdficebreaker4
172 views13 slides
The Things Stack説明資料 by The Things Industries by
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things IndustriesCRI Japan, Inc.
41 views29 slides
さくらのひやおろし2023 by
さくらのひやおろし2023さくらのひやおろし2023
さくらのひやおろし2023法林浩之
91 views58 slides
01Booster Studio ご紹介資料 by
01Booster Studio ご紹介資料01Booster Studio ご紹介資料
01Booster Studio ご紹介資料ssusere7a2172
300 views19 slides
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...NTT DATA Technology & Innovation
73 views42 slides

Recently uploaded(12)

Web3 Career_クレデン資料 .pdf by nanamatsuo
Web3 Career_クレデン資料 .pdfWeb3 Career_クレデン資料 .pdf
Web3 Career_クレデン資料 .pdf
nanamatsuo14 views
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdf
icebreaker4172 views
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.41 views
さくらのひやおろし2023 by 法林浩之
さくらのひやおろし2023さくらのひやおろし2023
さくらのひやおろし2023
法林浩之91 views
01Booster Studio ご紹介資料 by ssusere7a2172
01Booster Studio ご紹介資料01Booster Studio ご紹介資料
01Booster Studio ご紹介資料
ssusere7a2172300 views
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development site
Atomu Hidaka71 views
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化 by Knowledge & Experience
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門
mkoda175 views

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/)