2021年02月20日

Node-Redを用いたCO2センサ SenseAir S8 データ取得

今回は旭化成 CO2センサ S8 004-0-0053をNode-Redを用いて取り込んでみました。S8センサはNDIR方式のCO2センサで他の方式に比べて精度よく検出することが可能です。通信はUART接続となっており、Node-Redのnode-red-node-serialportとUSB-UARTシリアル変換アダプタを使用して簡単に接続することができます。なお、S8センサは3.3Vでなく、5V電源入力のため、5V出力があるUSB-UARTシリアル変換アダプタが便利です。

serialノードを使用する場合はクラウド版のnode-redでなく、rapberrypiやWindowsの場合、オンプレミス版のnode-redが必要です。

S8-0.jpg



S8-2.jpg

node-redのフロー全体は上記です。injectionノード、functionノード2つ、serialノード、デバッグノードを配置します。dashboardに表示させる場合は下半分のfunctionノード、ボタンとチャートを追加します。


S8-1.jpg

injectionノードは2秒ごとにイベントを発生させるように設定しました。


S8.jpg

測定指令としてS8センサに送るシリアルデータを設定します。

S8-4.jpg
serialノードは9600bpsに設定します。COMポートの番号はデバイスマネージャ等から番号を確認して選択します。

S8-5.jpg

functionノードでserialノードから受信したデータをCO2値に変換します。

S8-7.jpg

dashboardに表示させる場合は値をそのままpayloadに入れるため、functionノードで上記のような値変換を行います。



S8-6.jpg

実際にこのような感じでS8センサの値変化を可視化できました。
今回のnode-redフローファイルは
です。

S8センサを使ってみて、非常に感度が高く、微小な変化にも大きく反応するため、室内環境等を継続監視するためには平均化やローパスフィルタ等を通した方がよいと思いました。方式が異なるため、単純比較できませんが、以前に紹介したZMOD4410ではそのような処理含めて実装されているため、簡易的に室内環境を継続監視する目的では向いていると思いした。今後はS8含めて複数のCO2センサを同時比較してみたいと思います。
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2021年02月06日

組み込み系メモリ比較

IoT等が当たり前になる中で高精度、高機能化が進んでいます。特にセンサ、機械学習や通信といった機能を実装するためにはより多くのメモリ(特にRAM)が必要となります。

一般的なIoT機器の場合、プログラムをROMから読み出して、センサ情報を処理して無線で送信するといった流れとなります。センサの高機能化、高性能化が進むとセンサのデータを取りこぼすことなく保存するためにより高速で大きなメモリが必要となります。一方でマイコンのメモリは容量が限られており、大容量マイコンで内蔵RAMは1MB程度、一般的なマイコンで数100kB程度です。外部電源から供給されるパソコンや測定機器ではSDRAMといったメモリを外部につけることでメモリを増やしていますが、電池駆動を想定したIoT機器では消費電力の大きなSDRAMを載せることは困難です。今回は組み込み系でQSPIといった簡単に接続可能なシリアルメモリを比較してみました。

近い条件で比較できるように容量を4Mbit周辺のシリアルメモリで比較しました。21年1月時点のDigikey、Mouserを中心とした価格と入手可能な部品(製造完了でない)をリスト化しています。


方式容量型式通信バス通信クロック価格書換回数書込待機揮発性
SRAM4MbitIS62WVS5128FBLLQSPI20MHz¥599Infinite不要揮発
PSRAM64MbitPSRAM 64MBIT SPI 133MHZ QSPI133MHz¥194Infinite不要揮発
MRAM4MbitMR25H40DFSPI40MHz¥1,347Infinite不要保持
FRAM4MbitCY15B104QI-20LPXCSPI40MHz¥2,4131x10^15不要保持
FRAM4MbitMB85RS4MTPFSPI40MHz¥8551x10^13不要保持
EEPROM4MbitM95M04-DRMN6TPSPI10MHz¥2564x10^6必要保持
ReRAM4MbitMB85AS4MTPFSPI5MHz¥5551.2x10^6不要保持
nvRAM1MbitCY14B101Q2ASPI40MHz¥1,0831x10^6必要保持
NOR FLASH4MbitAT25SF041B-SSHB-T QSPI108MHz¥321x10^5必要保持
NAND FLASH1GbitMT29F1G01ABAFDWBQSPI133MHz¥2961x10^5必要保持


