ディー・クルー・テクノロジーズ Blog

bookmark_borderシステムLSIのブレイクスルー技術③ 動的電圧周波数スケーリング(DVFS)(3)

こんにちは。今日は、DVFSの元となった、動的電圧スケーリング(DVS)開発の背景をお伝えします。

動的電圧スケーリング(DVS)とは?

近年マーケットからLSIの低消費電力化が強く求められていく時代でありながら、従来SoCのSPECで規定されていた設計補償動作電圧では、本来欲しい動作電圧に比べて大きなマージンを含んだ電圧が必要となり、それが低消費電力化の障害となっていました。

そこでDVSが登場したのです。一言で言うと、DVSは、SoC内のクリティカルパスが動作するぎりぎり最小の電源電圧Vddを適応的にSoCに供給する技術です。どういうことか分かりやすくするため、動的電圧スケーリング(DVS)開発の背景を図示しました。

図1 動的電圧スケーリング(DVS)開発の背景

左側が従来の設計補償動作電圧、右側がDVSです。SoCにおけるプロセスばらつき、温度変動、電源電圧変動、経年劣化等のworst条件を満足させるため、本来必要な動作電圧に比べ無駄に大きかった動作保証電圧の閾値を、右のDVSではクリティカルパスが動作するギリギリ+αの最小電圧をアダプティブにSoCに供給するため、動作電圧を低減し省電力化に貢献できます。

レプリカによるクリティカルパス監視がDVS技術の肝

図2にプロセスばらつき/温度変動等に対応したDVSを紹介します。SoC内部のクリティカルパスと同等の遅延時間を有するレプリカ回路を用意し、レプリカの遅延時間がクロック1周期内に入るギリギリ最小の電源電圧をSoCに供給します。

図2 DVS(プロセスバラツキ/変動対応)SoCの構成(特開2000-216337を参考に弊社作成)

無論電源電圧供給ではTsu/Thを考慮しますが、こうしたレプリカによるクリティカルパスモニターが、設計マージンの最小化を可能した結果、低消費電力化が実現しています。

DVSの効果

DVSは従来型に比べどの程度省電力化に効果があるのでしょうか?

図3にDVSの効果を示します。近年はMOS トランジスタの微細化により、サブスレッシュホールド・リーク電流が無視できなくなります。従来の固定電圧方式では、低Vthサンプルでリーク電流の増大に伴う消費電力増加が大きな問題になります。一方でDVSを採用すると、低Vthであっても回路の高速化を図れるため、電源電圧を低減でき、低消費電力化が図れますので、製品の消費電力SPEC低減に貢献できます。

  • MOS動作周波数 Fmax ∝ VddVth)・μ/ L2
  • 微細化するとリーク電流増大→リークが問題となるVth小サンプルをDVSで補償
図3 DVS有り、無しにおける消費電力効果の比較

DVFSによる最小電源電圧供給

DVSとDVFSの違いは、一言で言うとプロセスばらつき等のworst条件において、電圧だけでなく、動作周波数も考慮に入れて最小電源電圧を供給できる点です。図4にばらつき対応DVFSのブロック図、図5にばらつき対応のDVFSによる最小電源電圧供給を示します。

図4 ばらつき対応DVFSのブロック図

DVFSは、プロセスばらつき/温度変動/動作周波数に応じて、SoCが動作する最小限の電圧を適用的に供給します。SoC内蔵のCPUがレプリカからの遅延情報を電圧指示に変えるのですが、これがMPU/GPUの場合は負荷検出部及びVt検出部(Ring Osc)からの情報がレプリカに与えられます。

図5 ばらつき対応のDVFSによる最小電源電圧供給

ばらつき対応DVFSであれば、動作周波数に応じリーク電流が大きくなる条件で電源電圧を下げるので、リーク電力が保証されます。すなわち、Worst条件に応じて動的にLSIが動作可能な最低限の電圧を供給します。この結果リーク電流を含めて消費電力を最小化できます。

まとめ

最後にDVFSのまとめを示します。

1.プロセッサ系のMPU/GPU/SoCでは素子バラツキ対応を含めたDVFSが幅広く使われている。
2.DVFSは負荷状態に応じて、動的に電源電圧、クロック周波数を制御する。
3. 素子バラツキを考慮したDVFSは低消費電力化の効果が大きい。
4. DVFSは、今後プロセッサのみならず各種SoC(ASIC)にも幅広く使われていく。

