ラズパイ手に入れたら電子工作。
電子工作と言えばLEDを光らせる。
でしょうってことで光らせてみます。
■必要部な資材
・ラズパイ(すでにラズパイOSを入れているもの。pythonも動く)
・LED(適当に。今回は赤と緑を準備)
・抵抗(100~200Ωぐらい)
・ブレッドボード
・ジャンパ線
・GPIOの展開フラットケーブルと基盤
■配線
ブレッドボードに配線するとこんな感じ。
※抵抗は茶(1)茶(1)黒(0)黒(0乗数)紫(許容誤差)なので、110Ωかな~(読み方はこちら)
※未使用の線、LEDもははめ込んでます左から2列目。。青、黄、オレンジの線とLED。。
■必要なpythonモジュールをインストール
1)モジュールbs4を入れる
$ sudo pip3 install bs4
2)モジュールRPi.GPIOを入れる。なぜかpipでは入らない
$ sudo apt install python3-rpi.gpio
■pythonコード
#### param_led.py ####
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# GPIO24,25を出力としてLEDに給電する
import sys
import RPi.GPIO as GPIO
from time import sleep
import time
from fractions import Fraction
def light(color, interval):
t_end = time.time() + 10 * 3
GPIO.setmode(GPIO.BCM)
GPIO.setup(25, GPIO.OUT)
GPIO.setup(24, GPIO.OUT)
try:
while time.time() < t_end:
if (color == 'g'):
GPIO.output(25, GPIO.HIGH)
sleep(interval)
GPIO.output(25, GPIO.LOW)
sleep(interval)
elif (color == 'r'):
GPIO.output(24, GPIO.HIGH)
sleep(interval)
GPIO.output(24, GPIO.LOW)
sleep(interval)
else:
GPIO.output(24, GPIO.HIGH)
GPIO.output(25, GPIO.HIGH)
sleep(interval)
GPIO.output(24, GPIO.LOW)
GPIO.output(25, GPIO.LOW)
sleep(interval)
except KeyboardInterrupt:
pass
GPIO.cleanup()
if __name__ == '__main__':
argvs = sys.argv # コマンドライン引数を格納したリストの取得
argc = len(argvs) # 引数の個数
color = argvs[1]
interval = float(Fraction(argvs[2]))
light(color, interval)
■実行方法
$ python param_led.py {r | g } 点滅間隔(秒)
指定したLEDが、指定した点滅間隔で点滅します。
これを使って、世の中のいろいろな情報の上げ下げを可視化してみたり。
株価、為替、気温、、、ネットで公開されている情報を取得して点滅させる。
例えば、100円上がったら1/100間隔で緑点滅とか、点滅間隔が短いとより動いたんだな~とわかる。w
あまり高速だと、点滅がわからなくなるので、計算式を考えながら適度な点滅にしてみるのがいいかも。
LED増やして、random.random()使ったりして、いろんな色、間隔で点滅させるのもの面白いかもしれないね。色はランダム値の範囲で、単色、2色、3色とかにして。