センサのデータを取りこぼすことなく保存するようなRAM的な使い方を想定すると、耐えられるものはSRAMやPSRAMはもちろんですがほぼ無限に近いMRAM、FRAMとなります。それ以下はRAM的な使い方をする場合、速度、書き換え回数を考慮した設計が必要となります。設定データ等、書き換えの少ないデータの場合はEEPROM、nvRAM、Flashメモリ等でも十分ですが、センサ測定毎に書き換える場合、すぐに寿命になります。例えば、1秒ごとに測定して書き込む場合、1日で86400回書き換えが発生します。Flashでは10日、EEPROMの場合は100日、3か月程度で寿命となります。実際は書き込みブロックを変えるといった処理で書き換え箇所が集中しないようにして、寿命を延ばします。ただ、組み込み系の場合、そこまで管理しない、できない場合も多々あります。


SRAMやPSRAMの代わりにMRAM,FRAMを使用すると不揮発メモリのため、毎回、RAMに初期化の処理を展開する必要がなくなり、起動時間短縮のメリットがあります。ただ、価格がまだ少し高く、容量も4Mbit、8Mbitが最大で限られているのが難点です。今後のMRAM,FRAMの大容量化、低価格化に期待です。
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2021年01月23日

nanoDLA ロジックアナライザ

今回はロジックアナライザnanoDLAを紹介します。aitendoでも扱いがありますが、aliexpressで購入しました。8ch、24Mサンプリング、日本円で900円前後の簡易ロジックアナライザです。実際にインストールしてUSB信号(USB1.1)を解析してみました。


5870CCB7-1017-48B8-A5D2-443B0479EF0C.jpeg

ソフトウェアはnanoDLA互換機となっており、こちらのサイトからPulseViewというソフトをダウンロード、インストールします。Windowsの他、Mac、Linuxにも対応しています。ドライバはZadigを用いて別途インストールします。



zadig1.jpg
ZadigのインストールではOptionsからList All Devicesを選択することがポイントです。



zadig2.jpg
リスト内のfx2lafwを選択してinstallドライバをクリックしてインストールします。
ドライバのインストールが完了した後、PulseViewを起動させます。



d_ana0.jpg

nanoDLAと接続するために赤枠のデバイスリストをクリックします。



d_ana2.jpg

fx2lafwを選択し、usbにチェック、scanをクリックするとデバイスが表示され、選択します。



d_ana5.jpg
デフォルトは1Mサンプル、20kHzのため、必要に応じて変更して、左上のRunボタンをクリックすると自動的に指定のサンプルを読み込みます。また、Configure Channelをクリックして必要な信号のみに選択することも可能です。




d_ana1.jpg
実際にUSB信号(USB1.1)を解析してみました。

d_ana8.jpg
拡大するとこんな感じです。


d_ana3.jpg
ロジックアナライザなので様々なプロトコルに対応しています。CAN、I2C、I2S、JTAG、SPI、UART等はもちろんのこと、この価格でSDやUSB(USB1.1のみ)、IR(赤外線通信)に対応しているのは驚きです。サンプリング周波数設定横の黄色と緑のアイコンをクリックすると対応プロトコルを選択できます。




d_ana7.jpg
プロトコル選択後にビュー側のプロトコルをクリックすると何の信号にプロトコルのどの信号が対応するか詳細を選択できます。



d_ana4.jpg
信号値だけでなく、Stack Decoderをクリックするとプロトコルに応じて処理内容を解析して補助情報を表示する機能もあります。


