第12章 その他のデバイス

12.1. LED

12.1.1. ledctrlによる制御

ledctrlでは、ボード上のD1からD5までのLEDを制御することができます。ledctrlは、図12.1「ledctrlコマンドフォーマット」のように使用します。

[armadillo ~]# ledctrl [ledname] [command]

図12.1 ledctrlコマンドフォーマット


lednameには、制御対象のLED IDを指定[9]します。対応するID は、表12.1「ledctrl:ledname」のとおりです。

表12.1 ledctrl:ledname

LED IDデバイスデフォルトソフトウェアでの使用状況
led1D1使用しません
led2D2使用しません
led3D3使用しません
led4D4使用しません
led5D5ソフトウェアの起動ステータスを表示します。
allD1 ~ D5--

commandには、制御対象のLEDに対しての制御方法を指定します。command一覧は、表12.2「ledcrowl:command」のとおりです。

表12.2 ledcrowl:command

command動作
onLEDを点灯させます。
offLEDを消灯させます。
blink_on [interval_ms]

LEDの点滅を開始します。点滅間隔は、interval_msで指定します。デフォルトでは200msの点滅間隔となります。

また、点滅を開始する1つ前の状態を保存し、blink_off時に状態を元に戻すことができます。

blink_offLEDの点滅を終了します。
status

現在の状態を表示します。表示する項目は、

brightness、delay_on、delay_off

となります。


12.1.2. ledctrl使用例

  • 点灯させる

    [armadillo ~]# ledctrl all on

    図12.2 ledctrl使用例1


  • 消灯させる

    [armadillo ~]# ledctrl led1,led2 off

    図12.3 ledctrl使用例2


  • 点滅を開始させる

    [armadillo ~]# ledctrl led3 blink_on 500

    図12.4 ledctrl使用例3


  • 点滅を終了させる

    [armadillo ~]# ledctrl led3 blink_off

    図12.5 ledctrl使用例4


12.2. タクトスイッチ

12.2.1. swmgrによるイベント取得

swmgrでは、ボード上のSW1及びSW2の押下イベント[10]を取得し、指定する動作を実行することができます。

swmgrは、図12.6「swmgrコマンドフォーマット」のように使用します。

[armadillo ~]# swmgr [SW ID] [LOOP] [COMMAND]

図12.6 swmgrコマンドフォーマット


SW IDには、イベントを取得したいSWのIDを指定します。対応するIDは、表12.3「swmgr:SW ID」のとおりです。

表12.3 swmgr:SW ID

SW IDデバイス
sw1SW1
sw2SW2

LOOPには、イベントを待つ回数を指定します。0を指定すると無制限になります。

COMMANDには、イベントが発生した時に実行する動作を記述します。

12.2.2. swmgr使用例

SW1が押されたときに時刻を表示する

[armadillo ~]# swmgr sw1 1 date

図12.7 swmgr使用例1


SW1が押されたときにD5を点灯、SW2が押されたときにはD5を消灯する

[armadillo ~]# swmgr sw1 0 ledctrl led5 on &
[armadillo ~]# swmgr sw2 0 ledctrl led5 off &

※終了する場合は次のコマンドを実行します
[armadillo ~]# killall swmgr

図12.8 swmgr使用例2


12.3. GPIO

開発ボードのGPIO(CON16)は、/sys/devices/platform/armadillo5x0_gpio.0/portsの下にあるファイルを読み書きすることにより、簡易的に制御することができます。

制御できる項目は、表12.4「GPIOファイルノード」のとおりです。

表12.4 GPIOファイルノード

ファイル名説明
gpio*_dir

GPIOのDirectionを変更することができます。0を書き込むとINPUTに、1を書き込むことによりOUTPUTになります。それ以外は未定義となります。

読み出した場合は、現在の状態を取得できます。

gpio*_data

DirectionがINPUTの場合は、GPIOの現在の入力レベルを読み出すことができます。書き込みは無視されます。

DirectionがOUTPUTの場合は、GPIOの出力レベルを設定できます。読み出した場合は、現在の出力レベルを取得できます。

読み書きする値は、0でLOWレベルを表し、1でHIGHレベルを表します。

それ以外は未定義となります。


12.3.1. DirectionをINPUTにする

GPIO0(CON16 2ピン)を入力にする場合は、図12.9「GPIO:DirectionをINPUTにする」のようにコマンドを実行します。

[armadillo ~]# echo 0 > /sys/devices/platform/armadillo5x0_gpio.0/ports/gpio0_dir

図12.9 GPIO:DirectionをINPUTにする


現在のGPIO0の入力状態を取得するには、図12.10「GPIO:INPUT時の入力状態を取得する」のようにコマンドを実行します。

[armadillo ~]# cat /sys/devices/platform/armadillo5x0_gpio.0/ports/gpio0_data
0

図12.10 GPIO:INPUT時の入力状態を取得する


12.3.2. DirectionをOUTPUTにする

GPIO0(CON16 2ピン)を出力にする場合は、図12.11「DirectionをOUTPUTにする」のようにコマンドを実行します。

[armadillo ~]# echo 1 > /sys/devices/platform/armadillo5x0_gpio.0/ports/gpio0_dir

図12.11 DirectionをOUTPUTにする


HIGHレベルを出力するには、図12.12「OUTPUT時の出力状態を変更する」のようにコマンドを実行します。

[armadillo ~]# echo 1 > /sys/devices/platform/armadillo5x0_gpio.0/ports/gpio0_data

図12.12 OUTPUT時の出力状態を変更する




[9] LEDを複数指定する場合は、LED IDを','(カンマ)で区切って指定してください。

[10] SWを押してから離したときにイベントが発生します。