2019年10月08日

電子工作での AC 給電制御と米国製「IoT Relay」のこと

はてなブックマークに登録

マイコンを使っていると AC 100V で稼働する機器への給電を制御したくなることがあります。このブログにも以前、秋月電子通商様によるソリッドステートリレー(SSR)キットを使ってそれを試みた内容を含む記事を掲載しました。

SSR にはわずかな電流で制御できる手軽さがあり、機械式のリレーには絶縁性等での優位性があります。また、単品の機械式リレーをマイコンで取り回す際の手かずは必要な要素がまとめて実装されたリレーモジュールを利用することで省略できます。 このあたりの話題はネットを検索すると様々な実例とともに紹介されています。ただ、私自身はこういったものを「自作」するたびに一抹の不安を感じていました。上の 4年前の記事には次のように書いています。

個人的にはこのように高電圧を扱うものは本当はあまり自作したくないです。その方面に素養がなくても部品を揃えれば作るのは簡単ですが、「手作りの楽しさ」などよりも安全性がもっとも重要ですから、手頃な価格で堅牢な完成品を入手できるならそれを使いたいというのが正直なところです。残念ながら今のところそういう商品は見当たらないようですが(需要はあると思うのですが・・)、 :

こういった事情により単純なトリガー信号を送るだけで所定の機器への給電を取り回してくれるブラックボックス的な完成品をひとつの理想形としてイメージしていたのですが、すでにそういう製品が登場していることを最近知りました。Kickstarter 発の「IoT Relay」という米国の製品です。これはまさに上記のような需要に対応する内容で構成された "リレーの堅牢なラッパー" です。現物の写真を以下に示します。

残念ながら今のところ IoT Relay は日本の PSE 認定を受けておらず国内では販売されていません。個人的な好奇心から先日この製品を調達し手元で試してみました。今回はそのレポートです。

ちなみに、所定の機器への給電にはこうしたローカルなリレー類を取り回すばかりではなく、近年手頃になったスマートプラグを利用する選択もあります。ただし、スマートプラグにはインターネット接続環境が必須であることに加え、目の前にある機器を扱う際にも「遠回り」の結果として生じる微妙な反応の遅れに違和感を覚えるケースもあります。一方、スマートプラグには遠隔地の機器への給電制御にも対応できる大きなメリットがあります。そのため、両者は適材適所で使い分けるべきでしょう。

IoT Relay について

1. 概要

Kickstarter 上のプロジェクトページ

SparkFun での販売ページ

  • IoT Power Relay - www.sparkfun.com US $26.95
    Do you want to control a standard wall outlet device with your microcontroller, but don’t want to mess with the high-voltage wiring? The IoT Power Relay is a controllable power relay equipped with four outputs that help you create an Internet of Things project with safe, reliable power control. With the IoT Power Relay you can easily control the power going to a device with an Arduino, Raspberry Pi or other single-board computer or microcontroller. It provides an alternative to the Power Switch Tail.

    The IoT Power Relay is designed to allow you to safely control an outlet device that operates at 3--48VDC or 12--120VAC. Each IoT Power Relay features a single input (from the included C13 power cable) to four outputs: one normally on, one always on, and two normally off.   :
    みらい翻訳 結果
    マイクロコントローラで標準的なコンセントデバイスを制御したいが、高電圧配線には手を出したくないと思うだろうか?IoT Power Relayは4つの出力を備えた制御可能なパワーリレーで、安全で信頼性の高い電源制御を備えたIoTプロジェクトの構築に役立ちます。IoT Power Relayを使えば、ArduinoやRaspberry Piなどのシングルボードコンピュータやマイクロコントローラを使って、デバイスへの電力供給を簡単に制御できる。電源スイッチテールの代わりに使用できます。

    IoT Power Relayは、DC3~48Vまたは12~120VACで動作するコンセントデバイスを安全に制御できるように設計されています。各IoT Power Relayには、単一の入力(付属のC13電源ケーブルから)から四つの出力があります。一つは通常オン、一つは常時オン、二つは通常オフです。  :

Amazon.com での販売ページ ("does not ship to Japan.")

2. 発注 〜 到着

手元で IoT Relay の存在を知った 2019年7月の時点では SparkFun をはじめ主だったディストリビュータのサイトにおいても Amazon.com においてもことごとく在庫切れの状態だった。製造終了の可能性も想像しつつ SparkFun へ入荷通知をリクエストしておいたところ 2019-09-05 に下のメールが届いた。
本体の販売価格は既知のとおり 米 $26.95 であり、とりあえず購入手続きを進めてみると日本への送料は最安の「Economy(1-4 Weeks)」で $12.02 とのこと。微妙に悩ましい金額だがしばらく考えた末に PayPal 経由で $38.97 を支払った。

2019-09-06 にニュージャージー州ニューアークから発送され 2019-09-19 に自宅の郵便受けに届いた。スペックは外箱に記載されており説明書の類は付属しない。現物を見れば使い方がわかるように工夫されている。

(クリックで可視大縦表示)

(本体に印字された謎マーク:後述)

3. 動作の様子

以下の動画には IoT Relay のよっつのプラグ差込口それぞれに LED ライトを装着し ESP32 ボードから High, Low のトリガー信号を送って反応をみた様子を収めている。

