Armadillo-840で日本プリメックス社のUSBプリンタ(NP-2511)を動かそうと思います。
http://www.primex.co.jp/NPIServlet?viewpage=2&nextpage=3&BLGCode=40&ModelCode=57
ただしドライバがUbunts向けのrpmパッケージ(およびソースパッケージ)になります。 よってまずは、Ubunts向けのドライバをDebianで動かせるようにビルドしてみます。
Armadillo-840で日本プリメックス社のUSBプリンタ(NP-2511)を動かそうと思います。
http://www.primex.co.jp/NPIServlet?viewpage=2&nextpage=3&BLGCode=40&ModelCode=57
ただしドライバがUbunts向けのrpmパッケージ(およびソースパッケージ)になります。 よってまずは、Ubunts向けのドライバをDebianで動かせるようにビルドしてみます。
ATDE5をデフォルトのまま使用していると、共有フォルダが自動的にマウントされません。 これはATDE5がopen-vmを使用しているためです。open-vmの代わりにVMware Toolsを インストールすると、自動的に共有フォルダがATDE5にマウントされます。 ここではopen-vmの変わりにVMware Toolsを使用するための方法について紹介します。
Armadillo上でコンフィギュレーションを確認するには、下記のコマンドで可能。
zcat /proc/config.gz
Armadillo-400シリーズでDebianを使用する場合には、標準でDebian lennyのアーカイブを展開して使うことになります。 Debian lennyは2012年にリリースされており古いため、使用するパッケージのバージョンが古い場合があります。 そのため、ここではArmadillo-400でDebian squeezeを使用する方法を紹介します。
Armadillo-810カメラモデル開発セットで、カメラの画像をH.264エンコードして、MPEG2-TS形式のコンテナにしてみた。 gstreamerのmpegtsmuxというエレメントを使った。 コマンド例は下記の通り。 (画像データの保存先として、/mntにSDカード等、外部メモリマウントしているとする)
gst-launch-1.0 -e v4l2src device="/dev/video1" \ ! video/x-raw,format=NV12,width=640,height=480,framerate=30/1 \ ! acmh264enc ! queue \ ! mpegtsmux ! filesink location=/mnt/out.ts
Armadillo-840のUSBホストにLightningケーブルでiPhone5/5Sを接続し、マウントをしてみた時の手順です。
https://manual.atmark-techno.com/armadillo-840/armadillo-840_product_manual_ja-1.1.0/ch15.html
ATDE上で簡易にテキストファイルをビットマップファイルに変換する方法を考えてみた。
補足)
UTF-8かどうかは、geditエディタを使用している場合、
を開いて、エンコーディング(H)の項目で確認できる。 UTF-8になっていない場合は、UTF-8を選択する。
下記にスクリプト例(text2bmp.sh)を記載する。
このスクリプトでは
について、
の
が生成される。
text2bmp.sh
HDMIやDVIで接続するディスプレイでは、タッチパネルがUSBで接続するマルチタッチパネルになっている場合があります。 ここではUSBマルチタッチパネルを使用するための方法を紹介します。
Armadillo-840でQMLを使ってテロップ表示をするサンプルコードを書いてみました。 10秒かけて[Hello World]という文字がArmadillo-840のLCDの右から左に流れます。 流れる速さは duration: 10000 のところで変更します。 ついでに文字も毎回色が変わるようにしています。
多少カクカクするかもしれませんが、参考まで。
Armadillo-840を起動してもLCDには何も表示されませんが、 LCDに、シリアルコンソールに流れているログを表示する方法を試してみました。
QMLで等幅フォントを使いたくなった。
make menuconfig
を実行してユーザーランドコンフィグレーションで、TakaoGothicフォントを追加。
Userland Configuration Fonts ---> [*] TakaoGothic // デフォルトは空白なので、*を付ける。
QMLのコードでは、Textの中で font.family: "TakaoGothic" のように指定する。
Armadillo-840製品マニュアル 14.5. QMLのhello_qmlの場合は、
<font.familyの追加箇所を抜粋>
Armadillo-440にArmadillo 実践開発ガイド第2部 4. Armadillo 上にDebian GNU/Linux を 構築するを参考にDebian環境を構築する際、rootユーザのパスワードを設定しておく必要がある。 (デフォルトはパスワード設定されてない。)
パスワードを設定してないと、一般ユーザでリモートログインした後、suコマンドを実行してもパスワードではじかれてしまう。
Armadillo-840は、Armadillo-400シリーズに比べイメージサイズが大きくなっているため起動時間が遅くなりがちです。 最終的に製品化する際には、起動時間を早めたい場合もあるかと思います。 そこで、Armadillo-840の標準イメージに入っている機能をけずり、どこまで起動時間を短縮できるかを試してみました。
Armadilloに電源を入れて、ログイン入力画面で、
でログインしようとしたとき、
armadillo440-0 login: root Password: Login incorrect armadillo440-0 login: armadillo440-0 login
のようにログインできない場合は、シリアル通信ソフトの改行コードの設定が CR+LFになっている可能性がある。
PCのシリアル通信ソフトの改行コードの設定を
にすると、ログインできる。
TeraTermだと、メニューの
の中に改行コードの設定項目がある。
iperfコマンドを使用して、ネットワークのスループットを測る方法を紹介します。
Armadillo-400シリーズではタクトスイッチ(SW1)を押しながら電源を入れると、オートブートがキャンセルされ保守モードで起動します。
https://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_software_manual_ja-1.9.0/ch03.html#sec-boot-mode
このオートブートキャンセル機能を無効にし、タクトスイッチを押しながら電源を入れても、オートブートする方法を紹介します。
Howto : Armadillo-440でQt! 第2回のATDE4を使っていると画面ロックまでの時間が短いのが気になる。
下記の方法で、ATDEの画面ロックの間隔を延ばした。
ATDEが立ち上がった状態で、左上の「赤い渦巻模様」の右にあるメニューの システム->設定->スクリーンセーバー で、スクリーンセーバーの設定画面を開く。
設定画面内で、
ちなみに、
のチェックの有無で、アイドル状態、スクリーンセーバー、画面ロックの連動を選択することが可能。
NPtcpコマンドを使用して、ネットワークのスループットを測る方法を紹介します。
以下の環境で、USBカメラからの画像をLCDに表示しつつ、USBメモリにH.264形式でエンコードしてファイル保存をしてみました。
Armadillo-840液晶モデル開発セット
保存用のUSBメモリをマウントします。
[root@armadillo840-0 (ttySC2) ~]# mount -t vfat /dev/sda1 /mnt
H.264エンコーダを有効にします。
ATDEで開発をしていると、WindowsでダウンロードしたファイルをATDE上で扱ったり、ATDE上で作成したファイルをWindows上で扱ったり等のファイル共有を行いたい場合があると思います。その場合は、VMwareの共有フォルダ機能を使うことで実現できます。 ここではではVMwareの共有フォルダ機能を使うための手順を紹介します。
以下のHowToで公開しているAtmark distを使っている場合に、タッチスクリーンの座標がずれている際の対処方法です。
[HowTo:Armadillo-440でQt! 第2回]
https://armadillo.atmark-techno.com/howto/armadillo-440-qt-2
上記ユーザーランドには、キャリブレーションをするためのアプリケーション(ts_balibrate)が入っていません。
まずは、以下のHowTo内の[Appendix1. AtmarkDistとの統合]の手順内で、makeする前にユーザーランドのコンフィギュレーションで ts_calibrateを有効にしてください。
Armadillo-440+Qtで、タッチパネルイベント以外に、タクトスイッチを押されたイベントを拾う方法です。
Armadillo-440のスイッチは、/dev/input/event0に割り当てられています。
https://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_software_manual_ja-1.8.1/ch09.html#sec-buttons
なので、Qtのキーボードデバイスとして、/dev/input/event0を割り当てることで、 比較的簡単に関連付けができそうです。
まずQtのソース側(ヘッダファイル)に、以下のソースを定義します。
以下のHowtoに従い、ユーザランドにdebianを用いて構築したBluetooth環境を、 atmark-distに移行する手順を紹介いたします。
[Howto : Armadillo-400シリーズでBluetoothを使用する]
https://armadillo.atmark-techno.com/armadillo-400-bluetooth
大まかな流れとしては、bluetoothを動作させるのに必要なアプリケーションとライブラリを ATDE3及びatmark-distのromfsにコピーをする作業となります。 尚、それぞれの作業は以下のHowtoに詳細が記載されていますのでご参考ください。
[Howto: debianパッケージに含まれるコンパイル済みのバイナリをArmadiilloで動作させる方法]
https://armadillo.atmark-techno.com/howto/use-debian-binary
開発時に、Linuxカーネルイメージ、ユーザーランドイメージを頻繁に変更することがあると思います。 その際に、毎回フラッシュに書き込むと時間がかかってしまいます。 そのため、起動時に自動的にTFTPサーバーからイメージをダウンロードし、そのイメージで起動する方法を紹介します。
ATDE5を立ち上げた状態で、しばらく操作しない状況が発生すると、再度操作する際にパスワード入力が必要になります(ロック機能)が、 ATDE5はVMware上で動かすため、ロック機能が特に必要のないことが多いかと思います。
そのため、ここではATDE5でロック機能を無効化する手順を紹介します。
以下の画面のように、メニューから「システム設定」を選択してください。
以下の画面が表示されますので、「画面の明るさとロック」を選択してください。
QWTは、Qt上でグラフ表示などを簡単に表示することができるライブラリです。 センサーからのデータを表示するときなどに使えます。 Armadillo-840でも動作させることが可能で、センサー等の結果を表示させる場合などに便利です。
GPIOの出力電流の設定は、Armadillo-400シリーズハードウェアマニュアル
6.2.1入出力インタフェースの電気的仕様-「Armadillo-460」
http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_hardware_manual_ja-1.10.0/ch06.html#sec-6-2-1 より、
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)、プルアップ/プルダウンを変更することができます。
と記載されています。
実際にCON9の2ピンとCON9の14ピンの電流をmaxに設定変更してみました。
注意点としては、上記のとおり、SW_PAD_CTLで設定できるものと、 SW_PAD_CTL_GRPで設定できるものがありますので、電流設定のパラメータ(DSE)が あるレジスタを選択する必要がある点です。
Armadillo-840/810向けに、ATDE5で WLI-UC-GNMのドライバ(DPO_RT5572_LinuxSTA_2.6.1.3_20121022)を コンパイル際には、以下のHowToが参考になります。
[ Howto : Armadilloで11n 対応のUSB無線LANモジュール(GW-USMicroN)を使う ]
https://armadillo.atmark-techno.com/howto/11n-wlan-usb-module-gw-usmicron
ただし、make時に、明示的にアーキテクチャを指定しなければ、 以下のエラーログが出てしまうので注意が必要です。
Armadillo-810でUSBモニタ(DisplayLink対応)に表示させることに挑戦。
手順は
Armadillo 実践開発ガイド第3 部 2.8. USB 接続モニタ
http://manual.atmark-techno.com/armadillo-guide/armadillo-guide-3_ja-2.1.2/ch02.html#sec_using_usb_display
とほとんど同じ。
違う所は、2か所。
その1
armelの部分は、armhfに読み替える。
その2
図2.89 libdlo をビルドするために必要なパッケージのインストール
の
Armadillo-400シリーズでQWTを使うための環境構築方法を紹介します。
TeraTermを使っているとときどき文字ずれが起きる。
毎回TeraTermを再起動していたが、ネットを探してみると下記の方法を見つけた。
TeraTermのメニューで、コントロール -> ポートのリセット
または、
Alt+O -> Alt+P (Altは押しっぱなし)
で文字ずれが回復する。
HowToで公開されているArmadillo-840でArmadillo-810カメラモジュールを 使う方法をベースに、カメラ制御用のcamctrlを使う方法です
[Howto : Armadillo-840でArmadillo-810 カメラモジュール 01 (B コネクタ用)を使用する]
https://armadillo.atmark-techno.com/howto/a840-use-op-a810-cam01-00
まずはArmadillo-840のカーネルコンフィギュレーションでcamctrlを 有効にします。
Howto : Armadillo-440でQt! 第2回 より入手できるユーザーランド atmark-dist-qt-20121105.tar.gz内の、Qt用のプロダクトディレクトリ atmark-dist-qt-20121105/vendors/AtmarkTechno/Armadillo-440.Qt を現在の最新版のユーザーランド(atmark-dist-20140415)にコピーしてビルドしたところ
という現象が発生しました。
sshを利用すると簡単にリモートI/O制御することができます。
Armadillo-840のLED制御を例に紹介します。
sshを利用するので、Armadillo-840側でsshdが立ち上がっていない場合は、
下記を参照してsshdを起動させておきます。
参照: Armadillo-840 製品マニュアル - 14.3.4.1. Armadillo上でSSHを設定
sshを利用してArmadilloにリモートログインする場合に、
通常はパスワード入力を要求されます。煩わしいですね。
ここではArmadillo-840を例に、パスワード入力なしでログインさせる方法を紹介します。
Armadillo-200シリーズの開発環境ATDE2からnetflashで書き込もうと思ったら、ATDE2は/var/wwwがなかった。
そこで、ATDE2にWebサーバー(lighttpd)をインストールする
[ATDE ~]$ sudo apt-get update [ATDE ~]$ sudo apt-get upgrade [ATDE ~]$ sudo apt-get install lighttpd
と、/var/wwwができた。
あとは、/var/wwwにイメージファイルを置いて、netflashコマンド
[armadillo ~]# netflash -k -n -u -r /dev/flash/[リージョン] http://[ATDEのIPアドレス]/[イメージファイル]
でATDE2からArmadilloに書き込み可能。
SDカードなどにDebianをインストールして利用していると、ネットワークインターフェース名(e.g. eth1)が変更されてしまう場合があります。
これは、udevの機能の一つで、MACアドレスに対して固有のインターフェース名が付与されるようになっているためです。
そのため、別のArmadilloにSDカードを挿し直して起動した場合などに現象が発生します。
別のArmadilloに挿し直してもインターフェース名を常に「eth0」に保つには、
/etc/udev/rules.d/70-persistent-net.rules
を初期化しておきます。
初期化するには、下記のようなコマンドでも構いません。
echo > /etc/udev/rules.d/70-persistent-net.rules
Debianを再起動すると、ネットワークインターフェースが「eth0」と認識されます。
Armadillo-840で、LCDに表示されている画面をキャプチャする方法を紹介します。
Armadillo-840には標準でGStreamerが入っていますので、そちらを利用してキャプチャします。
以下のコマンドでキャプチャすることができます。
[armadillo ~]# gst-launch-1.0 -e multifilesrc location=/dev/fb1 num-buffers=1 ! \ > "video/x-raw,width=800,height=480,format=BGRx,framerate=1/1" ! \ > videoconvert ! jpegenc ! filesink location=capture.jpg
jpegencなどをpngencなどに変更すれば、他の画像形式でもキャプチャすることができると思います。
QWTは、Qt上でグラフ表示などを簡単に表示することができるライブラリです。 センサーからのデータを表示するときなどに使えます。 Armadillo-840でも動作させることが可能で、センサー等の結果を表示させる場合などに便利です。 今回はArmadillo-840でQWTを動かす前に、デバッグ用にATDE5でQWTのサンプルアプリを動かす方法を紹介します。
Armadillo-840液晶モデル開発セットの拡張ボードに実装されている LED1(EXT1)を、Armadillo-840に電源が投入されてから常時点灯させる方法について。
Device Drivers ---> [*] LED Support ---> <*> LED Default ON Trigger ←チェックをつける
atmark@atde5:~/linux-3.4-at7/arch/arm/mach-shmobile$ vi board-armadillo840.c
static struct gpio_led gpio_leds_pins[]内の以下の部分の [none] を [default-on] に変更
sambaという仕組みを使って、Armadillo上の任意のディレクトリを、Windowsと 共有することが可能ですが、samba serverはArmadillo-440ではデフォルトでは有効になっていません。
Armadillo-840などで地図を表示して何かできないか摸索してます。
簡単に地図を表示するには、debianで起動させて次のパッケージをインストールすることで表示することが出来ます。
LCDに地図を表示させるために、Xorgを/dev/fb1上で起動させてあげます。
これをするには、/etc/X11/xorg.confを作成(修正)します。
ATDE3の共有フォルダのディレクトリの文字色は、緑地に青字で見づらい。 属性によって緑字になっているので、根本的には属性を変えればいいと思うが、 今回は文字色を変更してみた。
ホームディレクトリで、 dircolors -p > ~/.dir_colors で、.dir_colorsを作成。
.dir_colorsをエディタで開いて、 OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky の箇所を OTHER_WRITABLE 34;43 # dir that is other-writable (o+w) and not sticky に変更。
eval dircolors ~/.dir_colors -b
で設定を反映。
ATDE3の共有フォルダのディレクトリの文字色が、黄色地に青字になった。
Armadillo-420でBluetooth Low Energyモジュールを利用して通信を行うための手順です。 動作確認については十分にできていませんが、ご参考にしていただければと思います。
Armadillo-420の開発環境はATDE3となっていますが、Bluezの新しいバージョンについては、 ビルドにGLibの2.28以上が必要です。
atmark@atde3:~bluez-5.18$ ./configure --build=i686 --host=arm-linux-gnueabi …省略… checking for GLIB... no configure: error: GLib >= 2.28 is required
しかし、ATDE3のGLibのバージョンは2.16.6です。
PWMを有効にしようとして、
[armadillo ~]# echo 700000 > /sys/class/mxc_pwm/(PWM_NAME)/duty_ns [armadillo ~]# echo 1 > /sys/class/mxc_pwm/(PWM_NAME)/enable
で、enableが1(有効)に設定。
念のため、catでenableを確認すると、
[armadillo ~]# cat /sys/class/mxc_pwm/(PWM_NAME)/enable 0
で、enableが0(無効)のままだった。
標準状態のATDE5 (v20140131)では、x86用のOpenCVパッケージがインストールされていません。 アルゴリズムの検証など、ATDE5上で利用したいシーンは少なからずあると思います。
ATDE5にOpenCVパッケージをインストールするには次のようにコマンドを実行します。
atmark@atde5:~$ sudo apt-get update atmark@atde5:~$ sudo apt-get install libopencv-dev
OpenCVで2つの直線の交点を検出するソースコードを作ったのでシェアします。
このソースコードの動作確認は、ATDE5にUSBカメラを接続して行なっています。 アルゴリズムの検証用途だったため、Armadilloでは動作確認していませんのでご注意ください。
下図は動作確認時のキャプチャです。
以下のページを参考に、QMLでピンチアウト、ピンチインの動作ができるかどうかを確認しました。
http://developer.nokia.com/community/wiki/How_to_handle_pinch_gestures_using_PinchArea_item
Armadilloで動作させるためには、上記のサンプルスクリプトの以下の部分を必要でした。
1) 1行目のimport 1.1をimport 2.0に変更 2) 表示する画像をArmadilloに保存し、18行目の画像ファイルの場所を画像ファイルの場所に変更
※: 動作確認時は、Armadillo実践開発ガイド 第2部のmidomadillo.bmpを使用
以下のコマンドを実行し、スクリプトを起動します。
Armadilloにログインした際に、設定される環境変数はどこで設定されているのか?を Armadillo-840を例に簡単にですが説明します。
Armadillo-840にログインして環境変数を見てみます。
Armadillo-810でリモート実行、デバッグする方法として、 ATDE5のQtCreatorを使えるようにしてみました。