工場出荷状態でフラッシュメモリに書き込まれているイメージファイルは、最新版ではない可能性があります。最新版のブートローダーおよび LinuxカーネルイメージファイルはArmadilloサイトから、ユーザーランドイメージファイルはユーザーズサイトからダウンロード可能です。最新版のイメージファイルに書き換えてからのご使用を推奨します。
イメージファイルの書き換えについては、12章フラッシュメモリの書き換え方法を参照してください。
ここでは、ネットワークの設定方法やネットワークを利用するアプリケーションについて説明します。
Armadillo-IoT は、複数の種類のネットワークに接続することができます。接続可能なネットワークとLinuxから使用するネットワークデバイスの対応を次に示します。
表6.1 ネットワークとネットワークデバイス ネットワーク | ネットワークデバイス | 備考 |
---|
有線LAN | eth0 | | 無線WLAN | awlan0 | Armadillo-WLAN(AWL13) 搭載 | 3G | umts0 | Sierra Wireless製 HL8548 搭載 |
ネットワーク設定は、/etc/config/interfaces に記述されています。デフォルト状態では、次のように設定されています。
表6.2 デフォルト状態のネットワーク設定 インターフェース | 種類 | 設定 | 起動時に有効化 |
---|
lo | TCP/IP | ループバック | 有効 | eth0 | TCP/IP | DHCP | 有効 | umts0 | 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 または umts0 を使用してネットワークに接続している場合、ネットワーク通信に 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 または umts0 を使用してネットワークに接続している場合、ネットワーク通信に awlan0 が使用されない場合があります。確実に awlan0 を使用させる場合は、事前に awlan0 以外のネットワークインターフェースを無効化してください。
|
ここでは、Armadillo-IoT に搭載されている 3Gモジュール「Sierra Wireless製 HL8548」の使用方法について説明します。
| |
---|
3Gモジュール「Sierra Wireless製 HL8548」はJATE/TELEC認証は取得していますが、Docomo IOT(相互接続性試験)については認証試験中で2015年7月下旬に取得予定となっています。
JATE/TELEC認証を取得しているため、国内での使用に問題はありません。いわゆる、SIM Freeの状態となります。
Docomo網を使用した場合、接続トラブルが発生しても技術サポートが得られないなどの制約があります。
MVNO事業者については、個別にお問い合わせください。
|
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/ttyATCMD から制御を行うことができます。
/dev/ttyATCMD から、対話形式での 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 |
| |
---|
3g-set-ap は本来、3Gモジュール「Sierra Wireless製 HL8548」内の不揮発性メモリに対して永続的にAPN情報を保存します。
しかし、3Gモジュールのファームウェアの不具合により、保存することができません。
このため、Armadillo-IoTの電源を切断した場合、3Gモジュールに設定したAPN情報が消えてしまいます。
暫定対策として、コンフィグ領域を利用し、Armadillo-IoT内蔵のフラッシュメモリにAPN情報を保存します。
vi エディタで/etc/config/interfaces を次のように編集します。
編集後、次回起動時に設定が反映されるようにコンフィグ領域を保存します。
コンフィグ領域については、7章コンフィグ領域 − 設定ファイルの保存領域を参照してください。
|
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 を使用してネットワークに接続している場合、ネットワーク通信に umts0 が使用されない場合があります。確実に umts0 を使用させる場合は、事前に umts0 以外のネットワークインターフェースを無効化してください。
|
6.2.5.7. microSIMから電話番号を取得するmicroSIM(UIMカード)から電話番号を取得するには、次のようにコマンドを実行します。 | |
---|
microSIMが適切に接続されていない場合、電話番号を取得することができません。
上記のように"error"と表示された場合は、図6.10「microSIMの取り付け」を参照してmicroSIMの接続を確認してください。
|
3Gモジュール内蔵の温度センサから温度を取得するには、次のようにコマンドを実行します。
本書で紹介していない高度な設定を行うために、直接 AT コマンドを利用する方法について説明します。例として、ATIコマンドを実行し、3Gモジュールの情報を表示する手順を次に示します。
手順6.1 3Gモジュールの情報を表示する
tip コマンドを実行して/dev/ttyATCMD に接続します。ボーレートは115200bpsです。
ATIコマンドを実行すると、3Gモジュールの情報が表示されます。
tip を終了するには、"~."(チルダ「~」に続いてドット「.」)を入力します。
その他の AT コマンドについては Sierra Wireless製ドキュメントを参照してください。ドキュメントのダウンロードには、ユーザー登録が必要です。
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/ | ユーザーLED1 | default-on | /sys/class/leds/led2/ | ユーザーLED2 | default-on[] | /sys/class/leds/led3/ | ユーザーLED3 | none | /sys/class/leds/led4/ | ユーザーLED4 | none | /sys/class/leds/yellow | Armadillo-410:LED5 | none |
Armadillo-IoT の外観から見たユーザーLEDの位置を次に示します。
以降の説明では、任意の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 | 秒(省略可) |
2015年6月2日12時34分56秒に設定する例を次に示します。
| |
---|
Armadillo-IoTが接続しているネットワーク内にタイムサーバーがある場合は、NTP(Network Time Protocol)クライアントを利用してシステムクロックを設定することができます。
|
システムクロックを設定後、ハードウェアクロックをhwclockコマンドを用いて設定します。
Armadillo-IoT のユーザースイッチのデバイスドライバは、インプットデバイスとして実装されています。インプットデバイスのデバイスファイルからボタンプッシュ/リリースイベントを取得することができます。
ユーザースイッチのインプットデバイスファイルと、各スイッチに対応したイベントコードを次に示します。
表6.11 インプットデバイスファイルとイベントコード ユーザースイッチ | インプットデバイスファイル | イベントコード |
---|
ベースボード:SW1 | /dev/input/event0 | 2 (1) | ベースボード:SW2 | /dev/input/event1 | 3 (2) | ベースボード:SW3 | 4 (3) |
| |
---|
インプットデバイスは検出された順番にインデックスが割り振られます。USBデバイスなどを接続してインプットデバイスを追加している場合は、デバイスファイルのインデックスが異なる可能性があります。
|
ユーザースイッチのボタンプッシュ/リリースイベントを確認するために、ここではevtest コマンドを利用します。evtest を停止するには、Ctrl+c を入力してください。
Armadillo-IoT には、温度センサが実装されています。基板周辺温度の取得や、温度変化を監視することができます。
/sys/class/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コンバーターへの入力電圧を取得する必要があります。
ADコンバーターは IIO(Industrial I/O) デバイスとして実装しています。/sys/bus/iio/devices/iio:device0/in_voltage_raw ファイルと/sys/bus/iio/devices/iio:device0/in_voltage_scale の値を読み出し乗算する事で、ADコンバータの入力電圧を算出する事ができます。
| |
---|
IIO デバイスは、デバイスを認識した順番で iio:deviceN (N は'0'からの連番)となります。IIO デバイスは、IIOデバイス名から特定することができます。ADコンバーターの IIO デバイス名は "3-0054"です。
|
図6.42「ADコンバーターへの入力電圧を取得する」の例では、ADコンバータへの入力電圧は、約 1.933V (150 × 12.89062500 [mV])である事がわかります。
ADコンバーターへの入力電圧から、電源電圧を求める計算式を次に示します。
図6.42「ADコンバーターへの入力電圧を取得する」を例にとると、ADコンバーターへの入力電圧1.933Vから、電源電圧は約11.849Vであることを求めることができます。
| |
---|
awk コマンドを利用して、次のように電源電圧を表示することができます。
|
vintrigger コマンドを利用して、電源電圧が指定した電圧になった場合に任意のコマンドを実行させることができます。
| |
---|
vintrigger を複数起動することはできません。「vinmonitor」に示すvinmonitor コマンドも、内部的にvintrigger を起動しています。
|
vintrigger コマンドのヘルプは次の通りです。
電源電圧が11000mV(11V)以下になった場合に、ベースボード:LED2を点灯させる例を次に示します。
| |
---|
vintrigger コマンドのログは/var/log/messages ファイルに出力されます。
|
6.9. Armadillo-IoT RS232Cアドオンモジュール RS00
Armadillo-IoT RS232Cアドオンモジュール RS00(以降、RS232Cアドオンモジュールと記載します)は RS232C レベルのシリアルポートが 1 ポート搭載されています。RS232Cアドオンモジュールのシリアルポートのデバイスドライバは、TTYデバイスとして実装されているためTTYデバイスファイルから制御を行うことができます。
RS232Cアドオンモジュールを接続するアドオンインターフェースと、TTYデバイスファイルの対応を次に示します。
表6.12 アドオンインターフェースとTTYデバイスファイル アドオンインターフェース | TTYデバイスファイル |
---|
ベースボード:CON1 | /dev/ttymxc3 | ベースボード:CON2 | /dev/ttymxc0 |
| |
---|
工場出荷状態の開発セットは、ベースボード:CON1にRS232Cアドオンモジュールが接続されています。
|
| |
---|
RS232Cアドオンモジュールが接続されているアドオンインターフェースは、Linuxカーネルの起動ログで確認することができます。ベースボード:CON1に接続されている場合は次のように出力されます。
|
6.9.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.10. Armadillo-IoT 絶縁RS232C/422/485アドオンモジュール RS01
Armadillo-IoT 絶縁RS232C/422/485アドオンモジュール RS01(以降、絶縁シリアルアドオンモジュールと記載します)は、電気的に絶縁された RS232C/RS422/RS485 のシリアルポートが 1 ポート登載されています。絶縁シリアルアドオンモジュールのシリアルポートのデバイスドライバは、TTYデバイスとして実装されているためTTYデバイスファイルから制御を行うことができます。
絶縁シリアルアドオンモジュールを接続するアドオンインターフェースと、TTYデバイスファイルの対応を次に示します。
表6.13 アドオンインターフェースとTTYデバイスファイル アドオンインターフェース | TTYデバイスファイル |
---|
ベースボード:CON1 | /dev/ttymxc3 | ベースボード:CON2 | /dev/ttymxc0 |
| |
---|
絶縁シリアルアドオンモジュールが接続されているアドオンインターフェースは、Linuxカーネルの起動ログで確認することができます。ベースボード:CON2に接続されている場合は次のように出力されます。
|
6.10.1. RS422/RS485の通信設定を変更する
Armadillo-IoTに電源を投入する前に 絶縁シリアルアドオンモジュール:SW1.1をOFFに設定すると、TTYデバイスのRS485設定が自動的に有効化されます。
| |
---|
Armadillo-IoTの電源投入後に 絶縁シリアルアドオンモジュール:SW1.1の設定を変更しないでください。故障の原因となる可能性があります。
|
変更が可能なRS485設定と、自動的に有効化された場合の初期値を表6.14「RS485設定と初期値」に示します。flagsは各ビットごとの論理和を示します。
表6.14 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_after_send | 送信後遅延時間(ミリ秒) | 0 |
| |
---|
flagsのRTS_ON_SENDとRTS_AFTER_SENDは初期値を変更しないでください。変更した場合はデータ送信を行うことができなくなります。
|
| |
---|
RS485が有効化されたTTYデバイスをコンソールとして利用することはできません。
|
RS485設定は、アプリケーションプログラムまたは、Linuxカーネル起動オプションで変更することができます。
アプリケーションプログラムの作成方法については、Linuxカーネルのソースコードに含まれているドキュメント(Documentation/serial/serial-rs485.txt )を参照してください。
Linux カーネル起動オプションでは、次のオプション指定子でRS485設定を行います。
表6.15 Linuxカーネル起動オプションからのRS485設定 オプション指定子 | 説明 |
---|
imx.rs485_uart4= |
ベースボード:CON1に接続されているUART4(ttymxc3)のRS485設定を指定します。
| imx.rs485_uart1= |
ベースボード:CON2に接続されているUART1(ttymxc0)のRS485設定を指定します。
|
RS485設定のフォーマットは次の通りです。
例として、ベースボード:CON2に接続した絶縁シリアルアドオンモジュールのRS485設定を全二重通信にする場合は、保守モードで起動してから次のようにコマンドを実行してください。
6.10.2. Armadillo-IoTにログインする
絶縁シリアルアドオンモジュールのシリアルインターフェースからArmadillo-IoTにログインします。
RS422/RS485通信を行う場合は、事前に「RS422/RS485の通信設定を変更する」を参照して通信環境に合わせた設定を行ってください。
アドオンインターフェース(ベースボード:CON2)に接続した絶縁シリアルアドオンモジュールのシリアルインターフェースからログインする手順を次に示します。
手順6.3 絶縁シリアルアドオンモジュールからログイン
ATDEでminicomを起動します。シリアルデバイスには/dev/ttyS0 を指定します。
Armadillo-IoTでgettyを起動します。シリアルデバイスには ttymxc0 []を指定します。/etc/inittab の設定を有効にするためには、プロセスIDが1であるinitプロセスにSIGHUPシグナルを送ります。
ATDEのminicomにログインプロンプトが表示されます。ユーザー「guest」でログインすることができます。
| |
---|
以下のように/etc/securetty にシリアルデバイスを登録すると、特権ユーザー「root」でログインすることが可能になります。
デフォルト状態ではセキュリティーを考慮し、特権ユーザーでのログインを制限しています。
|
6.11. 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.16 アドオンインターフェースと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.12. Armadillo-IoT EnOceanアドオンモジュール EN00
Armadillo-IoT EnOceanアドオンモジュール EN00(以降、EnOceanアドオンモジュールと記載します)は ROHM製 BP35A3が搭載されています。BP35A3にはEnOcean無線トランシーバーTCM410Jが搭載されています。
EnOceanアドオンモジュールは、TTY デバイスファイルからEnOcean Serial Protocol 3(ESP3)で通信することができます。EnOceanアドオンモジュールを接続するアドオンインターフェースと、TTYデバイスファイルの対応を次に示します。
表6.17 アドオンインターフェースとTTYデバイスファイル アドオンインターフェース | TTYデバイスファイル |
---|
ベースボード:CON1 | /dev/ttymxc3 | ベースボード:CON2 | /dev/ttymxc0 |
| |
---|
EnOceanアドオンモジュールが接続されているアドオンインターフェースは、Linuxカーネルの起動ログで確認することができます。ベースボード:CON2に接続されている場合は次のように出力されます。
|
6.12.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.13. Armadillo-IoT Wi-SUNアドオンモジュール WS00
Armadillo-IoT Wi-SUNアドオンモジュール WS00(以降、Wi-SUNアドオンモジュールと記載します)は ROHM製 BP35A1が搭載されています。
Wi-SUNアドオンモジュールは、TTY デバイスファイルからASCIIコマンドを使用した制御を行うことができます。Wi-SUNアドオンモジュールを接続するアドオンインターフェースと、TTYデバイスファイルの対応を次に示します。
表6.18 アドオンインターフェースと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 製ドキュメントを参照してください。
6.14. Armadillo-IoT 絶縁RS485アドオンモジュール RS02
Armadillo-IoT 絶縁RS485アドオンモジュール RS02(以降、絶縁 RS485アドオンモジュールと記載します)は、電気的に絶縁された RS422/RS485 のシリアルポートが 1 ポート登載されています。絶縁 RS485アドオンモジュールのシリアルポートのデバイスドライバは、TTYデバイスとして実装されているためTTYデバイスファイルから制御を行うことができます。
絶縁 RS485アドオンモジュールを接続するアドオンインターフェースと、TTYデバイスファイルの対応を次に示します。
表6.19 アドオンインターフェースとTTYデバイスファイル アドオンインターフェース | TTYデバイスファイル |
---|
ベースボード:CON1 | /dev/ttymxc3 | ベースボード:CON2 | /dev/ttymxc0 |
| |
---|
絶縁 RS485アドオンモジュールが接続されているアドオンインターフェースは、Linuxカーネルの起動ログで確認することができます。ベースボード:CON2に接続されている場合は次のように出力されます。
|
6.14.1. RS422/RS485の通信設定を変更する
TTYデバイスのRS485設定は自動的に有効化されます。
変更が可能なRS485設定と、自動的に有効化された場合の初期値を表6.14「RS485設定と初期値」に示します。flagsは各ビットごとの論理和を示します。
表6.20 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_after_send | 送信後遅延時間(ミリ秒) | 0 |
| |
---|
flagsのRTS_ON_SENDとRTS_AFTER_SENDは初期値を変更しないでください。変更した場合はデータ送信を行うことができなくなります。
|
| |
---|
RS485が有効化されたTTYデバイスをコンソールとして利用することはできません。
|
RS485設定は、アプリケーションプログラムまたは、Linuxカーネル起動オプションで変更することができます。
アプリケーションプログラムの作成方法については、Linuxカーネルのソースコードに含まれているドキュメント(Documentation/serial/serial-rs485.txt )を参照してください。
Linux カーネル起動オプションでは、次のオプション指定子でRS485設定を行います。
表6.21 Linuxカーネル起動オプションからのRS485設定 オプション指定子 | 説明 |
---|
imx.rs485_uart4= |
ベースボード:CON1に接続されているUART4(ttymxc3)のRS485設定を指定します。
| imx.rs485_uart1= |
ベースボード:CON2に接続されているUART1(ttymxc0)のRS485設定を指定します。
|
RS485設定のフォーマットは次の通りです。
例として、ベースボード:CON2に接続した絶縁 RS485 アドオンモジュールのRS485設定を全二重通信にする場合は、保守モードで起動してから次のようにコマンドを実行してください。
6.14.2. Armadillo-IoTにログインする
絶縁 RS485アドオンモジュールのシリアルインターフェースからArmadillo-IoTにログインします。
RS422/RS485通信を行う場合は、事前に「RS422/RS485の通信設定を変更する」を参照して通信環境に合わせた設定を行ってください。
アドオンインターフェース(ベースボード:CON2)に接続した絶縁 RS485アドオンモジュールのシリアルインターフェースからログインする手順を次に示します。
手順6.7 絶縁 RS485アドオンモジュールからログイン
ATDEでminicomを起動します。シリアルデバイスには/dev/ttyS0 を指定します。
Armadillo-IoTでgettyを起動します。シリアルデバイスには ttymxc0 []を指定します。/etc/inittab の設定を有効にするためには、プロセスIDが1であるinitプロセスにSIGHUPシグナルを送ります。
ATDEのminicomにログインプロンプトが表示されます。ユーザー「guest」でログインすることができます。
| |
---|
以下のように/etc/securetty にシリアルデバイスを登録すると、特権ユーザー「root」でログインすることが可能になります。
デフォルト状態ではセキュリティーを考慮し、特権ユーザーでのログインを制限しています。
|
6.15. Armadillo-IoT 絶縁デジタル入出力/アナログ入力アドオンモジュール DA00
Armadillo-IoT 絶縁デジタル入出力/アナログ入力アドオンモジュール DA00(以降、絶縁 IO アドオンモジュールと記載します)は、電気的に絶縁されたデジタル入力2 ポート、デジタル出力 2 ポートと 0~5V のアナログ入力 2 ポートを追加することができます。
絶縁 IO アドオンモジュールのデジタル入出力のデバイスドライバは GPIO、アナログ入力のデバイスドライバは IIO(Industrial I/O) デバイスとして実装しています。
絶縁 IO アドオンモジュールを接続するアドオンインターフェースと、GPIO クラスディレクトリの対応を表6.22「アドオンインターフェースとGPIO クラスディレクトリ」に示します。IIO デバイスは、デバイスを認識した順番で iio:deviceN (N は'0'からの連番)となります。
表6.22 アドオンインターフェースとGPIO クラスディレクトリ アドオンインターフェース | ポート | GPIO クラスディレクトリ |
---|
ベースボード:CON1 | デジタル出力 1 | /sys/class/gpio/DO1_CON1 | デジタル出力 2 | /sys/class/gpio/DO2_CON1 | デジタル入力 1 | /sys/class/gpio/DI1_CON1 | デジタル入力 2 | /sys/class/gpio/DI2_CON1 | ベースボード:CON2 | デジタル出力 1 | /sys/class/gpio/DO1_CON2 | デジタル出力 2 | /sys/class/gpio/DO2_CON2 | デジタル入力 1 | /sys/class/gpio/DI1_CON2 | デジタル入力 2 | /sys/class/gpio/DI2_CON2 |
| |
---|
絶縁 IO アドオンモジュールが接続されているアドオンインターフェースは、Linuxカーネルの起動ログで確認することができます。ベースボード:CON2に接続されている場合は次のように出力されます。
|
GPIOクラスディレクトリ以下のvalueファイルに値を書き込むことによって、出力状態を設定することができます。"0"は開放、"1"は短絡を表わします。
アドオンインターフェース(ベースボード:CON2)に接続した絶縁 IO アドオンモジュールのデジタル出力 1を開放に設定する例を次に示します。
GPIOクラスディレクトリ以下のvalueファイルから値を読み出すことによって、入力状態を取得することができます。"0"はGND_ISOとの短絡。"1"は開放または3.15V以上印加を表わします。
アドオンインターフェース(ベースボード:CON2)に接続した絶縁 IO アドオンモジュールのデジタル入力 1の状態を取得する例を次に示します。
/sys/bus/iio/devices/iio:device0/ ディレクトリ以下のファイルから入力電圧を算出することができます。
| |
---|
IIO デバイスは、デバイスを認識した順番で iio:deviceN (N は'0'からの連番)となります。IIO デバイスは、IIOデバイス名から特定することができます。絶縁 IO アドオンモジュールに搭載しているADコンバーターの IIO デバイス名は "mcp3202"です。
|
ADコンバータへの入力電圧は、AD変換値と最小入力電圧変動から算出する事ができます。
/sys/bus/iio/devices/iio:device0/ ディレクトリ以下にある、入力電圧の算出に必要なファイルを次に示します。
表6.23 入力電圧の算出に必要なファイル ファイル | 説明 |
---|
in_voltage0_raw | シングルエンド入力 CH0のAD変換値 | in_voltage1_raw | シングルエンド入力 CH1のAD変換値 | in_voltage_scale | シングルエンド入力の最小入力電圧変動 | in_voltage0-voltage1_raw | 疑似差動入力のAD変換値 | in_voltage-voltage_scale | 疑似差動入力の最小入力電圧変動 |
シングルエンド入力 CH0への入力電圧を算出する例を次に示します。
図6.49「ADコンバーターへの入力電圧を取得する」の例では、シングルエンド入力 CH0への入力電圧は、2.5V (2048 × 1.220703125 [mV])である事がわかります。
| |
---|
awk コマンドを利用して、次のように電源電圧を表示することができます。
|
| |
---|
Linuxカーネルのソースコードに含まれているサンプルプログラム(drivers/staging/iio/Documentation/generic_buffer.c )を利用して、AD変換値とタイムスタンプを取得することができます。サンプルプログラムは次のようにビルドします。
シングルエンド入力 CH0のAD変換値とタイムスタンプ(ナノ秒)を取得する例を次に示します。
|
| |
|