2019年06月22日

CO2センサ

今回は先日、入手したCO2センサについて少し紹介します。

CO2センサは室内の空気管理、植物を育てる温室の空気管理、人の混み具合可視化など用途が広く面白いセンサです。



CO2センサの原理として、光学式、電気化学式、半導体式があります。
MH-Z14Aはどのような構造か、精度が悪化することを承知で中身を確認してみました。


co2_1.jpg

上部に白い布状のテープが貼ってあり、ここからCO2が入るようです。



co2_2.jpg

使用しているマイコンはSTM32F051K8のようです。マイコン横のICはWS6252と記載されていますが、情報がありませんでした。回路パターンからオペアンプだと思われます。


co2_3.jpg

上の蓋を外すと内部は至ってシンプルでした。左側にLED(赤外線LED)、右側に光センサ素子がついています。



co2_4.jpg

外乱として外部の光が入らないような入れ子構造になっていました。センサ側の蓋はミラー状になっており、赤外線LEDの光を受ける構造になっていました。

ということでMH-Z14Aは光学式CO2センサと分かりました。非分散型赤外線(NDIR: non dispersive infrared)検出方式のようです。思った以上にシンプルな構造でした。赤外LEDの光をばらつきなく受光素子に届けるための蓋の金色と形状がポイントだと思いました。


