Raspberry Pi で遊ぼう


    あおしま ひでき



        Japanese Raspberry PI UG Jam 2012.12.29
About me



    AOSHIMA Hideki

    A member of Japanese Raspberry PI UG


    twitter: @azarashi55

    mail: azarashi55@gmail.com
Raspberry Pi = ARM 系 PC + α

    もちろん Linux を始めいろんな OS が動きます
      
          Raspbian”wheezy”
      
          Arch Linux ARM
      
          RISC OS
      
          FreeBSD
      
          etc.

    でもそれだけじゃないんです
      
          GPIO ヘッダーがついてます
GPIO ヘッダー(1)
コレです
GPIO ヘッダー(2)

    GPIO = General Purpose Input/Output (汎用入出力)

    Raspberry Pi の場合 13×2 の 26pin
        
            ただし Raspberry Pi の Rev. により GPIO のアサイ
            ンに違いあり
        
            例えば I2C のチャンネルが変わったりとかとか

    何に使うか
        
            UART,I2C,SPI,PWM(Pulse Width Modulation) など


* http://elinux.org/RPi_Low-level_peripherals
GPIO の注意点

    Raspberry Pi の GPIO は入出力電圧が 3.3V
       
           ちなみに Arduino は 5V

    GPIO は CPU 直結
       
           5V の入力は NG
       
           静電気にも注意

       
           レベルコンバータを使いましょう
                           これ重要。テストに出ます :-P
GPIO への接続例・応用例

    接続例
           
               USB- シリアル変換( UART 接続)
           
               超音波測距センサー( LV-MaxSonar-EZ シリーズな
               ど ,UART 接続)
           
               温度センサー( TMP102 など , I2C 接続)
           
               液晶モジュール( HD44780 互換がほとんど)

    応用例
           
               FM 送信機( Raspberry Pi 単体、かなりワイルド)

    etc.
GPIO の制御に使える言語

    Python

    Perl

    シェルスクリプト

    Ruby

    C 言語及びその派生言語

    Etc.

    少なくとも Linux を OS として使用している場合、ほと
    んどの言語で制御可能。
難易度は別問題 :-P
実際の応用例

    超音波測距センサー( LV-MaxSonar-EZ )をつないでみ
    た




                               SN74HC04
LV-MaxSonar-EZ

    超音波で距離を測るセンサー

    出力方法が多い
      
          アナログ電圧
      
          シリアル出力
      
          パルス出力

    今回はシリアル出力(楽だからねー)
      
          ただし、 74HC04 のようなロジック IC が必要
           
               シリアル出力が正論理という変態設計 :-P
回路図

    回路図はこんな感じ


    スイマセン、実物を見て下さい。

    このくらいのモノだと、回路図は手書きか、
    いきなりブレッドボードに作ってしまうので

というか、時間なかったし・・・   orz
コーディング

    Raspberry Pi なので、せっかくなら Python

    擬似コード
# シリアルポートのパラメータ設定
# シリアルポートを open
  # センサーからの文字列を受け取る( R034 )
  # 文字列処理したあと、インチ→ cm 換算
  # 結果を表示
結果・・・ダメじゃん




647.7cm と出ているのはノイズ
シリアル接続はあんまりオススメできないことがわかりました

OSC Tokyo では、実績のある温度センサー (TMP102) かなー
まとめ?

Raspberry Jam #1 20121229

  • 1.
    Raspberry Pi で遊ぼう あおしま ひでき Japanese Raspberry PI UG Jam 2012.12.29
  • 2.
    About me  AOSHIMA Hideki  A member of Japanese Raspberry PI UG  twitter: @azarashi55  mail: azarashi55@gmail.com
  • 3.
    Raspberry Pi =ARM 系 PC + α  もちろん Linux を始めいろんな OS が動きます  Raspbian”wheezy”  Arch Linux ARM  RISC OS  FreeBSD  etc.  でもそれだけじゃないんです  GPIO ヘッダーがついてます
  • 4.
  • 5.
    GPIO ヘッダー(2)  GPIO = General Purpose Input/Output (汎用入出力)  Raspberry Pi の場合 13×2 の 26pin  ただし Raspberry Pi の Rev. により GPIO のアサイ ンに違いあり  例えば I2C のチャンネルが変わったりとかとか  何に使うか  UART,I2C,SPI,PWM(Pulse Width Modulation) など * http://elinux.org/RPi_Low-level_peripherals
  • 6.
    GPIO の注意点  Raspberry Pi の GPIO は入出力電圧が 3.3V  ちなみに Arduino は 5V  GPIO は CPU 直結  5V の入力は NG  静電気にも注意  レベルコンバータを使いましょう これ重要。テストに出ます :-P
  • 7.
    GPIO への接続例・応用例  接続例  USB- シリアル変換( UART 接続)  超音波測距センサー( LV-MaxSonar-EZ シリーズな ど ,UART 接続)  温度センサー( TMP102 など , I2C 接続)  液晶モジュール( HD44780 互換がほとんど)  応用例  FM 送信機( Raspberry Pi 単体、かなりワイルド)  etc.
  • 8.
    GPIO の制御に使える言語  Python  Perl  シェルスクリプト  Ruby  C 言語及びその派生言語  Etc.  少なくとも Linux を OS として使用している場合、ほと んどの言語で制御可能。 難易度は別問題 :-P
  • 9.
    実際の応用例  超音波測距センサー( LV-MaxSonar-EZ )をつないでみ た SN74HC04
  • 10.
    LV-MaxSonar-EZ  超音波で距離を測るセンサー  出力方法が多い  アナログ電圧  シリアル出力  パルス出力  今回はシリアル出力(楽だからねー)  ただし、 74HC04 のようなロジック IC が必要  シリアル出力が正論理という変態設計 :-P
  • 11.
    回路図  回路図はこんな感じ スイマセン、実物を見て下さい。 このくらいのモノだと、回路図は手書きか、 いきなりブレッドボードに作ってしまうので というか、時間なかったし・・・ orz
  • 12.
    コーディング  Raspberry Pi なので、せっかくなら Python  擬似コード # シリアルポートのパラメータ設定 # シリアルポートを open   # センサーからの文字列を受け取る( R034 )   # 文字列処理したあと、インチ→ cm 換算   # 結果を表示
  • 13.
  • 14.