W&T's diary

W&T Thermal Cam に関連する情報

サンプル学習済みファイル

画像認識をさせるには、まず学習済みデータのダウンロード作業が必要です。学習済みファイルは100Mbyte~250Mbyteの大きさになりますので、自身のiPhone容量を確認してから使用して下さい。

現在ダウンロードできる物体認識モデルは、以下の3種類です。Thermal Cam3xとThermal Cam Bではデータ内容が違いますのでご注意ください。

 Thermal Cam 3X用データ

a)   https://drive.google.com/file/d/1IzfCwoilTfw-8zrgSAWc8zM16P8I4N-Z/view?usp=sharing

(LEPTON赤外線画像を対象:車、人間、自転車、大型車両、歩道、犬、グー、チョキ、パー、顔の認識 32Bit

b)  https://drive.google.com/file/d/1fHe5Czv4wO1UaygwHsb6vCT5iuHVc-gr/view?usp=sharing

(標準RGB画像が対象:80種類の物体検出で、赤外線カメラでどの程度認識するかを確認するための試験用データ。一般的なCOCOです 16bit)

c)  https://drive.google.com/file/d/1o-PyBH9AztUpAsSc6QfZmyzi7bhfnkHz/view?usp=sharing

(標準RGB画像が対象:80種類の物体検出で、赤外線カメラでどの程度認識するかを確認するための試験用データ。一般的なCOCOです 32bit

 Thermal Cam B用データ

a)  https://drive.google.com/file/d/1MHE-uPRZvWx3CIAAe-lWHChLa3xnzk1h/view?usp=sharing

(LEPTON赤外線画像を対象:車、人間、自転車、大型車両、歩道、犬、グー、チョキ、パー、顔の認識 32Bit

b)  https://drive.google.com/file/d/1AgJYFT9N56wRX_MulEPgEu01K7Ih3hil/view?usp=sharing

(標準RGB画像が対象:80種類の物体検出で、赤外線カメラでどの程度認識するかを確認するための試験用データ。一般的なCOCOです 16bit)

c)  https://drive.google.com/file/d/18fF6tw_krbSJlepeqp9rMJ946BjjTM39/view?usp=sharing

