あっきぃ日誌

鉄道ブログのような技術系ブログのようななにか

Raspberry Piで電子工作もどき事始め。

Raspberry Piといえば、GPIOポートを使って遊ぶことができるので電子工作の学習にも良いことで知られますが、私もRasPiのGPIOで遊びたいなと言う欲求がようやく出てきたので遊んでみました。
参考にしたページはこちら。
https://projects.drogon.net/raspberry-pi/gpio-examples/tux-crossing/gpio-examples-1-a-single-led/
http://elinux.org/RPi_Low-level_peripherals
一番簡単なものでかつ自分の今のところの限界ということで、LEDの点滅に挑戦。材料は3.3VのLED球と、抵抗のみ。抵抗は270Ω〜330Ωとの指定が書かれていますが、手元にちょうどのものがなかったので、470Ωの抵抗を使いました。低すぎるとLEDを壊す可能性がありそうですが、高すぎる分には暗くなるだけのはずなので、大丈夫のはずです(実際大丈夫でした)。
ページの指示通り、まずはなにも制御をしないただの点灯。ちゃんと点きました。白LEDを使ったので、抵抗値が大きいけどむしろまだ眩しいぐらい。推奨値だったらどんな明るさになるのかと。

続けてGPIOでON/OFF制御するほうに挑戦。1番ピンに指していたところを11番ピン(GPIO0)に移動してやります。ちなみに、ジャンパピンを使っているのは、他にそれっぽいのがなかっただけです。それっぽい電子工作グッズもそろそろ多少買い揃えましょうかね……。

で、今回はとりあえずターミナルでコマンドを叩いて制御。

$ ### root権限でやる
$ sudo su -
# ### GPIO0を初期化(ピンのGPIO番号と、OS上のGPIO番号は一致していないらしい) *2013/3/18 typo修正
# echo "17" > /sys/class/gpio/export
# echo "out" > /sys/class/gpio/gpio17/direction
# ### LED点灯
# echo "1" > /sys/class/gpio/gpio17/value
# ### LED消灯
# echo "0" > /sys/class/gpio/gpio17/value
# ### 不要になったらunexportで開放できる
# echo "17" > /sys/class/gpio/unexport

というわけで、GPIO制御でLEDをON/OFFできるようになりました。

シェルスクリプトで何のひねりもなく適当にループ作って実行したものがこちら。

#!/bin/sh
while :
do
  echo "0" > /sys/class/gpio/gpio17/value
  sleep 1
  echo "1" > /sys/class/gpio/gpio17/value
  sleep 1
done


ご覧のとおり白LEDだと非常に明るいので、これを活用して、ゆきちゃんの夜間用ライトとかを作れそうです。LEDの数ももう少しふやしたりできると良さそう。各種言語からのGPIO制御もできるっぽいので、Webで操作とかできるようにするとかもやってみたいところ〜。
というわけで、常設用にもう1機欲しくなりました(ી( ՞ਊ ՞)ʃ)<ちょきんする