Armadillo実践開発ガイド 第3部(linux-3.14-at対応)
2.3. SPI接続A/Dコンバーター
に紹介されているspidevでSPIデバイス(MCP3204)を制御するサンプルプログラムを
カーネル(Linux-4.9)で動作するように変更しました。
個人別ブログ
at_kazutaka.bito さんのブログ
-
at_kazutaka.bito
-
at_kazutaka.bito
Linuxでは、認識したUSBデバイスに応じて、自動的にデバイスファイル名が付きます。
udevを使うと、USBデバイス(※1)を認識した際にデバイスファイルに別名を付けることができます。
ここでは、例として、USBシリアルを認識した際に、独自のデバイスファイル名を付ける(※2)ようにします。
※1)VenderID、ProductIDは予め確認しておく必要があります。
※2)自動的についたデバイスファイルに対して、シンボリックリンクを貼る方法になります。
-
at_kazutaka.bito
WLANコンボ搭載のArmadillo-X1で、Bluetooth対応機器とシリアル通信を確認しました。
ここでは、Bluetoothの対向機としてPCを使用しました。 -
at_kazutaka.bito
カスタマイズしたデバイスツリーをArmadillo上で簡易的に見分けられるようにする方法です。
例えば、デバイスツリーに応じて、アプリケーションの設定などを選択するような用途に使用できます。 -
at_kazutaka.bito
Armadillo-IoT(G3/G3L)/X1/640で、USBメモリ認識時に自動マウントする方法です。
udevルールを定義することで自動マウントできます。 -
at_kazutaka.bito
Armadillo-IoT(G3/G3L)/X1/640:Armadillo上でデバイスツリーの対象製品名を見分ける方法です。
-
at_kazutaka.bito
Armadillo-IoT(G3/G3L)で、閉域網の3G/LTE再接続サービス(connection-recover)の設定の注意点です。
-
at_kazutaka.bito
Armadillo-640で、PWM出力を使ってみました。
ここでは、下記の2つの端子をPWM出力にする例で説明します。
CON9の13:PWM5
CON9の14:PWM6 -
at_kazutaka.bito
Armadillo-X1、Armadillo-IoT(G3/G3L)、Armadillo-640と作業用PCとシリアル経由でファイルの送受信を行う方法です。
通信速度が遅いので、大きなサイズのファイルの転送には向いてませんが、簡単なスクリプトや、 小さいサイズのログファイルの転送などには便利です。 -
at_kazutaka.bito
Armadillo-640で、音声ファイル(mp3)を再生する方法です。
-
at_kazutaka.bito
Armadillo-640で、USBオーディオで録音、再生を試してみました。
-
at_kazutaka.bito
Armadillo-640で、デバイスツリーで、GPIOのデフォルトを出力に設定する方法です。
備考)
Armadillo-640:デバイスツリーで、GPIOのデフォルトを出力に設定する(その1)
の方法では、ユーザー領域からは、Low/High出力を切り替えることができません。
ここでは、簡易的にGPIO 接続用LED ドライバ (leds-gpio)を活用して、
ユーザー領域からLow/High出力を切り替えれるようにします。 -
at_kazutaka.bito
Armadillo-640で、デバイスツリーで、GPIOのデフォルトを出力に設定する方法です。
備考)
この方法の場合、ユーザー領域で、GPIO出力のLow/Highの切り替えができません。
ユーザー領域からGPIO出力のLow/Highの切り替えを行う場合は、
Armadillo-640:デバイスツリーで、GPIOのデフォルトを出力に設定する(その2)
を参照ください。 -
at_kazutaka.bito
Armadillo-640で、OpenCVを使った画像処理を試してみました。
-
at_kazutaka.bito
Armadillo-640:OpenCVを使ってみる
では、画像処理結果をbmpファイルに出力していましたが、
ここでは、Armadillo-640で、OpenCVの画像処理結果をネットワーク経由で確認できるようにしてみます。 -
at_kazutaka.bito
Armadillo-640:USBカメラの画像をmjpg-streamerを使って、ネットワーク経由でPCのWebブラウザで見る方法は、
USBカメラから、画像をYUV入力してMJPEGにエンコードしているため、CPUの負荷が高くなっています。
ここでは、MJPEG出力可能なUSBカメラから、画像をMJPEG入力する方法を確認してみました。 -
at_kazutaka.bito
Armadillo-640 製品マニュアル
SDブートの活用
の手順では、
14.4. SDブートの実行
のとおり、最初の起動時にU-bootの環境変数をコンソールから設定する必要があります。
ここでは、SDブート起動用の環境変数設定済みのU-bootを作成します。
ここでの手順で作成したU-bootを、SDカードのブートディスクのU-bootにすることで、
最初の起動時にU-bootの環境変数をコンソールから設定する必要がなくなります。 -
at_kazutaka.bito
Armadillo-800シリーズで、NORに書き込み済みのイメージがオリジナルのイメージと同じかどうか確認する方法です。
-
at_kazutaka.bito
Armadillo-IoT(G3)で、USB(CON7)の電源(CON7_USB_VBUS)をGPIOで制御する方法です。
-
at_kazutaka.bito
historyコマンドの表記に日時を付ける方法です。
デバッグ時に/var/log/syslogなどのログと、コンソールから実行したコマンドとの相関をとる際に便利です。
-
at_kazutaka.bito
Armadillo-400シリーズで、NORに書き込み済みのイメージがオリジナルのイメージと同じかどうか確認する方法です。
-
at_kazutaka.bito
-
at_kazutaka.bito
Armadillo 製品アップデートのお知らせ (2019年1月/Armadillo-640対象) で、追加されたat-dtwebを使って、
Device Treeをカスタマイズしてみます。
ここでは、I2CとUART(コンソール用)の設定を行ってみます。
I2C2
CON9の4ピン:SDA
CON9の6ピン:SCL
UART1
CON9の3ピン:RXD
CON9の5ピン:TXD
-
at_kazutaka.bito
Armadillo-640で、I2C通信の熱電対温度センサ(MCP9600)からデータ取得を取得してみました。
ここでは、MCP9600熱電対温度センサモジュールを使用しました。
プログラムは、pythonで作成しています。 -
at_kazutaka.bito
Armadillo-X1/IoT(G3/G3L)に接続したUSBカメラの画像を無線LAN経由で見る方法です。
-
at_kazutaka.bito
Armadillo-IoT(G3/G3L)/X1やATDE7などの、Debian「stretch」上でext4にフォーマットにした記録メディアが、
Armadillo-400/800シリーズでマウントできない場合の回避策です。 -
at_kazutaka.bito
Armadillo-IoT(G3/G3L)/X1のBT機能を使って、
ラトックシステム株式会社のBluetooth RS-232C 変換アダプターREX-BT60
とシリアル通信してみました。 -
at_kazutaka.bito
Armadillo-640で、pythonでI2C通信を確認してみました。
ここでは、I2C通信の加速度センサー(ADXL345)からデータを取得してみました。 -
at_kazutaka.bito
Armadillo-640:pythonを動かす で構築した環境で、pyserialでシリアル通信してみました。
-
at_kazutaka.bito
Armadillo-640:pythonを動かすで構築した環境にpythonパッケージを追加する方法です。
ここでは、シリアル通信のパッケージ(pyserial)を追加してみます。 -
at_kazutaka.bito
Armadillo-640で、下記のBLEのUSBドングルを使ってみました。
USB-BT40LE(アイ・オー・データ)
BSBT4D100(バッファロー)
MM-BTUD43(サンワサプライ)
LBT-UAN05C1(エレコム)
例として、BLE通信のセンサータグ「CC2650」(テキサスインスツルメンツ)との接続を確認しました。 -
at_kazutaka.bito
Armadillo-640でpythonでシェルスクリプトを実行してみました。
-
at_kazutaka.bito
Armadillo-640でpythonを動かしてみました。
-
at_kazutaka.bito
Armadillo-X1/IoT(G3/G3L)で、ser2net(シリアルポートをtelnet/TCPに接続するソフト)を動してみました。
-
at_kazutaka.bito
WindowsPC上の共有フォルダをArmadillo-IoT(G3/G3L)/X1にマウントする方法です。
-
at_kazutaka.bito
Armadillo-X1+評価用拡張ボード01(SA-AX1-EXTEVA-01)とUSBカメラで、USBカメラの画像をLCDに表示する方法です。
-
at_kazutaka.bito
ここでは、SDブート用の環境変数を予めブートローダーに設定しておくことで、 初回起動時のコンソールからの環境変数の設定を省くことができるSDブートディスクを作成します。
-
at_kazutaka.bito
Armadillo-IoT(G3L/G3)/X1で、USBメモリでのアップデート方法です。
-
at_kazutaka.bito
Armadillo-400シリーズで、ブートローダが起動しない状態からイメージを書き換える一連の手順をマニュアル(※)から抜粋して簡潔にしました。 ※)Armadillo-400 シリーズソフトウェアマニュアル 6.4. tftpdl を使用してフラッシュメモリを書き換える 6.6. ブートローダーを出荷状態に戻す
-
at_kazutaka.bito
Armadillo-640で、ser2net(シリアルポートをtelnet/TCPに接続するソフト)を動してみました。 例えば、 PC--(LANインタフェース)--Armadillo-640--(シリアルインタフェース)--装置 のような構成で、PCのLANインタフェースで装置とシリアル通信する用途に使えます。
-
at_kazutaka.bito
Armadillo-640で、USBカメラの画像をmjpg-streamerを使って、ネットワーク経由でPCのWebブラウザで見る方法です。
-
at_kazutaka.bito
Armadillo-640で、USB Video Class(UVC)を有効にする方法です。
-
at_kazutaka.bito
ATDE7の画面のロック時間(デフォルトだと5分)を変更する方法です。
-
at_kazutaka.bito
VMwareで、ATDE7(ゲストOS)とWindows(ホストOS)のファイルを共有する方法です。
-
at_kazutaka.bito
Armadillo-640の標準イメージは、起動時にDHCPサーバーからIPアドレスを取得するように設定しています。 DHCPサーバーに接続していると、15秒程度で起動します。 ただ、DHCPサーバーに接続されていないと、90秒程度かかります。 そこで、DHCPサーバー未接続の環境で起動時間を短縮する方法です。
-
at_kazutaka.bito
Armadillo-800シリーズで、rc.local等でgstreamerを自動起動する場合には環境変数を設定します。 参考URL)gstreamerの自動起動
-
at_kazutaka.bito
Armadillo-800シリーズで、ユーザーランドイメージに簡易的に、ファイルの追加、変更を行う方法です。
-
at_kazutaka.bito
Armadillo-X1,Armadillo-IoT G3/G3L: U-Bootのデフォルトのパラメータ設定を変更するの一例として、USBメモリのルートファイルシステムで起動するようにU-Bootの環境変数のデフォルト値を変更してみます。
-
at_kazutaka.bito
eMMCのパーティションを切りなおす方法です。 以下では、USBメモリのルートファイルシステムを起動して、fdiskコマンドで、eMMCのパーティションを切りなおし イメージの書き換えを行ってます。
-
at_kazutaka.bito
Armadillo-800シリーズで、hermit-at-winでブートローダー書き換える方法です。 Armadillo-810/840:Hermit-At Win32(フラッシュメモリ書換ツール(Windows用))でイメージ書き換えに、ブートローダーが動作する際のhermit-at-winでの書き換え方法がありますが、 ここでは、ブートローダーが動作しない際のhermit-at-winでの書き換え方法です。