また別の機会に実際につかってみたいと思います。
posted by Crescent at 00:00| Comment(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2019年06月15日

シリアルBLEモジュール変換基板

今回は以前に紹介したシリアルBLE5モジュールの変換アダプタを設計、試作してみたのでご紹介します。

シリアルBLEモジュール変換基板にはSilicon Labs製 BGX13Pを搭載しています。
BLE5に対応したUARTシリアルで設定変更できるBLE5のモジュールです。
技適も取得済でマークがモジュールに記載されています。

Silicon Labs製 BGX13Pはシリアルで簡単にデータを設定、転送できるだけでなく、スマホアプリ(iOS、Android)でファームアップデートが簡単に可能なので今後の機能アップにも期待できます。


BLE5_1.jpg

BLE5_2.jpg

当初、手はんだで後からQFNパッケージのイメージで実装できると思いましたが、パットが小さいかつ数が多いのため、ハンダがうまく流れないためリフローでないと実装が難しいことが分かりました。そのため、実装も外部に委託して試作してみました。

BLE5_3.jpg

BootボタンとRSTボタンを備えており、電源LED、全IOにアクセスできる設計になっています。また、電源3.3V、GND、シリアルTX/RXはGroveコネクタで簡単に接続できるようにしました。基板サイズ自体は25mm x25mmの正方形でピン幅は22.86mmでブレッドボードにピッタリ幅に設計しました。


今後、検証して問題なければ1個3.5千円前後でどこかで販売予定です。
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2019年06月08日

Digital Video Shield 応用編その2

Digital Video Shieldの応用編その2を紹介します。
ここ数回、応用方法を紹介(初回その1)しましたが、今回はJPG、PNGの画像を表示させてみました。

Digital Video Shieldで使用しているビデオエンジンBT816はCo-Processorエンジンを搭載しており、LOADIMAGEコマンドを使用することでJPGやPNGの画像をデコードしてビットマップに展開する処理をBT816内で行うことができます。
BT816でデコードできるため、Arduino等の小規模のマイコンでもJPG、PNG画像を表示させることができます。

また、Digital Video ShieldにはmicroSDスロットがあるため、他の配線なしでSDカードに入った画像を読み込んで表示することができます。



JPG、PNG画像をBT816に読み込む方法はいくつかあります。
@SDカードデータ→BT816内のRAMに展開→BT816内のRAMからビデオ出力
ASDカードデータ→BT816内のRAMに展開→Digital Video ShieldのFlashへ書き込み→FlashからRAMへ展開→BT816内のRAMからビデオ出力
B@の方法でSDカードの代わりにコード内にバイナリデータを実装
CAの方法でSDカードの代わりにコード内にバイナリデータを実装

なお、BT816でデコードせずにそのままBitmapを表示させる方法はありますが、専用ツールで前処理(専用のファイル形式への変換)が必要で手間と汎用性に欠けるため、今回はこの方法は使用しません。

B、Cはマイコンに十分なROM領域がないと実現できないため、汎用性を考え、@の方法を紹介します。
Aの方法はDigital Video ShieldのFlashを活用する意味では魅力的ですが、BT816に接続されたFlashは読み込み時はそのまま読み込むことはできず、必ずRAMに展開する操作が必要となります。また、Flashのメモリは16MBでSDカードと比べると小さく、SDカードの方が汎用性が高いため、機会があれば別途紹介したいと思います。

全体手順
1. microSDに800x480の画像データをPCから保存
2. main while内、もしくはloop内にEveDemo3関数呼び出しコードを記述
3. Digital Video ShieldのSDスロットにメモリを挿入
4. マイコンに上記コードを書き込み
5. ディスプレイを接続して電源を投入する
6. JPG/PNGが表示されます


JPG/PNGのデコード、表示処理を行うEveDemo3関数の内部処理を簡単に紹介します。EveLoadJpgFile内でメモリから読み込み、デコード、表示処理を行います。

1. SDカード内の該当する画像ファイルを開く
2. CMD_LOADIMAGE命令を実行し、BT816内の汎用RAM領域RAM_Gにデータ展開する
 ※RAM_G展開したデータはCMD_LOADIMAGE命令で自動でデコードされます
3. デコードされたビットマップデータをEveCmdSetBitmapで設定します
 ※ここで高さ、幅は読み込んだファイルのそのままのピクセルサイズを設定します
4. 位置を変更する場合はVERTEX2II(x,y,...)で必要に応じて変換処理を行います
 ※今回は紹介しませんが、大きさ変更や回転させる場合はCMD_SCALE、CMD_TRANSLATEといったコマンドがあります
5. DISPLAY、DLSWAPで表示処理を行うことでディスプレイに表示されます


img5.JPG

SDカードから800x480ピクセルサイズのJPG/PNGをBT816のRAMに読み込ませて800x480のディスプレイに表示させてみました。JPG/PNGのファイルをそのまま前処理(専用のファイル形式への変換)なしで表示できるのは非常に魅力的だと思いました。


arduino.jpg

ArduinoUNOでコンパイルした結果は 使用率ROM45%、RAM58%でまだまだ余裕があります。ArduinoUNOを使用してSDカードのファイルシステム、JPG/PNGのデコード、画像表示までできることが確認できました。ArduinoUNOといったマイコン側にRAM容量がなくともビデオエンジンBT816の大容量RAMによりこのような処理を実現することができました。BT816のRAMサイズは1MBあるため、JPG/PNGをデコードしたビットマップで1MB以下の画像であれば表示できると思います。


今回のサンプルはArduinoUNO及びSTM32F401 Nucleoで実装しています。Githubに上がっているコードをアップデートし、JPG/PNG読み込み例(EveDemo3)を追加しました。

Digital Video ShieldとArduinoUNOで自作フォトフレームといったことも簡単に実現できそうです。
posted by Crescent at 00:00| Comment(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2019年06月01日

Kibana日本語対応まもなく!

今回はElastic社が開発している可視化ツールKibanaの多言語対応化について紹介します。

Kibanaの言語は標準では英語のみ対応でした。
19年に入ってからElastic社から多言語対応の発表があり、日本語は7.1から対応と発表されました。
すでに19年5月下旬時点では7.1.1がリリースされていますが、日本語対応していません。

Githubのコミット状況をみると、19年5月下旬に日本語対応関連のコミットがあり、7.1.2か、7.2当たりで正式に日本語対応されそうです。


ちなみに日本語化する場合は
kibana.yml
の最終行にi18nの設定項目があり、コメントアウトを解除して設定します。

デフォルトは
i18n.locale: "en"
となっています。

中国語にする場合は
i18n.locale: "zh-CN"

日本語にする場合は
i18n.locale: "ja-JP"

設定変更後はkibana.ymlを反映させるためにkibanaの再起動が必要です。

19年6月上旬時点では中国語と英語のみの対応となっていますが、もうあと数週間以内には日本語対応されそうです。
日本語対応版のkibanaが待ち遠しいです。
posted by Crescent at 00:00| Comment(0) | ナレッジ | このブログの読者になる | 更新情報をチェックする

2019年05月25日

マイコン内蔵フルカラーLED DotStar

マイコン内蔵フルカラーLEDといえば、WS2811、WS2812といったNeopixelが有名です。
今回、紹介するのはDotStarというマイコン内蔵フルカラーLEDです。

ざっくりと比較すると、通信方式とリフレッシュレートが異なるようです。


 通信方式
リフレッシュレート
NeopixelUart互換400Hz
DotStarSPI互換19.2kHz


NeopixelではUartに近い通信のため、貧弱なマイコンでは処理が間に合わない場合や間に合わせるために機械語で記述するなど工夫が必要でした。
一方、DotStarはSPIで通信できるため、クロック入力があり、比較的マイコンに合わせて処理できます。
この点では非常に扱いやすいマイコン 内蔵フルカラーLEDです。


実際に動かしてみると簡単に制御することができました。

dotstar.JPG

Neopixcelに比べるとまだ種類は少ないものの、SPI通信で簡単に制御できるDotStarはなかなか魅力的です。
リフレッシュレートが高いメリットを活かして遊んでみたい思います。

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