2019年09月07日

BMPフォーマット

組み込み機器向けのBMP(ビットマップ)の画像データを作成する際に便利なツールを紹介します。

WindowsのBMPの場合、24bitカラーが標準的です。24bitカラーでは組み込み機器の場合、データが少し重すぎます。そのため、組み込み機器16bitカラーBMPを使用することがあります。さらに低い8bitカラーでは色の表現力に欠けます。

MS Paintでは16bitBMPの保存ができないため、16bitカラーBMPを生成するために便利なツールを紹介します。


■Webサイト上で簡単に変換できるツール
組み込み向けのGUIライブラリを提供しているlittlevglの画像変換オンラインツールです。

16bitBMPの他に8bitBMPやC言語用の配列データ変換なども利用できます。
試しにデータ変換する場合にお勧めです。

littegl.jpg

■OSSの変換ツール
OSSの変換ツールではGIMPが便利です。16bit変換BMPに対応しています。変換したい画像を開いてから「名前をつけてエクスポート」で16bitBMPに変換できます。

なお、8bitBMPで保存したい場合は「画像」→「モード」→「インデックス」からカラーマップを8に変更してビットマップで保存すると変換できるようです。

gimp3.jpg


gimp2.jpg

「WindowsBMP」を選択して「エクスポート」をクリックします。


gimp.jpg

詳細選択画面が表示されるため、16bitBMPを選択します。今回はRGB565を選択しました。今度は変換した16bitBMPを「Digital Video Shield」を使って表示させてみたいと思います。
posted by Crescent at 00:00| Comment(0) | ナレッジ | このブログの読者になる | 更新情報をチェックする

2019年08月17日

機械学習機能付きモーションセンサ

今回紹介するのはST製 機械学習機能付きモーションセンサ LSM6DSOXです。

LSM6DSOXの機械学習機能を紹介する前に通信インタフェースについて説明します。モーションセンサとしてI2C、SPIに対応しているというのは普通ですが、これらに加えてI3C(MIPI I3C)に対応しています。I3Cの紹介はまた別の機会にしたいと思いますが、一言でいえばI2Cと後方互換を保ちつつ、I2Cよりも速い12.5MHzのクロック転送ができます。ただ、STからI3Cに対応したマイコンが出ていません...

LSM6DSOXはそのままでは扱いにくいため、評価ボードを購入してみました。



steval-mki197v1.jpg


機械学習コアを内蔵すること特徴として、センサのモーションパターンをあらかじめ学習させると、マイコン側にモーションパターンの結果だけ返すことができるようになります。これで何がよいかというと、モーションパターンを分析するために高周期でセンサとマイコンで通信したり、マイコンで高度な分析処理をする必要がなくなります。電池の長寿命化やマイコンを他の処理に割り当てることが可能となります。エッジ処理のさらにエッジ化という感じです。

機械学習コアに学習させるためには決定木分析のツール、Wekaを使用して学習させることができるようです。
例えば、走っている状態、歩いている状態、止まっている状態を区別する場合、センサ単体で状態を区別できるようになり、マイコン側の処理が不要となります。

LSM6DSOX-core.jpg

※STのデータシートから抜粋


さらにLSM6DSOXの機械学習コアの特徴としてモーションセンサ内の加速度、ジャイロだけでなく、外部のセンサ情報も取り込んで学習させることができるようです。これはLSM6DSOXがI2Cマスタとなって外部センサを接続できる機能の応用例です。


マイコンでなく、センサ側で学習させるというLSM6DSOXは非常に面白いセンサだと思いました。今後、機械学習コアを試食してみたいと思います。
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2019年08月10日

Groveリレー

最近は忙しいため、部品紹介が少し多めとなっています。

今回も部品紹介としてGroveリレーを紹介します。

relay1.jpg

relay2.jpg

