ブログ

  • at_kazutaka.bito

    TeraTermを使っているとときどき文字ずれが起きる。
    毎回TeraTermを再起動していたが、ネットを探してみると下記の方法を見つけた。

    TeraTermのメニューで、コントロール -> ポートのリセット
    または、
    Alt+O -> Alt+P (Altは押しっぱなし)
    で文字ずれが回復する。

  • at_takuya.sasaki

    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を 有効にします。

  • at_kazutaka.bito

    Howto : Armadillo-440でQt! 第2回 より入手できるユーザーランド atmark-dist-qt-20121105.tar.gz内の、Qt用のプロダクトディレクトリ atmark-dist-qt-20121105/vendors/AtmarkTechno/Armadillo-440.Qt を現在の最新版のユーザーランド(atmark-dist-20140415)にコピーしてビルドしたところ

    • make menuconfig時にコンフィグのデフォルト設定されてない部分を聞かれる
    • make時にdepmod.plのディレクトリがないというエラーがでる

    という現象が発生しました。

  • at_kazutaka.bito

    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に書き込み可能。

  • at_nakai

    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」と認識されます。

  • at_ito

    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などに変更すれば、他の画像形式でもキャプチャすることができると思います。

  • at_ito

    QWTは、Qt上でグラフ表示などを簡単に表示することができるライブラリです。 センサーからのデータを表示するときなどに使えます。 Armadillo-840でも動作させることが可能で、センサー等の結果を表示させる場合などに便利です。 今回はArmadillo-840でQWTを動かす前に、デバッグ用にATDE5でQWTのサンプルアプリを動かす方法を紹介します。

  • at_takuya.sasaki

    Armadillo-840液晶モデル開発セットの拡張ボードに実装されている LED1(EXT1)を、Armadillo-840に電源が投入されてから常時点灯させる方法について。

    1. カーネルコンフィギュレーションを実行

    Device Drivers  --->
    [*] LED Support  --->     
    <*>   LED Default ON Trigger   ←チェックをつける

    2. カーネルソースのArmadillo-840固有部分を修正して、イメージを作成

    atmark@atde5:~/linux-3.4-at7/arch/arm/mach-shmobile$ vi board-armadillo840.c 

    static struct gpio_led gpio_leds_pins[]内の以下の部分の [none] を [default-on] に変更

  • at_nakai

    Armadillo-840などで地図を表示して何かできないか摸索してます。

    地図表示時のLCD画面キャプチャー画像

    簡単に地図を表示するには、debianで起動させて次のパッケージをインストールすることで表示することが出来ます。

    • xserver-xorg-core
    • xserver-xorg-input-all
    • xserver-xorg-video-fbdev
    • foxtrotgps
    • matchbox

    LCDに地図を表示させるために、Xorgを/dev/fb1上で起動させてあげます。
    これをするには、/etc/X11/xorg.confを作成(修正)します。

  • at_kazutaka.bito

    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の共有フォルダのディレクトリの文字色が、黄色地に青字になった。

  • at_takuya.sasaki

    Armadillo-420でBluetooth Low Energyモジュールを利用して通信を行うための手順です。 動作確認については十分にできていませんが、ご参考にしていただければと思います。

    1. ATDE5をダウンロード

    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です。

  • at_kazutaka.bito

    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(無効)のままだった。

  • at_nakai

    標準状態のATDE5 (v20140131)では、x86用のOpenCVパッケージがインストールされていません。 アルゴリズムの検証など、ATDE5上で利用したいシーンは少なからずあると思います。

    ATDE5にOpenCVパッケージをインストールするには次のようにコマンドを実行します。

    atmark@atde5:~$ sudo apt-get update
    atmark@atde5:~$ sudo apt-get install libopencv-dev

  • at_nakai

    OpenCVで2つの直線の交点を検出するソースコードを作ったのでシェアします。

    このソースコードの動作確認は、ATDE5にUSBカメラを接続して行なっています。 アルゴリズムの検証用途だったため、Armadilloでは動作確認していませんのでご注意ください。

    下図は動作確認時のキャプチャです。

  • at_ito

    以下のページを参考に、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を使用

    以下のコマンドを実行し、スクリプトを起動します。

  • at_nakai

    OpenCVでテンプレートマッチングを行うソースコードを作ったのでシェアします。

    解析結果を合成した画像を/tmp/result.jpgに生成するようにしてあります。 mjpeg_streamerのinput_file.soなどと組み合わせることで、結果を簡単に確認することができます。

  • at_takuya.sasaki

    Armadillo-840はタッチスクリーンライブラリにマルチタッチ対応のmtdevを採用しています。 しかし抵抗膜式などのタッチスクリーンコントローラをArmadillo-840に接続する際には、mtdevではなく シングルタッチ向けのtslibを使いたくなるケースが出てきます。

    ここでは、mtdevではなくtslibを使ってQtのアプリケーションを実行するまでの手順を記述します。

    ---注意---

    本記事は、Armadillo-840液晶モデル開発セットでの動作を想定したものではありません。 以下のタッチスクリーンコントローラ(TSC2007)を接続した環境で、試しております。
    http://www.tij.co.jp/product/jp/tsc2007
    (TSC2007を動かすためのカーネルの設定がすでに行われていることが前提となっています。)

  • at_kazutaka.bito

    Armadillo-440とArmadillo-840のLCD表示と同じ画面をPCのWebブラウザで見る方法を考えてみました。 フレームバッファをJPEGファイルにして、mjpg_streamerで見ることにしました。

    添付 lcd2jpeg_a440.zip, lcd2jpeg_a840.zip の srcディレクトリ フレームバッファをJPEGファイル化するソース lcd2jpegを実行すると/var/tmp/for_lcd2jpeg/jpeg_file/lcd.jpg にJPEGファイルが生成されます。
    sample_exeディレクトリ lcd2jpegとmjpg_streamerの実行を組み合わせたサンプルスクリプトstart_lcd2mjpgを実行して、PCのWebブラウザで、URLを[ArmadilloのIPアドレス]:8080とすると LCD表示と同じ画面が見れます。

    補足)

  • at_takuya.sasaki

    Armadillo-840液晶モデルの拡張ボードには、オーディオコーデック(Wolfson WM8978)が 搭載されています。

    http://manual.atmark-techno.com/armadillo-840/armadillo-840_product_manual_ja-1.2.0/ch08.html#sct.kernel_spec.drivers.audio

    拡張ボードのヘッドフォン出力(CON6)から、テストサウンドを再生するには、 以下のコマンドを実行します。

    [root@armadillo840-0 (ttySC2) ~]#gst-launch-1.0 audiotestsrc ! \
    "audio/x-raw,channels=2,rate=48000,width=16" ! \
    alsasink device=hw:1

    *以下も参照 http://manual.atmark-techno.com/armadillo-840/armadillo-840_product_manual_ja-1.2.0/ch06.html#sct.audio

  • at_ito

    Armadillo-800シリーズでは、DisplayLink 社のチップが搭載された USB接続可能なモニタやディスプレイアダプタを簡単に使用することが できます。

    USB接続モニタ(またはディスプレイアダプタ)を使用するには、 以下のLinuxカーネルコンフィギュレーションを変更してください。

    Linux/arm 3.4-at6 Kernel Configuration
    Device Drivers  --->
      Graphics support  --->
        <*> Support for frame buffer devices  --->
          <*>   Displaylink USB Framebuffer support   ← 有効化

    上記のコンフィギュレーションを設定したLinuxカーネルを使うことで、 USB接続モニタが/dev/fb2等のデバイスファイルから使用できるように なります。

  • at_takuya.sasaki

    [現象]

    Armadillo-420上でunzipを使ってzipファイルを解凍しようとすると、 以下のように失敗する。

    [root@armadillo420-0 (ttymxc1) ~]# unzip test.zip
    Archive:  test.zip
    unzip: Unsupported compression method 0

    [原因]

    zipファイルの圧縮メソッド(アルゴリズム)が、無圧縮(stored)になっているため。

    [詳細]

    zipファイルの圧縮メソッドについては、以下のURLに説明があります。 http://www.wdic.org/w/TECH/ZIP - 圧縮アルゴリズム

    Armadillo-400シリーズに標準でインストールされているbusybox 1.00.rc3のunzipでは、 一般的に使用されている[Deflate]という圧縮メソッド以外は、対応できていません。

    atmark-dist/user/busybox/busybox-1.00.rc3/archival/unzip.c

  • at_nakai

    romfs-a810-v1.04.img.gz の空きディスクスペースは約2.0MBです。

    atmark@atde5:~$ df -h
    Filesystem              Size  Used Avail Use% Mounted on
    /dev/loop0              39M   35M  2.0M   95% /home/atmark/romfs

    例えば、OpenCVを取り敢えずインストールしておきたい場合などに 直接インストールしようとしても、ディスクスペースが足りません。

    そのような時には、ディスクスペースを拡張することで解決できます。

  • at_nakai

    簡単にromfsイメージにファイルを追加したい場合などに使えるテクニックです。

    romfsイメージを直接ATDEでマウントしファイルを追加すると、 簡単にカスタマイズされたromfsイメージを作成することができます。

    次のようにすると、ATDE上にマウントすることができます。

    atmark@atde5:~$ mkdir romfs
    atmark@atde5:~$ gzip -dc romfs.img.gz > romfs.img
    atmark@atde5:~$ sudo mount -t ext2 -o loop romfs.img romfs

    マウントすると、通常と同様にファイルの読み書きが行えます。 例えば、binディレクトリにhelloを配置したい場合は、次のようにします。

    atmark@atde5:~$ sudo cp hello romfs/bin/hello

    カスタマイズ後、再度圧縮イメージに戻すには、アンマウント、圧縮を行います。