ロボットと共に

Life with Robot

C#でサーモグラフィ試してみた

はじめに

最近、センサデバイスがたくさん出てきています。Kinectの距離センサは価格と機能に衝撃的でした。脳波計測デバイスやモーションコントロール、タッチディスプレイなど割りと個人でも買える値段である。ここで色々と調べると、サーモグラフィのブログがキーワード検索で中々でてこない^^;
特にWindowsで、さらにはC#で開発している人!!
ということでボクが調べてみて、簡単だと思って試してみたことをまとめてみます。

ここをご参考に、サーモグラフィ分野が盛り上がると、嬉しい限りです。

サーモグラフィとは

サーモグラフィとはWikipediaさんいわく「物体から放射される赤外線を分析し、熱分布を図として表した画像、またそれを行なう装置」とうことだ。簡単に説明すると非接触型の温度計みたいなものだと思ってもいいと思います。これ系のキーワードとして、サーモパイル、熱画像センサ、赤外線センサ、赤外線サーマルカメラ、サーマルイメージ、熱線映像装置などがあります。

準備するもの

用意するものは下記の4つくらいです。

  1. サーモグラフィデバイス
  2. microUSBメス↔USBオス変換アダプタ
  3. パソコン(ボクはWindows10で試してみました)
  4. デバイスドライバ

ちなみにサーモグラフィデバイスを調べてみました。

Seek社

 今回はこちらの商品を買いました。入手性・コスト・開発しやすさ・情報など海外の有志がGoogle先生いわくたくさんあったよ...とうことでチョイスです。

FLIR社

 サーモグラフィ界の最大手だと思います。下記のようなスマホや組み込みから監視用大型サーモグラフィ、最近だとドローン用(DJI用)まで取り揃えている。

FLiR開発キット

FLiR開発キット

 

  楢ノ木技研

隠れた回路屋さん、なかなかニッチな製品を取り扱っていますw
USBスペクトロメーターなんかも気になります!!

oaktree-lab.shop-pro.jp

CHINO社

 いろいろ熱画像センサを取り扱っている「温度」の会社。今度、がっちりマンデーなどで特集してほしい気になる会社です。www.chino.co.jp

microUSBメス↔USBオス変換デバイス

Seekは、microUSBなのでPCで使用する際に変換アダプタが必要なので合わせて購入しました。Amazonで調べた中では、変換名人のこちらのアダプタが一番安かったと思います。

 

C#でサーモグラフィ試してみる

 サーモグラフィのドライバ

購入したSeek社製のサーモグラフィと変換アダプタはこんな感じで、WindowsのPCに接続できるようになります。

f:id:Mikan6:20170714020727j:plain

こちらただ何も考えずに、自動的にドライバーが読み込んでくれるかと思いきや、そんな重いものではありませんでした。恐らく試してみた方、下記の画像のものがビックリマークついた、ドライバインストールしてくださいの状態かと思います。
※ちなみに下記の画像は、ドライバインストールが成功したときの画像です。

f:id:Mikan6:20170714021459p:plain

ドライバインストールは、「Zadig」というドライバインストールソフトを使用します。下記よりダウンロードしてください。

    Zadig - USB driver installation made easy

起動すると、下記の図のように起動し、サーモグラフィを接続すると「iAP Interface」を選択し、「Install WCID Driver」でインストールを開始して下さい。上の図のようにデバイスマネージャ上でUSBデバイスの一覧に正常に表示されていることを確認して下さい。

f:id:Mikan6:20170714021835p:plain

以上がドライバインストールです。

サンプルソース

次にSeekをC#で動かすための参考になるサンプルソースは、こちらの2つが良いと思います。

SeekOFix

github.com

winusbdotnet

github.com

実行結果

試しに「SeekOFix」をダウンロードして、VS2017でビルドして実行した結果がこちらです。日本人に親しみやすい「℃」表記にしています。手が真赤なので、33.8℃以上はあり、正常な人間かと思われます。

f:id:Mikan6:20170714023021p:plain

以上のように購入してすぐさま、サーモグラフィのソフトウェア開発が簡易的に始められます。

最後に

 サンプルソースコードは、あくまでも参考としてご利用下さい。また、各種ライブラリのライセンスにも目を通して、ご利用下さい。
ご利用した方は、コメント頂けると個人的に励みになります。

C#とFelica(NFC)でSuicaを読み込んでみる

はじめに

  今回は、SuicaPASMOEdyなどに使われている非接触ICカードリーダーをC#で試して見たいと思います。

Felicaとは

  Felicaとは、Wikipediaさんいわく、「ソニーが開発した非接触型ICカード」ということでSONYさんが開発したものということですが、FelicaNFCは何が違うの?ということで、そこはSONYさんが解説してくれていました。NFCとFeliCaの関係ということで、SONYさんでは、「NFC-FとFeliCaは同じ無線通信技術であると同時に、FeliCaNFC-Fというオープン規格の上にカードOSを加えたものと表現することができる」とのことです。シンプルな話、Felicaは規格化されたプロトコルで、NFCFelicaなどが使える技術という解釈で良いのではないかと感じます。しかし、Felicaは日本では同じみですが、海外だと弱い感じですねw

Felicaリーダーデバイス

  次に、ICカードなどを読み込むためのFelicaリーダーはAmazonなどでも直ぐ3000円程度で入手できます。実は、このリーダーより安リーダーがあります。それは楽天Edyリーダーだと2000円程度で入手できます。噂だと楽天Edyリーダーなど廉価デバイスのRC-S360/Sは来年くらいには製造終了するとか!?

ソニー SONY 非接触ICカードリーダー/ライター PaSoRi RC-S380

ソニー SONY 非接触ICカードリーダー/ライター PaSoRi RC-S380

 

