chakokuのブログ(rev4)

テック・コミック・ごくまれにチャリ

BeagleBoneでLEDチカ (pythonお手軽版)

前回はハードの初期化をすべて自前でやるLEDチカサンプルを作ってみたけど、もっともお手軽な、OSのデバイスファイル?とPythonに頼り切ったサンプル。USER LEDはGPIOに繋がっているけどOSレベルでいろいろお膳立てしてくれているのでサンプルも極端に短くなるのであった。。以下はLED User3をチカチカさせるサンプル。。

#!/usr/bin/python
#
# LED blink test by python
# (LED:user3)
#
# this sample program may be executed by root priviledges

import os
import time

while 1 :
   os.system('echo 1 > /sys/class/leds/beaglebone::usr3/brightness')
   time.sleep(0.8)   
   os.system('echo 0 > /sys/class/leds/beaglebone::usr3/brightness')
   time.sleep(0.8)   

結局、デバイスファイル?に0か1を書くだけでLEDが点滅するので、、shでも十分。。

#!/bin/sh

while [ 1 ]
do
  echo 1 > /sys/class/leds/beaglebone::usr3/brightness
  sleep 1
  echo 0 > /sys/class/leds/beaglebone::usr3/brightness
  sleep 1
done

このお気楽感はRaspberryPiでも同じようで、ラズパイマガジン;MagPIには、LEDチカサンプルやPyhonでGPIOを叩く事例が紹介されています。Lチカぐらいはかなり手軽ですが、、ちょっと調べてもまったく分からないのは、、GPIOにスイッチを付けて割り込みで受け取る方法について、不明でございます。。Linuxではどうやってハードウエア割り込みを扱うのやら。。

http://sourceforge.jp/projects/linux-kernel-docs/wiki/2.3%E3%80%80%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E5%87%A6%E7%90%86
Linuxでは、割り込みとか言い出すと、途端にこういったドログチャの世界に入ってしまうのか。。

リアルタイムLinuxってのもあるようで、割り込みを扱うにはこういったアーキの方がいいのかも
http://www.ibm.com/developerworks/jp/linux/library/l-real-time-linux/


■ご参考URL
真剣に取り組んでいるLEDチカチカサンプル
http://www.gigamegablog.com/2012/01/05/beaglebone-coding-101-blinking-an-led/

UserLED用のデバイスのパスは以下のサイトを参考にしました
http://www.meadios.com/2012/01/blinking-leds-and-python/
http://pastebin.com/En6dmT3Q