SlideShare a Scribd company logo
1 of 23
Download to read offline
OSC 2013 Tokyo/Spring

    超小型 & 超安価 ARM コンピュータ

 Raspberry Pi でできること ~応用編~
    Raspberry Pi で温度計を作ってみる
         ( GPIO の初歩として )

             Japanese Raspberry Pi Users Group

            あおしま ひでき( @azarashi55 )
自己紹介
●   あおしま ひでき 
    –   某中小企業のシステムエンジニア
        (と言う名の何でも屋)
    –   Twitter: @azarashi55
    –   こういうアイコンを見つけたら要注意
    –   Japanese Raspberry PI Users Group
    –   汎用制御装置 GVC の開発にも携わる

                                            2
今日の内容
●   GPIO (汎用入出力)端子の初歩
●   Arduino との違いについて
●   今回使う I C プロトコルの簡単な説明
          2


●   今回作る温度計に使うデバイスと配線
●   Raspbian の準備と実際の温度計スクリプト
Raspberry Pi の魅力 -1-
●   CPU が(そこそこ)速い
    –   GPU 性能は抜群
●   安い(上位モデルの Model B で 35 米ドル)
●   美味しい  ・・・かどうかは知りません  (´ ・ ω ・ `)
    –   まじめに言うといろいろいじり甲斐がある
    –   応用がききます

    →ARM 系ボード界の牛丼!?
                                       4
Raspberry Pi の魅力 -2-
●   GPIO (汎用入出力)ヘッダーがついている
    –   普通の PC と異なり GPIO 端子がついていること
        により、多種多様な外部デバイスを接続可能
        ●   I2C 、 SPI 、 UART 、 etc...
    –   もちろん USB などの端子もあります

        → 普通の PC ではできないことができる!



                                        5
GPIO ヘッダーを見てみよ
う
●   GPIO ヘッダー
    これです




                 6
GPIO の応用例
●   よくある使い方
    –   USB- シリアル変換( Model A で便利)
    –   LCD キャラクターディスプレイ
    –   GPS センサー
    –   モーター制御   etc...
●   ワイルドな使い方
    –   FM 送信機(個人的にこういうバカっぽいネタは大好き)
                                      7
Arduino との違い
●   Arduino は入出力電圧が 5V 、 Raspberry Pi は 3.3V
    → 接続したいデバイスの動作電圧に注意しましょう
●   Arduino と異なり Raspberry Pi は A/D 変換機能がない
    → アナログデータはデジタルで入出力しなければいけない

    → 場合によっては Arduino の併用が楽かもしれません
●   ピンヘッダーが Arduino ではメス、
    Raspberry Pi ではオス


                                               8
温度計を作ろう
●   なぜ温度計か?
    –   使用するデバイス( TMP102 )が比較的安価( 600 円ぐら
        い)で入手しやすい( SWITCHSCIENCEなど)
    –   Raspberry Pi の GPIO ヘッダーに I2C (あとで触れます)
        の端子がある
    –   I2C 接続なのでデジタル入力で、かつ結線数が少ない
        →お手軽にできる 

        →GPIO 入門にはいいかと
    –   I2C 接続以外では DS18B20 の利用例もあります
                                                  9
I C ってなんだろう
    2


●   I2C とは
        –   もともとは 1980 年代初期に開発されたもの
            →その後改訂を経て今に至る
        –   シリアルデータ (SDA) とシリアルクロック (SCL) の2
            本の信号線のみで通信できる
            →実際にはこの他に電源ラインが必要
            →それでも電源ラインを含めて4本の結線で使える
        –   すでに特許が失効しているので自由に使える
        –   1つのマスターと1つ以上のスレーブから構成される
        –   Raspbian のデフォルトのカーネルで I2C が使える     10
実際に配線してみよう
●   Fritzing で大体の見た目と配線図確認

          TMP102




                    回路図
                             11
実際にはこんな感じ
●   ブレッドボードのほんの一部しか使いません




                           12
配線時の注意点
●   Raspberry Pi の電源を外しておく
●   念のため LAN ケーブル等も外しておく
●   GPIO のピンヘッダーを扱う際には静電気に
    要注意(空気の乾燥、衣服の種類などに気を
    使い、事前に家具などの金属部に触れるとい
    いでしょう)
    → GPIO ピンヘッダーは CPU 直結なので注
    意しましょう                      13
Raspbian の準備 -1-
●   Raspbian ではイメージを SD カードに書き込んだままの状態では
    I2C モジュールが有効になっていません
    $ sudo nano /etc/modprobe.d/raspi-blacklist.conf
        (nano でなくてもいいですが最初から nano が入っているため )
●   右のスクリーンショットのように
    blacklist i2c-bcm2708 の一行を
    コメントアウト
    –   行頭に#をつける




                                                       14
Raspbian の準備 -2-
●   次に I C デバイスを使えるようにカーネルモジュ
        2


    ールを起動時に読み込むように設定します

    $ sudo nano /etc/modules
●   右のスクリーンショットの
    ように
    i2c-dev の一行を追加し
    $ sudo reboot
    で再起動します
                                15
Raspbian の準備 -3-
●   一旦 Raspberry Pi を再起動したら、

    $ dmesg | grep i2c   ( $ dmesg | more でも OK)
    で以下の 3 行が出力されていることを確認します。

    [   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



                                                          16
TMP102 の動作確認準備
●   I C デバイスを操作するのに必要なパッケージをイ
    2


    ンストールします
    $ sudo apt-get install i2c-tools python-smbus
●   今回使用している温度センサー TMP102 は前記の
    ように配線すると、 I2C アドレスが 0x49 となり
    ます



                                                    17
TMP102 の動作確認
●   実際に i2cdetect というコマンドで確認してみます




●   上記のように 0x49 の箇所に 49 が表示されれば正常に
    通信できています
    → I2C のチャンネルが Rev.1 では 0 ですが、現在の
    Rev.2 では 1 に変更されていますのでご注意下さい
●   具体的には、 i2cdetect コマンドの引数が異なります     18
Python のスクリプト
●   今回は先ほどインストールした Python の SMBus モジ
    ュールを使いました。
    → 極端にドキュメントが少ないです
    → google 先生にいくら尋ねても本当にドキュメントが
    なくて泣けます
                         (私は情弱なのかしら)
●   本当はクラスとか使ってきちっと書くのですが、スラ
    イドなので簡略版


                                       19
というわけでスクリプト
#!/usr/bin/env python


import smbus


# TMP102 の I2C アドレスは 0x49
addr = 0x49


# SMBus の引数は Rev.1 の場合 0 、 Rev.2 の場合 1
# 何度もハードコーディングしてスイマセン、スイマセン、スイマセン
i2c = smbus.SMBus(0)


# TMP102 から2バイト読み込みます
temp = i2c.read_i2c_block_data( addr, 0 ,2)


# 最後に、 TMP102 のデータシート通りに温度を計算して、画面表示します
print temp[0] + (temp[1] >> 4) * 0.0625

                                              20
スクリプト動作結果
●   I C デバイスを操作するには root 権限が必要
    2


    なので sudo コマンドを使って実行します




                             21
温度計はほんの一例
●   今回ご紹介した Raspberry Pi で温度計は、
    あくまでほんの一例に過ぎません
●   GPIO のみではなく、有線 LAN 、無線
    LAN 、 USB などとの組み合わせで応用範囲
    は無限大です
●   ぜひ” Raspberry Pi で楽しみましょう”


                                  22
ご清聴ありがとうございま
した
●   展示ブースにて、同じ回路で、きちんとソー
    スコードを書いて、さらに Open JTalk を使
    った
    ”しゃべる温度計”
    のほか、当 Users Group 有志の展示があり
    ますので、ぜひお越しください



                                 23

More Related Content

What's hot

Raspberry pi 2用のi2cアダプターの
Raspberry pi 2用のi2cアダプターのRaspberry pi 2用のi2cアダプターの
Raspberry pi 2用のi2cアダプターのTakehiko Tomiyama
 
Androidとfpgaを高速fifo通信させちゃう
Androidとfpgaを高速fifo通信させちゃうAndroidとfpgaを高速fifo通信させちゃう
Androidとfpgaを高速fifo通信させちゃうksk sue
 
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼうYasuhiro Ishii
 
PYNQ祭りLT todotani
PYNQ祭りLT todotaniPYNQ祭りLT todotani
PYNQ祭りLT todotaniKenshi Kamiya
 
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519Yasuhiro Ishii
 
Fuji sakuraでmbedを!
Fuji sakuraでmbedを!Fuji sakuraでmbedを!
Fuji sakuraでmbedを!Tetsuya Noguchi
 
Fuji sakuraボード 2013/11/23
Fuji sakuraボード 2013/11/23Fuji sakuraボード 2013/11/23
Fuji sakuraボード 2013/11/23Takashi Kojo
 
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識marsee101
 
Arduinoを使ったgameboyカードリッジのdump
Arduinoを使ったgameboyカードリッジのdumpArduinoを使ったgameboyカードリッジのdump
Arduinoを使ったgameboyカードリッジのdump__106__
 
イチからはじめるUSB Host API
イチからはじめるUSB Host APIイチからはじめるUSB Host API
イチからはじめるUSB Host APIksk sue
 
PSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニットPSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニットKenta IDA
 
Raspberry PiとPdでオリジナルのシンセを作る
Raspberry PiとPdでオリジナルのシンセを作るRaspberry PiとPdでオリジナルのシンセを作る
Raspberry PiとPdでオリジナルのシンセを作るChikashi Miyama
 
Open Design Computer Project - Tsukuba.pm
Open Design Computer Project - Tsukuba.pmOpen Design Computer Project - Tsukuba.pm
Open Design Computer Project - Tsukuba.pmHirotaka Kawata
 
ラジコンをROSで制御してみた
ラジコンをROSで制御してみたラジコンをROSで制御してみた
ラジコンをROSで制御してみたshohaga
 
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~Hideki Aoshima
 
FPGAによるHDMI to LVDS変換器
FPGAによるHDMI to LVDS変換器FPGAによるHDMI to LVDS変換器
FPGAによるHDMI to LVDS変換器I_HaL
 
あるキャッシュメモリの話
あるキャッシュメモリの話あるキャッシュメモリの話
あるキャッシュメモリの話nullnilaki
 
FPGAスタートアップ資料
FPGAスタートアップ資料FPGAスタートアップ資料
FPGAスタートアップ資料marsee101
 
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会Hirotaka Kawata
 

What's hot (20)

Raspberry pi 2用のi2cアダプターの
Raspberry pi 2用のi2cアダプターのRaspberry pi 2用のi2cアダプターの
Raspberry pi 2用のi2cアダプターの
 
Androidとfpgaを高速fifo通信させちゃう
Androidとfpgaを高速fifo通信させちゃうAndroidとfpgaを高速fifo通信させちゃう
Androidとfpgaを高速fifo通信させちゃう
 
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
 
PYNQ祭りLT todotani
PYNQ祭りLT todotaniPYNQ祭りLT todotani
PYNQ祭りLT todotani
 
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
 
Fuji sakuraでmbedを!
Fuji sakuraでmbedを!Fuji sakuraでmbedを!
Fuji sakuraでmbedを!
 
Fuji sakuraボード 2013/11/23
Fuji sakuraボード 2013/11/23Fuji sakuraボード 2013/11/23
Fuji sakuraボード 2013/11/23
 
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
 
Arduinoを使ったgameboyカードリッジのdump
Arduinoを使ったgameboyカードリッジのdumpArduinoを使ったgameboyカードリッジのdump
Arduinoを使ったgameboyカードリッジのdump
 
イチからはじめるUSB Host API
イチからはじめるUSB Host APIイチからはじめるUSB Host API
イチからはじめるUSB Host API
 
Riscv+fpga200606
Riscv+fpga200606Riscv+fpga200606
Riscv+fpga200606
 
PSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニットPSoC4 BLEで作る簡単無線センサーユニット
PSoC4 BLEで作る簡単無線センサーユニット
 
Raspberry PiとPdでオリジナルのシンセを作る
Raspberry PiとPdでオリジナルのシンセを作るRaspberry PiとPdでオリジナルのシンセを作る
Raspberry PiとPdでオリジナルのシンセを作る
 
Open Design Computer Project - Tsukuba.pm
Open Design Computer Project - Tsukuba.pmOpen Design Computer Project - Tsukuba.pm
Open Design Computer Project - Tsukuba.pm
 
ラジコンをROSで制御してみた
ラジコンをROSで制御してみたラジコンをROSで制御してみた
ラジコンをROSで制御してみた
 
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
 
FPGAによるHDMI to LVDS変換器
FPGAによるHDMI to LVDS変換器FPGAによるHDMI to LVDS変換器
FPGAによるHDMI to LVDS変換器
 
あるキャッシュメモリの話
あるキャッシュメモリの話あるキャッシュメモリの話
あるキャッシュメモリの話
 
FPGAスタートアップ資料
FPGAスタートアップ資料FPGAスタートアップ資料
FPGAスタートアップ資料
 
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
 

Similar to OSC Tokyo 2013 Spring JRPUG

今すぐ始めるArduino
今すぐ始めるArduino今すぐ始めるArduino
今すぐ始めるArduinofuna3
 
【入門】Arduino勉強会
【入門】Arduino勉強会【入門】Arduino勉強会
【入門】Arduino勉強会Masashi_Brilliant
 
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
 
Internet of Things
Internet of ThingsInternet of Things
Internet of ThingsRainmaker Ho
 
簡単に楽しく始めよう!Raspberry Pi入門
簡単に楽しく始めよう!Raspberry Pi入門簡単に楽しく始めよう!Raspberry Pi入門
簡単に楽しく始めよう!Raspberry Pi入門Hideki Aoshima
 
2016年12月21日 AITCシニア技術者勉強会 第2回「センサに反応する総天然色イルミネーションを作ってみよう!」
2016年12月21日 AITCシニア技術者勉強会 第2回「センサに反応する総天然色イルミネーションを作ってみよう!」 2016年12月21日 AITCシニア技術者勉強会 第2回「センサに反応する総天然色イルミネーションを作ってみよう!」
2016年12月21日 AITCシニア技術者勉強会 第2回「センサに反応する総天然色イルミネーションを作ってみよう!」 aitc_jp
 
Osc hokkaido2015 arduinoで温度を測るところまで
Osc hokkaido2015 arduinoで温度を測るところまでOsc hokkaido2015 arduinoで温度を測るところまで
Osc hokkaido2015 arduinoで温度を測るところまでrarere
 
NetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry PiNetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry Pitokudahiroshi
 
イチからはじめるADK北海道支部勉強会発表資料
イチからはじめるADK北海道支部勉強会発表資料イチからはじめるADK北海道支部勉強会発表資料
イチからはじめるADK北海道支部勉強会発表資料Kenichi Yoshida
 
超激安WinタブレットにLinux、*BSDを入れて 賢く経済的にリサイクルしよう in OSC東京2018 #osc18tk
超激安WinタブレットにLinux、*BSDを入れて 賢く経済的にリサイクルしよう in OSC東京2018 #osc18tk超激安WinタブレットにLinux、*BSDを入れて 賢く経済的にリサイクルしよう in OSC東京2018 #osc18tk
超激安WinタブレットにLinux、*BSDを入れて 賢く経済的にリサイクルしよう in OSC東京2018 #osc18tkNetwalker lab kapper
 
はじめてのUserLAnd。AndroidでUbuntu,Debian ArchLinuxなどをprootで動かそう Beginner for inst...
はじめてのUserLAnd。AndroidでUbuntu,Debian ArchLinuxなどをprootで動かそう  Beginner for inst...はじめてのUserLAnd。AndroidでUbuntu,Debian ArchLinuxなどをprootで動かそう  Beginner for inst...
はじめてのUserLAnd。AndroidでUbuntu,Debian ArchLinuxなどをprootで動かそう Beginner for inst...Netwalker lab kapper
 
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣三七男 山本
 
マイコンボード色々 2017.03
マイコンボード色々 2017.03マイコンボード色々 2017.03
マイコンボード色々 2017.03Hirokazu Tokuno
 
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
 
組込みAndroid入門実習
組込みAndroid入門実習組込みAndroid入門実習
組込みAndroid入門実習ksk sue
 
PYNQ 祭り: Pmod のプログラミング
PYNQ 祭り: Pmod のプログラミングPYNQ 祭り: Pmod のプログラミング
PYNQ 祭り: Pmod のプログラミングryos36
 
M5Stackの拡張基板を作ってjimmyに届けた話
M5Stackの拡張基板を作ってjimmyに届けた話M5Stackの拡張基板を作ってjimmyに届けた話
M5Stackの拡張基板を作ってjimmyに届けた話Masawo Yamazaki
 

Similar to OSC Tokyo 2013 Spring JRPUG (20)

今すぐ始めるArduino
今すぐ始めるArduino今すぐ始めるArduino
今すぐ始めるArduino
 
【入門】Arduino勉強会
【入門】Arduino勉強会【入門】Arduino勉強会
【入門】Arduino勉強会
 
Lagos running on small factor machine
Lagos running on small factor machineLagos running on small factor machine
Lagos running on small factor machine
 
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)
 
Imaocande LT
Imaocande LTImaocande LT
Imaocande LT
 
Internet of Things
Internet of ThingsInternet of Things
Internet of Things
 
retrobsd-2012-JUL-07 at JNUG BSD BoF
retrobsd-2012-JUL-07 at JNUG BSD BoFretrobsd-2012-JUL-07 at JNUG BSD BoF
retrobsd-2012-JUL-07 at JNUG BSD BoF
 
簡単に楽しく始めよう!Raspberry Pi入門
簡単に楽しく始めよう!Raspberry Pi入門簡単に楽しく始めよう!Raspberry Pi入門
簡単に楽しく始めよう!Raspberry Pi入門
 
2016年12月21日 AITCシニア技術者勉強会 第2回「センサに反応する総天然色イルミネーションを作ってみよう!」
2016年12月21日 AITCシニア技術者勉強会 第2回「センサに反応する総天然色イルミネーションを作ってみよう!」 2016年12月21日 AITCシニア技術者勉強会 第2回「センサに反応する総天然色イルミネーションを作ってみよう!」
2016年12月21日 AITCシニア技術者勉強会 第2回「センサに反応する総天然色イルミネーションを作ってみよう!」
 
Osc hokkaido2015 arduinoで温度を測るところまで
Osc hokkaido2015 arduinoで温度を測るところまでOsc hokkaido2015 arduinoで温度を測るところまで
Osc hokkaido2015 arduinoで温度を測るところまで
 
NetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry PiNetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry Pi
 
イチからはじめるADK北海道支部勉強会発表資料
イチからはじめるADK北海道支部勉強会発表資料イチからはじめるADK北海道支部勉強会発表資料
イチからはじめるADK北海道支部勉強会発表資料
 
超激安WinタブレットにLinux、*BSDを入れて 賢く経済的にリサイクルしよう in OSC東京2018 #osc18tk
超激安WinタブレットにLinux、*BSDを入れて 賢く経済的にリサイクルしよう in OSC東京2018 #osc18tk超激安WinタブレットにLinux、*BSDを入れて 賢く経済的にリサイクルしよう in OSC東京2018 #osc18tk
超激安WinタブレットにLinux、*BSDを入れて 賢く経済的にリサイクルしよう in OSC東京2018 #osc18tk
 
はじめてのUserLAnd。AndroidでUbuntu,Debian ArchLinuxなどをprootで動かそう Beginner for inst...
はじめてのUserLAnd。AndroidでUbuntu,Debian ArchLinuxなどをprootで動かそう  Beginner for inst...はじめてのUserLAnd。AndroidでUbuntu,Debian ArchLinuxなどをprootで動かそう  Beginner for inst...
はじめてのUserLAnd。AndroidでUbuntu,Debian ArchLinuxなどをprootで動かそう Beginner for inst...
 
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
 
マイコンボード色々 2017.03
マイコンボード色々 2017.03マイコンボード色々 2017.03
マイコンボード色々 2017.03
 
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...
 
組込みAndroid入門実習
組込みAndroid入門実習組込みAndroid入門実習
組込みAndroid入門実習
 
PYNQ 祭り: Pmod のプログラミング
PYNQ 祭り: Pmod のプログラミングPYNQ 祭り: Pmod のプログラミング
PYNQ 祭り: Pmod のプログラミング
 
M5Stackの拡張基板を作ってjimmyに届けた話
M5Stackの拡張基板を作ってjimmyに届けた話M5Stackの拡張基板を作ってjimmyに届けた話
M5Stackの拡張基板を作ってjimmyに届けた話
 

Recently uploaded

論文紹介: 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
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
論文紹介: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
 
論文紹介: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
 

Recently uploaded (11)

論文紹介: 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
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
論文紹介: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
 
論文紹介: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...
 

OSC Tokyo 2013 Spring JRPUG

  • 1. OSC 2013 Tokyo/Spring 超小型 & 超安価 ARM コンピュータ Raspberry Pi でできること ~応用編~ Raspberry Pi で温度計を作ってみる ( GPIO の初歩として ) Japanese Raspberry Pi Users Group あおしま ひでき( @azarashi55 )
  • 2. 自己紹介 ● あおしま ひでき  – 某中小企業のシステムエンジニア (と言う名の何でも屋) – Twitter: @azarashi55 – こういうアイコンを見つけたら要注意 – Japanese Raspberry PI Users Group – 汎用制御装置 GVC の開発にも携わる 2
  • 3. 今日の内容 ● GPIO (汎用入出力)端子の初歩 ● Arduino との違いについて ● 今回使う I C プロトコルの簡単な説明 2 ● 今回作る温度計に使うデバイスと配線 ● Raspbian の準備と実際の温度計スクリプト
  • 4. Raspberry Pi の魅力 -1- ● CPU が(そこそこ)速い – GPU 性能は抜群 ● 安い(上位モデルの Model B で 35 米ドル) ● 美味しい  ・・・かどうかは知りません  (´ ・ ω ・ `) – まじめに言うといろいろいじり甲斐がある – 応用がききます →ARM 系ボード界の牛丼!? 4
  • 5. Raspberry Pi の魅力 -2- ● GPIO (汎用入出力)ヘッダーがついている – 普通の PC と異なり GPIO 端子がついていること により、多種多様な外部デバイスを接続可能 ● I2C 、 SPI 、 UART 、 etc... – もちろん USB などの端子もあります → 普通の PC ではできないことができる! 5
  • 6. GPIO ヘッダーを見てみよ う ● GPIO ヘッダー これです 6
  • 7. GPIO の応用例 ● よくある使い方 – USB- シリアル変換( Model A で便利) – LCD キャラクターディスプレイ – GPS センサー – モーター制御   etc... ● ワイルドな使い方 – FM 送信機(個人的にこういうバカっぽいネタは大好き) 7
  • 8. Arduino との違い ● Arduino は入出力電圧が 5V 、 Raspberry Pi は 3.3V → 接続したいデバイスの動作電圧に注意しましょう ● Arduino と異なり Raspberry Pi は A/D 変換機能がない → アナログデータはデジタルで入出力しなければいけない → 場合によっては Arduino の併用が楽かもしれません ● ピンヘッダーが Arduino ではメス、 Raspberry Pi ではオス 8
  • 9. 温度計を作ろう ● なぜ温度計か? – 使用するデバイス( TMP102 )が比較的安価( 600 円ぐら い)で入手しやすい( SWITCHSCIENCEなど) – Raspberry Pi の GPIO ヘッダーに I2C (あとで触れます) の端子がある – I2C 接続なのでデジタル入力で、かつ結線数が少ない →お手軽にできる  →GPIO 入門にはいいかと – I2C 接続以外では DS18B20 の利用例もあります 9
  • 10. I C ってなんだろう 2 ● I2C とは – もともとは 1980 年代初期に開発されたもの →その後改訂を経て今に至る – シリアルデータ (SDA) とシリアルクロック (SCL) の2 本の信号線のみで通信できる →実際にはこの他に電源ラインが必要 →それでも電源ラインを含めて4本の結線で使える – すでに特許が失効しているので自由に使える – 1つのマスターと1つ以上のスレーブから構成される – Raspbian のデフォルトのカーネルで I2C が使える 10
  • 11. 実際に配線してみよう ● Fritzing で大体の見た目と配線図確認 TMP102 回路図 11
  • 12. 実際にはこんな感じ ● ブレッドボードのほんの一部しか使いません 12
  • 13. 配線時の注意点 ● Raspberry Pi の電源を外しておく ● 念のため LAN ケーブル等も外しておく ● GPIO のピンヘッダーを扱う際には静電気に 要注意(空気の乾燥、衣服の種類などに気を 使い、事前に家具などの金属部に触れるとい いでしょう) → GPIO ピンヘッダーは CPU 直結なので注 意しましょう 13
  • 14. Raspbian の準備 -1- ● Raspbian ではイメージを SD カードに書き込んだままの状態では I2C モジュールが有効になっていません $ sudo nano /etc/modprobe.d/raspi-blacklist.conf (nano でなくてもいいですが最初から nano が入っているため ) ● 右のスクリーンショットのように blacklist i2c-bcm2708 の一行を コメントアウト – 行頭に#をつける 14
  • 15. Raspbian の準備 -2- ● 次に I C デバイスを使えるようにカーネルモジュ 2 ールを起動時に読み込むように設定します $ sudo nano /etc/modules ● 右のスクリーンショットの ように i2c-dev の一行を追加し $ sudo reboot で再起動します 15
  • 16. Raspbian の準備 -3- ● 一旦 Raspberry Pi を再起動したら、 $ dmesg | grep i2c   ( $ dmesg | more でも OK) で以下の 3 行が出力されていることを確認します。 [ 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 16
  • 17. TMP102 の動作確認準備 ● I C デバイスを操作するのに必要なパッケージをイ 2 ンストールします $ sudo apt-get install i2c-tools python-smbus ● 今回使用している温度センサー TMP102 は前記の ように配線すると、 I2C アドレスが 0x49 となり ます 17
  • 18. TMP102 の動作確認 ● 実際に i2cdetect というコマンドで確認してみます ● 上記のように 0x49 の箇所に 49 が表示されれば正常に 通信できています → I2C のチャンネルが Rev.1 では 0 ですが、現在の Rev.2 では 1 に変更されていますのでご注意下さい ● 具体的には、 i2cdetect コマンドの引数が異なります 18
  • 19. Python のスクリプト ● 今回は先ほどインストールした Python の SMBus モジ ュールを使いました。 → 極端にドキュメントが少ないです → google 先生にいくら尋ねても本当にドキュメントが なくて泣けます (私は情弱なのかしら) ● 本当はクラスとか使ってきちっと書くのですが、スラ イドなので簡略版 19
  • 20. というわけでスクリプト #!/usr/bin/env python import smbus # TMP102 の I2C アドレスは 0x49 addr = 0x49 # SMBus の引数は Rev.1 の場合 0 、 Rev.2 の場合 1 # 何度もハードコーディングしてスイマセン、スイマセン、スイマセン i2c = smbus.SMBus(0) # TMP102 から2バイト読み込みます temp = i2c.read_i2c_block_data( addr, 0 ,2) # 最後に、 TMP102 のデータシート通りに温度を計算して、画面表示します print temp[0] + (temp[1] >> 4) * 0.0625 20
  • 21. スクリプト動作結果 ● I C デバイスを操作するには root 権限が必要 2 なので sudo コマンドを使って実行します 21
  • 22. 温度計はほんの一例 ● 今回ご紹介した Raspberry Pi で温度計は、 あくまでほんの一例に過ぎません ● GPIO のみではなく、有線 LAN 、無線 LAN 、 USB などとの組み合わせで応用範囲 は無限大です ● ぜひ” Raspberry Pi で楽しみましょう” 22
  • 23. ご清聴ありがとうございま した ● 展示ブースにて、同じ回路で、きちんとソー スコードを書いて、さらに Open JTalk を使 った ”しゃべる温度計” のほか、当 Users Group 有志の展示があり ますので、ぜひお越しください 23