動画: 35秒

4. 試用を通じてのメモ

  • IoT Relay は自分が期待していたものにきわめて近い製品
  • よっつの差込口からの給電を個別のトリガーで制御可能とするオプションがあればより有用かも
  • 差込口がひとつだけのシンプルなバージョンも望まれる
  • 製品の安全性を示す指標としては本体にそれと思しき "SAFETY CPI TESTED", "computer performance inc QC pass" と書かれたマークがあるが、手元で情報を探した範囲では今のところこれらの実体は判然としない

    関連して米アマゾンにはこういう Q&A も。上の事情は米国人にとっても「?」な様子。
    • Amazon.com: Customer Questions & Answers
      Is this unit UL listed?

      Showing 1-2 of 2 answers

      • I can't say for sure, but there is no UL markings on the unit. There is 2 markings: "Safety CPI Tested" and "computer performance inc QC pass"
      • Not yet.
    同じくレビュー欄より。
    • Hackable hardware - www.amazon.com
      This is a well designed and constructed product, but be aware that it is not yet UL listed. My only suggestion for improvement would be to add holes or tabs for secure mounting.   :
    UL について
    • UL (安全機関) - Wikipedia
      UL LLC(英語: Underwriters Laboratories以下UL)は、アメリカ合衆国イリノイ州ノースブルックに本拠を構え、試験、検査および認証を行う企業。認証企業として、世界10位前後の規模を持つ。  :

5. 個人的な所感

今回ピックアップした IoT Relay は世界中の Maker の潜在的な需要のひとつを的確に反映した良い製品だと思います。ただし、利用者への安全性の提供を最大のアピールポイントとする一方で、現時点においてこの製品自体の米本国内での一般的な安全基準への適合状況が判然としない状況にはいささか自己矛盾の感もあり、その点がマイナスイメージにつながりかねない懸念もあります。今後その方面の整備が適切に行われればこの製品は IoT, スマートホームの波に乗りよりメジャーな存在になり得るかもしれません。特定の製品が目立つ形で成功を収めれば同等(あるいはそれ以上)の機能を持つ製品がより低価格で登場しジャンル化して普及の広がるケースは多々あり、そうした流れがいずれ PSE 認定製品の出現につながる可能性も想定されます。そういった期待を含め、この製品の今後の動向には随時目を向けていきたいと考えています。


(tanabe)
klab_gijutsu2 at 07:09
この記事のURLComments(0)IoT 
2019年09月03日

第一回 KLab Expert Camp「TCP/IPプロトコルスタック自作開発」を開催しました

はてなブックマークに登録

KLab Expert Camp というイベントを8/26〜29の4日間で開催しました。

KLab Expert Camp とは

KLab Expert Camp は、技術的に深いテーマに取り組んでいる学生の発掘・育成を目的とした KLab の新しい取り組みです。
記念すべき第1回のテーマは「TCP/IPプロトコルスタック自作開発」で、以下のような触れ込みで開催しました。

