初心者向けRaspberry Pi GPIOの美味しい食べかた(インストール編)

GUIで作成&黒い画面での設定なし。マウスでRaspberryPiのGPIOが使えるPi_Scratchの使い方。
Linux・プログラミング初心者でも「Lチカ」以上の、色んなセンサーを組み合わせた「もの作り」を体験できます。

GPIO ?

Raspberry Pi(ラズベリーパイ)には外部の機器(電子部品、モーターなど)をつなげるためのGPIO(汎用入出力)端子と言うのがついており、この端子につなげた機器をラズベリーパイ内のプログラムからあれこれすることが可能です。

組み合わせはあなたのアイデア次第。実用的なモノから そうでないものまで色んなモノが作れます。

例)

  • 明るくなったらエアコンの電源を付けて、スマホに通知する
  • 温度を記録し、暑くなったら水をあげる
  • 遠隔地で夜ドアが開いていたらメールする などなど

Raspberry Piって何?って方はこちら

raspberrypi gpio

この針々してるのがGPIO端子

でも、難しいんでしょ?

この楽しそうなGPIOなのですが、使うためには黒い画面であれこれ設定したり、何だか難しげな”キーボードでカタカタするプログラム”を作るのが一般的です。Linux・プログラミング初心者が ちょっとだけ「GPIOを使った もの作り」を体験したいと思っても、若干ハードルが高かったのです。

でも、今回紹介するソフト(Pi_Scratch)を使うと、黒い画面や難しげなプログラムを殆ど触ることなく、直感的な操作でGPIOを使った(各種センサーや動力を組み合わせた)もの作りができます。

サンプルプログラムや”Lチカ”をやって RasPiホコリかぶってるなぁって方も、もう一度やってみませんか?

何ができるの?

できること

  • RaspberryPi(2/A+/B+/A/B)のGPIOを直感的な操作であれこれできます
  • 操作にはScratchと呼ばれる、主にマウスで”ブロックを組み合わせてプログラムを作る”言語を使います
  • 温度・気圧・距離・湿度・加速度センサー、ADコンバータ、赤外線リモコン、etcの情報を比較的簡単に取り込めます(対応の機器のみ。後述)
  • 各種モータ類(サーボ、アーム)、小型液晶、ドットマトリクスLED、etcを比較的簡単に動かせます(対応の機器のみ。後述)
  • キーボード・マウス・モニタ・LAN無しの状態で、RaspberryPiの電源をつけただけで、作成したプログラムの実行ができます
Scratchを使ってGPIOに中継するのが今回紹介するソフト。pythonで書かれています。

Scratchを使ってGPIOに中継するのが今回紹介するソフト。pythonで書かれています。

できないこと

  • 対応していないセンサーをマニュアルでどうのこうのする(ある程度はできるようです)
  • ソフトウェアPWM(バグ。昔は動いていたらしいので、その内 修正されるかもしれません)
  • 外部コマンドの実行
    Linuxのコマンドを叩いて、メール送ったり、url叩いたり、テキスト吐き出したり、他のアプリと連携することはできません(後述)

ScratchGPIOとの違い

同種のソフトでScratchGPIOと言うソフトがありますが、大きな違いは、対応している入出力機器の種類。

Pi_Scratchは開発元(Pridopia社)がRaspberry Piに接続する各種ボードを販売しており、それをScratchからいじれるようにした(ボードを買わなくても同一のセンサーなら使える場合が多い)ものです。

こんな風に使います(画面イメージ)

プログラムは下図のようなブロックを組み合わせて作っていきます。対応しているセンサーであれば命令は少しだけ。

スイッチを付けたらLEDが光るのサンプル。ブロックを組み合わせてプログラムを作ります。

スイッチボタンを押したらLEDが光るのサンプル。ブロックを組み合わせてプログラムを作ります。(GPIO10がスイッチの入力、11がLEDの出力)

対応のセンサーであればこれだけ(温度を測る)

対応のセンサーであればこれだけ(温度を測る)

左の例をpythonで書いたらこんな感じ。こちらの方が分かりやすかったら、下記のエントリーは見なくて良いかと...

左端の例をpythonで書いたらこんな感じ。こちらの方が分かりやすかったら、下記のエントリーは見なくて良いかと…

 

対応機器(2015/6/2現在)

※リンク先の商品の動作を保証しているわけではありません(若干型番が違ったりしています)。価格は参考価格です。

下記のものであれば特別な設定無く、比較的簡単に使用できます。

