Raspbian 資料一覧
2016/10/10更新
対応バージョン: Raspbian Jessie Lite - September 2016
Raspberry Pi 3にLEDを接続して光らせ、点滅させてみる。
オススメの教本は金丸隆志さんの「カラー図解 最新 Raspberry Piで学ぶ電子工作」。
我々のようなインフラエンジニアにとってはOSのインストールやLinuxの使い方などより電気回路の仕組みやプログラムからの制御といった部分にフォーカスしているのでとても有益である。
また書籍のサポートページが開設されているのも親切で、様々な追加情報が手に入る。
カラー図解 最新 Raspberry Piで学ぶ電子工作 作って動かしてしくみがわかる サポートページ (ブルーバックス・講談社BOOK倶楽部)
Lピカ

ブレッドボードを用意して教本P74に従いRaspberry PiのGPIOポート1ピン(3.3V電源) → 抵抗(330Ω) → LEDのアノード(+) → LEDのカソード(-) → GPIOポート6ピン(GND)の流れになるように結線すれば簡単にLEDが点灯する。
なお、用意したLEDは順電圧1.8〜2.4V、順電流20mA(0.020A)なので必要な抵抗値は以下のオームの法則に従って75〜45Ωとなるが、今回はそれより大きな330Ωを使用している。
電圧(V) = 抵抗(R) * 電流(I)順電圧1.8Vの場合の必要な抵抗値
R = Vf / If = (3.3 - 1.8) / 0.020 = 1.5 / 0.020 = 75
順電圧2.4Vの場合の必要な抵抗値
R = Vf / If = (3.3 - 2.4) / 0.020 = 0.9 / 0.020 = 45
Lチカ

電源供給元をRaspberry PiのGPIOポート1ピン(3.3V電源)から22ピン(GPIO 25)に変更し、以下のPythonプログラムを書いて実行すればGPIO 25の状態(HIGHとLOW)が交互に切り替わってLEDが点滅する。
lchika.py
#!/usr/bin/env python import RPi.GPIO as GPIO from time import sleep PIN = 25 GPIO.setmode(GPIO.BCM) GPIO.setup(PIN, GPIO.OUT) try: while True: GPIO.output(PIN, GPIO.HIGH) sleep(0.5) GPIO.output(PIN, GPIO.LOW) sleep(0.5) except KeyboardInterrupt: pass GPIO.cleanup(PIN)
Lマリオ

消灯後のsleepのタイミングを外部ファイルに書いておいてそれを読み込んで一回一回の点滅タイミングを変えるとそれっぽい雰囲気になる(この画像だと分かりにくいが実際にやってみるとなんとなくそれっぽく見える)。
lmario.conf
0.1 0.25 0.25 0.1 0.3 0.6
lmario.py
#!/usr/bin/env python import RPi.GPIO as GPIO from time import sleep PIN = 25 GPIO.setmode(GPIO.BCM) GPIO.setup(PIN, GPIO.OUT) f = open('lmario.conf', 'r') for line in f: interval = float(line.rstrip()) GPIO.output(PIN, GPIO.HIGH) sleep(0.15) GPIO.output(PIN, GPIO.LOW) sleep(interval) f.close() GPIO.cleanup(PIN)
このタイミングを決めるにあたって以下のサイトが参考になったので紹介しておく。シーン毎の楽譜・MIDIファイル・ビデオデモが用意されているので見ていてとても楽しい。
Mario Piano Sheet Music & Video Demo Tutorials

関連資料・記事
参考サイト
Raspberry Pi (Wikipedia)
RaspberryPi技術情報 (Qiita)
Raspbian技術情報 (Qiita)
IT女子のラズベリーパイ入門奮闘記 (Device Plus)
RaspberryPi電子工作入門 (ツール・ラボ)