Groveコネクタのリレーはいくつかあります(M5Stack用SPDTリレー)が、その中でもSeeed社のGroveリレーv1.2は3.3Vから動作可能なのが特徴です。Seeed社のGroveリレーv1.2であれば、3.3V系でも5V系でもそのまま使用することができます。

ほかのGroveリレーの多くは5V動作なのでSTM32マイコンやArduino Leonardなどの3.3V系のマイコンではそのまま動かすことができません。これらのマイコンで使用する場合はリレーの動作電圧に注意して選定する必要があります。

また、Groveリレーを使用する場合は基板上にコイルの逆起電力をキャンセルさせるためのダイオードが付いているため問題ありませんが、リレー単体で実装する場合は必ず保護ダイオードを取り付けることがポイントです。忘れるとマイコンのポートに数十〜数百Vの逆起電圧が加わり一瞬でマイコンが壊れてしまいます。
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2019年08月03日

Groveパーティクルセンサ

以前、Honeywell製のパーティクルセンサを紹介しました。

今回はGroveパーティクルセンサを使ってみました。
GroveパーティクルセンサはHM3301という中国製のモジュールが搭載されています。

有効レンジとしてはHoneywell製が0~1000μg/m3、Groveパーティクルセンサが1~500μg/m3となっています。Honeywell製の方がレンジが広いです。ほかの仕様はほぼ同様ですが、Groveパーティクルセンサの良い点としてボード上に昇圧回路があり、3.3V電源でも動作することです。また、Honeywell製に比べて、価格が3500円前後で少し安くなっています。


hm3301-2.jpg


Arduinoでサンプルコードを書き込んで試食してみました。


hm3301.jpg


Standard particulate matterとAtmospheric environmentの2つの値が出力されます。Standard particulate matterは工業用の指標、Atmospheric environmentは通常の屋内および屋外の大気環境の指標のようです。2つの値の推移をみると、過渡応答では2つの値に差があるようですが、収束すると同じ値になるようです。

Groveコネクタ直結で3.3V電源で簡単に動くのは便利だと思いました。PM1、PM2.5、PM10といった空気中の粒子の日々の変化を計測してみたいと思います。
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2019年07月27日

スリープ不具合調査

メインで使用しているPCが時々スリープから勝手に復帰してしまうことがあったため、調査してみました。

普段はメインPCは電源を切らず、使わないときはスリープや休止で運用しています。時々、スリープしたにも関わらず勝手に数秒後に復帰してスリープ状態に入らないことがある状況でした。使用しているPCのマザーボードはIntel i5-8400+ ASROCK製 H310M-ITX/acを使用しています。

スリープ状態に入らず、勝手に復帰する原因として多くは下記の原因が挙げられます。
・マウス、キーボードがスリープ解除可能デバイスになっている
・Windows Update、タスクスケジューラによる自動起動
・スリープ解除タイマーの許可が有効化されている

デバイスマネージャで各デバイスを確認するとスリープ解除可能デバイスのチェックは外れており、タスクスケジューラ等もイベント登録もない状況でした。また、電源オプションのスリープ解除タイマーは無効化されていました。

今回の原因はよくある原因ではなさそうなので少し調べてみました。


いつも通りスリープさせて、勝手にスリープから復帰する不具合を確認後、イベントビューアーのシステムを確認してみました。スリープ関連のイベントはPower-Troubleshooterとして登録されており、最新のイベントを確認すると原因が判明しました。

img2.jpg

High Definition Audio Controllerが原因と分かりました。

powercfg -requestsoverride DRIVER "デバイスドライバ名" SYSTEMのコマンドを使用して、指定のデバイスについてデバイス側でなく、電源管理の設定を優先にしました。

img1.jpg


上記のコマンド実行後にスリープ状態に安定して入るようになりました。Windowsのアップデートでデバイスドライバとの相性が出たようです。スリープに関係のないと思われがちなオーディオが原因でした。今度のアップデートでの改善に期待です。


posted by Crescent at 00:00| Comment(0) | ナレッジ | このブログの読者になる | 更新情報をチェックする