koudenpaのブログ

趣味のブログです。株式会社はてなでWebアプリケーションエンジニアをやっています。職業柄IT関連の記事が多いと思います。

歯に見るITシステムとの類似性

先日、銀歯が取れてしまったので、歯医者に処置してもらった。 手際がとても良くて感服した。

自分はITエンジニア脳なので、実世界の事象をどうしてもITシステム的に考えてしまう。 今日歯からのメッセージのログレベルを夢想していた。

  • 歯が黒ずんだ
    • WARNING
    • 放置するととんでもないことになる
  • 歯に衝撃を与えると痛い
    • ERROR
    • 虫歯である、対応が必要
  • 歯が痛い
    • FATAL
    • 致命的な虫歯である、すぐに対応しないと日常生活を送れない
  • 歯が抜けた
    • ログは出ない
    • システムが落ちた

こういう例えを夢想するのはとても楽しい。

余談。 歯医者の対応、応答。

  • 電話する
    • 銀歯が取れて、取れたものはなくなった(多分飲んだ)と伝える
    • 空いている時間に予約を入れてもらう
  • 歯医者に行く
    • 急患扱いだった

以下診察。

  • 歯を見る
    • カルテを更新
    • 銀歯がとれた跡に虫歯あり、隣に小さな虫歯あり、を伝えられる
    • 銀歯跡は削って型どり、隣は削って樹脂充填を伝えられる
    • OK応答する
  • 削る
    • やや響く
  • 充填する
    • 詰めて、光を当てる
    • バリを磨き落とす
  • 型を取る
    • 噛み合わせチェック用? の固いやつ
    • 造型用の柔らかいやつ
      • ガキの頃のより味がしない気がした
  • 終わり
    • しみなかった?
    • 多少しくしくしました
    • 神経入ってる歯だからそれは正常
    • うっす

一週間後には銀歯が出来上がって、それをはめたら終わりとのこと。

ここから分かること。

警告レベルで対応すればすぐ終わる。 削って、詰めて、磨いて終わり。五分。

以前致命的になってから歯医者にかかった時には、神経抜いて、処置して、処置具合の経過観察したりして二ヶ月位はかかった。

何事も早期対応が重要である。

センサーデータをグラフ表示する

Raspberry Pi 3 と Windows 10 IoT Core で BME280 から温度、湿度、気圧を取れた。 じゃぁ、次はそれをグラフ表示したい。

IoT的には次はクラウドにセンシングデータを飛ばすのが定石なのだろうけれど、 せっかくUWP(Universal Windows Platform:ユニバーサル ウィンドウズ プラットフォーム)なのだから、 デバイス単体でGUIにいい感じに表示したい。

続きを読む

Windows 10 IoT Core で I2C

IoT Core で Raspberry Pi 3 と I2C 接続したセンサーデータを読んでみた。

とりあえず I2C してみたかったのだけれど、I2Cというより、接続したセンサーの仕様と、UWPアプリ向けのGUIに手間取ってしまった。

C# のコードを書くだけで I2C できるのはなかなか良い。

github.com

続きを読む

MediaTypeHeaderValue のコンストラクタにパラメータ付きの値を渡すと死ぬ

MediaTypeHeaderValue.Parse すると良さそうだった。

.NET の System.Net.Http の話です。

// NG
request.Content.Headers.ContentType 
  = new MediaTypeHeaderValue(string.Format("audio/wav; samplerate={0}", samplerate));

// OK
request.Content.Headers.ContentType 
  = MediaTypeHeaderValue.Parse(string.Format("audio/wav; samplerate={0}", samplerate));

// または
var mediaType = new MediaTypeHeaderValue(string.Format("audio/wav"));
mediaType.Parameters.Add(new NameValueHeaderValue("samplerate", samplerate.ToString()));
request.Content.Headers.ContentType = mediaType;

mono/MediaTypeHeaderValue.cs at master · mono/mono · GitHub

Windows と Raspberry Pi の PWM制御 事情

Raspberry Pi シリーズはGPIO18番がハードウェアPWM制御対応しているらしい。

では、Windows 10 IoT Core でそれを使えるのだろうか?

Hardware PWM on Windows 10 IoT (Pi2)

こんなやり取りが見つかった。

ソフトウェアでのPWM制御ライブラリはあるけれど、ハードウェア制御には未対応なようだ。

何だかんだで汎用OSなので、特化したハードへの対応は弱いのだろう。

どの道1端子しかないので、無いものと思っておけばよいかな。

例えば、ソフトウェアPWM制御や他のリアルタイム性が必要とされる処理に専用のスレッドを立てる、ようなことは出来るのだろうか?

リアルタイムではない普通のOSは、ある処理がいつ動くのかは分からん訳だけれども、それにしたってなるべく頑張りたい場面はあるはずだ。

オシロスコープ欲しくなってくるなぁ。

続きを読む

Windows IoT Remote Display と Raspberry Pi 3 のビルトインWi-Fi

以前 Windows 10 IoT Core は、まだ Raspberry Pi 3 の組み込み無線LANアダプタに未対応であるようなことを書いたが、現段階では未対応なのはBluetoothのみで、Wi-Fiは対応済であるようなので、その設定がてら Remote Display を試してみた。

リモート表示もWi-Fiも特に問題なく、いい感じだった。

対応状況は Release Notes - Windows IoT 見たら書いてある。

Build Number 14322. April 2016

What’s new this build:

  • Onboard WiFi drivers are now enabled for the Raspberry Pi 3
続きを読む

Lチカ しました

色々回り道したけれど、Raspberry Pi 3 と Windows 10 IoT Core でLチカしました。

ただそれだけのことなのだけれど、なんかうれしい。

先日(Lチカ できませんでした - koudenpaのブログ)は IoT Dashboard から展開できるサンプルで、ビルトインのLEDが光る、と思って試したらだめだった。

今回は、GitHubに公開されているLチカサンプルコードでGPIOの先のLEDをチカらせようと試みた。

続きを読む