いかがでしたでしょうか。この記事がLSIの低電力化における皆様のご理解の一助に慣れればうれしいです。

bookmark_borderUVをセンサで計測してみよう!⑦ ~外で実際に動作を確認してみよう ~実験編

なかなか実験の日程の調整ができず、実験日は2024/9/26(木)。夏?のぎりぎりになってしまいました。

作成したUVセンサを傘につけ実験

気象庁の計測値でみると、こんな感じです。

12時から20分ほど、会社近くの日産スタジアムに行くまでの見晴らしがよいところで実験しました。

ただ当日は晴れではあったのですが、太陽の周辺に雲がありまた風もあったのでなかなか同環境での実験ができませんでした。秋晴れ! という日にも実験してみたいですね。

気象庁での紫外線情報をリファレンスにオフセットをかける予定でしたが、実際に外にでて試しに測定してみたところセンサ値の紫外線情報にかなり差があり、今回はオフセットなしにして紫外線対策グッズでどうセンサ値が変わるかを確認したいと思います。

やっぱりリファレンスになるデバイスほしいですねー。

試した日傘(私物)はこの2つ

同環境での実験が難しかったので、試したのは2種の日傘だけになってしまいました。

①裏地が黒の日傘

②麻生地の日傘

麻生地のほうはデザインが気に入っておりましてかれこれ3年以上は使用しています。なので紫外線対策という面では効果が薄くなっている自覚はしています。。。デザインが好きなので買い替える予定はありませんが(^^)

では実験結果です。

実験結果

①裏地が黒で99.9%カットと保証がされていた日傘UVインデックス値の結果

②麻生地の日傘のUVインデックス値の結果

日傘(内)は、日傘(外)のUVインデックス値より大きく下がることが確認できました! しっかり紫外線防止効果があることが分かります。

また、お気に入りの麻生地の日傘も外に比べ約90%近く下がっているのは、個人的に大満足です。また快晴のときにまたいろいろなパターンで実験してみたいですね。

最後に、IoTの設計開発についてご相談したいことがございましたら、遠慮なくこちらのフォームにてお伝えください。

秋も紫外線はまだまだ強い日がありますから、日傘を使いつつ気を付けて過ごそうと思います。いつか、来年の夏の暑い晴れた日に実験再チャレンジしてご報告したいです! ではでは!

bookmark_borderUVをセンサで計測してみよう!⑥ ~外で実際に動作を確認してみよう ~準備編Ⅲ

組み立てたLeafonyをケースに入れよう

組み立てたLeafonyを目立たないようケースに入れて外で実験できるようにしたいと思います。ケースに入れなくても実験はできますが、都会は人の目も多いですし、持ち歩いて怪しまれないように。

って、よっぽどあやしいわ これ

さて、普段の業務だとケースというと”タカチケース”を購入して加工しているのですが、

 「今回はスピード重視で簡単に加工できる」

 「失敗してもすぐやり直せる」 をテーマに掲げて行います!

なぜって、いくら10月で30℃超えの気候とはいえ、ゆっくりしてると冬になってしまうので。

というわけで、何をするかは、ガジェット好きな皆様はもうお分かりですね。

私の大好きな100円ショップ ダイソー様で物色ですルンルン

ダイソーで発見した”便利ケース”

おなじみの収納ケースのエリア、衛生用品、キッチン用品…うろうろしたところ良さそうなものがありました!!

これです

お弁当を毎日作るお母さんお父さんの味方、マヨネーズケース!!

推しポイントは、3つ。

  • カッターで簡単に加工ができます。
  • サイズもスポっときれいには入りませんが少し押し込めば入りそうなところ。
  • しかも、蓋もあるのでここにUVセンサーを固定するのもできそう。

(この創造力を掻き立てるSPECが尊い…)

これに組み立てたLeafonyを入れて実験できるように少し加工していこうと思います!!
で、できあがったのがこちら!!

透明な蓋にセンサー用の穴をあけ、マスキングテープで固定にしました。

さらにさらに、傘にぶら下げるといったことができるように手持ちのチェーンをつけてみました。

え?「マスキングテープ、素敵に貼れませんか」ですって?

(想定よりうまく固定できなかったので試行錯誤しちゃったんですよね。。アハハ。。)