簡易的なロジックアナライザのため、電圧レベルが低レベル -0.5V~0.8V、高レベルは2V~5.25vで固定で絶縁等もされていませんが、非常に安価で容易に使用できるので1つあると非常に便利です。PCオシロスコープではチャンネル数が2chや4chと限定され、後から信号レベルを読み取る必要があります。一方、ロジックアナライザは最大8chでプロトコル解析して値が表示されるため、解析をより早くできます。Windowsの他、Mac、Linuxにも対応しているため、ロジックアナライザの入門としてnanoDLAはお勧めです。
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2020年12月26日

タブレットVT484分解

今回は6年以上使用してバッテリーが摩耗して使用できなくなったdynabook Tab VT484/22Kを分解してみました。スペック概要は下記の通りです。

CPU:Atom Z3740/1.33GHz
メモリ:2GB
ストレージ容量:32GB
画面サイズ:8インチ
画面解像度:1280x800
OS:Windows 8.1
ネットワーク:Wi-Fiモデル

img1.jpeg
iPad等と異なり、接着剤で筐体が固定されておらず、側面に細いマイナスドライバを差し込むことで簡単にカバーを開けることができました。

img2.jpeg

バッテリーが6割以上も占めており、メイン基板が上側にあります。また、写真では見ずらいですが、タッチ制御とスピーカー、バイブレーション等の小さなサブ基板がバッテリー下側にありました。

img3.jpeg


中央少し左にCPUのAtom Z3740、左上下2つがRAMメモリです。写真を撮り忘れてしまいましたが、裏側にサムスン電子製のeMMCが搭載されていました。中央右には電源ICとしてBD2610GWがありました。右上にはBroadcom製のWiFiIC BCM4324が搭載されていました。iPhoneやiPadの基板よりも部品がまばらで実装密度はそこまで高くないように見えました。一方で当時で1台3万円程度で購入できる製造コストには驚きです。
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2020年12月05日

iPhone/iPadとのシリアル通信

今回はiPhone/iPadを使用して簡易的なシリアル通信(UART)を使用する方法について紹介します。残念ながらTypeCを介したUSBシリアルアダプタはMacOSのみでiOSには対応していません。今回はSiliconLabs製BLE5モジュールBGX13PとiOSアプリBGXCommanderを用いてBLEを介して簡易的なシリアル通信(UART)を行います。

文字列以外のバイナリデータの送受信やボタンといったUIを実装することはできませんが、文字列の送受信といった一般的なデバッグ用途の使用であれば容易に実現可能です。SiliconLabs製BLE5モジュールBGX13Pを実装したBLE5モジュール変換基板を使用しました。

BLE5モジュールBGX13PのUARTをマイコン等に接続し、3.3V電源を供給します。TX、RXはマイコン側とBLE5モジュールBGX13P側でクロスさせて接続します。BLE5モジュールBGX13Pのシリアル通信(UART)のボーレートはデフォルトで115,200bpsとなっています。必要に応じて下記のコマンドをiOSアプリBGXCommander か、UARTを介してTeraterm等のPCから事前に設定を変更します。

ボーレートを変更する場合はコマンドモードで
>set ua b 9600
>uartu
という感じでコマンドを入力することでボーレートを変更できます。uartuコマンドで実際に設定が有効化されます。一度設定するとフラッシュに設定が書き込まれるため、電源再投入でも再度、設定を変更する必要はありません。

なお、ボーレートを取得する場合は
>get ua b
コマンドで取得できます。

iOSアプリBGXCommanderをSTREAMモードにするとマイコンから出力されたシリアルデータの文字列をiOSデバイスからマイコンのシリアル通信のデータを確認することができます。

iphone.jpg

iPhoneからだと上記のような感じです。

ipad.jpg

iPadからでも同様に確認することができます。

文字列を入力する欄から文字を入力すると受信だけでなく、送信もすることができます。今回はマイコンとして先日販売を開始したエアクオリティセンサ基板の専用変換基板と接続しました。デバッグ用ポートJ4の出力をBLE5モジュールBGX13Pと接続してiOSで受信させました。UARTをRS232Cに変換するアダプタを使用すれば、RS232C接続の機器でも接続できます。ちょっとした遠隔でのデバッグ等で大活躍できそうです。
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする