Armadillo-IoTを使用する際に、簡単にWebアプリケーションを作成したい場合があると思います。HTTPサーバーとCGIを利用してWebアプリケーションを作成することもできますが、事前知識が必要であまりお手軽ではありません。
ここではArmadillo-IoTに標準で入っているRubyのWebアプリケーションフレームワークであるSinatraを使用して、簡単にWebアプリケーションを作成し、動かしてみます。
ブログ
-
at_ito
-
at_kazutaka.bito
Armadillo-IoT開発セットと、RS232アドオンモジュールの未使用のGPIO使って、GPIOをI2C化する方法を確認しました。
RS232アドオンモジュールには、Armadillo-IoTとのコネクタ(60pin)の信号がスルーホールに出ているので、 動作確認にはこのスルーホールが活用できます。 -
at_kazutaka.bito
Armadillo-IoT+Armadillo-IoT EnOceanアドオンモジュール EN00で、 EnOcean通信のセンサーからデータを取得して、Herokuに通知する仕組みを作ってみました。
-
at_ito
Armadillo出荷時等にLinuxカーネルイメージ、ユーザーランドイメージを自動的に書き換える必要がある場合も多いかと思います。
ここではUSBメモリを使用して、Linuxカーネルイメージ、ユーザーランドイメージを書き換えるためのシェルスクリプトを紹介します。 -
at_ito
Armadillo出荷時等にLinuxカーネルイメージ、ユーザーランドイメージを自動的に書き換える必要がある場合も多いかと思います。
ここではTeraTermマクロを使用して、Linuxカーネルイメージ、ユーザーランドイメージを書き換えるためのTeraTermマクロを紹介します。 -
at_ito
Armadillo出荷時等にLinuxカーネルイメージ、ユーザーランドイメージを自動的に書き換える必要がある場合も多いかと思います。
ここではTeraTermマクロを使用して、Linuxカーネルイメージ、ユーザーランドイメージを書き換えるためのTeraTermマクロを紹介します。 -
at_kazutaka.bito
Armadillo-400シリーズでWebページ上で表を表示するサンプルデモを作ってみました。
-
at_kazutaka.bito
Armadilloで簡易的に固定IPアドレス(例:192.168.10.10)を設定するには、
[armadillo ~]# ifconfig eth0 192.168.10.10 up
というコマンドでできます。 -
at_kazutaka.bito
Armadillo-810開発セットをPCとLANで接続して、PCのWebブラウザから カメラの画像の動画(MJPG:10fps)
カメラの画像の5秒毎の静止画(JPEG)
静止画を10枚分のファイルのダウンロード
ができるサンプルデモを作ってみました。 -
at_kazutaka.bito
Armadillo-810開発セットに簡単にトグルスイッチを付ける方法を検討してみました。
ここでは、スイッチを1個つけれればいい、ということで、ピンコネクタが実装済みの起動モード設定のジャンパ(JP1)を使うことにします。 -
at_kazutaka.bito
Armadillo-400シリーズハードウェアマニュアに記載されている 「i.MX257のSoftware Pad Control Register(SW_PAD_CTL)とDrive Voltage Select Group Control Register(SW_PAD_CTL_GRP_DVS)で、 出力電流(Std, High, Max)、スルーレート(Slow, Fast)、プルアップ/プルダウンを変更することができます。」 について、端子の出力電流の設定を実際にしてみました。
-
at_takuya.sasaki
Armadillo-840でFullHD(1920x1080)のH.264動画を再生しようと試みましたが、以下のメッセージが出力されて、再生されませんでした。
-
at_takenoshita
トレジャーデータさんからfluent bitというものがリリースされたので、Armadillo-IoTで動かしてみました。
-
at_ito
Armadillo-IoT: dnsmasqをインストールするでインストールしたdnsmasqを使ってArmadillo-IoTをDNSキャッシュサーバーとして利用する方法を紹介します。
-
at_ito
Armadillo-IoT: dnsmasqをインストールするでインストールしたdnsmasqを使ってArmadillo-IoTをDHCPサーバーとして利用する方法を紹介します。
-
at_ito
Armadillo-IoTには有線LAN、無線LANや3Gが搭載されており、ルーターとしても使用できます。ルーターにはIPマスカレード、DHCPサーバー、DNSサーバー等の機能が必要になります。 ここでは、DNSキャッシュサーバーとDHCPサーバーとして利用できるdnsmasqをインストールする方法を紹介します。
-
at_takuya.sasaki
前回のeclipseのインストールまで完了した後は、Cで記述したソースコードをビルドしてみます。
1. Cプロジェクトの新規作成
GNOMEからEclipseを起動してください。 メニューの[ファイル]->[新規]->[Cプロジェクト]を選択すると以下のウィンドウが表示されます。
プロジェクト名に任意の名前(今回は hello とします)を入力して、[次へ]を押すと以下のウィンドウが表示されます。
-
at_takuya.sasaki
Armadillo上でCSVファイルをパースして、それぞれの要素ごとに処理を分岐させたい場合があるかと思います。今回は awk を使って簡単なスクリプトを書いてみました。
以下は、test.csvというCSVファイルをパースして、第1カラムが " ls" の場合、第2カラムに指定されたパスのlsを実行するという例です。 CSVファイル内をすべて処理し終わった後に、何らかの処理をしたい場合には、ENDの中に処理を記述できます。
awk ' BEGIN{ FS = "," } { for (i = 1; i <= NF; i++) { param[i] = $i } if( param[1] == "ls" ){ system("ls "param[2]""); } } END{ }' test.csv
-
at_takuya.sasaki
Armadillo-800シリーズの開発環境であるATDE5にeclipseをインストールして、C/C++のプログラムをビルドしてみたいと思います。 今回はeclipseのインストールまでを試してみました。
1. eclipseのインストール
eclipseは以下のサイトからダウンロード可能です。
http://www.eclipse.org/downloads/OSにはLinux、アーキテクチャは環境に合わせてください。今回はJavaではなく、C/C++のビルドを試しみたいので、パッケージには [Eclipse IDE for C/C++ Developers]を選択しました。
-
at_kazutaka.bito
用意するもの
- USB電源ケーブル
- USB電流電圧チェッカ
- USBバッテリ(PC、モバイルバッテリなど)
USBバッテリ--USB電源ケーブル--USB電流電圧チェッカ と接続する。
Armadillo-440開発セットで標準イメージで起動したとき 通常動作時の電圧(標準イメージ内のサンプルソフトfunctesterが動作中)
Armadillo-440開発セットで標準イメージで起動したとき 通常動作時の電流(標準イメージ内のサンプルソフトfunctesterが動作中)
Armadillo-440開発セットで標準イメージで起動したとき スリープ時の電圧(power-on suspend)
-
at_kazutaka.bito
当方がテストに使っていること以外に用途があるのかわからないが、備忘録的にメモしておく。
Armadilloと対抗機(USBキーボード等)を接続して、とりあえずイベントを拾えているかどうかの確認に、
[armadillo ~]# hexdump /dev/input/event0 0000000 f5d3 38c3 09ab 0000 0004 0004 005d 0007 0000010 f5d3 38c3 09cc 0000 0001 004c 0001 0000 0000020 f5d3 38c3 09d9 0000 0000 0000 0000 0000 0000030 f5d3 38c3 16ef 0003 0004 0004 005d 0007 0000040 f5d3 38c3 1709 0003 0001 004c 0000 0000
といった感じでhexdumpで反応を確認している。
この出力をファイルに残したいと思って、
-
at_kazutaka.bito
tarの解凍先を指定したい場合は、-Cオプションで指定できる。
例)temp.tar.gzを~/tmpに直接展開したい場合
tar zxvf temp.tar.gz -C ~/tmp/
-
at_kazutaka.bito
Armadillo-IoTで、3Gの接続状態を監視する方法は、 Armadillo-IoT ゲートウェイ スタンダードモデル 製品マニュアルの9.3.1. ifplugd でできる。
-
at_ito
ここでは、Linux上で.NET Framework互換の環境を実現するMonoを使用して、.NETアプリをArmadillo-440にて動かしてみます。
-
at_ito
Debianのデフォルトのエディタはnanoになっています。visudoコマンドや、gitコマンド等を使用した場合に、デフォルトのエディタが使われることがあります。nanoは単機能なコマンドなため、vimやemacs等の多機能なエディタに変更したい場合があるかと思います。 そのため、ここではATDE(Debian)のデフォルトのエディタを変更する方法を紹介します。
-
at_ito
テストを行う際に、自動的にコマンドを実行したり等、テストの自動化を行いたい場合があるかと思います。 今回は例として、シリアル通信ソフトウェアであるTera Termマクロを使って、起動テストを行う方法を紹介します。
-
at_takuya.sasaki
Armadillo-IoTのマニュアルでは、AWL13をアクセスポイント(AP)に接続させてIPアドレスを固定で割り振る方法を紹介しています。
[ 6.2.4.2. 手動で無線LANインターフェースを有効化する ]
https://manual.atmark-techno.com/armadillo-iot/armadillo-iotg-std_product_manual_ja-1.2.0/ch06.html#sec-net-wlanこの場合、インターネットに接続しようとしても、ホスト名解決ができず失敗するはずです。
-
at_takuya.sasaki
Armadillo-840にUSBカメラを接続し、LCDにUSBカメラの画像をQtで描画するサンプルは、以前以下のフォーラムでサンプルコードが提供されています。
[ QtでUVCカメラを表示させる ]
https://users.atmark-techno.com/forum/armadillo/1343このサンプルでは yuyv_to_rgb.h というソースコード内で、USBカメラからのYUYVの画像データを、LCDに表示するために RBG形式に変換しています。 この変換処理は、ARM Cortex-A9のNEONを使うことで高速化することが可能で、すでに実装もされています。
(#ifdef __ARM_NEON__
で囲まれた箇所です)[NEONについて]
http://www.arm.com/ja/products/processors/technologies/neon.php -
at_kazutaka.bito
Armadillo-IoT+Armadillo-IoT 絶縁デジタル入出力/アナログ入力アドオンモジュール DA00で、 マグネットセンサーの接点のオープン/クローズ状態を取得して、Herokuに通知する仕組みを作ってみた。 ここでは、株式会社日本アレフの人感センサーAPX-101を使用する。 この人感センサーは動体を検知すると、赤い光が点灯して警報出力用にパルスを出力する。 Armadillo-IoTで警報出力のパルスの立ち上がりエッジを検出して、検出した時刻をHeroku送信する仕組みを作る。
-
at_kazutaka.bito
Armadillo-IoT+Armadillo-IoT 絶縁デジタル入出力/アナログ入力アドオンモジュール DA00で、 マグネットセンサーの接点のオープン/クローズ状態を取得して、Herokuに通知する仕組みを作ってみた。 ここでは、株式会社日本アレフのマグネットセンサーAD-1001/AD-1011を使用する。 このマグネットセンサーは、 マグネットが近いと、接点がクローズ マグネットが遠いと、接点がオープン になるようだ。
-
at_kazutaka.bito
Armadillo-440シリーズのプロダクトディレクトリにあるGPIO制御のプログラムのgpioctrlを Armadillo-IoTで使用できるようにしてみた。
1.Armadillo-IoTのプロダクトディレクトリにgpioctrlを置く
ここでは、標準のプロダクトディレクトリ"Armadillo-IoTG-Std"を"my-iot"という名前にコピーした プロダクトディレクトリを使う。
-
at_takuya.sasaki
過去にフォーラムで投稿されていた gst-plugins-bad をビルドする方法を、実際に試してみた際のメモです。
1. Debianブートディスクの作成
以下を参照して、SDカードに Debian環境を構築してArmadillo-840をDebianで起動してください。
https://manual.atmark-techno.com/armadillo-840/armadillo-840_product_manual_ja-1.1.0/ch15.html2. パッケージのアップデート/アップグレード
インターネットに接続できる状態にした後、まずは時刻合わせをします。
root@debian:~# date --set="2015/05/05 18:57" Tue May 5 18:57:00 JST 2015
apt-getでパッケージのアップデート/アップグレードを実施してください。
-
at_takuya.sasaki
Windows向けに作成されたサンプルコードなどを、ATDE5で修正しようとすると、日本語や改行が正しく表示されないというケースがあるかと思います。
今回はATDE5上で、このようなファイルを一括で UTF-8に変換してみます。
まずはファイルの文字コードを調べてみます。コマンドは [ file ] を使います。
atmark@atde5:~$ file test.cpp test.cpp: C source, Non-ISO extended-ASCII text, with CRLF line terminators
Shift-JIS + 改行コードは CRLF のようです。
一括置換は [find] と [nkf] を組み合わせて使います。
atmark@atde5:~$ find . -name "*.cpp"|xargs nkf -Luw --overwrite
これで、カレントディレクトリ配下の 拡張子が cpp のファイルを一括して UTF-8 + LF に変換してくれます。
nkfコマンドのオプションを知りたい場合には、manコマンドで調べてみましょう。
-
at_kazutaka.bito
Armadilloで標準で動作するエディタはviエディタでした。 viエディタは、テキスト入力時とファイル操作時でモードの切り替えが必要なので、慣れるまでが大変です。
Armadillo-IoTでは、joeエディタが動作します。 joeエディタは、テキスト入力時とファイル操作時でモードの切り替えが必要ありません。 joeエディタの基本操作は以下のとおりです。
・ファイルを開く
joe [ファイル名]viエディタは、ファイルを開いた後、iまたはaを入力してテキスト入力モードに移行しないと、テキストが入力できませんでした。 joeエディタは、ファイルを開いた後、そのままテキスト入力できます。
・ファイル操作
Ctrl + c:終了
Ctrl + k, x:保存して終了
Ctrl + k, d:保存
Ctrl + Shift + -:undo・ファイル操作
Ctrl + k, h:ヘルプヘルプを開いたままテキストを編集できます。
-
at_kazutaka.bito
Armadillo-IoT + Heroku(Node.js)でHello World に手を加えて、 Armadillo-IoTからHerokuに送信した文字をWebブラウザで見れるようにします。
-
at_ito
Atmark Distに標準で入っているPythonはバージョンが古いため、ここではDebianパッケージを使用してPythonをユーザーランドに追加する方法を紹介します。
-
at_ito
Atmark Dist等ダウンロードして展開しようとした場合に、エラーがでて正常に展開できない場合があるかと思います。その際に、ダウンロードしたファイルが壊れているかどうかを調べる方法について紹介します。
-
at_takuya.sasaki
Armadillo-840+Qt(QML)でデモを作成してる中で、コマンド引数のようにQMLに対して何らかのパラメータを渡せないかを検討してみました。
-
at_ito
Linuxカーネルのコンフィギュレーションを設定する場合に、 BACKLIGHT_LCD_SUPPORT等のシンボルはわかるものの、設定項目が どこにあるのかわからない時があるかと思います。 ここでは、「BACKLIGHT_LCD_SUPPORT」を元に設定項目が どこにあるのかを調べる方法を紹介します。
-
at_ito
Linuxにはteeというコマンドがあります。このコマンドは標準出力とファイルの両方へ出力することができます。ここではAtmark Distのmakeコマンド実行結果を例に、コマンド実行結果をファイルに保存しつつ、コンソールにも表示する方法を紹介します。
例えば、make.logファイルにコマンド結果を保存しつつ、コンソールにも表示するには、以下のようなコマンドになります。
[ATDE ~/atmark-dist]# make 2>&1 | tee make.log
ソースコードのビルド時にエラーを記録するときなどに便利ですので、ぜひ使用してみてください。
-
at_ito
製品化の際に、アプリケーションが動かなくなった場合などに再起動するためウォッチドッグタイマーを使用する場合があるかと思います。ここではウォッチドッグタイマーの使用方法について説明します。
ウォッチドッグタイマーにはハードウェアウォッチドッグタイマーと、ソフトウェアウォッチドッグタイマーがあります。
ハードウェアウォッチドッグタイマーはCPUのウォッチドッグタイマーの機能を使用しており、ブートローダー(Hermit-At)もしくは、Linuxカーネルで使用しています。そのため、ブートローダーやLinuxカーネルが正常に動作せず、ハードウェアウォッチドッグタイマーをキックできない場合にのみ自動的に再起動が行われます。そのため、アプリケーションが正常に動作しない場合等に使うことには向いていません。
ソフトウェアウォッチドッグタイマーは、Linuxカーネルが提供している機能です。アプリケーション等の死活監視を行う場合に使用することができます。製品化の際に、実装する場合はほぼソフトウェアウォッチドッグタイマーを使用する形になるかと思います。
そのため、ここではソフトウェアウォッチドッグタイマーを使用する方法を以下に紹介します。
-
at_ito
Atmark Distにはシリアル-イーサネット変換通信を行うためのseri2ethというアプリが入っています。ここではseri2ethの使用方法について説明します。
-
at_kazutaka.bito
Armadillo-460+LCD拡張ボード(OP-A400-LCD43EXT-L01)でQtを使ってみた。
-
at_takuya.sasaki
USBメモリはmountコマンドで、マウントすることができます。 マウントコマンドについては、以下のマニュアルにも説明があります。
-
at_kazutaka.bito
Armadillo-IoTのRS232アドオンモジュールのテストインタフェースのSPIを使ってみた。
1.SPI端子の確認
Armadillo-IoT ゲートウェイ スタンダードモデル 製品マニュアル Armadillo-IoTベースボードマルチプレクス表 から、今回は、Armadillo-IoTのCON1にRS232アドオンモジュールを接続して、 RS232アドオンモジュールの CON4の35ピン:CSPI2_SCLK CON4の36ピン:CSPI2_MISO CON4の37ピン:CSPI2_MOSI CON4の50ピン:CSPI2_SS0 を使う。
-
at_kazutaka.bito
Armadilloをインターネットに接続している状態で、グローバルIPアドレスは下記コマンドで確認できる。
[armadillo ~]# wget -q -O - ipcheck.ieserver.net
-
at_kazutaka.bito
Armadillo-440でGPIOをI2Cにするドライバ(i2c-gpio)を実際に動作させてみた。
1.I2CにするGPIOの選択
Armadillo-400シリーズハードウェアマニュアル5.3.6. CON9(拡張インターフェース1) - 「Armadillo-420/440」 の表5.16 CON9信号マルチプレクス - 「Armadillo-420/440」を参考に CON9_1(GPIO3_17)をSCL CON9_2(GPIO3_14)をSDA にすることにした。
-
at_takuya.sasaki
以前、tcpdumpでArmadillo-840が受信したパケットをキャプチャする方法をご紹介しました。
Armadillo-840でtcpdumpを使うこのキャプチャしたデータを再送するためのツールに、tcpreplayというものがあります。
今回、こちらを使って見ましたので、ご紹介します。1. ATDE5を起動する
パケットを再送信するのは、ATDE5からにしますので、ATDE5を用意します。
以下を参照してください。
http://manual.atmark-techno.com/armadillo-810/armadillo-810_product_manual_ja-1.4.0/ch04.html#sct.before-work.setup-atde5 -
at_ito
netflashコマンドでイメージをフラッシュ書いた後、正しく書かれたかチェックしたい場合があるかと思います。
ここでは、netflashコマンドで、正しくイメージが書かれたかどうかをチェックする機能について紹介します。
1. チェック方法
netflashには-Cオプションがあり、このオプションを付けることによって、指定されたイメージと同じイメージが、フラッシュにかかれているかどうかをチェックすることができます。
コマンド例としては、以下のようになります。
netflash -knubC -r /dev/flash/kernel linux.bin.gz
2. ベリファイ実行例
2.1. kernel領域に、linux-a400-1.08.bin.gzイメージを書き込む
以下のコマンドを実行して、kernel領域にlinux-a400-1.08.bin.gzイメージを 書き込みます。この際オプションに"-b"を付けて自動的に再起動しないように しておきます。
-
at_takuya.sasaki
Armadillo-840のDebian環境で動く hwlockコマンドのデバッグをするために、Debianパッケージをソースから持ってきてビルドした際のメモです。
1. SDカードにDebian環境を構築して、SDブートします
以下を参照してください。
https://manual.atmark-techno.com/armadillo-840/armadillo-840_product_manual_ja-1.1.0/ch15.html2. ビルドに必要なパッケージをインストールします
$ apt-get install dpkg-dev
3. ソースコードを持ってきます。
hwclockコマンドはutil-linuxパッケージに含まれます