ままま、すごい手作り感満載ですが、これも味ですよアジ! <゜)))彡
準備は完了!! 実際に外で実験してきましょう!!

bookmark_borderシステムLSIのブレイクスルー技術② 動的電圧周波数スケーリング(DVFS)(2)

こんにちは。今日はDVFS機能搭載プロセッサとDVFSの動作原理についてお伝えします。

DVFS機能搭載プロセッサのブロック図

まず、DVFS機能搭載プロセッサについてです。図1に弊社が電源ICで用いているDVFS機能搭載プロセッサのブロック図を事例として示します。

図1 DVFS機能搭載プロセッサのブロック図

CPU内にクロック周波数/電源テーブルが配置され、負荷の大きさに対応するクロック周波数及び電源電圧Vddの指示情報をテーブルから出力します。

指示情報に基づきPLL及び可変電源を制御し、DVFSを実行します。すなわち、負荷の大きさに適合したクロック周波数、電源電圧を用いてDVFSが最適な値を選択実行することになります。

半導体企業の可変電源(DVFS対応電源IC)の製品例

半導体企業の可変電源(DVFS対応電源IC)の製品例を以下に示します。

半導体企業製品例
  1. TI LM25066A
  2. リニアテクノロジーLTC3886
3. ダイアログ・セミコンダクタDA9063
4. ルネサスISL69269
  5. オンセミコンダクタNCP81022
  6. ADI  LTM4680 
7. ディークルーテクノロジーズ DCT013C(開発品)
半導体企業のDVFS対応製品(2024年9月 弊社調べ)

また、Appleは、iOSなどのソフトウェアとAシリーズチップなどのハードウェアを密接に統合し、DVFSを効果的に活用しています。

Apple Mobile Processor における動的電圧スケーリング技術(DVFS)(2024年9月 弊社調べ)

  • プロセッサの負荷監視: プロセッサ内部のセンサーやモニタリング機能が、プロセッサの負荷状況を定期的に監視する。これには、タスクの実行中の処理負荷や電力消費の推定が含まれる。
  • 電圧と周波数の調整: 負荷の高い場面では、プロセッサの動作周波数を上げ、同時に電圧も増加させることで性能を最大限に引き出す。一方、負荷が低いときには、動作周波数を下げ、電圧を低く保ちながらも十分な処理能力を維持する。
  • スケーリングアルゴリズム: モバイルプロセッサには、動的電圧スケーリングを行う専用のアルゴリズムが組み込まれている。これらのアルゴリズムは、プロセッサの状態を評価し、最適な電圧と周波数の組み合わせを決定する。
  • バッテリー管理: バッテリーの残量や充電状態なども考慮に入れながら、電圧と周波数を調整する。

DVFSの動作原理

図2にDVFSの原理を示します。

図2 DVFSの原理

まず上段の説明です。一般に低消費電力化を図るため、SoCではゲーテッドクロックが用いられます。Gated Clockは負荷が軽い場合、所要の処理が終了するとクロックを止めます。これで、タスク処理割当時間後半にはクロックを止めるので、1動作時間を半分=消費電力1/2を図れます。

次に下段の説明です。DVFSではタスク処理割当時間丁度で処理が終了する様に、1/2の電源電圧、1/2のクロック周波数でSoCを動作させます。 すなわちDVFSはゲーテッドクロックに比べて、さらに1/4の消費削減を図れます。

なお、CMOSの特性から、クロック周波数に比例して電源電圧を下げる事ができます。

プロセスバラツキを考慮したDVFS機能搭載SoC/MPU/GPU

次に図3にプロセスバラツキを考慮したDVFS機能搭載SoC/MPU/GPUのブロック図を示します。

図3 プロセスバラツキを考慮したDVFS機能搭載SoC/MPU/GPUのブロック図

リングオシレータ(Ring Osc)の発振周波数からMOSトランジスタの閾値(Vth)を推定します。例えばVthが低い方向に0.05Vばらついた場合、回路の動作周波数が上がります。同一周波数で動作させる場合、電源電圧(Vdd)を下げる事ができるので、消費電力を更に低減できます。一般にVthが低下するとトランジスタのリーク電流が増加しますが、Vdd低減による低消費電力化により相殺できます。こうした工夫によりプロセスバラツキを考慮した設計ができます。

なお、SoCの作りに応じて、リングオシレータは複数個所に挿入されることがあります。

参考までに各CMOS世代におけるVthのプロセスバラツキを示します。