入力

  • 1-Wire DS18B20 Temperature Sensor(温度センサー / ¥300 / 秋月電子
  • i2c BMP085 Barometric Pressure/Temperature/Altitude Sensor(気圧・温度センサー /¥1,250 / 秋月電子
  • Ultrasonic Distance Sensor(超音波距離センサー / ¥400 / 秋月電子
  • spi mcp3002/mcp4802 AD/DA (アナログデジタルコンバータ /¥180 / 秋月電子 / これ経由で照度センサーなど)
  • DHT22 Digital Temperature & Humidity Sensor(温度&湿度センサー / ¥300 / 秋月電子
  • IR remote control set(赤外線リモコン)
  • IR- Line Hunting sensor, IR -Flame sensor(赤外線反射センサー)
  • IR- PIR Motion sensor(焦電型赤外線(人感)センサー / ¥600 / 秋月電子
  • MPU6050 sensor 3 Axis Gyroscope(3軸加速度センサー / ¥430 / Amazon
  • RFID Reader
  • Motor Wheel Encoder (Pi GPIO)
  • i2c 23017 GPIO Motor Wheel Encoder (i2c GPIO)
  • 4hub/7hub i2c RTC & Temperature sensor, AD/DA, EEPROM
  • i2c 8,16,32,64,128 GPIO board
  • spi 16,32,64,128 GPIO board

出力

モーター系

  • GPIO relay, DC Motor, stepper Motor
  • Relay Step Motor control
  • 8 DC Motor PWM controlr
  • Maplin USB Robot ARM control
  • 6 DOF (Degrees of Freedom) Servo Robot Arm

LED系(LEDが並んだブロック)

  • 24×16 & 16×16 LED Matrix
  • i2c PWM/servo board, 16×16 ,24×16 LED matrix
  • i2c PWM LED & GPIO LED control

LCD系(小さい液晶ディスプレー)

  • GPIO 16×2 LCD ,20×4 LCD , 84×48 LCD
  • i2c 16×2 LCD, i2c 20×4 LCD(¥1,280 / 秋月電子
  • New i2c & GPIO LCD command

最新の対応状況は下記公式ページをご覧下さい。

個々のセンサーの使い方は下記公式ページのUser Manualをご覧下さい。

Pi_Scratchのインストール方法

下記はRaspberry Pi 2の場合ですが、他の機種でも良く似た感じです。

詳しくは公式ページにありますが、

  1. 各種設定済みのイメージファイルをSDカードに書き込む方法
  2. 現在のRaspbianに手動で入れる方法

の2種類があります。

今回はハマルと嫌なので「Linux初心者が黒い画面を見ずに使える」を目指したいので、新しいSDカードを使って1の方法で。

設定済みイメージと言ってもRaspbianがベースになっているので、Raspbianに入っているものは基本全部入っています。既存のRaspbianに手動でインストールしたい&黒い画面が出ても大丈夫な場合は170ページ近い下記ユーザーマニュアル(pdf)の最初の方に方法が書いてあります。

インストールの流れ

  1. イメージファイル(分割ファイル)のダウンロード(Windows等他のPC)
  2. 上記ファイルの結合(Windows等他のPC)
  3. 上記イメージファイルをSDカードへ書き込む(Windows等他のPC)
  4. Raspberry PiにSDカードを入れ起動
  5. Raspbianの設定(ディスク拡張、ロケーション等)

イメージファイルをダウンロードする

上記公式ページから、お手持ちのRaspberry Piにあったイメージファイルをダウンロードします。

Raspberry Pi 2の場合、約4GBのファイルが1GBづつ分割されているため、4つのファイルをダウンロードします。

イメージファイルの結合

7-zipと言うアプリケーションをダウンロード&起動し、1つ目のイメージファイルを選択→右クリック→結合を押します。問題なければ結合され、Pi_Scratch_XXX-Pi-X.imgができあがります。

2015-06-02_16h51_35

1つ目のファイルを選択し結合を選ぶ

SDカードへ書き込み

NOOBSには対応していないため、上記のimgファイルをWin32DiskImagerを使って直接SDカードへ書き込みます(Windowsの場合)。

Image Fileで上記で結合したimgファイルを選択、DeviceでSDカードが入ったドライブを選択し、Writeを押します。

オフィシャルでは4GBに書き込んでいますが、16GBでも問題有りません。ただし、起動すると4GB分しか領域が確保されていないため、4GB以上のSDカードを使用する場合は、後に行う「ディスク領域の拡張」を行う必要があります。

書き込みには数分かかります

書き込みには数分かかります

Raspberry Piで起動

イメージファイルを書き込んだSDカードをRaspberry Piに入れ、起動します。
問題なく書き込まれていれば、RasbianのLXDE(GUIのデスクトップ)で起動し、自動的に黒い画面とScratchが起動します。

RaspberryPiを起動すると、自動的にScratchが起動し、この画面になる

RaspberryPiを起動すると自動的にScratchが起動し、この画面になる

Raspbianの設定

初回起動直後はキーボード、言語、時間が海外になったまま&ディスク領域が4GBの為、設定を行います。設定はターミナル(あー。黒い画面をここで少し使います)を起動し、下記のコマンドを実行します。

別に少々不便でもかまわない→とりあえずまずは体験だ!と言う方は、下記の設定をしなくてもセンサーを動かす事は可能です。

sudo raspi-config
  • ディスク領域拡張(4GB以上のSDカードに書き込んでいる場合)
    1.Expand Filesystemを選択します
    基本ずっとOKを押していけば、全領域が使われます。
  • ロケール、タイムゾーン、キーボード配列の変更
    ■ロケール
    4.Internationalisation Optionsを選択します
    1 Change Locale
    ja_JP.UFT-8 UTF-8
    ■タイムゾーン
    2 Change Timezone
    Asia→Tokyo
    ■キーボード配列
    3 Change Keyboard Layout
    Generic 105-key (Intel)PC
    Japanese – Japanese (OADG 109A)
あー。黒い画面はここで使うね。本当にPi_Scratchしか使わない(時間やキーボードが若干おかしくて良い)のであれば必須ではありません。

矢印とTABキーで移動。スペースで選択、エンターで確定、ESCキーで戻ります(マウスは使えません)。

 

ここまでできたら、さっそく使ってみましょう。
プログラミング初心者でもRaspberry PiのGPIO(汎用入出力)を使う方法(使い方編)へ続きます。

 

 

このエントリーをはてなブックマークに追加

同一タグの最新記事:

同一カテゴリ(IT)の最新記事:

最近投稿された記事:

他のカテゴリの記事も読んでみる: