Qt上でQPainterで図形描画をさせる場合、
MainWindow上にある子ウィジェットに対してはそのままでは描画することができません。
Qtでは子ウィジェットの中で描画をさせる必要があるため、
描画するには子ウィジェットクラスのpaintEvent()メソッドをオーバーライドする必要があります。
ここでは、オーバーライドさせてQPainterを使う方法をご紹介します。
ブログ
-
at_mangetsu
-
at_takuya.sasaki
以前、ブログで、株式会社ネクス様が発売しているUSB 3Gドングル [ RT-WJ02 ]を、Armadillo-440で使ってみたときの内容ご紹介しました。設定ファイルなどを標準イメージ上で作成しましたが、RAMDISK上に作成しているため、 Armadillo-440をリブートすると消えてしまいます。
そこで、今回はSIMが固定的に使えることを前提に、ユーザーランドのイメージに設定ファイルを含める方法にしてみました。 -
at_takuya.sasaki
株式会社ネクス様が発売しているUSB 3Gドングル [ RT-WJ02 ]を、Armadillo-440で使ってみました。 まずは標準のユーザーランドのままで動作確認をしてみます。 またSIMには umobile を利用していますので、お使いのSIMに合わせてユーザ名などは変更する必要があります。
-
at_kazutaka.bito
Armadillo-440からNXPの3軸加速度センサー「MMA8452Q」の加速度を取得して、 下の写真のようにGTKでLCDに表示するサンプルプログラムを作成してみました。
・加速度に応じて、赤丸が疑似3D風の座標でリアルタイム(といっても50ms毎)に動きます。 -
at_kazutaka.bito
Armadillo-440からNXPの3軸加速度センサー「MMA8452Q」の加速度を取得してみました。
動作確認の手順とサンプルプログラムについて説明します。 -
at_kazutaka.bito
I2C通信において、単純なRead、Writeでは、Stop Conditionで通信を終了するまでRead、Writeの方向は固定です。
内部レジスタを持つI2C通信のデバイスで、任意のレジスタをReadする方法として、 単純なRead、Writeを組み合わせで行える場合は、..... -
at_mangetsu
Qtで画面作成をされる際、 ボタンに画像を埋め込みたい場合の方法をご紹介します。
-
at_mangetsu
Qtでアプリケーションを作成する際、 画像ファイルを外部から読み込むのではなく、 アプリケーションに埋め込んで使いたい場合がありませんか?
ここでは、その方法をご紹介します。 -
at_ito
無線LANの通信で、回線が切断されるなど電波強度を確認したい場合があるかと思います。
ここでは、iwconfigコマンドを実行し、電波強度を確認する方法をご紹介します。 -
at_mangetsu
ArmadilloのHTTPサーバを用いてファイルダウンロードサービスを行う場合、 外部メモリ(Removable Media)を使いたい場合の方法をご紹介します。
-
at_ito
LANポート1つに対して複数のIPアドレスを設定する方法を紹介します。 LANポートは通常eth0等のインターフェイス名が使われます。 IPアドレスの設定は「ifconfig eth0
」コマンドを実行します。 -
at_kazutaka.bito
Armadillo-440:GTKのGUIサンプリアプリ(functester)を単独でビルドするでは、ATDE3(lenny)で確認しました。 ここでは、ATDE5(wheezy)でfunctesterを単独でビルドして動作確認してみました。
-
at_mangetsu
ArmadilloシリーズでNTPを使いたい場合について、方法をご紹介します。
※ここではArmadillo-IoTを例に取り上げます。 -
at_ito
Armadillo-400シリーズ、Armadillo-IoT(G2)でtftpdlコマンドを使用して、フラッシュの全領域を書き換えたい場合があるかと思います。ファイルサイズが大きすぎで起こるエラーを避け、全領域を書き換える方法をご紹介します。
-
at_mangetsu
前回(Armadillo-440+Qtで時刻を扱う)の続きです。
画面上でモーションのある動作をさせる場合の例として、 Qtでウェイトをかけながらモーション表示を行う方法を紹介します。 -
at_mangetsu
画面上で時刻情報を使いたい場合の例として、 Qtでタイマを扱うサンプルを作成してみました。
ボタンを押すと数のカウントが始まり、 経過時間を表示する、というものです。
初期画面
-
at_ito
Armadilloは組み込みボードということもあり、標準のデスクトップ環境と比べ、標準イメージで使用できるコマンドが少ないです。そのため、どのコマンドが使用できて、どのコマンドが使用できないかを調べたい場合があるかと思います。
そこでArmadilloに搭載されているコマンド一覧を調べる方法を以下に紹介します。 -
at_takuya.sasaki
安川情報システム株式会社が発売しているUSB 3G通信アダプタ [ MMLink-Lite 3G]を、Armadillo-420で使って見ました。
-
at_kazutaka.bito
独自のDNSサーバー等を設定する場合は、resolv.confに記述します。 ただ、udhcpc(DHCPクライアント)が起動すると、resolv.confがクリアされます。 udhcpc起動の度に、resolv.confを編集するのは面倒ですので、udhcpc起動に 独自のresolv.confを簡易的に設定する方法を考えました。
-
at_mangetsu
Armadillo-400シリーズでUSBカメラを接続し、 静止画を撮りたい場合の方法をご紹介します。
Armadillo-410/440の場合での例です。 -
at_mangetsu
USBハードディスクを使いたい場合などで、 Armadillo上でNTFSファイルシステムを使う方法をご紹介します。
機種依存がないため、 以下、ATDEとatmark-distの準備が済んでいる前提にて手順を紹介します。 -
at_takuya.sasaki
Armadilloシリーズのオプションである無線LANモジュール AWL13をユーザランドコンフィギュレーションで有効化 したにも関わらず、ドライバのロードが失敗することがあります。
以下はその際のログメッセージです。 -
at_ito
代理店の福西電機様から、三重電子の4.3inch LCD(型番: PH480272T006-IZB01)をお借りできたので、Armadillo-440で動かしてみました。
動かした際の手順を以下に紹介します。 -
at_ito
コンソールを標準のシリアルインターフェース以外に変更する際など、起動中に/etc/inittabを変更し、動作を確認したい場合があるかと思います。
initはLinuxカーネル初期化終了後に必ず最初に起動されるプロセスです。従いまして、/etc/inittabを変更するだけでは、設定変更をすぐに変更することができません。
init起動中に/etc/inittabファイルの変更を反映させるには、以下のコマンドを実行してください。 -
at_kazutaka.bito
Armadillo-440で、GTKでpng形式の画像をLCDに表示するサンプルを作ってみました。 (標準イメージのGUIサンプルアプリ(functester)を参考に、画像をLCD全画面に表示するようにしました。)
-
at_kazutaka.bito
Armadillo-440開発セットにUSBキーボードを接続して、LCDをコンソール表示として使ってみました。 標準のイメージのまま、自動起動のスクリプト(/etc/config/rc.local)のみを変更して、 次回起動時から、LCDをコンソール表示する方法を説明します。
-
at_kazutaka.bito
GTKのGUIアプリを作ろうと思って、Armadillo-440のGUIサンプルアプリ"functester"を流用することを考えました。 動作確認にあたって、ソースコードの ~/atmark-dist/vendors/AtmarkTechno/Armadillo-440/functester を単独でビルドできると便利なので、その方法を検討したら、Makefileの修正で実現できました。 その方法、ポイントをご紹介します。
-
at_ito
特定プロセスのCPU使用率が変化した場合に、シェルスクリプトで何かの処理を行いたいなどの場合があるかと思います。そのような場合に使える、psコマンドで特定プロセスのCPU使用率を調べる方法を紹介します。
-
at_mangetsu
Armadilloの起動直後から時刻を扱いたい場合などにおいて、 タイムゾーンのJSTへの切り替えを止めてUTCのまま動作させたい場合の方法を紹介します。 ※以下、Armadillo-840の場合の例です。
-
at_kazutaka.bito
Qtで作成した画面をDisplaylinkのUSBモニタに表示してみました。(Qtの開発環境は構築済みの前提です)
-
at_kazutaka.bito
DisplaylinkのUSBモニタをフレームバッファデバイスとして使えることを確認する手順をご紹介します。
フォーラムのQtで作成したアプリをUSB外部モニターに表示したい。を参考にしています。 -
at_kazutaka.bito
USBデバイスが接続されたときのドライバの挙動にはVendorID、ProductIDが使用さます。
代表的なUSBデバイスについては、VendorID、ProductIDはドライバに登録済みですが、 登録されていないUSBデバイスを使う場合は、VendorID、ProductIDを確認して、登録する必要があります。
Armadillo上でUSBデバイスのVendorID、ProductIDを確認する場合は、USBデバイスを接続した状態で /proc/bus/usb/devices ファイルで確認できます。 -
at_ito
カーネルパニック発生時に自動的に再起動する方法等のテストを行う際に、カーネルパニックを簡単に発生させる方法を紹介します。
-
at_takuya.sasaki
ATDEをVmware Workstationから起動すると、エラーメッセージが表示されて起動できない場合があります。
この場合、WindowsのUAC(User Account Control)による制限である可能性が高いです。 UACを無効化するか、VMware Workstationを起動する際、VMwareのアイコンを右クリック→「管理者として実行」を選択してみてください。 -
at_mangetsu
カーネルパラメータの確認/設定変更する場合に使うsysctlコマンドについて、 Armadillo-410/440/460(カーネル2.6系)で使う方法を紹介します。
-
at_kazutaka.bito
Armadillo-440でGUIの開発にQtを使用する際、Howto : Armadillo-440でQt! 第3回のように 開発環境としてQtCreatorが使用できます。
このQtCreatorを使って、別途作成したC言語のプログラムを静的ライブラリでリンクさせる際、 ひと工夫必要だったため、手順をご紹介します。 -
at_kazutaka.bito
Armadillo-440でQtで作成したGUIをUSBマウスで操作できるようにしてみました。 (本方法はArmadillo-410、Armadillo-460も同様に使用できます。)
-
at_ito
アプリケーションやドライバーの作りによりカーネルパニックが発生し、意図通りにソフトウェアが動作しない場合があるかと思います。その際、すでにフィールドに出している製品等ですと復帰ができず困る場合もあるかと思います。
そのような場合の対策として、カーネルパニックが発生すると、自動的に再起動する機能がありますので紹介します。 -
at_kazutaka.bito
Armadillo-400シリーズは、タクトスイッチや、LCD拡張ボードのスイッチ(Armadillo-420を除く)について、 ボタン入力に応じて任意のコマンドを実行するswmgrというコマンドを使用できるようになっています。
ここでは、swmgrをタッチスクリーンのタッチに対応するように改造してみます。 -
at_kazutaka.bito
Armadillo-400シリーズの標準カーネルでは、タクトスイッチ、LCD拡張ボードのスイッチ(Armadillo420を除く)のボタン入力が実装されています。
ここでは、下記のようにGPIOを使ったボタン入力を追加してみます。 -
at_mangetsu
Armadillo-420上でPerl5を動かしてみました。
-
at_kazutaka.bito
Armadillo-400シリーズでWebページ上で表とグラフを表示するサンプルデモを作ってみました。
-
at_ito
Aramdilloの開発環境であるATDEを使用する場合には、VMware等の仮想マシンを動作させるためのソフトウェアが必要になります。VMwareは多数の製品があるため、ここではVMwareの選び方を簡単に説明します。
-
at_ito
Armadillo出荷時等にLinuxカーネルイメージ、ユーザーランドイメージを自動的に書き換える必要がある場合も多いかと思います。
ここではTeraTermマクロを使用して、Linuxカーネルイメージ、ユーザーランドイメージを書き換えるためのTeraTermマクロを紹介します。 -
at_kazutaka.bito
Armadillo-400シリーズでWebページ上で表を表示するサンプルデモを作ってみました。
-
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_kazutaka.bito
用意するもの
- USB電源ケーブル
- USB電流電圧チェッカ
- USBバッテリ(PC、モバイルバッテリなど)
USBバッテリ--USB電源ケーブル--USB電流電圧チェッカ と接続する。
Armadillo-440開発セットで標準イメージで起動したとき 通常動作時の電圧(標準イメージ内のサンプルソフトfunctesterが動作中)
Armadillo-440開発セットで標準イメージで起動したとき 通常動作時の電流(標準イメージ内のサンプルソフトfunctesterが動作中)
Armadillo-440開発セットで標準イメージで起動したとき スリープ時の電圧(power-on suspend)
-
at_ito
ここでは、Linux上で.NET Framework互換の環境を実現するMonoを使用して、.NETアプリをArmadillo-440にて動かしてみます。
-
at_ito
Debianのデフォルトのエディタはnanoになっています。visudoコマンドや、gitコマンド等を使用した場合に、デフォルトのエディタが使われることがあります。nanoは単機能なコマンドなため、vimやemacs等の多機能なエディタに変更したい場合があるかと思います。 そのため、ここではATDE(Debian)のデフォルトのエディタを変更する方法を紹介します。
-
at_ito
テストを行う際に、自動的にコマンドを実行したり等、テストの自動化を行いたい場合があるかと思います。 今回は例として、シリアル通信ソフトウェアであるTera Termマクロを使って、起動テストを行う方法を紹介します。