図4 各CMOS世代におけるVthのプロセスバラツキ(2024年9月 弊社調べ)

いかがでしょうか。
次は、動的電圧スケーリング(DVS)開発の背景をお伝えしようと思います。

bookmark_borderUVをセンサで計測してみよう!⑤ ~外で実際に動作を確認してみよう ~準備編Ⅱ

ついにセンサー情報をBLEで飛ばし、無線化しますよ~

動作結果イメージ

今回は、こんな風にUVインデックスが出てくるようにしたいですね。

スマホアプリ画面

ハードウェア

使用するLeafonyのリーフが1枚、追加になります。

AC02 BLE Sugar

Al01 4-Sensors

AP01 AVR MCU

AZ01 USB

AV01 CR2032

AZ01 USBは、ソフトウェア書き込み時のみ使用し、動作時には外します。AV01 CR2032は前回同様、ねじ止めとして使用します。

leafの積み重ね方

重ね方は、こんな感じです。

ソフトウェア書き込み時ソフトウェア書き込み後
上から順に
29pin header, USB, AVR MCU, BLE Sugar, CR2032の順につなげてねじ止めします。
上から順に
29pin header, 4-Sensors, AVR MCU, BLE Sugar, CR2032の順につなげてねじ止めします。

書き込み時に4-Sensorsのリーフを抜いた理由としては付属のネジだと物理的に長さが足りなかったからです。なお、今回、センサーからのデータを取得するのに29pin headerのリーフを使用しました。

このAX018にした理由としては

  • 3.3V出力ピンがあること
  • ピンヘッダーがすでにあるので、リーフに追加で半田しないで使用できること

というメリットがあったからです。

もともとピンヘッダーが付属しているGrove&5Vのリーフを考えていて、高さも取らないし丁度いいかーと考えていたのですが、改めて仕様書みたとき”5V”出力じゃん”というのに気づきまして今回は3.3V出力ピンがあるAX018になりました…

さらにピンヘッダーがすでにあるので、リーフに追加で半田しないで使用できること。これは大きいです。同じく29pin のリーフだとAX02 29 pinもあるのですが、こちらはセンサからの線を直接半田することになるので、ほかのセンサーや実験に使用しづらくなるためAX018にしました。

ヘッダー分の高さを取らないのでいいのですが、ぶっちゃけきれいに半田を取る自信がなく。。。

リスクヘッジも実力よ..

ソフトウェア

前回、Leafonyを動かしてみようで使用したソフトウェアをベースに実装していきます。

まず、記事 # UVをセンサで計測してみよう ~センサを実際に動かしてみる~で実装したプログラムから蛍光ペンで示した箇所の処理をベースのプロジェクトに追加します。

Arduino側のプログラム動作手順概要:

(以下引用)  >

  1. 初期設定
    • PCとのHardwareSerial通信を開始
    • センサのイネーブルピンにHigh出力
    • 1secのタイマを開始
  2. タイムアウト時にセンサの出力ピンからアナログ値を取得
  3. 取得した値を電圧値に変換
  4. 電圧値からUVインデックス値に変換してシリアルで表示

追加した箇所は、こうなります。

変更箇所➡変更後
センサのイネーブルピンにHigh出力setupPort() 関数内に追加
・センサの出力ピンからアナログ値を取得
・取得した値を電圧値に変換
・電圧値からUVインデックス値に変換
loopSensor() 関数内に追加

これで定期的にUVインデックス値を求めることができるようになりました。(注) 基本的には上記の処理をベースのプロジェクトに追加すればよいのですが、以下の点は修正が必要です。

また、以下の設定変更も必要です。

  • アナログ値を電圧値に変換する際のリファレンス電圧を5Vから3.3Vにする
  • センサーとの接続ピンをベースのプログラムで使用していないピンに変更する
ピン変更箇所➡ピン変更後
センサ値の入力ピン      A0  A3
センサへのイネーブル出力ピン D7  D5

UVインデックスの定期無線送信設定

最後に定期的に取得したUVインデックスを無線で送信できるようにします。

ベースのソースコードを読むとbt_sensData() 関数内において無線で送信するデータを設定しているようです。そこで、そのうちもともと照度データを設定している箇所をUVインデックス値に差し替えします。

合わせて小数点以下の値も表示したいのでdstorfの引数の値も変更します。