「OSを作ってみたい」「コンパイラを作ってみたい」と思う人が多いように「プロトコルスタックを作ってみたい」と思う人も多いのではないでしょうか。今回の KLab Expert Camp のテーマは、そんな皆さんにピッタリの「TCP/IPプロトコルスタック自作開発」です。担当講師が開発している教育用のプロトコルスタック(https://github.com/pandax381/microps)を教材に、Ethernetフレームを組み立てて送受信するところから ARP、IP、ICMP、UDP、TCP などのプロトコルを全て自分の手で実装することで、これまでブラックボックスだったプロトコルスタックの処理を紐解いていきます。

参加にあたっては、開発環境やプログラミング言語に関する初歩的な知識は身につけていることを期待していますが、期間中は KLab の講師陣が手厚くサポートしますのでご安心下さい。また、意欲的な参加者においては、期間中に追加機能の実装や組み込み機器への移植などへのチャレンジングな取り組みも支援します。

また、参加者には各自の取り組みたい内容に応じて2つのコースの何れかを選択してもらう形をとりました。

【基本コース】 教材となるリファレンス実装の解説を通じてプロトコルスタックそのものへの理解を深める

【応用コース】 リファレンス実装の別言語への移植や機能追加など各自がテーマを決めて取り組む

開催の経緯

定期的にこんなツイートをしながら、年に1〜2人のペースで前途有望な学生を低レイヤ沼に引きずり込んでるんですけど、たまたま5人くらいの学生が同じタイミングでリアクションしてくれまして。それだけの反響があるのは嬉しいものの、個別に対応してあげるのはおじさんの体力的にちょっと厳しそうだなという感じもあって「もういっそのこと全員集めて一緒にやればいいのでは???」という考えに至ったわけです。

そして、インターン関連をとりまとめている人事の担当者に「こんな感じで何人か集めてやりたいんだけど」と雑に話をしたところ「イイっすね!なんならもう少し集めてイベントにしちゃいます???」みたいな凄いノリの良い返事をもらって、1週間くらい経ったら「例のイベントの企画、Go出ました!」と、あっさり開催が決まってしまった感じです。

取り急ぎ告知に向けてイベントの名称を決めようということになったのですが、これが結構難しくて... パッと思いつくものはだいたい既に他で使われてるんですよね。Expert Camp は僕の出した案なんですけど「Expert...ちょっとイキりすぎでは...?」みたいな意見もあったりして。最終的には「カッコ良さそうだからいいじゃん」「僕(自称)エキスパートだから無問題」という感じで落ち着きました。

そんなこんなで漕ぎ着けたイベント告知が以下のツイートです。

万人に向けたイベントでもないし、SNSを通じてニッチな層に届けばいいやくらいの軽い気持ちだったので、イベントの告知は僕の個人アカウントによる上記のツイートのみです。 この時点ではマジでどのくらい集まるのか未知数で「追加で数名集まったらわいわい楽しくできそうだけど、果たして応募してくれる人はいるのだろうか...」と不安な気持ちでいっぱいでした。

そんな不安をよそに、つよつよの学生達や「拙者、この分野は素人でござるが」みたいなこと言い出しそうな強い大人の方々にもRTされ、それなりに拡散されることになりました。面白そう!と反応してくれたみなさん、本当にありがとうございました。

そして、いざ蓋を開けてみると総勢20名以上の学生がエントリーしてくれ、最終的に13名の参加者が決まりました。 募集しておいてなんですが「世にはプロトコルスタックを自作したい学生がそんなにいるのか...」と正直びっくりしましたね。

(多数エントリーいただいて嬉しかった一方で、運営のリソース的に希望者全員を受け入れることができず、参加者を絞らなければならなかった点はすごく心残りです。残念ながら今回は参加できなかった方も次回の開催につなげることができたらその際はまたエントリーして欲しいなと思います)

開催までの準備

告知から開催まではちょうど4ヶ月くらいあったので、そのあいだに人事の担当者と細かなことを決めつつ準備を進めていきました。といっても、僕が雑に「あれやりたい」「これやりたい」と言ったものを、イベント慣れしている人事の担当者がよしなにアレンジして的確に落とし込んでくれるという連携プレーで進めていきました。だいぶ無茶振りもしたと思うのに、いい感じでまとめてくれて本当にありがとうございました。

以下は個人的に気に入っていて満足しているポイントです。

  • 参加者と運営メンバー全員分のIDカード(プラスチック製)
  • お昼のお弁当
  • 最終日に授与した修了証
IMG_1449

どれも過去に自分が参加したり運営に携わったイベントで「これ良かったなぁ」「嬉しかったなぁ」と印象に残っていたものを盛り込んでもらいました。 参加者からのアンケートでも「お弁当おいしかった!」とか「記念に残るものがもらえて嬉しかった!」とか、それなりに喜んでもらえていたようで、すごく嬉しいです。

あとは、教材として使う予定の「リファレンス実装」をもう少し理解しやすい作りに改良したり、解説用の資料を作ったりと、なかなか忙しくギリギリまで準備を進めていました。

イベント期間中の様子

運営スタッフや参加者が以下のハッシュタグを付けてツイートしてくれているので、これらのタイムラインを追ってもらうと、どんな雰囲気で開催されていたのか分かる思います。(ごはんのツイートが多いので飯テロ注意)

#KLabExpertCamp

#プロトコルスタック自作

開催してみて

まず、これだけの人数の参加者に集まってもらえたことが驚きと共に一番うれしかったです。そして、皆さん起床ミッションに失敗することもなく初日から最終日まで黙々と開発に取り組んでくれていたのが本当に凄いと思いました。

あと、このイベントを開催した目的のうちの1つでもあるんですけど、参加者同士の交流が活発に行われていたようで良かったです!尊い。いや、これまで個別にインターン生として受け入れていた学生達とのやり取りの中で「ニッチな分野になるとなかなか周りで同じレベル感で話せる友達や仲間がいなくて寂しい(とくに地方の場合)」という話が上がることが多かったんですよ。なので、今回のイベントでは全国各地から同じニッチな分野に興味を持っている学生が集まる絶好の機会だし、そういった交流の場としても機能して欲しいなと思っていたのでした。

このイベントに参加して「TCP/IPを完全に理解した」となった方、その先に進んで「TCP/IPまるでわからん」となった方「TCP/IPチョットデキル」の域に達した方、得られたものはそれぞれ異なると思いますが、参加者全員に「楽しかった」と思ってもらえていたら開催した甲斐があったかなと思うし、第2回はもっとクオリティ高くヤルぞ!という気持ちになります。

謝辞

もともとこのイベントは僕が一人で講師を務めるつもりで企画がスタートしたのですが、予想を上回る参加人数となったことから、社内のエンジニアに協力を仰いで講師やサポート役を引き受けてもらいました。

また、社内からだけではなく外部の方にも講師役を引き受けて頂きました。

ねりさんはプロトコルスタック自作クラスタとして以前から認識していて、#tcfm のミートアップでのLTやサイボウズ・ラボユースでの活躍を見て「ヤバイ人がいる」とウォッチしていたのですが、こんな雑な絡み(なんとこれが初コンタクトなんですよ)にも関わらず、快く引き受けていただき本当にありがとうございました。

僕はR&D部門に所属しているものの、学問として研究をしたことがないため、研究者の立場として参加者に対してアドバイスや相談に対応してくれていたのはものすごく心強かったし、めちゃくちゃカッコいいなと感じました。

他にも、めんどくさい細々としたタスクを含めキッチリこなしてくれた人事の担当者や、仕事の合間にIDカードのデザインを引き受けてくれたデザイナーさんなど運営に関わってくれたみなさん、ほんとうにありがとうございました!

参加者のブログ記事

最後に、観測できている範囲で参加してくれたみなさんが書いてくれたブログ記事へのリンクを貼っておきます。

TCP/IP プロトコルスタックを自作した - kawasin73のブログ

KLab Expert Campに参加したよ。 - よくきたわね、いらっしゃい

KLab Expert Camp に参加しました - veqcc’s diary

KLab Expert Camp にチューターとして参加した - Around The Computer

KLab Expert Campに参加してきました - teru_0x01.log

KLab Expert Campに参加した - 抹茶うまい

第1回 KLab Expert Campに行ってきました(TCP/IPプロトコルスタック自作インターン) - 迫真の氷結晶

pandax381 at 18:23
この記事のURLComments(0)network | 開発
2019年07月12日

その学習リモコンであの機器を操作できない原因を探る

はてなブックマークに登録

学習型の赤外線リモコンを使っているとたまにうまく反応しない機器に遭遇することがあります。信号の学習を慎重に行うのは当然として、別の学習リモコン製品では問題のみられないケースもあるためこうした場合にはしばしば「相性」という曖昧な表現が用いられます。しかし、そこには必ず具体的な原因があるはずです。最近の活動の一環として、情報のほとんど見当たらないこの件について調べてみることにしました。

きっかけ

自宅で株式会社ピクセラ様による下記の TV チューナを使っています。

コンパクトでありながら基本性能がとてもしっかりしていることが気に入りプライベートで愛用している製品です。ただ、このチューナは付属のリモコンには機敏に反応するものの、自宅で長年いろいろな機器の操作に使っている手持ち式の某学習リモコンの信号にはほとんど反応しないことを不思議に思っていました。今から 1 年ほど前に導入したあるメジャーなスマートリモコン製品からの操作においても同じ状況だったのですが、すでに純正リモコンでの操作に馴染んでいたこともありあまり気にかけずにいました。

その話題とは無関係に先日高齢の身内のためにできるだけシンプルな学習リモコンが必要になり国外のマーケットから写真の 6 ボタンのみの安価な学習リモコンを調達しました。メーカーは不明、多少割高ながら Amazon.co.jp のマーケットプレイスにも出品されているようです。

このスティック型のリモコンの動作確認を行う過程でふと上のチューナを試してみたところ、これまでの経験が嘘のようにあっさりと反応しました。この結果に驚き、たまたま最近赤外線通信の勉強がてらに ESP32 ボードを使って試作中だった学習リモコン(※)で試してみるとその結果も OK でした。

(※)この試作は所定のリモコン信号をサンプリングした結果をそのまま信号の再現に利用する素朴な内容のものです

この違いは一体何によるものなのか? にわかに興味が湧いてきました。今回はこの件について調べた内容とその結果を紹介します。手元ではこういった視点で事情を掘り下げた例をまだ目にしたことがありませんが、興味深い結果が得られました。

1. 道具立て

一連の実験での題材として、チューナ付属のリモコンの「電源」ボタン押下により照射される信号を利用する。

この信号を以下のよっつの学習リモコンに記憶させ、これらによって再現された信号の内容を検証する。

  1. スティック型リモコン A: チューナ側反応 OK
  2. 試作中のリモコン B: チューナ側反応 OK
  3. 手持ち型リモコン C: チューナ側反応 NG
  4. スマートリモコン D: チューナ側反応 NG

なお、ごのチューナのリモコン信号の形式は家製協フォーマットだった。

2. 信号全体の波形を評価する

まず、各リモコンの信号の波形を確認する。オシロスコープで信号の全体像を観察する要領。以下に各信号をサンプリングした結果のデータとそれを波形の形にプロットした図、さらにそれぞれを元リモコンの信号波形に重ね合わせた図を示す。

  • チューナ付属の純正リモコン信号の波形   (生データ:TSV 形式)
  • スティックリモコン A で再現した信号の波形   (生データ:TSV 形式)

    (元の付属リモコン信号波形との重ね合わせ)
  • 試作リモコン B で再現した信号の波形   (生データ:TSV 形式)

    (元の付属リモコン信号波形との重ね合わせ)
  • 手持ち型リモコン C で再現した信号の波形   (生データ:TSV 形式)

    (元の付属リモコン信号波形との重ね合わせ)
  • スマートリモコン D で再現した信号の波形   (生データ:TSV 形式)

    (元の付属リモコン信号波形との重ね合わせ)

ここでは以下の点に注目したい。

  • 反応 OK だったスティックリモコン A の信号波形が元信号のそれとほぼ一致しているのに対し、反応 NG だった手持ち型リモコン C の波形ではタイミングのずれが目立つ
  • その一方で、同じく反応 NG のスマートリモコン D の照合結果にはあまりこのずれは見られず、むしろ反応 OK だった試作リモコン B の波形のほうがずれが大きい

この結果から、手元のチューナに A, B の信号が受けいれられ、C, D の信号が弾かれる現象の主因は信号全体のタイミングのずれではないことが推察される。

3. 信号を構成するパルスの品質を評価する

パルスに注目する理由

前項ではまず各信号の全体の波形に注目したが、機器側の反応が異なる原因をそこから探り当てることはできなかった。別の評価軸として、それぞれの信号を構成するパルス群の粒度に目を向けることを思い立った。そのきっかけは、先だって赤外線リモコン信号からビットデータの抽出を試みていた折に次の点が気になったことにある。

  • 受信した赤外線信号に含まれるパルスの幅の揺れをどの程度許容すべきか?

赤外線発光素子から発信された信号を受光素子経由で受信した結果の信号に含まれるパルスの幅には理論値から外れた「揺れ」の要素がつきものであるため、そこからデータを読み取る際にはパルス幅および ON / OFF パルス比率の理論値とのずれを見越した許容範囲の設定に注意が必要となる。この許容範囲を逸脱したパルスからは適切にデータを読み取ることができないためその線を疑った。

パルス品質を評価するための基準

残念ながら手元では今のところ家製協フォーマット規約の一次資料の発掘には至っていない。代わりに、このフォーマットを読み解くための情報源として、赤外線リモコンの信号形式に関する話題においてしばしば言及される次の貴重な資料を参照させて頂いている。

これらの資料から、家製協フォーマット信号に含まれるビットデータは以下の構成であることが解釈される。

  • パルス幅の基本長 T は Typical 425 マイクロ秒
  • ビット値 0 は先行する 1T の ON パルスと後続 1T の OFF パルスのペアで表現される
  • ビット値 1 は先行する 1T の ON パルスと後続 3T の OFF パルスのペアで表現される

そのため、家製協フォーマット信号に含まれる各パルスの品質の良否は次のふたつの尺度で客観的に判定することができると考えた。

  1. 「T = 425 マイクロ秒」により近いこと
  2. 「'0' = ON パルス 1T : OFF パルス 1T」 「'1' = ON パルス 1T : OFF パルス 3T」の比率により近いこと

  • 好ましい例: パルス幅と先行・後続パルスの比率が理論値に近い
  • 好ましくない例 1: パルス比は適正でもパルス幅が逸脱 (※図中の値は説明用の例でありあまり意味はない)
  • 好ましくない例 2: パルス比が逸脱 (※図中の値は説明用の例でありあまり意味はない)

以上の内容にもとづき、まずこのチューナの純正リモコン信号のサンプリングデータをもとに、そこに含まれる揺れの要素を排除し理論値に置き換えた「理想形」の信号データを構成することにした。その内容と各リモコンの発する信号データを比較すれば一連の評価を行う上で便宜があるだろう。

3-1 理想形の信号

元信号のデータに含まれる揺れを取り除き理論値にそって 1T = 425 マイクロ秒, 3T = 1,275 マイクロ秒に置き換えたデータとそれをプロットした図を以下に示す。

A: 生データ:TSV 形式

B: 波形
C: データ中のパルス長を順番に 1T で除算した結果
  • 0, 1 の先行パルス、および 0 の後続パルスは 1T = 425 につき 100% が理想
  • 1 の後続パルスは 3T = 1275 につき 300% が理想
D: データに出現するビット値 0, 1 を構成する後続パルス長と先行パルス長の比率
  • 0 は 1T / 1T につき 1.0 が理想
  • 1 は 3T / 1T につき 3.0 が理想
C: のヒストグラム  (生データ:TSV 形式)
D: のヒストグラム  (生データ:TSV 形式)

3-2 チューナ付属の純正リモコンの信号

A: 生データ:TSV 形式

B: 波形
上の元信号(青)と理想形(赤)との重ね合わせ。このようにかなり理想形に近い。
C: データ中のパルス長を順番に 1T で除算した結果
D: データに出現するビット値 0, 1 を構成する後続パルス長と先行パルス長の比率
C: のヒストグラム  (生データ:TSV 形式)
D: のヒストグラム  (生データ:TSV 形式)

評価

波形の全体像が理想形にきわめて近いことに驚いた。パルス幅およびパルス比の粒度に注目。これが純正リモコンのクオリティ。

3-3 スティックリモコン A による再現信号

A: 生データ:TSV 形式

B: 波形
C: データ中のパルス長を順番に 1T で除算した結果
D: データに出現するビット値 0, 1 を構成する後続パルス長と先行パルス長の比率
C: のヒストグラム  (生データ:TSV 形式)
D: のヒストグラム  (生データ:TSV 形式)

評価

パルス幅・パルス比とも元信号と同等(以上?)に良好。入手以来漠然と品質の高さを感じていたが、今回の調査を通じてこの製品が廉価であるにもかかわらず非常に優れた学習リモコンであることが客観的に明らかになった。

3-4 試作リモコン B による再現信号

A: 生データ:TSV 形式

B: 波形
C: データ中のパルス長を順番に 1T で除算した結果
D: データに出現するビット値 0, 1 を構成する後続パルス長と先行パルス長の比率
C: のヒストグラム  (生データ:TSV 形式)
D: のヒストグラム  (生データ:TSV 形式)

評価

おおむね元の信号に近いパルス品質を確保できている。自作の信号が受けいれられてホッとしました。

3-5 手持ち型リモコン C による再現信号

A: 生データ:TSV 形式

B: 波形
C: データ中のパルス長を順番に 1T で除算した結果
D: データに出現するビット値 0, 1 を構成する後続パルス長と先行パルス長の比率
C: のヒストグラム  (生データ:TSV 形式)
D: のヒストグラム  (生データ:TSV 形式)

評価

ビット値 0, 1 ともに先行パルス長がコンスタントに理論値をオーバー、0 の後続パルス長は逆に大きくアンダーとなる傾向が顕著にみられる。先行パルス長の影響でパルス比は全体的に目立って低い。かなり癖のある信号と考えられる。パルス幅のばらつき、パルス比の低さ、そのいずれかあるいは両方がチューナ側に許容されなかったことが反応 NG の原因と考えられる。

3-6 スマートリモコン D による再現信号

A: 生データ:TSV 形式

B: 波形
C: データ中のパルス長を順番に 1T で除算した結果
D: データに出現するビット値 0, 1 を構成する後続パルス長と先行パルス長の比率
C: のヒストグラム  (生データ:TSV 形式)
D: のヒストグラム  (生データ:TSV 形式)

評価

元信号との波形全体の照合でのタイミングずれは目立たなかったが、パルス幅にもパルス比にも非常にばらつきが大きい。はた目には多くの機器がこの製品の信号でコントロールできていることのほうが不思議にさえ感じられる。一般の家電製品においてリモコン信号データ解釈の許容範囲が広く設定されていることが察せられる。広く利用されている製品であるにもかかわらずこれほど乱れた信号を出しているとは想像していなかった。手元の個体固有の問題? ロットによる品質のばらつき? あるいはスマートリモコンの性質上複数の赤外線 LED を搭載していることの何らかの影響か? いずれにせよ、前掲の「手持ち型リモコン C」の信号を受けいれない機器にこの信号が通用するとは考えにくい。

4. 結論

前項に掲げたパルス幅・パルス比のヒストグラムの図をあらためて並べてみる。俯瞰すると「手持ち型リモコン C」「スマートリモコン D」の信号に含まれるパルス群の品質の乱調がはっきりと見てとれる。他のリモコン分の特徴との差違が顕著であることから、このふたつの学習リモコンの信号が手元のチューナに受けいれられない現象の主因はこのパルスの粒度の乱れにあるものと想定される。












所感

今回の調査を通じて、おそらくは赤外線リモコンの信号に限らずパルス信号全般に共通する品質評価軸の一端を学ぶことができたように思います。目視では波形の全体像が元のリモコン信号のそれとよく似ているにもかかわらず、スマートリモコン D による再現信号(以下に元信号波形との照合図を再掲)が実在の機器で弾かれるケースのあることは象徴的です。

オシロスコープ等で巨視的に信号波形全体を観察することには便宜があり、またその確認はこういった調査を行う際には欠かせませんが、無線通信に用いられる信号はあくまでも先頭から順を追って内容を汲んでいくものであり時間の概念を含まないバーコードのように視覚を通じ一瞬で全体をとらえそこから情報を採取していく性質のものではありません。そのため、信号の品質を判断するためには時間軸にそってミクロに解釈を行う必要もあることを認識する良い機会となりました。


(tanabe)
klab_gijutsu2 at 07:47
この記事のURLComments(0)IoT 
2019年04月30日

生活を「不自由」にするためのソリューション

はてなブックマークに登録

自分の自由を拘束してみることの価値

生活をより便利にするための製品やサービスの開発と普及が加速しています。新しいものは大いに活用したいところですが、一方で利便性への過剰な没入はしばしば怠惰・依存・不健康といった負の要素と背中合わせであることにも注意しておきたいものです。
近年、スマートホーム等のキーワードに象徴される光景とは逆向きにあえて利用者に不便を強いるための機器が出始めていることを知り関心を持ちました。
不自由さのあとの自由からはその恩恵をあらためて新鮮な思いで学ぶことができるでしょう。あるいは、今まで自分にとって重要で欠かせないと思っていたものとの関係を見直すきっかけとなるかもしれません。そのように、普段あまりに見なれた自由との間に距離をおいてみる試みは、自分の日常への向き合い方を考えるための材料のひとつになりえるのではないでしょうか。

  • ずいぶん昔に読んだ、故・中島らもさんのエッセイを思い出しました。要旨のみを本文から引用します
    中島 らも (著) 「とほほのほ」 1991/1 - www.amazon.co.jp
    「楽園はどこにあるのか (4)」 より

    そのマヤの「現世-楽園置換装置」というのは、かなり大きなドームの形をしている。内部はガランとした空洞で、この遺跡からは多量の炭化した「トウガラシ」が発見された。神官たちは支配下の善男善女たちをこのドームに入れ、大量のトウガラシをいぶした煙をドーム内にあおぎ入れたのだろう。人々は恐怖と苦痛で、発狂と死の直前まで追い込まれる。そのときドームの戸が開かれる。冷たくて香りのよい空気がなだれ込んでくる。人々は自分が立っている「いま」「ここ」がすなわち楽園にほかならないことを確信するのだ。

製品の例

1. kSafe

概要

kSafe は Kitchen Safe Inc (米 カリフォルニア)による製品。 タイマーつきの電子ロック式小物入れ。あらかじめ設定した時間が経過しなければ中身を取り出せないしくみで、日常生活において依存対象となりがちなスマートフォンやもろもろの嗜好品へ接触する自由を自分自身で制限することができる。
以下、公式サイトの記事より。

  • kSafe by Kitchen Safe | The Time Lock Safe - www.thekitchensafe.com


    A powerful tool
    to build good habits


    Once the timer is set, and the button is pressed, the safe will remain locked until the timer reaches zero.
    No overrides!

    www.thekitchensafe.com

  • frequently asked questions | kSafe by Kitchen Safe - www.thekitchensafe.com
    Why do I need the kSafe?

    Short Answer - Because it’s really cool! And, it’s been scientifically proven to increase your chances of reaching your goals.

    Long Answer - The kSafe was developed based on research published by scientists at MIT, Harvard, Stanford, Princeton, and Yale. They discovered that pre-commitment can significantly increase our chances of achieving our goals.   :
    Google 訳
    なぜkSafeが必要なのですか?

    簡単な回答 - 本当にクールだから! そして、あなたの目標を達成する可能性を高めることが科学的に証明されています。

    長い答え - kSafeは、MIT、ハーバード、スタンフォード、プリンストン、エールの科学者によって発表された研究に基づいて開発されました。 彼らは、事前コミットメントが私達の目標を達成する私達の可能性をかなり高めることができることを発見した。   :

権威めいたものを引き合いに出しながら肝心の「いつ・どこで・誰が・どのように」が省略されていることが残念だが、製品そのものは興味ぶかい。

価格

ただし、この kSafe は結構値が張る。下記のように公式サイトからの直販でノーマルサイズの「Medium」が送料別 49米ドルという価格。

逡巡とその後

この製品のコンセプトに関心がからまりしばらく直販サイトを徘徊した。 総額で $49 なら買ってもいいと思ったが、日本への最安送料 $29.34 が加わると Medium で計 $78.34。手元での費用対効果を想定するとこれはかなり微妙で悩ましい金額だった。

上のスクリーンショットのようにカートに入れたまましばらく好奇心と理性の間を行き来していると何日か後に販売元から以下のメールが届いた。 個人的にはこの内容に微妙な印象が残り結局買うのをやめた。

From: kSafe by Kitchen Safe
Date: 2019年2月15日(金) 4:40
Subject: Are you OK? Kitchen Safe is worried
To: xxxxxxxxx@gmail.com

Hey,

We noticed that you didn't complete your Kitchen Safe order! The only reasonable explanation we can think of is that your computer exploded right before you could click "Complete my Order". Don't worry, we saved your shopping cart so you can complete the order from a friend's computer or phone (see bottom of email).

If your computer didn't explode and you're just on the fence, be sure to read some of our customer reviews.

Also, you can apply this coupon: CommitToChange to save 10% on checkout. It expires in the next 24 hours.

Thank you,

The Kitchen Safe Team
www.thekitchensafe.com

今となっては高額出費を抑えられたことにむしろ感謝している。

2. Timer Lock

概要

Timer Lock はノーブランドの中国製品。 名前のとおり上の kSafe と同様のタイマーロック製品であり、こちらは箱型ではなく錠前のスタイル。


www.amazon.co.jp

価格

価格は kSafe に比べれば安い。アマゾンジャパンでは 2000円ほどの価格から販売されている。複数のセラーが存在。

ちなみに eBay ではその半額程度で出回っている。

購入

買ってみることにした。当初は eBay の利用を考えたが、アマゾンのレビュー等を参照すると製品の大元の品質に対する一抹の懸念が残った。結局、価格差を保険料と割り切り、実際に問題に直面した場合に返品のしやすいアマゾンで購入した。

観察

以下、現物を手にした状態でのメモ。

  • サイズ感は写真のとおり
  • ワイヤを右側のホールへ装着して使う。差し込んだワイヤは本体右脇のボタン押下でリリース
  • 左右ボタンでキッチンタイマー風に時分を設定(最長99時間99秒)し、中央ボタンで開始。5秒間の猶予後はタイマー満了まで解除不可となる
  • 錠前の形状ではあるがこういう華奢なつくりなので非常時(?)には簡単に壊すことができる。言いかえれば防犯用途にはまったく適さない
  • 内蔵バッテリーを付属の USB ケーブルで充電して使う。本体装着側が MicroB ではなくレアな外径 2.35mm / 内径0.7mm プラグなのがちょっと残念
  • 手元では一度のフルチャージを経てこの 2か月ほど週に 3, 4 回、それぞれ 12時間程度のタイマー設定で使っているがまだ充電切れの予兆なし

使用例

自宅の観音開きの押入れをロック対象とすることにした。これなら小物入れ式の kSafe とは異なり楽器など大きなものでも最長 99時間99分後の未来へ預けることができる。 本体のワイヤは押入れの取手を直接ホールドできる長さではないため以前ホームセンターで買った硬質プラスティック素材のチェーンを併用した。写真のようにちょっと物々しい感じに。

動作の様子: 1分17秒 音量注意

所感

実際に使ってみるとこれは望外に良い製品だった。普通に丁寧に扱えば何の問題もない。予備をかねて eBay でもう一台購入。 説明書をみたところではこちらがより新しいバージョンらしい。少しデザインが異なるが機能は同じ。

この価格で買える不自由・非日常の価値は大きい。

付記

手元の一連のメモを上の記事にまとめていたところ、前掲の kSafe のアマゾンジャパンでの販売価格が高騰していることに気がつきました。 アマゾンでは以前からメーカー直販よりもかなり割高な 9,700円という価格で販売されていましたが、現在は 1万円を優に超えておりちょっと驚きました。

元々あまり目立つ製品ではないためかこれまでの観察の範囲ではアマゾンでの価格に変動はありませんでした。不思議に思って情報を探してみると @ryogomatsumaru さんによる 4月22日の次のツイートがこのブームの発端らしいことを知りました。

すごい影響力ですね。まさに情報の時代であることをあらためて実感しました。話題が重なるのでこの記事はキャンセルしようかとも思いましたが、せっかくなので史上初の10連休と平成最後の日の記念(?)をかねて。


(tanabe)
klab_gijutsu2 at 02:53
この記事のURLComments(0)その他 
2019年02月06日

スマートプラグ + ESP32 で超シンプルに Wake On Wan

はてなブックマークに登録

スマートスピーカーの普及に伴いスマートホーム系製品の低価格化が少しずつ進んでいます。 最近プライベートで次の製品を買いました。今のところ安定動作しており自宅で使っている Google Home Mini との相性もよく気に入っています。

※スマートプラグを使えば家庭用電源から所定の機器への給電を手軽に操作できるため便利ですが、個人的には何らかの原因で自分の意図しない動作が起こった場合に深刻な事態につながりかねない機器との併用は避けています。たとえば少なくとも現時点で電気ストーブなどをつなぐ勇気はありません ^^;

スマートプラグを PC の起動に利用する

スマートスピーカーへの音声指示で PC を起動するアイディアには実用性があり、ネットを検索すると参考になる多くの興味深い例に触れることができます。一方で、Meross Smart Plug Mini を触っているうちにこれを使えばとてもシンプルな道具立てで同様のことを実現できるのではないかと考えました。以下の発想によるものです。

  1. このプラグはもともとルータ越しの動作を前提とするクラウドベースのスマートホーム系製品である
  2. そのため自前で通信まわりを取り回すことなく所定の機器への給電を屋内外から指示することができる
  3. ということは、上記 2. の給電対象の機器を「起動すると LAN 上に所定のマジックパケットを送り出す内容のプログラムを書き込んだマイコンボード」としておけば、スマートスピーカー経由であれ、その他の方法であれ、給電指示ひとつで簡単に LAN 上の所定の PC を起動できるはず

電源投入からのスタートなのでボード側の初期処理に多少の時間がかかることは予想されるものの全体として筋は通っています。特に難しい要素もないため国内外のどこかにすでに同一の事例があるのではないかと想像しましたが、手元でざっと見渡した範囲では見当たらないようです。そんなわけで、まあもし先例があってもいいか、と思いながらざっくり形にしてみることにしました。

実装と動作の様子

スマートプラグからの給電先は何かと融通のきく ESP32 ボードとしました。AC アダプタと USB ケーブルごしにボード単体をプラグへ接続して使います。 プログラムは以下の内容としました。対象 PC が起動すれば当該ボードはお役御免につきプログラムから給電元のプラグをオフにすることで自らをシャットダウンします。

  1. 初期処理として WiFi AP との接続を確立
  2. 所定のマジックパケットを LAN へ送出
  3. マジックパケット送出後に対象 PC へ ping を継続的に発行
  4. ping への応答を検知したら自ボードへ給電中のスマートプラグの通電をオフにする

あわせてネットワーク接続時と電源切断前にメールでその旨を通知します。この通知はリモートで操作を行う場合には状況把握のために有用ですが、スマートスピーカーへ声をかけている在宅時にはいささか冗長なのでいずれ手を加えるかもしれません。

ソースコード

Arduino IDE + Arduino core for the ESP32 環境向けに用意したプログラムです。
前項に挙げたメール通知処理には SendGrid を、プラグのシャットダウンには IFTTT アプレットを利用しています。 これらは ESP32_WakeOnLan.h 冒頭の「#define USE_MAIL_NOTIFICATION」「#define USE_AUTO_SHUTDOWN」の定義を無効化すれば省略されます。

デモ

一式の動作の様子を収めた動画です。 (1分10秒)

(注:この動画には "OK Google" の発声が含まれます。
近くに Goole Home デバイスのある場合にはご注意下さい)

余談ながら、手元では過去に何度か Wake On Wan の試みを行いそれぞれ当ブログの記事として公開しています。見返してみると道具立てに微妙に当時の状況が反映されておりちょっと面白く感じました。

時代が加速を続けています。数年後の未来が楽しみです。


(tanabe)
Blog内検索
Archives
このブログについて
DSASとは、KLab が構築し運用しているコンテンツサービス用のLinuxベースのインフラです。現在5ヶ所のデータセンタにて構築し、運用していますが、我々はDSASをより使いやすく、より安全に、そしてより省力で運用できることを目指して、日々改良に勤しんでいます。
このブログでは、そんな DSAS で使っている技術の紹介や、実験してみた結果の報告、トラブルに巻き込まれた時の経験談など、広く深く、色々な話題を織りまぜて紹介していきたいと思います。
最新コメント
Syndicate this site