C#Felica(NFC)で読み込むに

 では、本題のC#FelicaSuicaなど読み込むには上記のFelicaリーダーデバイスを購入し、下記よりドライバーなどをインストーラします。

次に、C#Felicaを読む込むには、こちらのライブラリを利用する方法があります。

  1. SDK for NFC(商用利用の有料版 おそらく10万ちょいくらいかと...)
  2. SDK for NFC Starter Kit(開発・評価用の無償版)
  3. felicalib(有志によるBSDライセンスのライブラリ)

があります。どれが良いかといいますと、どれも変わらない気がします。

SDK for NFCfelicalibは、もともとはC++ベースでしたがC#のサンプルも展開されています。しかし、SDK for NFC Starter KitのC#サンプルはよくわからない...ということで有志がいい感じにまとめたライブラリ「NfcStarterKitWrap」があります。

NfcStarterKitWrapのC#サンプ

github.com

felicalibC#サンプル

github.com

C#Felica(NFC)でSuicaを読み込んでみる

 サンプルソースを参考に、SDK for NFC Starter Kitラッパーと有志の方が作成したfelicalibを活用して、それぞれ同じような感じでC#Suicaを読み込んでみたいと思います。今回はSuicaなどの領域であるシステムコード(0003)、乗降履歴情報であるサービスコード(090F)の情報を読み込むサンプルを作成してみました。これで残高などの履歴が20個分閲覧できます。
他のSuicaの情報を読み出したい方は、下記のサイバネ規格をご参照下さい。また、同じような感じでnanacoEdyなどもサービスコードとシステムコードを指定すればデータが取得できるはずです。

では、実際にコーディングしてみたサンプルソースが以下のものです。こちらは上記2つのgitよりライブラリを活用して作成したもので、参照追加で「FelicaLib」「NfcStarterKitWrap」を入れなければいけません。

最後に

 サンプルソースコードは、あくまでも参考としてご利用下さい。また、各種ライブラリのライセンスにも目を通して、ご利用下さい。
ご利用した方は、コメント頂けると個人的に励みになります。

C#[WPF]のUIコンポーネント&デザインまとめてみました

C#[WPF]でデザイン性やコントロールツールなど、いろいろなライブラリがあります。僕が調べて良いなと思ったものをまとめてみました。

デザインUIライブラリ

デザインUIライブラリとして、オススメしたいのは「Material Design In XAML Toolkit」「Modern UI for WPF」「Elysium」「MahApp」です。

Material Design In XAML Toolkit

最近、流行りのGoogleのマテリアルデザインが簡単に実装できるMITライセンスのライブラリです。

f:id:Mikan6:20170611013146p:plain

materialdesigninxaml.net

Modern UI for WPF

ちょっと前に流行っていたモダンデザイン、フラットデザインとも言うのかな?Ms-PLライセンスで利用できます。

f:id:Mikan6:20170611013131p:plain

github.com

Elysium

モダンデザイン系のライブラリです。MITライセンスで利用できます。

f:id:Mikan6:20170611013120p:plain

elysium.codeplex.com

MahApp

トロデザイン系で更に一昔前に流行っていものが使用できるMITライセンスのライブラリです。

f:id:Mikan6:20170611013139p:plain

MahApps.Metro Documentation

地図ライブラリ

地図ライブラリとしてオススメしたいのは、利用するときに有料となる「ArcGIS」、無料で使用できる「GMap.NET」です。

ArcGIS

Esri社が適用しているGISツールのライブラリです。C#JavascriptiOSAndroidなど開発キットは豊富で、ArcGISで提供されているような2地図はもちろん3D地図の表示機能、地図グラフィカル関連も利用できて、とてもいいです。

f:id:Mikan6:20170611013201p:plain

www.esrij.com

GMap.NET

GMap.NETは、製品に実装している企業も割りと多い、MITライセンスで利用しやすいライブラリです。地図提供元は、OpenStreetMapやGoogleMap、BingMap、ArcGISMapなどいろいろ選択できるが、あくまでも表示枠は実装してあるから、地図提供元ライセンスに準拠して使用して下さいというものです。GoogleやBingとちゃんと契約しないといけません。ちなみに数社にお問合せしたところ、契約すればGMap.NETで使用しても良いという企業と、そもそもダメという企業があるので会社にちゃんとお問合せしたほうが良いです。今現在では、そいうコメントを頂いていますが規約も年々変化があるので、こちらの利用する際は、地図提供元は常にチェックが必要です。

f:id:Mikan6:20170611013240p:plain

コントロールツール

コントロールツールライブラリとしては、無料版と有料版がある「Extended WPF Toolkit Live Explorer」、メニューUI「HamburgerMenu」「RadialMenu」がオススメです。

Extended WPF Toolkit Live Explorer

Microsoftが提供している基本コントロールツールで物足りない人は、こちらのMs-PLライセンスを利用してみてもいいかもしれません。

f:id:Mikan6:20170611013127p:plain

wpftoolkit.codeplex.com

 HamburgerMenu

普通のメニューに飽きてしまっあ人は、こちらのハンバーガーメニューコントロールがいいかもしれません。MITライセンスで利用できます。

f:id:Mikan6:20170611013134p:plain

github.com

RadialMenu

かっこいいラジアルメニューコントロールですが、なかなか使いどころが難しいツールかもしれません。ちょっとした右クリックのメニューをこちらに切換てもいいかもしれません。クリエイティブコモンズのライセンスみたいです。

f:id:Mikan6:20170611013135p:plain

github.com

最後に

サンプルソースコードは、あくまでも参考としてご利用下さい。また、各種ライブラリのライセンスにも目を通して、ご利用下さい。
ご利用した方は、コメント頂けると個人的に励みになります。