これでソフトウェアの実装は完了です。

今までに作成したコードのコピペと少ない修正で無線化のプログラムができました!! 

動作結果

UVをセンサで計測してみよう ~センサを実際に動かしてみる~のときと同じようにUV LEDネイルライトで実験してみました。動作するかな。。。

スマホアプリ画面

照度の欄にUVインデックス値が表示されていますね!!

無事無線化できました!!

次は組み立てたLeafonyを手ごろなケースに入れたいと思います! ケースに入れればこれで準備編も終了です!実計測までもう少しです!!

bookmark_borderUVをセンサで計測してみよう!④ ~外で実際に動作を確認してみよう ~準備編Ⅰ~

こんにちは。あたふた仕事に追われていたら、10月になっていました💦
相変わらず外は30℃超える日もあってアチチ。。秋っぽい高い青空が待ち遠しい~

## センサ値を無線で飛ばそう

さて、前回は、PCでセンサ値を表示することができましたが、実際に外で実験する場合、PCを持ち歩かないといけないというのは大変なので無線化して、スマートフォンで確認できるようにしたい!と申しておりました。 (PC持ち歩いてしたら不審な行動に見られそうですし。。)

それを今回やります! ↓前回の記事はこちらから。

無線化するにあたっていろいろな方法がありますが、今回はArduinoと互換性がある”Leafony”を使用してBLEでセンサ値を飛ばしてスマートフォンに表示したいと思います。

Leafonyを選択した理由としては、前回でArduinoを使用してUVインデックスを求めた時のコードをそのまま使用できる点で便利!!という点と、基板サイズが一円玉サイズと小さいので外で実験したとき怪しまれづらいかなーという思いで。(^^)

Leafonyの一円玉との比較

## Leafonyを動かしてみよう

Leafonyが動作することをまず確認してみようと思います。

Leafonyの公式HPにあるクイックスタートの”BLEで環境センシング”を試してみます。

Basic Kit スタートガイド | Leafony

## ハードウェア

今回使用するリーフはこれら5つです。AV01はleafを重ねて”ねじ止め”するだけに使い、電源はAZ01 USBから供給します。

AC02 BLE Sugar

Al01 4-Sensors

AP01 AVR MCU

AZ01 USB

AV01 CR2032

上から順に ①4-Sensors, ②USB, ③AVR MCU, ④BLE Sugar, ⑤CR2032の順につなげてねじ止めします。

## ソフトウェア

Sample-Sketches/4-Sensors_BLE at master · Leafony/Sample-Sketches · GitHub

を使用。

但し、使用したライブラリがこのサンプルのバージョンとあっていないか、違うライブラリを使用したのか以下の点をサンプルから変更しました。

変更前➡ 変更後
#include <HTS221.h>#include <Arduino_HTS221.h>
#include <ST7032.h>#include <LCD_ST7032.h>
ST7032 lcd;LCD_ST7032 lcd;
lcd.begin(8, 2);   lcd.begin();
lcd.setContrast(30); lcd.setcontrast(30);
smeHumidity.begin();HTS.begin();
dataTemp = (float)smeHumidity.readTemperature(); dataTemp = (float)HTS.readTemperature();
dataHumid = (float)smeHumidity.readHumidity(); dataHumid = (float)HTS.readHumidity();

## 動作結果

Andoridスマホのブラウザからセンサ値がきちんと表示されました!

Leafonyが正常に動作することを確認できましたので、次はとうとう今回の本題、UVインデックスの値を無線で飛ばして確認できるようにしたいと思います!

bookmark_borderシステムLSIのブレイクスルー技術① 動的電圧周波数スケーリング(DVFS)(1)

久々にシステムLSI記事を更新します。今回は動的電圧周波数スケーリング(DVFS)の概要についてお伝えします。

DVFSとは

動的電圧周波数スケーリング(Dynamic Voltage and Frequency Scaling, DVFS)は、プロセッサの処理量(負荷)の大小に応じて、電源電圧およびクロック周波数を動的(適応的)に切り替える技術です。これにより、必要な性能を維持しつつ、消費電力を最適化し、発熱を抑えることができます。

このDVFSによるクロック周波数/電源電圧の動的切り替えについて、表1に示します。

表1 DVFSのクロック周波数/電源電圧動的切り替えとアプリケーション

