工場出荷状態でフラッシュメモリに書き込まれているイメージファイルは、最新版ではない可能性があります。最新版のブートローダーおよび LinuxカーネルイメージファイルはArmadilloサイトから、ユーザーランドイメージファイルはユーザーズサイトからダウンロード可能です。最新版のイメージファイルに書き換えてからのご使用を推奨します。
イメージファイルの書き換えについては、12章フラッシュメモリの書き換え方法を参照してください。
ここでは、ネットワークの設定方法やネットワークを利用するアプリケーションについて説明します。
Armadillo-IoT は、複数の種類のネットワークに接続することができます。接続可能なネットワークとLinuxから使用するネットワークデバイスの対応を次に示します。
表6.1 ネットワークとネットワークデバイス ネットワーク | ネットワークデバイス | 備考 |
---|
有線LAN | eth0 | | 無線WLAN | awlan0 | Armadillo-WLAN(AWL13) 搭載 | 3G | usb0 | Sierra Wireless製 MC8090 搭載 |
ネットワーク設定は、/etc/config/interfaces に記述されています。デフォルト状態では、次のように設定されています。
表6.2 デフォルト状態のネットワーク設定 インターフェース | 種類 | 設定 | 起動時に有効化 |
---|
lo | TCP/IP | ループバック | 有効 | eth0 | TCP/IP | DHCP | 有効 | usb0 | TCP/IP | DHCP | 無効 | awlan0 | 未設定 | 未設定 | 未設定 |
ここでは有線LANの使用方法について説明します。
6.2.3.1. 有線LANインターフェースの有効化、無効化無効化されている有線LANインターフェースを有効化するには、次のようにコマンドを実行します。 有効化されている有線LANインターフェースを無効化するには、次のようにコマンドを実行します。 6.2.3.2. 有線LANのネットワーク設定を変更する
有線LANのネットワーク設定を変更する方法について説明します。
| |
---|
ネットワーク接続に関する不明な点については、ネットワークの管理者へ相談してください。
|
Armadillo-IoT上の「/etc/config 」以下にあるファイルを編集し、コンフィグ領域に保存することにより起動時のネットワーク設定を変更することができます。コンフィグ領域の保存については、7章コンフィグ領域 − 設定ファイルの保存領域を参照してください。
| |
---|
設定を変更する場合は、かならずネットワークを無効化してから行ってください。変更してからネットワークを無効化しても、「新しい設定」を無効化することになります。「古い設定」が無効化されるわけではありません。
|
6.2.3.2.2. 有線LANをDHCPに設定する
DHCPに設定する例を、図6.5「DHCP設定」に示します。
DHCPに設定するには、viエディタで/etc/config/interfaces を、次のように編集します。
有線LANで正常に通信が可能か確認します。設定を変更した場合、かならず変更したインターフェースを再度有効化してください。
同じネットワーク内にある通信機器とPING通信を行います。以下の例では、通信機器が「192.0.2.20」というIPアドレスを持っていると想定しています。
| |
---|
awlan0 または usb0 を使用してネットワークに接続している場合、ネットワーク通信に eth0 が使用されない場合があります。確実に eth0 を使用させる場合は、事前に eth0 以外のネットワークインターフェースを無効化してください。
|
ここでは、Armadillo-IoT に搭載されている無線LANモジュール「Armadillo-WLANモジュール(AWL13)」の使用方法について説明します。
6.2.4.1. WLAN インターフェースの有効化
Armadillo-WLANモジュール(AWL13)が接続されている WLAN インターフェース(ベースボード:CON5)と SD インターフェース(ベースボード:CON4)は、共通の信号が接続されています。工場出荷状態のソフトウェアでは、デフォルトで SD インターフェースが有効化されているため、無線LANモジュールを利用することができません。
WLAN インターフェースを有効化するためには、図6.7「無線LANモジュールの有効化」のようにコマンドを実行します。事前に SD インターフェース(ベースボード:CON4)から SD カードを取り外しておく必要があります。
WLAN インターフェースを有効化すると、Armadillo-WLANモジュール(AWL13)のLinuxカーネルモジュールおよびファームウェアのロードが自動的に行われます。
| |
---|
Armadillo-WLANモジュール(AWL13)のファームウェアは、"STA"(ステーションおよびアドホックモード用)と"AP"(アクセスポイントモード用)の2種類が用意されています。工場出荷状態のソフトウェアでは、"STA"が自動的にロードされるよう設定されています。
"AP"を自動的にロードするように設定するには図6.7「無線LANモジュールの有効化」を実行する前に、次のように設定ファイル/etc/config/awl13.conf を編集します。
設定ファイルをコンフィグ領域に保存する方法については、7章コンフィグ領域 − 設定ファイルの保存領域を参照してください。
|
6.2.4.2. 手動で無線LANインターフェースを有効化する
コマンドを入力して無線設定および無線LANインターフェースの有効化を行う方法について説明します。事前に「WLAN インターフェースの有効化」を参照してWLANインターフェースを有効化しておく必要があります。
ここでは例として、WPA2-PSK(AES)のアクセスポイントに接続します。WPA2-PSK(AES)以外のアクセスポイントへの接続方法など、AWL13のより詳細な情報については、「Armadillo-WLAN(AWL13)ソフトウェアマニュアル」を参照してください。
WPA2-PSK(AES)のアクセスポイントに接続する場合の設定例を次に示します。以降の説明では、アクセスポイントのESSIDを[essid] 、パスフレーズを[passphrase] と表記します。
上記コマンドを実行すると、無線設定が完了します。無線LANインターフェースのIPアドレスを 192.0.2.1 に設定して有効化するには、次のようにコマンドを実行します。
6.2.4.3. 自動で無線LANインターフェースを有効化する
Armadilloの起動時に、自動的に無線LANインターフェースの有効化を行う方法について説明します。無線LANの設定をコンフィグ領域に保存することにより、Armadilloを再起動するたびに設定を行う必要が無くなります。
Armadilloの起動時に、自動的に WLAN インターフェースを有効化するために/etc/config/rc.local に「sd-awlan-sel awlan」を追加します。
WPA2-PSK(AES)のアクセスポイントに接続する場合の/etc/config/interfaces の編集例を次に示します。
Armadilloの起動時に自動的にawlan0が有効化されるようにするには、/etc/config/awl13-firmware-load.sh の最後の行に「ifup awlan0」を追加します。
追加後、次回起動時に設定が反映されるようにコンフィグ領域を保存します。
Armadilloを再起動すると、自動的に無線LANインターフェースが有効化されます。
| |
---|
Armadilloの再起動の前に、SD インターフェース(ベースボード:CON4)から SD カードを取り外しておく必要があります。
|
無線LANで正常に通信が可能か確認します。
同じネットワーク内にある通信機器とPING通信を行います。以下の例では、通信機器が「192.0.2.20」というIPアドレスを持っていると想定しています。
| |
---|
eth0 または usb0 を使用してネットワークに接続している場合、ネットワーク通信に awlan0 が使用されない場合があります。確実に awlan0 を使用させる場合は、事前に awlan0 以外のネットワークインターフェースを無効化してください。
|
ここでは、Armadillo-IoT に搭載されている 3Gモジュール「Sierra Wireless製 MC8090」の使用方法について説明します。
3Gデータ通信を利用するには、通信事業者との契約が必要です。契約時に通信事業者から貸与されたmicroSIM(UIMカード)とAPN情報を準備します。
| |
---|
Armadillo-IoTの電源が切断されていることを確認してからmicroSIM(UIMカード)を取り付けてください。
|
microSIM(UIMカード)は、次のようにArmadillo-IoTに取り付けます。
APNの設定を行うには、次に示す情報が必要です。
APN ユーザー名 パスワード 認証方式(PAP または CHAP) PDP Type(IP または PPP)
6.2.5.2. 3Gモジュールを制御するソフトウェア
3Gモジュールは、TTY デバイスファイル/dev/ttyUSB3 から制御を行うことができます。
/dev/ttyUSB3 から、対話形式での AT コマンドが利用できます。AT コマンドを利用すると、接続先やユーザ名、パスワードの設定などを行うことができます。
Armadillo-IoT のソフトウェアでは、AT コマンドを自動実行するシェルスクリプトがインストールされています。このスクリプトを使用して接続先設定とパケット接続を行うと、通常のネットワークインターフェースとして使用することができるようになります。
3GモジュールにAPN情報を設定します。APN設定には3g-set-ap コマンドを利用します。3g-set-ap コマンドのヘルプは次の通りです。
表6.4「APN情報設定例」の内容に設定する例を、図6.12「APN設定例」に示します。
表6.4 APN情報設定例 項目 | 設定 |
---|
APN | [apn] | ユーザー名 | [user] | パスワード | [password] | 認証方式 | PAP | PDP Type | IP |
APN情報は、3Gモジュール内の不揮発性メモリに保存されます。そのためArmadillo-IoTの電源を切断しても再設定を行う必要はありません。
6.2.5.4. 3Gインターフェースの有効化、無効化無効化されている3Gインターフェースを有効化するには、次のようにコマンドを実行します。 有効化されている3Gインターフェースを無効化するには、次のようにコマンドを実行します。 | |
---|
APN情報が適切に設定されていない場合、3Gインターフェースを有効化することができません。
上記のように"error"と表示された場合は、APNの設定を確認してください。
|
6.2.5.5. 自動で3Gインターフェースを有効化する
Armadilloの起動時に、自動的に3Gインターフェースの有効化を行う方法について説明します。
/etc/config/interfaces を、次のように編集します。
追加後、次回起動時に設定が反映されるようにコンフィグ領域を保存します。
Armadilloを再起動すると、自動的に3Gインターフェースが有効化されます。
3Gで正常に通信が可能か確認します。
アットマークテクノのWebサーバーとPING通信を行います。VPN接続を利用するなどインターネットに接続できない場合は、ネットワーク内の通信機器に読み替えてください。
| |
---|
eth0 または awlan0 を使用してネットワークに接続している場合、ネットワーク通信に usb0 が使用されない場合があります。確実に usb0 を使用させる場合は、事前に usb0 以外のネットワークインターフェースを無効化してください。
|
6.2.5.7. microSIMから電話番号を取得するmicroSIM(UIMカード)から電話番号を取得するには、次のようにコマンドを実行します。 | |
---|
microSIMが適切に接続されていない場合、電話番号を取得することができません。
上記のように"error"と表示された場合は、図6.10「microSIMの取り付け」を参照してmicroSIMの接続を確認してください。
|
3Gモジュール内蔵の温度センサから温度を取得するには、次のようにコマンドを実行します。
本書で紹介していない高度な設定を行うために、直接 AT コマンドを利用する方法について説明します。例として、ATIコマンドを実行し、3Gモジュールの情報を表示する手順を次に示します。
手順6.1 3Gモジュールの情報を表示する
tip コマンドを実行して/dev/ttyUSB3 に接続します。ボーレートは115200bpsです。
ATIコマンドを実行すると、3Gモジュールの情報が表示されます。
tip を終了するには、"~."(チルダ「~」に続いてドット「.」)を入力します。
その他の AT コマンドについては Sierra Wireless製ドキュメントを参照してください。ドキュメントのダウンロードには、ユーザー登録が必要です。
| |
---|
MDM6200(MC8090のチップセット)に対応した AT コマンドを実行することができます。
|
DNSサーバーを指定する場合は、viエディタで/etc/config/resolv.conf を編集します。
| |
---|
DHCPを利用している場合には、DHCPサーバーがDNSサーバーを通知する場合があります。この場合、/etc/config/resolv.conf は自動的に更新されます。
|
Armadilloでは、簡易ファイアーウォールが動作しています。設定されている内容を参照するには、図6.19「iptables」のようにコマンド実行してください。
工場出荷イメージで利用することができるネットワークアプリケーションについて説明します。
| |
---|
ATDEとArmadilloのネットワーク設定がデフォルト状態であることを想定して記述しています。ネットワーク設定を変更している場合は適宜読み換えてください。
|
ATDEなどのPCからネットワーク経由でログインし、リモート操作することができます。ログイン可能なユーザを次に示します。
TELNETを使用してATDEからArmadilloにリモートログインする場合の例を、次に示します。
ATDEなどのPCからネットワーク経由でファイル転送することができます。次に示すユーザでログインすることができます。
ftpを使用してATDEからArmadilloにファイルを転送する場合の例を、次に示します。
ATDEからArmadilloにファイルをアップロードすると、/home/ftp/pub/ディレクトリ以下にファイルが作成されています。ダウンロードする場合も、同じディレクトリにファイルを配置してください。
Armadilloでは、HTTPサーバーが動作しています。ATDEなどのPCのWebブラウザからArmadilloのURL (http://[ArmadilloのIPアドレス]/
[]
または、http://armadillo-iotg.local/)にアクセスすると、Armadilloのトップページ(index.html)が表示されます。
Armadillo-IoT でストレージとして使用可能なデバイスを次に示します。
表6.7 ストレージデバイス デバイス種類 | ディスクデバイス | 先頭パーティション | インターフェース |
---|
SD/SDHC/SDXCカード | /dev/mmcblk* [] | /dev/mmcblk*p1 | SDインターフェース(ベースボード:CON4) | microSD/microSDHC/microSDXCカード | /dev/mmcblk* [] | /dev/mmcblk*p1 | SDインターフェース(Armadillo-410:CON1) | USBフラッシュメモリ | /dev/sd* [] | /dev/sd*1 | USB ホストインターフェース(ベースボード:CON7) |
ここでは、ベースボードにSDHCカードを接続した場合を例にストレージの使用方法を説明します。以降の説明では、共通の操作が可能な場合に、SD/SDHC/SDXCカードをSDカードと表記します。
| |
---|
SD インターフェース(ベースボード:CON4)と WLAN インターフェース(ベースボード:CON5)は、共通の信号が接続されています。工場出荷状態のソフトウェアでは、デフォルトで SD インターフェースが有効化されています。
「WLAN インターフェースの有効化」の手順を実行してWLAN インターフェースが有効化されている場合は、次のように SD インターフェースを有効化してください。
|
| |
---|
SDXC/microSDXCカードを使用する場合は、事前に「ストレージのパーティション変更とフォーマット」を参照してフォーマットを行う必要があります。これは、LinuxカーネルがexFATファイルシステムを扱うことができないためです。通常、購入したばかりのSDXC/microSDXCカードはexFATファイルシステムでフォーマットされています。
|
Linuxでは、アクセス可能なファイルやディレクトリは、一つの木構造にまとめられています。あるストレージデバイスのファイルシステムを、この木構造に追加することを、マウントするといいます。マウントを行うコマンドは、mountです。
mountコマンドの典型的なフォーマットは、次の通りです。
-t オプションに続くfstype には、ファイルシステムタイプを指定します[]。FAT32ファイルシステムの場合はvfat []、EXT3ファイルシステムの場合はext3 を指定します。
device には、ストレージデバイスのデバイスファイル名を指定します。SDカードのパーティション1の場合は/dev/mmcblk0p1 、パーティション2の場合は/dev/mmcblk0p2 となります。
dir には、ストレージデバイスのファイルシステムをマウントするディレクトリを指定します。
SDスロットにSDHCカードを挿入した状態で図6.25「ストレージのマウント」に示すコマンドを実行すると、/mntディレクトリにSDHCカードのファイルシステムをマウントします。SDカード内のファイルは、/mntディレクトリ以下に見えるようになります。
| |
---|
FAT32ファイルシステムをマウントした場合、次の警告メッセージが表示される場合があります。
これは無視して構いません。 UTF-8 ロケールでは結局はファイル名の表示を正しく処理できないためです。
|
ストレージを安全に取り外すには、アンマウントする必要があります。アンマウントを行うコマンドは、umountです。オプションとして、アンマウントしたいデバイスがマウントされているディレクトリを指定します。
6.3.2. ストレージのパーティション変更とフォーマット
通常、購入したばかりのSDHCカードやUSBメモリは、一つのパーティションを持ち、FAT32ファイルシステムでフォーマットされています。
パーティション構成を変更したい場合、fdiskコマンドを使用します。fdiskコマンドの使用例として、一つのパーティションで構成されているSDカードのパーティションを、2つに分割する例を図6.27「fdiskコマンドによるパーティション変更」に示します。一度、既存のパーティションを削除してから、新たにプライマリパーティションを二つ作成しています。先頭のパーティションには100MByte、二つめのパーティションに残りの容量を割り当てています。先頭のパーティションは/dev/mmcblk0p1、二つめは/dev/mmcblk0p2となります。fdiskコマンドの詳細な使い方は、manページ等を参照してください。
FAT32ファイルシステムでストレージデバイスをフォーマットするには、mkfs.vfatコマンドを使用します。また、EXT2やEXT3ファイルシステムでフォーマットするには、mke2fsコマンドを使用します。SDカードのパーティション1をEXT3ファイルシステムでフォーマットするコマンド例を、次に示します。
Armadillo-IoT のLEDは、GPIOが接続されているためソフトウェアで制御することができます。
利用しているデバイスドライバはLEDクラスとして実装されているため、LEDクラスディレクトリ以下のファイルによってLEDの制御を行うことができます。LEDクラスディレクトリと各LEDの対応を次に示します。
表6.8 LEDクラスディレクトリとLEDの対応 LEDクラスディレクトリ | インターフェース | デフォルトトリガ |
---|
/sys/class/leds/led1/ | ベースボード:LED3 | default-on | /sys/class/leds/led2/ | ベースボード:LED2 | default-on | /sys/class/leds/led3/ | ベースボード:LED4 | none | /sys/class/leds/led4/ | ベースボード:LED5 | none | /sys/class/leds/yellow | Armadillo-410:LED5 | none |
以降の説明では、任意のLEDを示すLEDクラスディレクトリを"/sys/class/leds/[LED] "のように表記します。
LEDクラスディレクトリ以下のbrightnessファイルへ値を書き込むことによって、LEDの点灯/消灯を行うことができます。brightnessに書き込む有効な値は0〜255です。
brightnessに0以外の値を書き込むとLEDが点灯します。
| |
---|
Armadillo-IoT のLEDには輝度制御の機能が無いため、0 (消灯)、1〜255 (点灯)の2つの状態のみ指定することができます。
|
brightnessに0を書き込むとLEDが消灯します。
brightnessを読み出すとLEDの状態が取得できます。
LEDクラスディレクトリ以下のtriggerファイルへ値を書き込むことによってLEDの点灯/消灯にトリガを設定することができます。triggerに書き込む有効な値を次に示します。
表6.9 triggerの種類 設定 | 説明 |
---|
none | トリガを設定しません。 | mmc0 | SDインターフェース(Armadillo-410:CON1)のアクセスランプにします。 | mmc1 | SDインターフェース(ベースボード:CON4)のアクセスランプにします。 | timer | 任意のタイミングで点灯/消灯を行います。この設定にすることにより、LEDクラスディレクトリ以下にdelay_on, delay_offファイルが出現し、それぞれ点灯時間, 消灯時間をミリ秒単位で指定します。 | heartbeat | 心拍のように点灯/消灯を行います。 | default-on | 主にLinuxカーネルから使用します。LEDが点灯します。 |
以下のコマンドを実行すると、LEDが2秒点灯、1秒消灯を繰り返します。
triggerを読み出すとLEDのトリガが取得できます。"[ ]"が付いているものが現在のトリガです。
Armadillo-IoT には、カレンダー時計(Real Time Clock)が実装されています。電源を切断しても一定時間(平均300秒間、最小60秒間)時刻を保持することができます
電源が切断されても長時間時刻を保持させたい場合は、RTC外部バックアップインターフェース(ベースボード:CON13)に外付けバッテリー(対応バッテリー例: CR2032)を接続することができます。
Linuxの時刻には、Linuxカーネルが管理するシステムクロックと、RTCが管理するハードウェアクロックの2種類があります。RTCに時刻を設定するためには、まずシステムクロックを設定します。その後に、ハードウェアクロックをシステムクロックと一致させる手順となります。
システムクロックは、dateコマンドを用いて設定します。dateコマンドの引数には、設定する時刻を[MMDDhhmmCCYY.ss]というフォーマットで指定します。時刻フォーマットの各フィールドの意味を次に示します。
表6.10 時刻フォーマットのフィールド フィールド | 意味 |
---|
MM | 月 | DD | 日(月内通算) | hh | 時 | mm | 分 | CC | 年の最初の2桁(省略可) | YY | 年の最後の2桁(省略可) | ss | 秒(省略可) |
2014年12月19日12時34分56秒に設定する例を次に示します。
| |
---|
Armadillo-IoTが接続しているネットワーク内にタイムサーバーがある場合は、NTP(Network Time Protocol)クライアントを利用してシステムクロックを設定することができます。
|
システムクロックを設定後、ハードウェアクロックをhwclockコマンドを用いて設定します。
Armadillo-IoT のGPIOは、generic GPIOとして実装されています。GPIOクラスディレクトリ以下のファイルによってGPIOの制御を行うことができます。
アドオンインターフェース(ベースボード:CON1, ベースボード:CON2)のGPIOと、GPIOクラスディレクトリの対応を次に示します。
表6.11 アドオンインターフェースのGPIOディレクトリ ピン番号 | GPIOクラスディレクトリ |
---|
CON1 3ピン, CON2 24ピン | /sys/class/gpio/gpio2 | CON1 4ピン, CON2 25ピン | /sys/class/gpio/gpio3 | CON1 5ピン, CON2 33ピン | /sys/class/gpio/gpio26 | CON1 6ピン, CON2 32ピン | /sys/class/gpio/gpio78 | CON1 7ピン, CON2 41ピン | /sys/class/gpio/gpio118 | CON1 8ピン, CON2 40ピン | /sys/class/gpio/gpio119 | CON1 9ピン, CON2 7ピン, CON2 39ピン | /sys/class/gpio/gpio120 | CON1 10ピン, CON2 8ピン, CON2 38ピン | /sys/class/gpio/gpio121 | CON1 11ピン, CON2 50ピン | /sys/class/gpio/gpio117 | CON1 12ピン, CON2 16ピン, CON2 37ピン | /sys/class/gpio/gpio27 | CON1 13ピン, CON2 17ピン, CON2 36ピン | /sys/class/gpio/gpio28 | CON1 14ピン, CON2 12ピン, CON2 18ピン, CON2 35ピン | /sys/class/gpio/gpio29 | CON1 15ピン, CON2 13ピン, CON2 19ピン, CON2 34ピン | /sys/class/gpio/gpio30 | CON1 16ピン, CON2 49ピン | /sys/class/gpio/gpio61 | CON1 17ピン, CON2 48ピン | /sys/class/gpio/gpio62 | CON1 18ピン, CON2 47ピン | /sys/class/gpio/gpio63 | CON1 19ピン, CON2 46ピン | /sys/class/gpio/gpio64 | CON1 20ピン, CON2 20ピン, CON2 45ピン | /sys/class/gpio/gpio65 | CON1 21ピン, CON2 21ピン, CON2 44ピン | /sys/class/gpio/gpio66 | CON1 22ピン, CON2 22ピン, CON2 43ピン | /sys/class/gpio/gpio67 | CON1 23ピン, CON2 23ピン, CON2 42ピン | /sys/class/gpio/gpio68 | CON1 24ピン | /sys/class/gpio/gpio0 | CON1 25ピン | /sys/class/gpio/gpio1 | CON1 32ピン | /sys/class/gpio/gpio5 | CON1 33ピン | /sys/class/gpio/gpio4 | CON1 42ピン | /sys/class/gpio/gpio21 | CON1 43ピン | /sys/class/gpio/gpio20 | CON1 44ピン | /sys/class/gpio/gpio19 | CON1 45ピン | /sys/class/gpio/gpio51 | CON1 46ピン | /sys/class/gpio/gpio50 | CON1 47ピン | /sys/class/gpio/gpio49 | CON1 48ピン | /sys/class/gpio/gpio48 | CON1 49ピン | /sys/class/gpio/gpio47 | CON1 50ピン | /sys/class/gpio/gpio25 | CON1 51ピン | /sys/class/gpio/gpio23 | CON1 52ピン | /sys/class/gpio/gpio22 | CON1 53ピン | /sys/class/gpio/gpio24 |
以降の説明では、任意のGPIOを示すGPIOクラスディレクトリを"/sys/class/gpio/[GPIO] "のように表記します。
6.6.1. GPIOクラスディレクトリを作成する
/sys/class/gpio/export にGPIO番号を書き込むことによって、GPIOクラスディレクトリを作成することができます。
アドオンインターフェース(ベースボード:CON1) 24ピンに対応するGPIOクラスディレクトリを作成する例を次に示します。
| |
---|
作成済みのGPIOクラスディレクトリを削除するには、/sys/class/gpio/unexport にGPIO番号を書き込みます。
|
GPIOディレクトリ以下のdirectionファイルへ値を書き込むことによって、入出力方向を変更することができます。directionに書き込む有効な値を次に示します。
表6.12 directionの設定 設定 | 説明 |
---|
high | 入出力方向をOUTPUTに設定します。出力レベルの取得/設定を行うことができます。出力レベルはHIGHレベルになります。 | out | 入出力方向をOUTPUTに設定します。出力レベルの取得/設定を行うことができます。出力レベルはLOWレベルになります。 | low | outを設定した場合と同じです。 | in | 入出力方向をINPUTに設定します。入力レベルの取得を行うことができますが設定はできません。 |
GPIOディレクトリ以下のvalueファイルから値を読み出すことによって、入力レベルを取得することができます。"0"はLOWレベル、"1"はHIGHレベルを表わします。入力レベルの取得は入出力方向がINPUT, OUTPUTのどちらでも行うことができます。入出力方向がOUTPUTの時に読み出される値は、GPIOピンの状態ではなく、自分がvalueファイルに書き込んだ値となります。
GPIOディレクトリ以下のvalueファイルへ値を書き込むことによって、出力レベルを設定することができます。"0"はLOWレベル、"0"以外はHIGHレベルを表わします。出力レベルの設定は入出力方向がOUTPUTでなければ行うことはできません。
Armadillo-IoT のユーザースイッチのデバイスドライバは、インプットデバイスとして実装されています。インプットデバイスのデバイスファイルからボタンプッシュ/リリースイベントを取得することができます。
ユーザースイッチのインプットデバイスファイルと、各スイッチに対応したイベントコードを次に示します。
表6.13 インプットデバイスファイルとイベントコード ユーザースイッチ | インプットデバイスファイル | イベントコード |
---|
ベースボード:SW1 | /dev/input/event0 | 2 (1) | ベースボード:SW2 | /dev/input/event1 | 3 (2) | ベースボード:SW3 | 4 (3) |
| |
---|
インプットデバイスは検出された順番にインデックスが割り振られます。USBデバイスなどを接続してインプットデバイスを追加している場合は、デバイスファイルのインデックスが異なる可能性があります。
|
ユーザースイッチのボタンプッシュ/リリースイベントを確認するために、ここではevtest コマンドを利用します。evtest を停止するには、Ctrl+c を入力してください。
Armadillo-IoT には、温度センサが実装されています。基板周辺温度の取得や、温度変化を監視することができます。
/sys/devices/platform/i2c-gpio.3/i2c-adapter/i2c-3/3-0048/temp1_input ファイルを値を読み出すことによって、現在の基板周辺温度を取得することができます。
thermaltrigger コマンドを利用して、指定した温度になった場合に任意のコマンドを実行させることができます。
| |
---|
thermaltrigger を複数起動することはできません。「thermalmonitor」に示すthermalmonitor コマンドも、内部的にthermaltrigger を起動しています。
|
thermaltrigger コマンドのヘルプは次の通りです。
温度が60000ミリ°C(60°C)以上になった場合に、ベースボード:LED2を点灯させる例を次に示します。
| |
---|
thermaltrigger コマンドのログは/var/log/messages ファイルに出力されます。
|
Armadillo-IoT には、ADコンバーターが実装されています。電源電圧の取得や、電圧の変化を監視することができます。
電源電圧は、分圧されてADコンバーターへ入力されています。電源電圧を取得するためには、まずADコンバーターへの入力電圧を取得する必要があります。
/sys/devices/platform/i2c-gpio.3/i2c-adapter/i2c-3/3-0054/value ファイルを値を読み出すことによって、現在のADコンバーターへの入力電圧を取得することができます。
ADコンバーターへの入力電圧から、電源電圧を求める計算式を次に示します。
図6.45「ADコンバーターへの入力電圧を取得する」を例にとると、ADコンバーターへの入力電圧1.958Vから、電源電圧が約11.999Vであることを求めることができます。
| |
---|
expr コマンドを利用して、次のように電源電圧を表示することができます。
|
vintrigger コマンドを利用して、電源電圧が指定した電圧になった場合に任意のコマンドを実行させることができます。
| |
---|
vintrigger を複数起動することはできません。「vinmonitor」に示すvinmonitor コマンドも、内部的にvintrigger を起動しています。
|
vintrigger コマンドのヘルプは次の通りです。
電源電圧が11000mV(11V)以下になった場合に、ベースボード:LED2を点灯させる例を次に示します。
| |
---|
vintrigger コマンドのログは/var/log/messages ファイルに出力されます。
|
6.10. Armadillo-IoT RS232Cアドオンモジュール RS00
Armadillo-IoT RS232Cアドオンモジュール RS00(以降、RS232Cアドオンモジュールと記載します)は RS232C レベルのシリアルポートが 1 ポート搭載されています。RS232Cアドオンモジュールのシリアルポートのデバイスドライバは、TTYデバイスとして実装されているためTTYデバイスファイルから制御を行うことができます。
RS232Cアドオンモジュールを接続するアドオンインターフェースと、TTYデバイスファイルの対応を次に示します。
表6.14 アドオンインターフェースとTTYデバイスファイル アドオンインターフェース | TTYデバイスファイル |
---|
ベースボード:CON1 | /dev/ttymxc3 | ベースボード:CON2 | /dev/ttymxc0 |
| |
---|
工場出荷状態の開発セットは、ベースボード:CON1にRS232Cアドオンモジュールが接続されています。
|
| |
---|
RS232Cアドオンモジュールが接続されているアドオンインターフェースは、Linuxカーネルの起動ログで確認することができます。ベースボード:CON1に接続されている場合は次のように出力されます。
|
6.10.1. Armadillo-IoTにログインする
RS232CアドオンモジュールのシリアルインターフェースからArmadillo-IoTにログインします。
アドオンインターフェース(ベースボード:CON1)に接続したRS232Cアドオンモジュールのシリアルインターフェースからログインする手順を次に示します。
手順6.2 RS232Cアドオンモジュールからログイン
ATDEでminicomを起動します。シリアルデバイスには/dev/ttyS0 を指定します。
Armadillo-IoTでgettyを起動します。シリアルデバイスには ttymxc3 []を指定します。/etc/inittab の設定を有効にするためには、プロセスIDが1であるinitプロセスにSIGHUPシグナルを送ります。
ATDEのminicomにログインプロンプトが表示されます。ユーザー「guest」でログインすることができます。
| |
---|
以下のように/etc/securetty にシリアルデバイスを登録すると、特権ユーザー「root」でログインすることが可能になります。
デフォルト状態ではセキュリティーを考慮し、特権ユーザーでのログインを制限しています。
|
6.11. Armadillo-IoT 絶縁RS232C/422/485アドオンモジュール RS01
Armadillo-IoT 絶縁RS232C/422/485アドオンモジュール RS01(以降、RS485アドオンモジュールと記載します)は、電気的に絶縁された RS232C/RS422/RS485 のシリアルポートが 1 ポート登載されています。RS485アドオンモジュールのシリアルポートのデバイスドライバは、TTYデバイスとして実装されているためTTYデバイスファイルから制御を行うことができます。
| |
---|
RS485アドオンモジュールには、Linuxカーネル v2.6.26-at22以降(カーネルイメージ linux-aiotg-std-v1.01.bin.gz 以降)で対応しています。それ以前のものを使用されている場合、本節で説明する動作確認を行う前にイメージを対応バージョンに書き換えてください。
|
RS485アドオンモジュールを接続するアドオンインターフェースと、TTYデバイスファイルの対応を次に示します。
表6.15 アドオンインターフェースとTTYデバイスファイル アドオンインターフェース | TTYデバイスファイル |
---|
ベースボード:CON1 | /dev/ttymxc3 | ベースボード:CON2 | /dev/ttymxc0 |
| |
---|
RS485アドオンモジュールが接続されているアドオンインターフェースは、Linuxカーネルの起動ログで確認することができます。ベースボード:CON2に接続されている場合は次のように出力されます。
|
6.11.1. RS422/RS485の通信設定を変更する
Armadillo-IoTに電源を投入する前に RS485アドオンモジュール:SW1.1をOFFに設定すると、TTYデバイスのRS485設定が自動的に有効化されます。
| |
---|
Armadillo-IoTの電源投入後に RS485アドオンモジュール:SW1.1の設定を変更しないでください。故障の原因となる可能性があります。
|
変更が可能なRS485設定と、自動的に有効化された場合の初期値を表6.16「RS485設定と初期値」に示します。flagsは各ビットごとの論理和を示します。
表6.16 RS485設定と初期値 設定 | 説明 | 初期値 |
---|
flags | ENABLED(bit0) |
0: RS485無効
1: RS485有効
| 1 | RTS_ON_SEND(bit1) |
0: データ送信時のRTS(Driver Enable)がLow
1: データ送信時のRTS(Driver Enable)がHigh
| 1 | RTS_AFTER_SEND(bit2) |
0: データ非送信時のRTS(Driver Enable)がLow
1: データ非送信時のRTS(Driver Enable)がHigh
| 0 | RX_DURING_TX(bit4) |
0: 半二重通信
1: 全二重通信
| 0 | delay_rts_before_send | 送信前遅延時間(ミリ秒) | 0 | delay_rts_before_send | 送信後遅延時間(ミリ秒) | 0 |
| |
---|
flagsのRTS_ON_SENDとRTS_AFTER_SENDは初期値を変更しないでください。変更した場合はデータ送信を行うことができなくなります。
|
| |
---|
RS485が有効化されたTTYデバイスをコンソールとして利用することはできません。
|
RS485設定は、アプリケーションプログラムまたは、Linuxカーネル起動オプションで変更することができます。
アプリケーションプログラムの作成方法については、Linuxカーネルのソースコードに含まれているドキュメント(Documentation/serial/serial-rs485.txt )を参照してください。
Linux カーネル起動オプションでは、次のオプション指定子でRS485設定を行います。
表6.17 Linuxカーネル起動オプションからのRS485設定 オプション指定子 | 説明 |
---|
mxc_uart.rs485_uart4= |
ベースボード:CON1に接続されているUART4(ttymxc3)のRS485設定を指定します。
| mxc_uart.rs485_uart1= |
ベースボード:CON2に接続されているUART1(ttymxc0)のRS485設定を指定します。
|
RS485設定のフォーマットは次の通りです。
例として、ベースボード:CON2に接続したRS485 アドオンモジュールのRS485設定を全二重通信にする場合は、保守モードで起動してから次のようにコマンドを実行してください。
6.11.2. Armadillo-IoTにログインする
RS485アドオンモジュールのシリアルインターフェースからArmadillo-IoTにログインします。
RS422/RS485通信を行う場合は、事前に「RS422/RS485の通信設定を変更する」を参照して通信環境に合わせた設定を行ってください。
アドオンインターフェース(ベースボード:CON2)に接続したRS485アドオンモジュールのシリアルインターフェースからログインする手順を次に示します。
手順6.3 RS485アドオンモジュールからログイン
ATDEでminicomを起動します。シリアルデバイスには/dev/ttyS0 を指定します。
Armadillo-IoTでgettyを起動します。シリアルデバイスには ttymxc0 []を指定します。/etc/inittab の設定を有効にするためには、プロセスIDが1であるinitプロセスにSIGHUPシグナルを送ります。
ATDEのminicomにログインプロンプトが表示されます。ユーザー「guest」でログインすることができます。
| |
---|
以下のように/etc/securetty にシリアルデバイスを登録すると、特権ユーザー「root」でログインすることが可能になります。
デフォルト状態ではセキュリティーを考慮し、特権ユーザーでのログインを制限しています。
|
6.12. Armadillo-IoT BLEアドオンモジュール BT00
Armadillo-IoT BLEアドオンモジュール BT00(以降、BLEアドオンモジュールと記載します)は Microchip製 RN4020が搭載されています。Bluetooth(R) version 4.1に対応しており、Bluetooth Low Energy 4.1 プロトコルスタックが内蔵されています。
BLEアドオンモジュールは、TTY デバイスファイルからASCIIコマンドを使用した制御を行うことができます。BLEアドオンモジュールを接続するアドオンインターフェースと、TTYデバイスファイルの対応を次に示します。
表6.18 アドオンインターフェースとTTYデバイスファイル アドオンインターフェース | TTYデバイスファイル |
---|
ベースボード:CON1 | /dev/ttymxc3 | ベースボード:CON2 | /dev/ttymxc0 |
| |
---|
BLEアドオンモジュールが接続されているアドオンインターフェースは、Linuxカーネルの起動ログで確認することができます。ベースボード:CON2に接続されている場合は次のように出力されます。
|
BLEアドオンモジュールを制御する例として、RN4020 の設定情報の取得を行います。
アドオンインターフェース(ベースボード:CON2)に接続したBLEアドオンモジュールに搭載されているRN4020の設定情報を取得する手順を次に示します。
手順6.4 設定情報の取得
tip コマンドを実行して/dev/ttymxc0 に接続します。ボーレートは115200bpsです。
D (Dump configuration)コマンドを実行すると、RN4020の設定情報が表示されます。
tip を終了するには、"~."(チルダ「~」に続いてドット「.」)を入力します。
その他の ASCII コマンドや、RN4020 の詳細な情報については Microchip製ドキュメントを参照してください。
6.13. Armadillo-IoT EnOceanアドオンモジュール EN00
Armadillo-IoT EnOceanアドオンモジュール EN00(以降、EnOceanアドオンモジュールと記載します)は ROHM製 BP35A3が搭載されています。BP35A3にはEnOcean無線トランシーバーTCM410Jが搭載されています。
EnOceanアドオンモジュールは、TTY デバイスファイルからEnOcean Serial Protocol 3(ESP3)で通信することができます。EnOceanアドオンモジュールを接続するアドオンインターフェースと、TTYデバイスファイルの対応を次に示します。
表6.19 アドオンインターフェースとTTYデバイスファイル アドオンインターフェース | TTYデバイスファイル |
---|
ベースボード:CON1 | /dev/ttymxc3 | ベースボード:CON2 | /dev/ttymxc0 |
| |
---|
EnOceanアドオンモジュールが接続されているアドオンインターフェースは、Linuxカーネルの起動ログで確認することができます。ベースボード:CON2に接続されている場合は次のように出力されます。
|
6.13.1. EnOcean無線データを受信する
EnOcean無線データを受信する例として、ROHM製スイッチモジュール PTM 210Jを使用します
アドオンインターフェース(ベースボード:CON2)に接続したEnOceanアドオンモジュールで受信する手順を次に示します。
手順6.5 EnOcean無線データの受信
stty コマンドを実行してTTY デバイスの通信設定を行います。ボーレートは57600bpsです。
hexdump コマンドを実行して受信データを16進数でダンプします。
hexdump を終了するには、Ctrl+cを入力します。
PTM 210Jなど、EnOcean製品の情報については ROHM社 Webページを参照してください。
EnOcean Serial Protocolの詳細については EnOcean GmbH製ドキュメントを参照してください。
6.14. Armadillo-IoT Wi-SUNアドオンモジュール WS00
Armadillo-IoT Wi-SUNアドオンモジュール WS00(以降、Wi-SUNアドオンモジュールと記載します)は ROHM製 BP35A1が搭載されています。
Wi-SUNアドオンモジュールは、TTY デバイスファイルからASCIIコマンドを使用した制御を行うことができます。Wi-SUNアドオンモジュールを接続するアドオンインターフェースと、TTYデバイスファイルの対応を次に示します。
表6.20 アドオンインターフェースとTTYデバイスファイル アドオンインターフェース | TTYデバイスファイル |
---|
ベースボード:CON1 | /dev/ttymxc3 | ベースボード:CON2 | /dev/ttymxc0 |
| |
---|
Wi-SUNアドオンモジュールが接続されているアドオンインターフェースは、Linuxカーネルの起動ログで確認することができます。ベースボード:CON2に接続されている場合は次のように出力されます。
|
Wi-SUNアドオンモジュールを制御する例として、BP35A1 の設定情報の取得を行います。
アドオンインターフェース(ベースボード:CON2)に接続したWi-SUNアドオンモジュールに搭載されているBP35A1の設定情報を取得する手順を次に示します。
手順6.6 設定情報の取得
tip コマンドを実行して/dev/ttymxc0 に接続します。ボーレートは115200bpsです。
SKINFOコマンドを実行すると、BP35A1 の設定情報が表示されます。
tip を終了するには、"~."(チルダ「~」に続いてドット「.」)を入力します。
その他の ASCII コマンドや、BP35A1 の詳細な情報については ROHM 製ドキュメントを参照してください。
| |
|