(標準RGB画像が対象:80種類の物体検出で、赤外線カメラでどの程度認識するかを確認するための試験用データ。一般的なCOCOです 32bit

 

 

Thermal Cam シリーズ

 Thermal Camとは About Thermal Cam.

Thermal CamはFlir LEPTON3.0又は3.5を使ってiPhoneでサーモグラフィーを実現します。カメラとiPhoneテザリングによる無線接続です。

Thermal Cam can be used on iPhone with Flir LEPTON3.0 or 3.5 for thermography. The camera and iPhone are wirelessly connected by tethering.

f:id:TAKEsan:20191114203002p:plain

Thermal Cam 3X

Thermal Cam3が新しくなりました。次のような特徴を持っています。

  • 今までの使い勝手はそのままに、AIによる画像認識機能が加わった
  • 画像認識ファイルは自由に入れ替え可能。ユーザーが作成した学習済みファイルも使用可能で、認識した対象物についてアラート機能を付加。
  • 新たにM5Stackで動作可能になった。
  • LEPTON3.0と3.5を自動判別できるようになった。

Thermal Cam3Xは市販のESP8266ボードとFlir LEPTON3.0 又は3.5が必要です。以下の説明を確認し、必要部品をそろえた上でArduinoアプリをインストールして下さい。いままでThermal Cam3を使っていた方は、ESP8266側のアプリの入れ替えが必要です。https://drive.google.com/file/d/1uHMfr08MFBr5SeRYjOp-y0Ix-GH0isf-/view?usp=sharing

Thermal Cam3 is new. It has the following features.

  • The image recognition function by AI has been added while maintaining the conventional usability.
  • Image recognition files can be freely replaced. User-created learned files can also be used, and an alert function is added for specified objects.
  • Newly operable with M5Stack
  • Automatically distinguish between LEPTON 3.0 and 3.5

Thermal Cam3X requires a commercially available ESP8266 board and Flir LEPTON3.0 or 3.5. Please check the following explanation and install the Arduino app after you have the necessary parts. If you have been using Thermal Cam3 until now, you need to replace the ESP8266 app.   https://drive.google.com/file/d/1uHMfr08MFBr5SeRYjOp-y0Ix-GH0isf-/view?usp=sharing

 

基本機能の操作方法はこのビデオををご覧下さい。Watch this video for basic function operation.

      

AI機能を利用するとこのようなことができます。You can do this using the AI function.

      

M5Stackも使えるようになりました。M5Stack can now be used.

                      

取扱説明  Handling instructions

Thermal Cam BOSON New!

 

 

 

 

 

 

 

ダイナミックレンジ・カラーレンジ・サイドビュー画面について About Dynamic Range,Color Range,Side View.

ダイナミックレンジについて About dynamic range

LEPTONは測定温度に応じて14bitの数値を出力しますが、白黒データにすると1ピクセルあたり最大8,192階調にもなります。計測範囲は-273 〜 + 300 ℃( 分 解 能 : 0.05℃ )。現状の通常ディスプレイで表現できるグラデーションは256段階。それに色を付けます。ところが表示装置の制限で、測定可能範囲を256階調にすると非常に荒い画像となることになります。さらに測定する温度範囲はその中のごく一部で、濃淡が出ないために画像が表現できません。回避策は画像として表示するため計測範囲をここで256階調に変換することになります。

LEPTON outputs a 14-bit value according to the measured temperature, but if it is monochrome data it will be up to 8,192 tonal levels per pixel. Measurement range is -273 ~ + 300 ℃ (resolution: 0.05 ℃). There are 256 gradations that can be expressed in the current normal display. I add color to it. However, due to limitations of the display device, if the measurable range is set to 256 tones, it will be a very rough image. Furthermore, the temperature range to be measured is only a part of it, and the image can not be expressed because there is no shade. Since the workaround is displayed as an image, the measurement range will be converted to 256 tones here.

f:id:TAKEsan:20180221104750p:plain

色付けした画像が下図のようになり、Thermal Camの標準画面です。

f:id:TAKEsan:20180221104916p:plain

この方法は問題があって、刻々と変化する温度領域をその都度256等分することになるので、測定場所の移動で、画面毎に色がめまぐるしく変化してしまいます。

Since this method has problems and it will divide the constantly changing temperature range into 256 equal parts each time, as the measurement place moves, the color changes dramatically from screen to screen.

f:id:TAKEsan:20180221105448p:plain

室内のように最高最低温度の差があまり無い場合は、気になりませんが、例えば画面に極端な高温部が部分的に存在する場合、温度差が増しただけ解像度が下がることになるので極端な温度幅になり、室内の階調がほとんど無くなることになります。 

If there is not much difference between maximum and minimum temperatures as in the room, you do not mind, for example if the extreme high temperature part is partially present on the screen, since the resolution will decrease as the temperature difference increases It becomes an extreme temperature width, and the gradation of the room almost disappears.   

       f:id:TAKEsan:20180221105344p:plain

f:id:TAKEsan:20180221105552p:plain

これを防ぐため、この例の場合低温寄りのある範囲で256階調にすれば画像表現できることになります。

調整する方法として、現状の最高最低温度の低温側及び高温側を全体の比率で調整できるようにしたのがダイナミックレンジです。調整範囲外は白又は黒になります。下図は低温側を調整した場合です。

In order to prevent this, in the case of this example, if it is 256 tones in a certain range close to low temperature, it is possible to express the image.

As a method of adjustment, the dynamic range is made to be able to adjust the low temperature side and the high temperature side of the current maximum and minimum temperature by the whole ratio. Outside adjustment range is white or black. The figure below shows when adjusting the low temperature side.

f:id:TAKEsan:20180221105809p:plain

f:id:TAKEsan:20180221105916p:plain

現在の最低最高温度の範囲で、低温側32%を256階調表現している。Max温度はこの場合炎の温度ではなく背景の最高温度となる。高温側を調整した場合はMin温度が変化する。

In the current lowest maximum temperature range, 32% of the low temperature side is expressed in 256 tones. In this case Max temperature is not the temperature of the flame but the maximum temperature of the background. When the high temperature side is adjusted, the Min temperature changes.

結果的に、ある温度帯でLPTONの分解能の限度まで階調を表現できるようになります。これがThermal Camのダイナミックレンジスライダーです。

As a result, gradation can be represented up to the limit of the resolution of LPTON in a certain temperature range. This is the dynamic range slider of Thermal Cam.

----------------------------------------------------------------------------------------------------------------------------

編集

 

カラーレンジについて  About color range

室内のように測定温度範囲が小さい状況で温度画像を再現したい場合、他の方法で背景色の変化をできるだけ無くする方法はないのでしょうか?。-273〜+300 ℃の計測範囲を例えば室内の最低最高温度(24℃〜34℃とか)に変えて、この間に256階調のカラーマップを適用させる方法で解決できます。測定温度に対応する色が固定されるので画像が安定することになります。

If you want to reproduce a temperature image in a situation where the measurement temperature range is small like indoors, is there no way to eliminate background color change as much as possible using other methods? . It can be solved by changing the measuring range of -273 to + 300 ° C to the minimum room temperature (24 ° C to 34 ° C, for example) in the room, and applying 256 gradation color maps during this period. Since the color corresponding to the measurement temperature is fixed, the image will stabilize.

  f:id:TAKEsan:20180221110100p:plain

    

f:id:TAKEsan:20191115143928p:plain

上記のようにKansai Denkiボタンを押しカラーレンジをONにすると、画像右上にグレーの点と、現在の最低最高温度が表示されます。

When the Kansai Denki button is pressed and the color range is turned on as shown above, a gray dot and the current minimum and maximum temperature are displayed in the upper right corner of the image.f:id:TAKEsan:20180221111008p:plain

同時に左下の現状最低最高温度表示部分に青と赤の点が現れます。二つの点の範囲が絶対カラーマップの範囲を示します。現状はその範囲でどのあたりを利用しているのか判別できるようにしました。測定した温度帯が刻々と変化しますので、この2つの点も常に動くことになります。カラーマップONで極端な温度が部分的に発生した場合でも、下図のように(ライターの火が画像に入っている)背景色は変化しなくなります。

At the same time, blue and red dots appear in the lowest highest temperature display area at the bottom left. The range of two points indicates the absolute color map range. The current situation has made it possible to judge which area is used within that range. Since the measured temperature zone changes every moment, these two points will also move at all times. By doing this, even if extreme temperatures are partially generated, the background color will not change as shown below (the lighter's fire is in the image).

f:id:TAKEsan:20180221111133p:plain

赤と青の点の範囲と現在のカラーマップがうまく動いていることがわかると思います

You can see that the range of red and blue points and the current color map are moving well.

この新機能は、現状カラーマップが標準カラーマップのごく一部の範囲となった場合階調が著しく失われますので注意が必要です。

Please note that this new function will cause the gradation to be significantly lost if the current color map becomes a small part of the standard color map.

----------------------------------------------------------------------------------------------------------------------------

サイドビューについて  About side view

設定でSide View をON。特に確認したい温度領域 Target temp で温度を指定します。

この設定で、画面右側にサブビューが表示され、ターゲット測定温度は緑色で表示されます。

Set Side View on setting. Specify the temperature with the temperature range Target temp you want to check.With this setting, a subview is displayed on the right side of the screen and the target measurement temperature is displayed in green.

f:id:TAKEsan:20180221111400p:plainf:id:TAKEsan:20180221111454p:plain

f:id:TAKEsan:20180221111642p:plain

この例のように最高温度最低温度域、設定温度域が即座に確認できます。測定域が現在の最低温度より低いときは、当然ですが緑表示されないのでご注意下さい。

As in this example, the maximum temperature minimum temperature range, set temperature range can be confirmed immediately. Please note that when the measurement area is lower than the current minimum temperature, green display will not be made.

----------------------------------------------------------------------------------------------------------------------------

LEPTONの温度計測に関する全般的な注意点は、 Overall note on temperature measurement of LEPTON

  • LEPTONは温度計測が安定するまで多少の時間が必要です
  • 作成したアプリは対象熱源の放射率を考慮していません
  • 現在販売しているLEPTON3は温度測定の保証はしていません
  • LEPTON needs some time until the temperature measurement stabilizes
  • The created application does not consider the emissivity of the target heat source
  • Temperature measurement is not guaranteed for  LEPTON 3 which are currently on sale

以上のことから場面や環境で測定温度に誤差があることをご理解下さい。

Please understand that there is an error in the measured temperature in the scene or environment from the above.

 Goto Home 

----------------------------------------------------------------------------------------------------------------------------

 * 1: There are few noises depending on the distance and the surrounding conditions, but the frame rate drops.

Thermal Cam3X System overview

システム概要

そもそもLEPTONサーモセンサーってなに? What is LEPTON thermosensor in the first place?

このセンサーだけで熱を感知して、画像を再現します。真っ暗闇で何の照明も使わずに画像が再現できます。詳しくはメーカーサイトを御覧ください。

This sensor alone senses heat and shows thermal image. Thermal Images can be seen in the dark without any lighting. Please see the manufacturer site for details.

FLIR Lepton® | FLIR Systems

なぜ WROOM02 (ESP8266) を使うのか? Why use WROOM 02 (ESP 8266)?

その消費電力の少なさと価格の安さに尽きます。消費電力はESP32やPi Zero の約半分。基盤を選べば280mAhの極小リポバッテリーでLEPTON3の場合でも1時間以上赤外線動画を発信し続けます。

It consumes less power and lower price. Power consumption is about half of ESP32 and Pi Zero. If a good pcb is chosen, it will continue to transmit infrared video for over 1 hour even in case of LEPTON 3 with 280 mAh mini lipo battery.

f:id:TAKEsan:20170920222645j:plain

新しく開発したドローン向けの比較的大型の基板でも、電池を含めて僅か18gです

このことは、小型ドローン搭載を始め色々な用途で使えることを意味します。ESP8266でLEPTON3の画像を30~100m離れたところからiPhoneで受信できます。

上記写真は、小型ドローンに特化したボードでスイッチサイエンスさんで取り扱っていただいています。

ESP8266には何も改良を加えていないので当然技適も問題ありません。このボードとiPhoneアプリとの組み合わせで双方100m程度離れている条件で、iPhoneからLEPTON3のほぼノイズがない画像が継続して再現できました。しかも測定した場所はWIFI中継点が20箇所程度と非常に劣悪な環境でした。(下記で実際の動画が確認できます)

残念ながら一般のボードでは最大の動画受信距離は35m程度です。今回のアプリはボードを選びませんが、性能と安定性を望むならカスタム基盤が必要になります。

This means that you can use it for various purposes, including toy drone. However, as we introduced in previous articles, there are many problems. LEPTON 3 with ESP 8266 and still be able to receive on iPhone from30~100 m .

The picture above is a board specializing in small drones and handled by Switch Science.Since there is nothing to improve on ESP 8266 naturally, there is no problem with skill. With this combination of this board and software of this time it was able to reproduce images with almost no noise of LEPTON 3 from iPhone under the condition that both are 100 m away.

Moreover, the place where we measured was a very bad environment with WIFI relay point of about 20 places. (Actual video can be confirmed below) 

Unfortunately the maximum video reception distance on a general board is around 35 m. This application does not choose a board, but if you want performance and stability, you need a custom pcb made by Wiwao. If you can successfully distribute movies with ESP 8266, there is nothing to benefit from using other processors or ESP32.

LEPTON3+Thermal Cam3をMavic Airに取り付けて撮影すると.......。When LEPTON 3 + Thermal Cam 3 is attached to Dobby and shot ........

次の動画は、Oosawaさんが小型ドローンMabic Airに今回のシステムを取り付けて、実際に太陽電池メンテナンス用にTestフライトを実施したものです。(協力:大澤 雄一郎)

The following video is Oosawa's installed this system on a small drone Mabic Air and actually conducted a Test flight for solar cell maintenance.

      Thermal Cam3はUDP OSC通信をiPhoneデザリングで実現していますが、周りの妨害電波からほとんど影響を受けません。Thermal Cam 3 conducts UDP OSC communication with iPhone tethering, but it is not hardly affected by surrounding jamming waves.

次の動画はWiFi中継点が20ヶ所程度でパケットに影響の出やすい駅構内で録画していますが、多少フレームレートが落ちる程度で、画像ノイズは全くないことが確認できます。

Although the next movie is recording on the station premises where the WiFi relay point is likely to affect packets at around 20 places, it can be confirmed that there is no image noise at all, as the frame rate goes down slightly.

     夜なのにこんな画像が録画できます。Even though it is night, you can record such an image.

 人も車も風景も、そして電線も.....。このクオリティー。結構いいかもしれません。

People, cars, landscapes, electric wires ...... This quality. It might be pretty good.   

   

100m離れた場所での画像です。It is an image at a place 100 m away.

 WROOM02(ESP8266)側のWIFI中継点は20箇所。iPhone側は7箇所でした。少しパケット紛失(インジケーター黄色点滅)しているようですが、動画のスピードは問題ありませんでした。この画像の撮影ではWiwaoさんの最新ボードを使っています。

There are 20 WIFI relay points on WROOM 02 (ESP 8266) side. There were 7 places on the iPhone side. It seems that a little packet loss (indicator yellow flashing), but the speed of the video was not a problem. For shooting this image, I use his latest board of Wiwao.

   LEPTON3が風に揺れています。ほとんど遅れがないことと、画像のノイズが全くないことが確認できました。この場所はすぐ左側が崖になっている住宅地で、パケットのエラー修正がまともにできていないと、満足に画像が再現できない「魔」の場所です。

LEPTON 3 is swaying in the wind. It was confirmed that there was almost no delay and no image noise. This place is a residential area where the left side is a cliff soon and it is a place of "devil" that can not reproduce images satisfactorily if error correction of packet is not done properly.

Goto Home

ESP8266を使う場合のインストール方法 Installation method when using ESP8266

アプリ実行前に...。 Before running the application ....

 

このアプリは以下の別部品およびソースのインストールが必要です。順番に沿って部品の調達およびソフトのインストールを行ってください。WROOM02のソースコンパイル時はモリーとCPUスピード設定をそれぞれ80MHz,160MHzに設定が必要です。(Thermal Cam (for LEPTON1)は以前周波数を下げていましたが、V2.0では周波数を上げてコンパイルします)※「5.ボード設定は以下の通りとしてください」参照

まずESP8266開発ボード、LEPTON3、LEPTONブレイクアウトボードを手に入れてください。 以下必要部品の入手先とLEPTON画像再現までの手順です。

This application requires installation of the following separate parts and source. Please procure parts and install software according to the order. When source compiling WROOM 02, it is necessary to set memory and CPU speed setting to 80 MHz and 160 MHz respectively. 

 First, get the ESP 8266 development board,  LEPTON 3, LEPTON breakout board.Below is the procedure from where to obtain the required parts to LEPTON image reproduction.

 1.ESP8266開発ボードを用意してください。Prepare the ESP8266 development board.

f:id:TAKEsan:20191118111932p:plain 

LEPTON3はSPIとi2C及び3.3V出力端子が必要です。これらの端子が使用できないボードもありますので、購入時は注意してください。

LEPTON 3 requires SPI and i2C and 3.3 V output terminals. Some boards can not use these terminals, so be careful when purchasing.

専用のボードを販売しています。(W&T Thermal Cam PCB)

         W&T Thermal Cam PCB - スイッチサイエンス

         W&T Thermal Cam PCB用パーツセット - スイッチサイエンス

SPIの信号が安定するばかりでなく、WiFiの飛距離が技適範囲内で大きく伸びます。

 We decided to sell the board we made. In addition to stabilizing the signal of SPI, the distance of WiFi will dramatically increase within the technical range! ! .

2. LEPTON3又は3.5を用意してください。Please prepare LEPTON3 or 3.5

f:id:TAKEsan:20191118113207p:plain

 LEPTONセンサー自体は完全防水で、衝撃にもかなり強いため悪条件にびくともしませんが、取り外し可能なシャッター部品は壊れやすい欠点があります。取り扱いには十分に注意してください。LEPTONは定期的にシャッターを閉じて画像のキャリブレーションを行っていますが、シャッターが壊れると残像が残るなど、画像に障害が出て来ます。今の所シャッターの交換部品は販売していない様なので、取り扱いには十分注意が必要です。

The LEPTON sensor itself is completely waterproof, and it is quite strong for impact, so it does not bother with adverse conditions, but detachable shutter parts have a breakable disadvantage. Please handle with care. LEPTON regularly closes the shutter and calibrates the image, but if the shutter breaks, afterimages will remain, such as image failure will come out. Currently it seems that we do not sell replacement parts for the shutter, so careful handling is necessary.

3. BREAKOUT BOARDが必要です。 BREAKOUT BOARD is required.   

f:id:TAKEsan:20191118113845p:plain

Ver1.0 は製造中止ですが ver2.0 はFLIR Lepton Breakout Board v2.0 | FLIR Systemsで手に入ります

In Japan, you can get it with Cornes Technology or Digi - Key.                              

 4. Arduino IDEをインストールします(Macの場合) Install Arduino IDE (Mac)

Arduino IDE https://www.arduino.cc/en/main/software  をインストール

IDEを起動させたら、

Arduino-->Preferences 

出てきた環境設定ダイアログの下の方「追加ボードマネージャーのURL:」の中に

http://arduino.esp8266.com/stable/package_esp8266com_index.json

を書き込む。

Install Arduino IDE https://www.arduino.cc/en/main/software   After starting the IDE,

Arduino-->Preferences

In the lower part of the setting dialog that came out "in the URL of additional board manager:"

http://arduino.esp8266.com/stable/package_esp8266com_index.json

 f:id:TAKEsan:20171008224533p:plain

ツール-->開発ボード-->ボードマネージャー を選択

最後の方にesp8266 by esp8266 Community という項目があります。 f:id:TAKEsan:20170920210049p:plain

バージョンは必ず2.2.0 を選択してください。(上図はすでに2.2.0を選択してるので選択画面には出て来ていない)すでに 2.3.0を選択している方は 2.2.0にバージョンを落としてください。2.3.0で今回のソースをインストールするとうまく動作しません。 

Be sure to select 2.2.0 for the version. (Since the above figure has already selected 2.2.0, it has not appeared on the selection screen.) If you have already selected 2.3.0 please drop the version to 2.2.0. Installing this source in 2.3.0 does not work well.

 5. ボード設定は以下の通りです。 The board settings should be as follows.

シリアルポートはESP8266を接続すれば表示されますが、Bluetoothでない方を選択します。注意点は、Macの場合ESP8266を何回も抜き差しすると、USBを認識しなくなることです。認識しない場合はMac側のUSBコネクタを変更すると、認識するようになります。MacBookのようにUSBコネクタが2つしかなくて両方認識しなくなったら、再起動……。です。       Flash Frequency=80MHz、CPU Frequency=160MHzであることに注意してください。    

The serial port will be displayed if you connect the ESP 8266, but choose the one that is not Bluetooth. The caveat is that if you plug or unplug ESP 8266 multiple times on a Mac, it will not recognize USB. If you do not recognize it, you will recognize it when you change the USB connector on the Mac side. If there are only two USB connectors like a MacBook and both do not recognize, restart ....... is. Please note that Flash Frequency = 80 MHz, CPU Frequency = 160 MHz.                 

f:id:TAKEsan:20170924110748p:plain

f:id:TAKEsan:20170920210155p:plain   

 6. OSCライブラリをインストールします。 Install the OSC library.

Arduino IDEの Arduino—>Preferences..  を選択して一番上の スケッチブックの保存場所を確認します。

Select Arduino-> Preferences .. in the Arduino IDE and check the storage location of the top sketchbook.

 f:id:TAKEsan:20170920210844p:plain

この中にlibraries フォルダがあるかどうか確認します

Make sure there is a libraries folder in this.

無かったらlibrariesフォルダを作成します。以下のURLを開いて

https://github.com/sandeepmistry/esp8266-OSC

ESP8266のOSCライブラリをダウンロード解凍してlibrariesフォルダに移動させます。

一度Arduino IDEを終了させ、再起動後 スケッチ-->ライブラリをインクルードを選択して 「OSC 」が入っているかどうか確認。

If you do not have it, create a libraries folder. Open the following URL

    https://github.com/sandeepmistry/esp8266-OSC 

Unzip the OSC library of ESP 8266 and move it to the libraries folder.

Exit the Arduino IDE once, after restarting, select Sketch -> Include Library to check if "OSC" is included.

 7. iPhoneを設定します。 Configure iPhone.

iPhone を普通に初期設定するとssidは日本語になります。エラーが起きる可能性がありますので半角英字に修正してください。

 設定-->一般-->情報-->名前-->現在のiPhone名称>を選択 で名称を変更します。名称を変更してもiPhone自体の挙動に影響はありません。 

When initializing iPhone as usual, ssid becomes Japanese. Please correct it to half-width alphabetical as it may cause an error.

Choose Settings -> General -> Information -> Name -> Current iPhone Name> to change the name. Changing the name does not affect the behavior of the iPhone itself.

 8. ESP8266Arduino ソースをダウンロードします。Download the ESP 8266 Arduino source.

上記URLからダウンロードしてください。(LEPTON3.0と3.5はアプリが自動判別します)Arduino IDEを開いて、ダウンロードしたファイルをダブルクリック。フォルダの中に入れますか?と聞かれるので、YESを選択。OSCやSPIの安定化、UDPパケット紛失問題の解消、ESP特有のWDTリセットの解決方法をコメントしておきました。ボードを選べば100m以上離れた場所でLEPTONの画像が再現できます。 

Please download from the above URL.Open Arduino IDE and double click on the file you downloaded now. Can you put it in the folder? As you are asked, choose YES. We commented on the stabilization of OSC and SPI, the elimination of UDP packet loss problem, and the solution method of WSP reset specific to ESP. If you choose a board, LEPTON images can be reproduced in places more than 100 m away.

 9. 今回のiPhoneアプリをダウンロードします。Download this iPhone application.                

f:id:TAKEsan:20191114144756p:plain

W&T又はkansaidenkiで検索。Themal Cam3Xを探します。申し訳有りませんが有料アプリです。

Search by W&T or kansai. Look for  Themal Cam 3X according. Sorry, this is a paid app.

 10. 今回のソースを開いて一部を修正します。Open this source and fix some.

修正が必要な部分は、以下の3箇所です。 

         40,41行目付近   

          #define SSID_X    “ABiPhone”   //iPhone 

          #define PASS_X    "11111111"   //iPhone 

 ABiPhoneにiPhoneの名称、11111111 に 設定-->モバイルデータ通信-->Wi-Fiのパスワード を調べて パスワードを入力します。

          51行目付近

          #define LEDpin 16 

に自分のボードに合ったLEDのピン番号を入力してください。LEDは特に必要ありませんが、ESP8266の状態がわかるので、点灯すると便利です。サインは以下の通りです。

  • LED 長点滅 初期のWiFi接続中の場合点滅。
  • LED 短点滅 iPhone側のアプリが中断した場合点滅。
  • 無点滅   正常にデータを送っている場合。
  • 無点滅中一瞬LEDが光る場合 パケットが紛失して、再度同じパケットを送っている時。ピカッピカッが多いときは、周囲の電波状態が悪く連続してパケット修正をしている状態なので、画像のフレームレートが下がります。

 GPSをONにすると、周期的に一瞬ピカッと光ります。確実にパケットを紛失してるのですが画像にはさほど影響がないことがわかると思います。BlueToothをONにするとさすがにたくさん点滅してフレームレートが多少落ちます。

The parts that need to be modified are the following three places. 

Near lines 34 and 35 

          #define SSID_X    “ABiPhone”   //iPhone

          #define PASS_X    "11111111"   //iPhone

Set the name of iPhone to ABiPhone, set to 11111111 -> Mobile data communication -> Enter the password by checking the Wi - Fi password.

          Line 47 (for LEPTON 1) Near line 53 (for LEPTON 3)

           #define LEDpin 16

Please enter the pin number of LED matching your board. Although LED is not particularly necessary, it is convenient to light up as you can understand the state of ESP 8266. The signature is as follows.

  • LED blinking - when initial WiFi connection is in progress. 
  • LED Flash short blink Blinks - when iPhone side application is interrupted.
  • No flashing - When sending data normally.
  • When the LED glows instantaneously during blinking - When the packet is lost and is sending the same packet again. When there are a lot of shocks, the frame rate of the image decreases because the ambient radio condition is bad and the packet is being corrected continuously.

When GPS is turned on, it glows shimmerly periodically. I think that you can see that there is not much effect on the picture although it surely loses the packet. When BlueTooth is turned on, it glows a lot and the frame rate drops.

11. ESP8266とLEPTON BREAKOUT BOARD を接続します。Connect ESP 8266 and LEPTON BREAKOUT BOARD.

スイッチサイエンスESPrの場合、LEPTONブレイクアウトボードとESP8266の結線は以下の通りです

For switch science ESPr, the connection between LEPTON breakout board and ESP 8266 is as follows 

       f:id:TAKEsan:20191118122016p:plain                       

 12. WROOM02(ESP8266)ボードにプログラムを転送します。Transfer the program to WROOM02 (ESP8266) board.

以上設定が終わったらコンパイル、転送します。たまにエラーが出る場合がありますが、その場合は再度転送してください。(USBを認識していない場合が多い)

When compilation and transfer are done, it completes. Although occasionally an error may appear, please transfer again in that case. (USB is not recognized in many cases) 

13. いよいよサーモグラフィー開始 The thermography finally starts !!

iPhoneX、11Proでの動作確認をしています。iPadでも動くと思いますが、両者ともCPUはA9以上が必要です。iPhone 11 Pro MAX、Xs、Xs Pro、XR、8、8Plus、他のiPadに関してはシュミレーターで動作を確認・調整しています。

インストール作業から1回目の動作確認までは、簡単とは言えませんが、Arduinoに慣れている皆さんにとっては全く問題のない過程です。セキュリティーを保ったまま、2回目以降は3ステップ(LEPTON側スイッチオン-->インターネット共有-->iPhoneアプリ起動)で動いてしまいます。煩わしいWiFi選択やIP、パスワード入力などは全く必要ありません。また、テザリングを使っていても外部とは通信しないので、Thermal Cam3動作に関する通信料金は発生しません。

*iPhoneの機種や周囲の環境によりテザリングがつながりにくい場合があります。その場合には

  • ESP8266の電源を入れ直す
  • 機内モードON->OFF を実行してからインターネット共有をONにする。
  • iPhoneの電源を入れ直す
  • 時間や場所を変えて再接続を行う

I am checking the operation with X,11Pro. I think that it will work on general iPad, but both require A9 or more CPU. For iPhone Xs,Xs Pro,XR,8, 8 Plus, and other iPads, the operation is checked and adjusted with a simulator.

It is not easy from installation to first confirmation of operation, but for everyone who is accustomed to Arduino it is a completely problem free process. While keeping security, it moves with 3 steps (LEPTON side switch ON -> Internet share -> iPhone application launch) after the second time. No troublesome WiFi selection, IP, password entry etc are required at all. Also, even if you use tethering, you will not communicate with the outside, so there will be no communication fee for Thermal Cam 3 operation.

*Tethering may be difficult to connect depending on the iPhone model and surrounding environment. In that case.

  • Power cycle ESP8266.
  • Execute Airplane mode ON-> OFF and then turn on Internet sharing.
  • Power cycle your iPhone.
  • Reconnect at a different time or location.

Goto Home

 

 

     

M5Stackを使う場合のインストール方法 Installation method when using M5Stack

アプリ実行前に...。 Before running the application ....

このアプリは以下の別部品およびソースのインストールが必要です。順番に沿って部品の調達およびソフトのインストールを行ってください。

まずM5Stack、M5Stack用電池モジュール、LEPTON3 or 3.5、LEPTONブレイクアウトボードを手に入れてください。 以下必要部品の入手先とLEPTON画像再現までの手順です。

また、LEPTON3.0と3.5は自動判別します。

This application requires installation of the following separate parts and source. Please procure parts and install software according to the order. 

 First, get the M5Stack,M5Stack battry module ,development board,LEPTON 3 or 3.5, LEPTON breakout board.Below is the procedure from where to obtain the required parts to LEPTON image reproduction.LEPTON3.0 and 3.5 are automatically identified.

 1. M5StackとM5Stack電池モジュールを用意してください。Prepare the M5Stack and M5Stack battry module.

f:id:TAKEsan:20191118130532p:plain

2. LEPTON3.0又は3.5を用意してください。Please prepare LEPTON3.0 or 3.5

f:id:TAKEsan:20191118113207p:plain

 LEPTONセンサー自体は完全防水で、衝撃にもかなり強いため悪条件にびくともしませんが、取り外し可能なシャッター部品は壊れやすい欠点があります。取り扱いには十分に注意してください。LEPTONは定期的にシャッターを閉じて画像のキャリブレーションを行っていますが、シャッターが壊れると残像が残るなど、画像に障害が出て来ます。今の所シャッターの交換部品は販売していない様なので、取り扱いには十分注意が必要です。

The LEPTON sensor itself is completely waterproof, and it is quite strong for impact, so it does not bother with adverse conditions, but detachable shutter parts have a breakable disadvantage. Please handle with care. LEPTON regularly closes the shutter and calibrates the image, but if the shutter breaks, afterimages will remain, such as image failure will come out. Currently it seems that we do not sell replacement parts for the shutter, so careful handling is necessary.

3. BREAKOUT BOARDが必要です。 BREAKOUT BOARD is required.   

f:id:TAKEsan:20191118113845p:plain

Ver1.0 は製造中止ですが ver2.0 はFLIR Lepton Breakout Board v2.0 | FLIR Systemsで手に入ります

In Japan, you can get it with Cornes Technology or Digi - Key.                              

 4. Arduino IDEをインストールします Install Arduino IDE

M5Stack - A series of modular stackable development devices

自分のコンピューターに合わせてインストールして下さい。 

Please install according to your computer.

 5. OSCライブラリをインストールします。 Install the OSC library.

Arduino IDEの Arduino—>Preferences..  を選択して一番上の スケッチブックの保存場所を確認します。

Select Arduino-> Preferences .. in the Arduino IDE and check the storage location of the top sketchbook.

 f:id:TAKEsan:20170920210844p:plain

この中にlibraries フォルダがあるかどうか確認します

Make sure there is a libraries folder in this.

無かったらlibrariesフォルダを作成します。以下のURLを開いて

https://github.com/sandeepmistry/esp8266-OSC

ESP8266のOSCライブラリをダウンロード解凍してlibrariesフォルダに移動させます。

一度Arduino IDEを終了させ、再起動後 スケッチ-->ライブラリをインクルードを選択して 「OSC 」が入っているかどうか確認。

If you do not have it, create a libraries folder. Open the following URL

    https://github.com/sandeepmistry/esp8266-OSC 

Unzip the OSC library of ESP 8266 and move it to the libraries folder.

Exit the Arduino IDE once, after restarting, select Sketch -> Include Library to check if "OSC" is included.

6. OSCライブラリの一部を変更します。Change part of the OSC library.

OSCdata.h

以下94~96行目をコメントアウトまたは削除します。

Comment out or delete lines 94 to 96 below.

f:id:TAKEsan:20191118135336p:plain

OSCData.cpp 

以下31~38行目をコメントアウト又は削除します

Comment out or delete lines 31 to 38 below.

f:id:TAKEsan:20191118135351p:plain

7. iPhoneを設定します。 Configure iPhone.

iPhone を普通に初期設定するとssidは日本語になります。エラーが起きる可能性がありますので半角英字に修正してください。

 設定-->一般-->情報-->名前-->現在のiPhone名称>を選択 で名称を変更します。名称を変更してもiPhone自体の挙動に影響はありません。 

When initializing iPhone as usual, ssid becomes Japanese. Please correct it to half-width alphabetical as it may cause an error.

Choose Settings -> General -> Information -> Name -> Current iPhone Name> to change the name. Changing the name does not affect the behavior of the iPhone itself.

 8. M5Stack Arduino ソースをダウンロードします。Download the M5Stack Arduino source.

上記URLからダウンロードしてください。(LEPTON3.0と3.5はアプリが自動判別します)Arduino IDEを開いて、ダウンロードしたファイルをダブルクリック。フォルダの中に入れますか?と聞かれるので、YESを選択。OSCやSPIの安定化、UDPパケット紛失問題の解消、ESP特有のWDTリセットの解決方法をコメントしておきました。

Please download from the above URL.Open Arduino IDE and double click on the file you downloaded now. Can you put it in the folder? As you are asked, choose YES. We commented on the stabilization of OSC and SPI, the elimination of UDP packet loss problem, and the solution method of WSP reset specific to ESP. 

 9. 今回のiPhoneアプリをダウンロードします。Download this iPhone application.                

f:id:TAKEsan:20191114144756p:plain

W&T又はkansaiで検索。Themal Cam3Xを探します。申し訳有りませんが有料アプリです。

Search by W&T or kansai. Look for  Themal Cam 3X according. Sorry, this is a paid app.

 10. 今回のソースを開いて一部を修正します。Open this source and fix some.

修正が必要な部分は、以下の2箇所です。 

         58,59行目付近   

          #define SSID_X    “ABiPhone”   //iPhone 

          #define PASS_X    "11111111"   //iPhone 

 ABiPhoneにiPhoneの名称、11111111 に 設定-->モバイルデータ通信-->Wi-Fiのパスワード を調べて パスワードを入力します。

 GPSをONにすると、周期的に一瞬ピカッと光ります。確実にパケットを紛失してるのですが画像にはさほど影響がないことがわかると思います。BlueToothをONにするとさすがにたくさん点滅してフレームレートが多少落ちます。

The parts that need to be modified are the following three places. 

Near lines 34 and 35 

          #define SSID_X    “ABiPhone”   //iPhone

          #define PASS_X    "11111111"   //iPhone

Set the name of iPhone to ABiPhone, set to 11111111 -> Mobile data communication -> Enter the password by checking the Wi - Fi password.

When GPS is turned on, it glows shimmerly periodically. I think that you can see that there is not much effect on the picture although it surely loses the packet. When BlueTooth is turned on, it glows a lot and the frame rate drops.

11. M5StackとLEPTON BREAKOUT BOARD を接続します。Connect M5Stack and LEPTON BREAKOUT BOARD.

   f:id:TAKEsan:20191118185852p:plain         f:id:TAKEsan:20191118190420j:plain

 12. WROOM02(ESP8266)ボードにプログラムを転送します。Transfer the program to WROOM02 (ESP8266) board.

以上設定が終わったらコンパイル、転送します。たまにエラーが出る場合がありますが、その場合は再度転送してください。(USBを認識していない場合が多い)

When compilation and transfer are done, it completes. Although occasionally an error may appear, please transfer again in that case. (USB is not recognized in many cases) 

13. いよいよサーモグラフィー開始 The thermography finally starts !!

iPhoneX、11Proでの動作確認をしています。iPadでも動くと思いますが、両者ともCPUはA9以上が必要です。iPhone 11 Pro MAX、Xs、Xs Pro、XR、8、8Plus、他のiPadに関してはシュミレーターで動作を確認・調整しています。

インストール作業から1回目の動作確認までは、簡単とは言えませんが、Arduinoに慣れている皆さんにとっては全く問題のない過程です。セキュリティーを保ったまま、2回目以降は3ステップ(LEPTON側スイッチオン-->インターネット共有-->iPhoneアプリ起動)で動いてしまいます。煩わしいWiFi選択やIP、パスワード入力などは全く必要ありません。また、テザリングを使っていても外部とは通信しないので、Thermal Cam3動作に関する通信料金は発生しません。

I am checking the operation with X,11Pro. I think that it will work on general iPad, but both require A9 or more CPU. For iPhone Xs,Xs Pro,XR,8, 8 Plus, and other iPads, the operation is checked and adjusted with a simulator.

It is not easy from installation to first confirmation of operation, but for everyone who is accustomed to Arduino it is a completely problem free process. While keeping security, it moves with 3 steps (LEPTON side switch ON -> Internet share -> iPhone application launch) after the second time. No troublesome WiFi selection, IP, password entry etc are required at all. Also, even if you use tethering, you will not communicate with the outside, so there will be no communication fee for Thermal Cam 3 operation.

15. M5Stackでの動作について

  • 電源ボードで電池容量を大きくしていますが、M5Stackが起動しない場合は再充電を行って下さい。
  • iPhoneとのテザリング接続が完了しないとM5Stack側の赤外線画像が表示されません
  • M5Stack側のカラーレンジには対応していません(ダイナミックレンジは可能)
  • テザリング到達距離はESP8266に比べ大幅に短くなります(最大で35m程度)
  • M5Stack側での画像のカラー変更は一番左側のボタンを押します。
  • The battery capacity is increased with the power board, but if M5Stack does not start, recharge it.
  • If the tethering connection with the iPhone is not completed, the infrared image on the M5Stack side will not be displayed
  • The color range on the M5Stack side is not supported (dynamic range is possible)
  • Tethering reach is significantly shorter than ESP8266 (up to about 35m)
  • To change the color of the image on the M5Stack side, press the leftmost button.

 Goto Home

 

 

Thmal Cam for BOSON

私たちの作った赤外線カメラを取り付けたESP8266とiPhoneWiFiで接続するという発想のThermal Cam はFLIR LEPTON 1.0,3.0,3.5 で動作が可能です。        

今回は同じような仕組みを使って、より精細な画像とスピードを持つFLIR BOSON QVGA(以下BOSON)で実現させました。さらにThermal Cam3Xと同じように、皆さんが変更可能なAI画像認識機能を加えて様々な応用ができます。

この画像の最初の方は、チョキを認識したら手の温度を表示して、一番温度が高い温度に丸印を表示、更に英語でピースと発生させる設定にしています。画像認識エンジンにはYOLOv3を利用していますが、標準データ(Tinyではありません)で入力画像が416x416です。推論スピードが30fpsを超えることがお分かりいただけると思います。

   起動終了方法は下記「15 起動終了方法」を確認して下さい。AIの使用方法、学習済みファイルのインストール方法はThermal Cam3Xと同じです。こちらを参考にして下さい。 

Thermal Cam for BOSONは、安価で小型のRaspbery PI Zero をFLIR BOSON に接続し、Wi-FiテザリングI経由でiPhoneに画像を再現できます。動画スピードは、10Mhz(10fps)以上のBOSONでは最高30fps前後です。

f:id:TAKEsan:20190922105712p:plain

PI ZeroとiPhoneWi-Fiで相互に交信し合います。PI側ではカメラの持つ性能を最大に発揮させるため8bit処理したRAW16グレースケール画像をiPhoneへ送っています。制御命令はiPhoneから送信しているので、市販のBOSON単体とコンピュータをつないだだけでは実現できない暫定温度測定・感度の微調整・自由な色づけが可能になりました。さらに画像データはmjpegなどで圧縮していないためBOSON本来のノイズの少ないくっきりした画像が再現されます。iPhone側では画像を特性に合った方法で拡大しているので、緻密な画像表現が可能です。市販されているBosonは温度測定機能を持っていませんが、後述したキャリブレーションを行うことで、ある程度正確な温度測定が可能になりました。

iPhoneまたはiPad用のアプリは、app Storeから w&t 、kansaidenki、thermal で検索できます。(2020/4/18)

f:id:TAKEsan:20200415003805p:plain

1.Thmal Cam for BOSONの機能 

Thermal Cam for BOSONは、以下のような機能があります。

    

f:id:TAKEsan:20200404145600p:plain

    f:id:TAKEsan:20190922141525p:plain

カラーレンジONの場合、高画質なiPhone画像は、ソースの工夫で輪郭強調やコントラストを上げなくても、自然な画質で緻密さを失なっていません。FLIRのAGC画像と決定的に違うことは、下記比較画像で理解できると思います。

    f:id:TAKEsan:20190922141548p:plain

    f:id:TAKEsan:20190922141602p:plain

今までのLEPTON画像より画素が多くなったため3D画像は息をのむような美しさです。

f:id:TAKEsan:20200404145659p:plain

f:id:TAKEsan:20200412153003p:plain

iPad動かした例です。あらかじめ記憶した顔の温度を元に、AIで認識した全ての顔について何度の差があるかを表示しています。基準値を超えると音声またはアラート音やフラッシュで警告が設定できます。

    f:id:TAKEsan:20190923105537p:plain

画像のカラーは3種類のポスタリゼーションカラーを含む12色から選択できます。

このほかにiPhoneの設定でReverseをONにすることで、画像の左右が反転できます。

2.1クラス上の美しい画像が表示できます

この画像はBOSON QVGAを直接パソコンにつないだキャプチャー画像です。接続が簡単でWEBカメラとして取り扱えますが、AGC処理後の画像のためノイズ(縦に現れる縞)が多く、コントラストを上げているためか、画像そのものは決して美しいとは言えません。   

f:id:TAKEsan:20190922144959p:plain

BOSON QVGAキャプチャー画像

次の画像は今回のBOSON QVGA(320x256画素)を使ったThermal Cam for BOSONの画像です。落ち着いた画質でノイズが取れ、細かなところまで画像が再現できているのが分かると思います。 (屋内で最高最低温度の差が殆ど無い場面ではノイズが発生します)

f:id:TAKEsan:20190922145037p:plain

Thrmel Cam for BOSON QVGA(320x256画素)の画像

次の画像はBOSON QVGA(320x256画素)の上位機種VGA(640x512画素)を同じiPhoneアプリで再現したものです。一見QVGAと見分けが付かないと思います。ただし引き延ばすと違いが分かりますが、赤外線カメラを使う一般用途であれば価格の安いQVGAでも十分対抗できることがおわかりいただけると思います。

f:id:TAKEsan:20190922145429p:plain

Thrmel Cam for BOSON VGA(640x512画素)の画像

3. 応用例

赤外線画像を利用したAIによる画像認識の応用例です。ここではLEPTONを使っていますが、すでにBOSONでも実現できています。

Maker Faire Kyoto に向けて - W&T's diary

さらにiPhone 11シリーズを使った本格的な「おうちくらうど」も開発中です。

4.必要部品とソフト

この記事で紹介するアプリは、あくまでもPI Zeroを使ったインストール手順で、これだけではThermal Cam for BOSONは動きません。現在アプリストアに申請中のiPhoneアプリが必要です。

FLIR BOSON QVGA (10Mhz以上の機種)

USBケーブル   USBC及びマイクロUSBコネクタが付いているもの

Raspbery PI Zero(インストール時はHDMI、キーボード、マウスを接続)

        インストール後はキーボード、マウス、ディスプレイは必要ありません

マイクロUSBカード(16Gbyte)

pimoroni OnOff SHIM 日本ではスイッチサイエンスで取り扱っていて768円です

            f:id:TAKEsan:20190922110003p:plain

対応 iPhone

  • iPhone SE,7,7Plus,8,8Plus,X,XR,XS,Xs max,11,11 Pro,11 Pro Max
  • 格安SIMを使う場合は、テザリング可能な契約をしてください
  • AI機能を使うにはXs以上が必要となります

Thermal Cam for BOSON PI側アプリ以下を参考にしてインストールして下さい

Thermal Cam for BOSON iPhone側アプリ:Apple アプリストアからダウンロードして下さい

  kansai,kansaidenki,w&t で検索

Thermal Cam for BOSON性能

  • WIFI接続範囲:見通しが良く、電波条件の良いところで最大35m
  • 動画再生スピード:最大30fps(Wi-F-接続条件による)

端末側の機能

  • 最高最低温度表示、指定点の暫定温度表示(体温中心の温度帯で±5℃程度)と指定点周りの温度表示(81カ所)
  • 画像のコントラスト指定(Dynamic Range)
  • 画像コントラスト安定化指定(Color Range)
  • 画像中に極端な温度の対象物が存在してもコントラストに変化が無くなる(Color Range)
  • 動画のリアルタイム画像録画機能-->写真アプリ連動
  • 動画の3D表示-->温度変化をポイントクラウドで確認できる
  • リバース表示:左右反転表示
  • 画像のAI判定と判定結果のカスタマイズ
  • 学習済みデータの入れ替え可能

FLIR BOSON QVGAは320x256 の画素をもつ赤外線カメラで、一般的には10fpsの動画再生能力を持ちます。このカメラは購入前にFLIR代理店と利用手続きを取り交わすことで、最高30fpsまたは60fpsの製品を指定できます。今回はそのカメラを対象としていますが、10fpsのカメラでも作動させることが可能です。

5.RaspiOSのインストール

PI Zeroは他のPIシリーズに比べてスピードや起動が遅いことから、OSのやソースのインストールなど非常に時間がかかります。その代わり他のPIでは実現できない携帯性が加わることになります。RaspiOSを含めて全体のインストールは慣れていても1日くらいの作業量です。途中でエラーが出た場合は最初に戻って再度挑戦して下さい。

NoobsをコピーしてOSをインストールするのは非常に簡単ですが、Pi Zeroでは起動が15秒以上遅くなります。今回はimgファイルを直接SDカードに書き込む必要があります。

開発環境としてOpenframeworksを使用しますが、Raspbianの最新バージョン「Buster」との相性が悪いので、1つ前のバージョンの「Stretch」 をインストールする必要があります。Raspbian付属ソフトが起動スピードの邪魔をするのでrecommended softwareでない標準のものをインストールしてください。

http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/raspbian-2019-04-09/

f:id:TAKEsan:20190922110139p:plain

インストール方法は以下を参考にして下さい。

https://www.raspberrypi.org/documentation/installation/installing-images/README.md

OSの初期設定では必ず自宅の無線ルーターに繋いでください。

IDやPASSはなるべく簡単な方が後々接続が簡単になることと、最終的にiPhoneテザリング接続に限定するので、あまり神経質になる必要はないと思います。今回は ID:pi0 Pass:pi0 にしています

6.ダウンロードファイルの内容

PI Zero側で使用するソースはここからダウンロードして下さい。

ThermalCam_BOSON.zip - Google ドライブ

下記のファイルがすべて入っています。一応PI Zeroの /home/pi   にダウンロードしたフォルダ内部のファイルをすべてコピーして下さい。

PI_BOSON1X  メインプログラムフォルダ

./bashrc        初期設定ファイル(すでに存在している./bashrcへ重ね書きになります)

start.sh         start.pyを起動後iPhoneテザリングアドレスを指定してメインプログラムを起動

start2.sh       iPhoneテザリングを確認してつながっていなければ再接続

aID.txt      iPhoneの新しいIDとPASS

damy.txt     前回スタート時のiPhoneのIDとPASS

start.py    iPhoneのID PASS 設定確認プログラム

config.txt  PIの初期設定ファイル

boson.service 自動起動用のファイル

boson    メインプログラムを手動で動かす場合のshファイル(拡張子なし)

boson_temp.txt 温度補正用のテキストファイル

boson_temp.50 画角50°のBOSON用補正ファイル(使う場合は数値拡張子をtxtに変更)

boson_temp.90 画角90°のBOSON用補正ファイル(使う場合は数値拡張子をtxtに変更)

7.PI Zeroの一時設定

config.txt を /boot にsudoでコピー

sudo cp config.txt /boot/config.txt

Thermal Cam for BOSONに適したPI Zeroのスピードアップなどの設定です。コピーが完了したら必ずrebootします 。

8.BosonSDK のコンパイル

GitHubからBosonLinuxSDKをダウンロードして、/home/pi に移動します。

GitHub - FLIR/BosonLinuxSDK: This is C code Boson SDK for Linux

移動後は解凍したフォルダの場所を確認して下さい---->  /home/pi/BosonLinuxSDK

まず BdonLinuxSDK/EmulatorFiles/ に入りmakeを実行 

次に、 BdonLinuxSDK/ClientFiles_C/

に入り以下のコマンドを実行してsoファイルを6個作成します。

gcc -fpic -c Client_API.c -o boson1.lo

gcc -shared -Wl,-soname,boson1.so boson1.lo -o boson1.so

gcc -fpic -c Client_Packager.c -o boson2.lo

gcc -shared -Wl,-soname,boson2.so boson2.lo -o boson2.so

gcc -fpic -c Client_Dispatcher.c -o boson3.lo

gcc -shared -Wl,-soname,boson3.so boson3.lo -o boson3.so

gcc -fpic -c Serializer_BuiltIn.c -o boson4.lo

gcc -shared -Wl,-soname,boson4.so boson4.lo -o boson4.so

gcc -fpic -c Serializer_Struct.c -o boson5.lo

gcc -shared -Wl,-soname,boson5.so boson5.lo -o boson5.so

gcc -fpic -c UART_Connector.c -o boson6.lo

gcc -shared -Wl,-soname,boson6.so boson6.lo -o boson6.so

9.Openframeworksのインストール

他のSSD接続したパソコンからでもインストール可能ですが、とりあえずPI Zeroでインターネットを立ち上げ

Index of /versions/v0.10.1/

から、of_v0.10.1linux armv6l_release.tar.gzをダウンロードします。最新バージョン0.11.0ではないことに注意して下さい

さらにofxCv addonが必要なので 

https://github.com/kylemcdonald/ofxCv

からofxCvをダウンロードします。

解凍したOFは/home/pi にフォルダごと移動し、フォルダ名称を of_v101に変更してください。

ofxCVは、ofxCV-masterからofxCvに名称を変えて

/home/pi/of_v101/addons に移動します。

OF自体はコンパイルが必要です。

https://openframeworks.cc/setup/raspberrypi/ に従ってコンパイルを実施します。

PI Zeroの場合最低2時間は必要です。

ここまで終わったら、上手くコンパイルできているかどうか確認するため、サンプルファイルを実行してみます。

cd /home/pi/of_v101/ examples/3d/ 3DPrimitivesExample

make

make run

3DPrimitivesExampleを実行した結果です。この画像はMacのものですが、PIの場合は画像が左上に固定され、マウスでWindowが移動できません。また、PIはコマンドモードでも実行画像が表示できます。

f:id:TAKEsan:20190922110554p:plain

10.Thermal Cam for BOSONをコンパイル

ダウンロードしたPI_BOSON1Xをフォルダごとapps/myapps へ移動

さらにこのフォルダに入りBosonSDKの必要ファイルをコピーして、リンクファイルを作成します。

cd /home/pi/of_v101/apps/myApps /PI_BOSON1X/src

ln -s /home/pi/BosonLinuxSDK/ClientFiles_C BOSON          

cp /home/pi/BosonLinuxSDK/BosonLinuxSDK/EmulatorFiles/*.h

cp /home/pi/BosonLinuxSDK/BosonLinuxSDK/EmulatorFiles/*.so

そしてmake を実行します。

cd PI_BOSON1X

make

これもかなり時間がかかります(1時間程度)のでゆっくり待ってください。

エラーがなければ一応一連のインストール作業は完了です。

ここで本当に画像が表示されるかどうかテストします・

まずiPhoneにアプリをインストールして起動しておきます。この時iPhoneは自宅の無線ルーターに接続してください

iPhoneの「設定」から現在接続されているIPを調べます。設定-->Wi-Fi

iPhoneのID PASSを以下のように変更します(一時的に変更しても他のアプリには影響が出ないと思います)

設定-->一般-->情報で名前を選択

ABiPhone

設定-->インターネット共有-->WI-FIのパスワードで

12345678

設定が完了したら、iPhone側でThermal Cam Bを立ち上げておきます。そしてiPhoneと同じ無線ルーターに接続したPI Zeroでプログラムを起動します。このとき最後にiPhoneIPアドレスを加えます(xxx.xxx.xx.xx部分)。

/home/pi/of_v101/apps/myApps/PI_BOSON1X/bin/PI_BOSON1X xxx.xxx.xx.xx

BOSONがPI ZeroのUSBに接続されていれば、PIに接続したディスプレイとiPhone側にBOSONの画像が表示されるはずです。

画像表示が確認できたらctrl cでプログラムを一旦終了します。元のID・PASSに戻す場合は、すべてのテスト完了後としてください。

11.On Off Shimの組み立て

On Off Shimと同封のコネクタを半田付けしてPI Zeroに取付後、以下プログラムをインストールします

curl https://get.pimoroni.com/onoffshim | bash

これはなかなかインストールが進みません(時間が必要で一見ハングアップしているように思えてしまう)が、諦めずにじっと待つ必要があります。

インストールが終了したら、一旦shutdownして、USB電源をOn Off Shim側のコネクタに入れ替え、スイッチを軽く押し、起動するかどうか確認します。

起動したら、ボタンを1秒以上押し離して、自動シャットダウンするか確認します。

これでスイッチによるPI Zeroのオンオフが可能になります。

12.自動起動の設定

今回のプログラムはiPhoneテザリング機能を利用してデータの送受信を行うため、PI側にiPhoneのIDとパスワードを記憶させる必要があります。後々のために以下の設定を行います。

まずaID.txtを /boot にコピーします

sudo cp aID.txt /boot/aID.txt

ファイルの内容は、1行目がiPhoneのID、2行目がiPhoneのパスワードです。

                      f:id:TAKEsan:20190922181749p:plain

PIのOSが入ったSDカードは、Windows又はMacで/bootの中身を変更できます。パスワードなどの変更があった場合にはこれらのコンピューターにPIのSDカードをセットして/boot/aID.txtを変更して下さい。ただしその他のファイルを変更したり、削除したりするとPI が起動しなくなりますので、細心の注意が必要です。

次にpiのsystemdの設定を行います。ダウンロードしたboson.serviceを所定の場所にコピーします。

sudo cp boson.service /etc/systemd/system/boson.service

上手くコピーできないときは以下を直接書き込んで下さい

sudo nano /etc/systemd/system/boson.service

で、内容は

[Unit]

Description=Capture BOSON Image Service

After=network.target

[Service]

Type=simple

ExecStart=/home/pi/start.sh

StandardOutput=nul

WorkingDirectory=/home/pi/

#Restart=always

[Install]

WantedBy= multi-user.target

コピーしたら以下のコマンドを入力して、boot後の起動ファイルを設定します。

sudo systemctl enable boson.service

13.PI Zero起動のスピード化

以下のコマンドで時間のかかる不必要なプログラムを停止させます。この操作により本体のキーボードも使えなくなりますが、以降は他のコンピューターからssh接続してください。元に戻したい場合は disableをableに、purge -y --auto-remove部分をinstallに変更すれば可能です。

まずraspy-configを起動してコマンドライン起動に変更します。ディスクトップ画面に設定するとメモリを消費する上に、Pi Zeroでは起動に非常に時間がかかります。

Linux初心者の方、起動時間が気にならない方は、以下コマンド実行は避けた方が無難です。

 

再起動後他のコンピューターからsshでpiに入り次のコマンドを実行

sudo systemctl disable dphys-swapfile.service

sudo systemctl disable keyboard-setup.service

sudo systemctl disable apt-daily.service

sudo systemctl disable wifi-country.service

sudo systemctl disable hciuart.service

sudo systemctl disable raspi-config.service

sudo systemctl disable triggerhappy.service

sudo systemctl disable ntp.service

sudo apt-get purge -y --auto-remove exim4 "exim4-*"

sudo apt-get purge -y --auto-remove dphys-swapfile

sudo apt-get purge -y --auto-remove plymouth

sudo apt-get purge -y --auto-remove alsa-utils

さらに

/boot/cmdline.txt

を以下の通りに変更します。(バックアップファイルを忘れずに!!)

dwc_otg.lpm_enable=0 root=PARTUUID=dec2b11e-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

これで20秒程度で起動できるようになります。

これですべて終了です。PIをrebootするとプログラムが自動で立ち上がるようになります。

次に起動する時点で、PIに繋いだディスプレイやキーボードが必要なくなります。

 

14.PIの設定などを変えたい時

無事起動できた場合、その後の設定は必要ないと思いますが、PIは上記の設定でキーボードやマウスが使えません。また、シリアル通信も止めているためPI本体では修正が不可能です。SSH接続になりますが、この場合は、iPhoneテザリングをONにしてコンピューター側でルーターiPhoneに指定してから、ターミナルでPIとSSH接続します。

  • iPhone の設定-->インターネット共有 でインターネット共有をONにします。
  • PIのスイッチを入れ、iPhoneに接続されたことを確認します。
  • メインコンピューターがMacの場合は 設定-->ネットワーク 出てきたダイアログボックスの左のWIFIを選択してネットワーク名称でiPhone の IDを選択します。
  • 後はターミナルを立ち上げて ssh pi@XXX.local  でPI Zeroにつながります

    f:id:TAKEsan:20190922110648p:plain

15.起動・終了の方法

  • 導入当初はiPhone又はiPadのユーザー名・パスワードを変更する必要があります。初期設定値 ABiPhone   12345678 です。ユーザー名は、設定->一般->概要->名前。パスワードは、設定->インターネット共有->"Wi-Fi"のパスワード で変更します。
  • iPhoneとPIを接続するときは、非常につながりにくくなる可能性があるので、なるべくiPhone側のBluetoothと位置情報サービスをOFFにしてください(OFFにしないと接続後もアプリの動作がもたつく可能性があります)。iPadに関しては特に問題ありません。
  • 一番最初にアプリを使う前に、iPhone又はiPadの電源を落とし、再起動をして下さい。
  • 終了処理はPI ZeroのOnOff Shimボタンを長押しします。3秒ほどで終了します。PI側のON OFFは必ずOn Offスイッチを利用してPI ZeroのLED消灯を確認して下さい。(②参照)プログラム動作中に電源等が遮断された場合、SDカードに書き込まれたOSが損傷を受ける可能性があります。

  ① 基本的な起動方法

iPhoneを先にテザリングON し(コントロールセンターの設定画面は接続できるまでそのままにする)、そのあとPIを立ち上げた場合、約45秒ほどで画像が表示されます。 iPhone側アプリ立ち上げは、PIとの接続前後どちらでもかまいません。 

テザリングON:コントロールセンターを表示させ、Wi-Fiマーク長押しし、モバイル通信がオフの場合はオンにした後、インターネット共有ボタンを押します。

f:id:TAKEsan:20191218231935p:plain

  ② PI側でアプリが稼働しているかどうかの確認方法

PI側では自動でiPhoneとの接続を確認した後、PI側アプリを起動します。以下のようにPIのLED(本体付属の緑のLED)点滅状態でアプリが立ち上がったことを確認することができます。

  • PIスイッチON-->システムを読み込んでいるので20秒ほど激しく点滅する。
  • Wi-Fiの接続トライ中-->起動後LEDは点灯したままになり、定期的に点滅する。
  • Wi-Fi接続が確認された場合-->アプリを読み込んでいるため3秒ほど激しく点滅する

  ③ テザリング接続(インターネット共有)が上手くいかない場合など

このシステムはiPhoneまたはiPadテザリング機能を使って通信しています。iOS13以降、特にiPhoneではテザリングがつながりにくい傾向にあります。通常PI起動から約20秒後「1件の接続」表示の後、一旦切れて再度「1件接続」が表示され、アプリ読み込み状態になって画像出力が始まります。通常2〜3回目の自動トライ接続で安定するようです。また、接続が確立するまでコントロールセンターはそのまま表示させておきます。

なかなか接続できない場合は、

  • 機内モードを一度OFFにしてその後ONにしてみます。1分ほど様子を見て、「1件接続」が表示された後2〜3秒激しくLEDが点滅すれば正常に接続できています。つながらない場合は機内モードON・OFFを繰り返して見て下さい
  • PIを再起動してみてください

この段階で、たいてい接続できると思いますが、それでもなかなかつながらない場合は、

  • iPhoneを再起動してみて下さい
  • iPhoneの再起動を行っても改善されない場合、Bluetoothと位置情報サービスがONの場合は両方ともOFFにしてみてください
  • 電波の状況により、アプリが止まる場合があります(Bluetoothと位置情報サービスONの場合が多い)が、その場合はアプリを再起動して下さい。
  • 周囲に多数の携帯端末や、Wi-Fi中継点の存在する場所では、テザリング接続が失敗する場合があります。
  • モバイルデータ通信のできない環境では使用できません。

一度接続が確立すれば、かなり安定して動作します。

  ④ iPhone またはiPadのユーザー名パスワードを元に戻したい場合

上記設定で自分の端末のユーザー名パスワードを変更した後、元に戻したい場合はPI側の設定を変更する必要があります。

  • 自分のiPhoneまたはiPadのユーザー名とパスワードを設定する(ユーザー名変更:設定->一般->情報->名前、パスワード変更:インターネット共有->"Wi-Fi"のパスワード
  • PI ZeroのSDカードを抜き取り、コンピューター(WindowsまたはMac)に読み込ませる。
  • SDカード名称:bootの中のaID.txtを開き、1行目はユーザー名、2行目はパスワードを書き込み、保存する。(他のファイルを触るとPIが起動しなくなりますので充分に気をつけて、また余計なスペースなどは入れないでください)
  • PIにSDカードを設定して完了

  ⑤ WIFIが障害物や遠距離のため、切れた場合

常にiPhoneテザリングIPを確認しているため、通信圏内(iPhoneから35m以内)に入り最大20秒待つと再び動画が表示されます。

⑥ 動作中の注意

  • AI機能をONにしている場合、iPhoneの場合コントロールセンターでの動画録画機能を使うと不安定になる場合がああります
  • iPad pro(2020/4月以降最新機種)の場合はコントロールセンターでの動画録画機能が使用可能です。
  • このアプリ自体録画機能を持っていますので、動画を録画する場合は、アプリの録画ボタンを使用して下さい。
  • 動作中は本体がかなり熱くなりますので、長時間使用する場合は市販のファンなどで本体を冷却して使って下さい。

16.BOSONの温度キャリブレーションについて

現在手に入るBOSONは温度補償されておらず、SDKにも対応命令がないため、温度測定ができません。内部的には対象物の放射温度に反応し、0~65535(16bit整数値)の範囲でデジタル出力しています。この出力値は線形にはなっていないことと、BOSON本体の温度とレンズ焦点距離、BOSON自体の温度変化により、出力値が大きく変わることが測定により確認できました。ただし、以下の手順で近似式を想定し、補正を加えることで実際の対象物の温度が測定できます。算出された温度はあくまでも近似値であることにご注意下さい。

  • 温度差があらかじめ分かっていて、大きく温度の異なる3つの物体を用意する
  • BOSONの温度が安定してきた時点でこの3物体のRAW数値とBOSON本体の温度を記録する
  • PIの設定ファイルを変更する

測定範囲内でなるべく温度差のある3つの物体を用意することになりますが、一番身近に用意できるのは、0°に近い氷水と100°付近の熱湯、それに36°前後の自分の顔です。

今回PIに組み込んだプログラム(PI_BOSON1X)は、ターミナル画面上でカメラに写った物質の最高、最低のRAW数値、及びBOSONの現在温度を表示できます。

一般的な室内で氷水と熱湯を写し、すぐにカメラの向きをを変えれば顔が最高温度として表示されます。この測定値をキャリブレーションファイルとして保存すれば、PI_BOSON1Xアプリは、測定値を読み込み-->近似式の係数を算出-->補正を加えて対象物の温度としてiPhoneへ送信といった動作を行います。手順は以下の通りで少々大変ですが、一回の設定でOKです。設定が終了すれば、BOSONが冷えている状態からスタートさせても、ほぼ近似温度を測定することが可能です。

  • BOSONの画像がiPhoneで確認できる状態にして、パソコンをiPhoneテザリングアドレスに接続(すなわちiPhoneルーターになる)
  • iPhone側でThermal Cam for BOSONが立ち上がっていれば、一旦終了させる
  • パソコン側からPI Zeroにsshで接続するiPhonessh接続ができるアプリをインストールしていればパソコンは不要です。以降ssh接続した後のターミナル画面での操作となります。接続は「14.PI側の設定を変えたいとき」参照
  • すでに立ち上がっているPi側のBOSONプログラムを終了させる(PI側ではすでにPI_BOSON1Xがバックグラウンドで立ち上がっているので、そのプログラムを終了させる)

     top  と入力してPI_BOSON1Xのプロセス番号を調べCtrl+Cで topコマンドを終了させ  

     sudo kill xxxx  でPI_BOSON1Xを終了させる(xxxxはプロセス番号)

  • そのままBOSONの温度が安定するまで30分程度待つ
  • できれば黒いコップ(使い捨てプラスチックコップに黒色の色を塗ればOK)に温水と(黒い容器に入った電気ポットでもOK)、氷をたくさん入れ温度の変化がないうように水を用意。
  • あらかじめ顔とこの2つのコップを赤外線温度計(ホームセンターで1800円前後)で測定(顔については温度変化があるのでなるべくその場所を動かないように)
  • 用意ができたらプログラムをスタート。最初に氷水と温水を測定。画像はアプリが起動していれば確認可能。

  プログラムのスタートは  ./boson   です。

        f:id:TAKEsan:20191218230432p:plain

       対象物から60cm程度程度離してカメラをセットするとこんな画面になります

  • すぐレンズの向きを変え顔を写す(10秒程度そのまま)。
  • プログラムを終了させ、RAWをメモして、結果をファイルに書き込む

f:id:TAKEsan:20191218223129p:plain

上のように5秒毎に最低最高のRAW数値とBOSON温度がターミナルに出力されますが、Maxの数値を確認することで顔のRAW値が確認できます。この例の場合4行目のMin(氷水),Max(熱湯)値及び5行目のMax(顔の温度)を採用。測定時のBOSON本体温度は42.2°となります。顔を測定する場合は、事前に背景が体温より低い温度であることを確認して下さい。BOSONの温度が安定するとTempの値は殆ど変化がなくなりますが、Tempの値に変化がないことに注意して下さい。測定範囲は-60℃〜+200℃前後のようです。

次にnano boson_temp.txt で数値を変更します。変更内容は以下の通りです。

mimTempD= 1.0   <---氷水の温度℃
mimTempR= 15616      <---氷水の上記RAW数値
midTempD= 35.5          <---顔の温度℃
midTempR= 21692       <---顔の上記RAW数値
maxTempD= 100.0       <---熱湯の温度℃
maxTempR= 40019      <---熱湯の上記RAW数値
nawTempD= 42.2         <---上記BOSONの温度℃

ファイルは数値のみ訂正して下さい。訂正が終わったら Ctrl+oで保存Ctrl+xでnano終了

  • 再度プログラムを動かし(./boson)実際の温度との差があれば、Dの部分の温度(氷水、顔、熱湯)を微調整します。最終的にiPhone側のアプリを起動することで設定した温度が確認できます。

※BOSON50°、90°に関してはすでにキャリブレーション済みファイルを用意しています。boson_temp.50及びboson_temp.90 です。もし同じカメラの場合は拡張子の数値部分をtxtに変更して使って下さい。ただし、製品によりばらつきがあるので、温度が合わない場合にはキャリブレーションの必要があります)

                                 以上

 ⇐Goto Home