各種システムLSI(SoC)やプロセッサでは低消費電力化を図るために動的電圧周波数スケーリング(DVFS)が広く導入されています。例えば、SoCの負荷が低いときには動作周波数及び電源電圧を下げ、低消費電力化を図ります。一方、高負荷時には高性能を必要とするアプリケーションに対して、周波数及び電源電圧を上げて高速処理を可能にします。DVFSは負荷の大小に応じて動的に最適な電圧/周波数を割り当て、低消費電力化を図る手法です。

各クロック周波数/電圧における具体的なアプリケーションは概ね下記の通りです。

2GHz/1.2V:AIモデルの学習や推論、ゲーム、ビデオ編集、画像認識、画像生成、画像処理タスク(高解像度)など、高負荷の作業時に切り替えます。
1.5GHz/1V:自然言語処理や音声認識など、中程度の負荷の作業時に切り替えます。
0.8GHz/0.5V:画像処理タスク(低解像度)、長時間かけて良い推論、Office作業、Web閲覧、スリープモードなど、低負荷の作業時に動的切り替えを実施します。

DVFSで用いられている負荷検出手段(MPUの例)

MPUにおいてDVFSで用いられている負荷検出手段を表2に示します。DVFSはMPUのみならず、モバイルプロセッサ、GPU, ECU 等で広く実用化されています。

表2 DVFSで用いられている負荷検出手段(MPUの例)

各半導体企業のソリューション例

各半導体企業が得意なアプリケーション、ハードウェアの競争力を高めるDVFS技術を提供しています。それぞれ簡単に説明します。

DVFSの種類概要
NVIDIA 「GPU Boost」GPUの電力管理を実現のための技術で、一部のGPUシリーズに搭載されています。
AMD GPU 「PowerTune」AMDの「PowerTune」は、エネルギー消費の削減に加え、コンピュータの冷却によって発生する騒音レベルを下げ、モバイルデバイスのバッテリー寿命を延ばすのに役立ちます。(wikipedia)
Intel MPU, GPU「DVFS」Intelは、MPU(マイクロプロセッサユニット)およびGPU(グラフィックスプロセッサユニット)においてDVFS技術を採用しています。これにより、プロセッサの動作周波数と電圧を動的に調整し、効率的な電力管理を実現しています。
Appleスマホ用プロセッサ Aシリーズ「DVFS」AppleのAシリーズプロセッサもDVFS技術を活用しています。これにより、iPhoneやiPadのパフォーマンスを最適化しつつ、バッテリー寿命を延ばすことができます。

DVFSは、現代のプロセッサにおいて不可欠な技術であり、各企業が独自のソリューションを提供しています。これにより、パフォーマンスと電力効率のバランスを取ることが可能となり、ユーザーにとって快適な使用体験を提供します。

次回はDVFSのブロック図、及び動作原理についてご説明します。

bookmark_borderUVをセンサで計測してみよう!③ ~センサを実際に動かしてみる

では、さっそくセンサを動かしてみましょう!

## ハードウェア

  • ML8511使用紫外線センサーモジュール(ML8511)

ML8511使用紫外線センサーモジュール: オプトエレクトロニクス 秋月電子通商-電子部品・ネット通販 (akizukidenshi.com)

久しぶりの半田付けで少しドキドキしました(苦笑)

余裕のフリ…

感覚忘れないように定期的にしないとダメですね。頑張ります!

  • Arduino Leonardo

こちらは、以前のテーマ↓で使用したデバイスを流用しています。

  • USBケーブル(Micro USB Type-B 2.0)
  • Windows 11 PC 

そして、手軽に紫外線を照射する装置も必要です。

  • UV LED ネイルライト

これは、センサが紫外線に反応することを確認するために使用しました! 確認のために窓際や外に行くのも面倒なので、手元で確認できるものないかなーと探してみたところ、3COINSで発見!! 

私も大好きなぷっくりツヤっとしたジェルネイルを硬化させるために爪に当てて使用するものです。これで税別300円とは今回使用するセンサよりもさらにリーズナブルです!

3COINSさん流石ですね。。

UVLEDネイルライト/and us | 3COINS(スリーコインズ)レディース | PAL CLOSET(パルクローゼット) – パルグループ公式ファッション通販サイト

## ハードウェア接続

以下の図のように実際に接続しました。

以上でプログラム実装前の前準備が完了です。

## プログラム実装

今回使用するセンサからはUV光強度に比例したアナログ電圧が出力されます。

なので、定期的にアナログ値を取得して電圧値に変化する処理を実装すればセンサの値は取得できそうですね。ただ電圧値だけでは紫外線が強いのかわかりづらいので、電圧値からUVインデックスを求めてPCに表示するプログラムを実装したいと思います。

計算方法ですが、アプリケーションノートML8511_UV.pdf (sparkfun.com)

に詳細に記載されていましたので、この方法で求めていきたいと思います。

Arduino側のプログラム動作手順概要:

  1. 初期設定
    • PCとのHardwareSerial通信を開始
    • センサのイネーブルピンにHigh出力
    • 1secのタイマを開始
  2. タイムアウト時にセンサの出力ピンからアナログ値を取得
  3. 取得した値を電圧値に変換
  4. 電圧値からUVインデックス値に変換してシリアルで表示

Arduinoのツールに”Serial Plotter”というものがあり、シリアル出力した値をグラフ化してくれます。

簡単に状態変化をリアルタイムで確認できるので、かなり便利でした。

## センサ動作結果

UVライトのON/OFFとUVセンサのリアルタイムの状態変化が分かるSerial Plotterのグラフを一緒に動画にしてみました。

ML8511によるUVLEDネイルライトの紫外線計測結果をSerial Plotterのグラフ表示

動画8秒あたりから、UVライトONするとすぐセンサは反応してくれています!! 👏

UVを照射するとUVインデックス約2.5~3のあたり、弱い➡中程度のあたりでグラフ表示されますね。

今回より出力が高いUV LEDネイルライトだと数値が変わるのか興味があります。今回は室内というのもあり補正をしてないのですが、アプリケーションノートによると環境によってUVインデックスからの補正が必要なようで、条件によって誤差がありそうです。

よくよく調べてみるとSerial Plotterのグラフは複数データの表示もできるようです。ただY軸の範囲は自動で変更されるようなので、値の範囲が異なる数字を表示するときは注意が必要そうです。

おっと、UVインデックスのリファレンスとなるデバイスを用意していないです。あーリファレンスをどうしよう。。。

あ!そうだ気象庁情報です!!

気象庁で紫外線情報(分布図)を出しているのです。ピンポイントではありませんが、実験している場所付近の値をリファレンスにすればある程度は使えそうに思います!

気象庁| 紫外線情報(分布図) (jma.go.jp)

ちなみに気象庁紫外線情報のUVインデックスは11+が最高ではなく、さらに12や13+があるのですが、日本でしばしば12や13といった値が観測されるため、気象庁では実情に合わせて13+まで表示するそうです。恐るべし日本の夏!

さて、センサが動くことは確認できたので、次は外で実験する前にUVインデックスを無線で飛ばして確認できるように改造したいと思います!

外出先でPC+Arduinoを常に一緒に持ち歩いて計測するのも大変なので(トホホ)

それではまた!

bookmark_borderUVをセンサで計測してみよう!②~UVセンサとは?

今日も猛暑日予想です💦

こんにちは。UV計測ガジェットを作るシリーズの2回目です。

紫外線を計測できるお手頃なモジュールはいろいろありますが、今回は

ML8511使用紫外線センサーモジュール: オプトエレクトロニクス 秋月電子通商-電子部品・ネット通販 (akizukidenshi.com)
このセンサーモジュールを使用します。約10mm角のコンパクトでとっても使いやすそうな形状です。

## ML8511のセンサ特性

このML8511はUV-AおよびUV-Bに対する光センサで、センサ値はアナログ値で出力されます。

280nm-400nmの紫外線領域をしっかり計測してくれます(スペック表より)

## UV-A,UV-Bの定義

ちなみに、前回の記事でお肌に影響のある紫外線の波長にはUV-AとUV-Bの2種類あると触れましたが、定義がいくつかあるようで、気象庁ではこういう分け方をしています。

  • UV-B 280-315nm(ナノメートル)
  • UV-A 315-400nm

ちなみにML8511はUV-AとUV-B両方が合わさった値が出力されます。せっかくなのでそれぞれの値も知りたかったところですが、まあ今回はUV対策グッズの効果をみるのが目的ですので全く問題ないですので、このセンサで評価していこうと思いますm(__)m

## UV対策グッズの効果の評価指標

ML8511が計測したセンサ値をわかりやすく表示するために指標があると便利ですね。WHOが提示した紫外線の人体への影響度合いに関する指標として”UVインデックス”というものがありますので、センサ値からこのUVインデックスを求めて、UV対策グッズを使用した場合どう表示が変わるのか確認する装置を作っていきましょう。

ML8511から出力されるセンサ値は電圧値が出力されるので、電圧値からこのUVインデックスを求めることになるのですが、今回のテーマはここの作り方に気を付ける必要がありそうです。

### UVインデックス (環境省紫外線環境保健マニュアル)

(引用) UVインデックスとは、日常生活で使いやすい数値(影響度合いの一つの目安)とするため、地上に達する紫外線の波長毎の強さと、人体への影響度(紅斑作用スペクトル)を掛け合わせた数値を、使いやすい数値(0~11+)に指標化したものです。(引用ここまで)

WHOの基準を基に、UVインデックスに応じた対策が定義されていますが、12段階あるインデックス値を、環境省はさらにシンプルに5段階に分け対策指標化していますね。

次回は、実際にセンサーを使ってUV計測を行います!

bookmark_borderUVをセンサで計測してみよう!① ~UVとは?

お盆もとうに過ぎ、もうすぐ衣替えの季節というのに、燦々と輝く太陽の光はいまだ真夏の様。

会社帰りに好きなブランドのウィンドウショッピングしてると、どの店ももう秋物の新作ばかり並べています。めちゃくちゃ欲しいけど、暑さが和らぐ気配もみじんもなく、一体いつ着られるようになるかしらと、購入には二の足三の足?踏んでます。

あら私、今日はUV対策のお話をしたかったのですが、話が秋物選びに飛んでしまいました笑 

皆さんはUV対策としてどんなことをされていますか?

ちなみに私は、日焼け止めに日傘、帽子、手袋ってとこでしょうか。

最近は男女、大人も子供も関係なく日傘を差しているのをよく街でみますね。数年前まではここまで日傘人口をみなかったように個人的には感じてます。

実際私も日ごろ日傘には大変お世話になっています。最近はゲリラ豪雨も頻繁なので晴雨兼用の日傘を常に持ち歩いています。(便利ですね)

そこで今回は、日傘などのUV対策グッズで実際どれくらいのUVカットになっているのか、ガジェットを作って確認してみよう!と思います。

※今回の検証はあくまで個人的興味です。試した製品のUVカット効果を検証し賛否することが目的ではありませんのであしからずご了解ください。

以下、蛇足:

このブログを書くにあたって紫外線にしらべていたところ、環境省の紫外線環境保健マニュアルに日焼け止めについて記載されていて、詳しくて素晴らしかったのでご紹介しますね。

https://www.env.go.jp/content/900410650.pdf 紫外線環境保健マニュアル2020(環境省HP)

まず、紫外線に種類が3つあり、お肌に大敵なのはそのうち2つで、「UV-A」と「UV-B」と呼びます。

  • UV-A:降り注ぐ量は多いが、お肌への影響は比較的小さい。ただし長く当たりすぎるとNGのタイプ。
  • UV-B:降り注ぐ量は少ないが、お肌への影響が大きいので、短期間でも当たりたくないタイプ。

そして、日焼け止め。これも「紫外線吸収剤」「紫外線散乱剤」の2種類あるんです。これも知らなかったです。

紫外線防止剤の種類とその特徴 (出典) 紫外線環境保健マニュアル2020

さらに、日焼け止めクリーム等に記載されている紫外線を防ぐ強さを示すSPFPAという指標。これもなんとなく「数字が大きいのがより防いでくれるものさ」といった程度の印象で使っていました。実際は、SPFがUV-Bに対する指標。PAがUV-Aに対する指標なのでした。

紫外線防止用化粧品と紫外線防止効果 (出典) 紫外線環境保健マニュアル2020

普段私が通勤で日焼け止めとして使用しているファンデーションはSPF 50のPA+++なので、炎天下のレジャー向きでした💦 平日は外に出るのは通勤とランチのみ、というような生活だと過剰防御かもしれませんね。

本論からどんどんずれますが💦マニュアルにあった日焼け止めの塗り方も目から鱗だったので載せておきます。皆さん、ファンデは丁寧に塗って、しっかり紫外線を防ぎましょうね!

(出典) 紫外線環境保健マニュアル2020

さてさて次回は、センサモジュールの準備についてご紹介します。