HN 日本語サマリー

← 一覧へ戻る
科学・技術

電話がタップすることで給電される、バッテリーレスLED付きPCB名刺

A PCB business card with a batteryless LED, powered by the phone that taps it (kevin.md)

80 pointsby thekevintang22 コメント

要約

著者は、NFCチップと電話のタップで給電されるバッテリーレスLEDを搭載した回路基板の名刺を作成しました。この名刺は、電話のNFCフィールドからエネルギーを借りてLEDを点灯させ、同時にウェブサイトへのリンクを開きます。当初は一般的なNFCアプリでチップへの書き込みに失敗しましたが、Core NFCを利用した独自のアプリを開発することで、この問題を解決しました。

全文翻訳

👻 スマホをかざすと光る名刺

TL;DR: NFCチップと、かざしたスマホから給電されるバッテリーレスLEDを搭載した回路基板の名刺を作成しました。ハードウェアは動作しましたが、一般的なiPhoneのNFCアプリでは空のNTAG I²C Plusチップをフォーマットできませんでした。チップのネイティブコマンドを直接送信する小さなCore NFCアプリを開発したところ、タップするたびに私のサイトが開かれ、リザードンの尻尾が光るようになりました。

紙の名刺ではない、何か特別な名刺が欲しかったのです。深い哲学があったわけではなく、単に回路基板を渡すのが面白いと思ったからです。そこで、クレジットカードサイズの光沢のある黒い基板に、金色のデザインと私の名前をあしらった名刺を設計しました。ここまでは標準的です。この名刺をただの名刺ではないものにしている二つの特徴は、スマホを近づけるまで見えません。

一つ目はNFCチップです。名刺をスマホにかざすと、kevintang.xyzが開きます。これは、タッチ決済カードや交通系ICカードと同じ技術で、13.56 MHzで動作します[1]。基板の端に沿って7回巻かれた銅のコイルがありますが、これがアンテナです。このアンテナを適切な周波数で共振させるのが、作業の大部分でした。この部分は予想通りでした。

二つ目の特徴は、私がずっと考えている部分です。名刺には小さなリザードンが印刷されており、その尻尾の先端に赤いLEDが配置されています。つまり、名刺をスマホにかざすと、その尻尾に火が灯るのです。名刺にはバッテリーがありません。コイン電池も、配線も、充電するものもありません。LEDは、スマホが発するエネルギーだけで完全に動作しています。

[画像: コンポーネントのデータシートのようにデザインされた黒い回路基板の名刺。上部近くに小さな赤いLEDが光っており、その下にはスマホがカードにURLを書き込んでいるカスタム「NFC Card Writer」アプリが表示されています。さらに2枚の名刺が暗いソファの上に置かれています。]

カードの書き込み中。私の自作アプリがURLをチップに書き込んでいます。ハーベストLEDは、スマホのフィールドだけで点灯しています。他に数枚、順番待ちをしています。

電力を借りるオブジェクト

実際に何が起こっているのか、そして私がこれを魔法のように感じなくなるまで(実際にはまだ感じていませんが)時間がかかった理由を説明します。NFC対応のスマホは、タグを検出するだけでなく、タグに電力を供給するために強力な無線フィールドをブロードキャストします。なぜなら、タグ自体にはバッテリーがないからです。通常のNFCステッカーのチップは、その借りたエネルギーで、応答するのに十分な時間だけ起動し、スマホが離れるとすぐに消灯します。私がこれを作って初めて理解したことは、一部のチップは、余った電力をピンに出力して、好きなように使えるようにしてくれるということです。NXPのデータシートによると、あるテストセットアップ下での典型的なハーベスト出力は約2ボルトで5ミリアンペアです[2]。それほど多くはありませんが、LEDを点灯させたり、低消費電力センサーを点滅させたり、マイクロコントローラーをほんの一瞬だけ起動させたりするには十分です。

そして、その応答方法は、聞くよりも奇妙です。タグは自分自身の信号を送信しません。スマホのフィールドの吸収量を、瞬間ごとに変化させることで応答します。スマホはその自身の信号へのわずかな引っ張りを感知し、それを1と0として読み取ります。私が繰り返し思い浮かべるアナロジーは鏡です。鏡は光を発しません。光源を反射するだけです。パッシブNFCタグは、それ自身の無線を発しません。スマホの無線を反射し、それをメッセージに変調します。スマホが全てのエネルギーをもたらし、カードはただ何を跳ね返すかを決定します。

(ちなみに、これがかつて私が混乱していたNFCとRFIDの違いです。NFCはRFIDの競合ではなく、RFIDの短距離、13.56 MHzの領域です。意図的に近距離にすることで、カードはあなたが意図的に触れたものにしか話しかけません。)

私は常にNFCを、スマホに何かをさせる方法だと考えていました。リンクを開く、コーヒーの代金を支払う、チェックインするなど。しかし、これは逆転します。タップすることで、カードが何かをします。スマホがカードの近くにある半秒間、カードはライブデバイスになります。あなたがバッテリーを近づけたことで、手に取った不活性なガラス繊維の長方形が命を吹き込まれるのです。一度それを感じると、NFCのタップの見方が変わります。あなたはタグを読み取っているのではなく、それに電力を供給しているのです。

これは新しいアイデアではありません。数年前、U.S. Bankは、非接触型決済中にロゴが光るクレジットカードを出荷しました。それは非常に人気があり、品切れになったほどです[3]。しかし、それは稀であり、毎回小さな奇跡のように感じられます。そして、それは一つのオブジェクトのカテゴリ全体を示唆しています。バッテリーを必要としないオブジェクト、つまり、あなたがすでに持っているスマホで触れているその瞬間にしか生きていないオブジェクトです。

カードはプログラム

私は基板全体をコードとして設計しました。マウスで配線をドラッグするのが苦痛だと感じる人には、この方法をお勧めします。無料のPCBツールであるKiCadにはPython APIがあり、基板全体がスクリプトによって生成されます。全ての配線、アンテナコイル、各文字の位置:全てが計算されています。コイルの巻き数を増やしたいですか?数字を変更して再実行すれば完了です。基板はプログラムのように再現可能であり、ハードウェア初心者である私にとっては非常に安心できるものでした。触れるのが怖い、貴重な手描きの成果物はありません。

カードを裏返す人向けに、いくつかのジョークを仕込みました。裏面はコンポーネントのデータシートのようにレイアウトされています。各ハードウェア部品に付属する密なリファレンスドキュメントです。シルクスクリーン印刷には、アンテナの実際の共振計算式が直接印刷されており、好奇心旺盛なエンジニアがメーターでプローブできる2つの実際の露出したテストポイントがあり、私の数値をチェックできます。そして表面には、チップカードにある小さな金色の四角い接点部分がありますが、私のカードにはその描画しかありません。基板に印刷された、その下の何もない8パッドのフットプリントです。実際のNFCチップは裏面に隠されています。チップのように見えるものはデコイです。回路基板をレイアウトしたことがある人ならすぐに気づくでしょう。それ以外の人は、単なるチップカードだと思うでしょう。注意深く見る人のために置いてあります。

[画像: カードの黒い裏面のレンダリング。コンポーネントのデータシートのようにレイアウトされており、金色の「KEVIN TANG」の見出し、小さな印刷のセクション、アンテナの共振計算式、コイルの開始点にあるリザードンの金色の尻尾、スパイラルアンテナ自体、そして寸法表記付きのラベル付きテストポイントTP1とTP2があります。]

裏面はデザインファイルから直接。実際のデータシートのようにレイアウトされ、共振計算式も含まれています。TP1/TP2は実際にプローブできます。リザードンの尻尾がLEDの場所です。

そして、工場に送りました。これが現代のハードウェアの本当にすごい部分です。ファイルをJLCPCBにアップロードしたところ、約75ドルで10枚のコピーが製造され、それぞれにチップとLEDがはんだ付けされました[4]。組み立て済みの回路基板10枚が、郵送で届きました。これは、まともなディナー1回分の値段です。数日後、この小さな青い箱が届きました:

[画像: 組み立て済みの回路基板名刺が入っていた青いJLCPCBの配送ボックスを持っている手。]

中には美しいカードが10枚入っており、私は自分の出来に大変満足していました。約1日ほどは。

その後、書き込めなくなった

最初のカードをスマホにかざしました。LEDが点滅したので、電力が供給されており、アンテナも機能しており、ハードウェアの電気的な部分は問題ありませんでした。しかし、何も起こりませんでした。リンクが開かないのです。カードには電力はありますが、メッセージがありません。

それは予想通りでした。空のチップにはURLを書き込む必要があります。そこで、皆が使っている標準的なアプリ「NFC Tools」を開き、カードをiPhoneにかざしましたが、「NFCタグはサポートされていません」というメッセージが表示されました。

チップの選択で初歩的なミスを犯したのです。私が選んだNTAG I²C Plus[2]チップは、実際には単なるステッカータグではありません。これはブリッジチップで、ガジェットの中に配置され、ワイヤーでマイクロコントローラーと通信するために設計されており、NFC機能はおまけです。LEDに必要なエネルギーハーベスティングピンを提供してくれるのはこのチップであり、私がこれを選んだまさにその理由です。しかし、それは空の状態で出荷され、コンシューマーアプリにURLレコードの場所を伝えるNDEFフォーマットがされていませんでした。NFC ToolsはiOSの高レベルNDEFパスを使用しており、私の空のチップをフォーマットする代わりにサポートされていないと判断しました。

「よし」と思いました。「Androidで試してみよう。AndroidのNFCスタックは、この種のことにずっと寛容だ。」バックアップ用のスマホを取り出し、アプリをインストールしようとしましたが、私の安価なプリペイドAndroidにはNFCラジオが全く搭載されていないことが判明しました。そのモデルは公式にはNFCをサポートしていますが、私の特定のキャリア版では、コストを節約するためにチップが省略されていました。そのスマホは文字通りNFCができません。欠落したハードウェア用のアプリはありません。

通常のiPhoneアプリはダメで、Androidはダメでした。見事なカードが10枚あっても、1文字も書き込む方法がありませんでした。

自分自身のキーを書く

私を立ち往生から救ったのは、コンシューマーアプリが失敗したのはチップが書き込めないからではなく、高レベルのNDEFチェックで停止していたからだと気づいたことでした。その下では、このチップは一般的なNFCタグと同じ基本的なメモリコマンドに応答します。重要な点ではコマンド互換性があります。アプリはドアのIDチェックをする用心棒のようでしたが、中のチップは喜んで私の注文を受けてくれるでしょう。

そしてiOSは、タグに生のコマンドを送信させてくれることがわかりました。もし自分でアプリを書く気があるなら。AppleのCore NFCフレームワークには、iOSに解釈させるのではなく、タグと直接通信できる低レベルモードがあります[5]。そこで、私は非常に小さなiPhoneアプリ(重要な部分は60行程度)を作成しました。それはただ一つのことをします:NFCセッションを開き、手動で書き込みコマンドを送信します。「私はURLタグです」と宣言する小さなヘッダー、次に私のウェブアドレスを、チップのメモリ全体に4バイトずつ、次のコマンドが確認される前に送信します。

それを私のスマホにビルドし、開き、カードをタップして、ページがカウントアップしていくのを見ました:書き込み中、書き込み中、完了。その後、スマホをロックし、見知らぬ人がするようにカードをもう一度タップすると、私のサイトを開くというバナーが表示されました。うまくいきました。それ以降、全てのカードでうまくいっています。

一つの quirk があります。書き込みが失敗しないように、カードをスマホの端にぴったりとくっつけて持つ必要があります。結合がタイトで、その理由はおそらく光るLEDでしょう。チップが仕事をするのに必要な電力の一部を消費しているので、通常のタグよりもマージンが少なくなっています。これは嬉しい問題です。次の改訂版のリストに入っています:もう少し光を抑え、もう少し範囲を広げ、そのトレードオフについてどう感じるかを決めることです。

私がずっと考えている部分

これが(再び)私に強く印象付けたのは、ハードウェアプロジェクトの難しい部分は、しばしば最後のソフトウェア、つまり「オブジェクトが物理的に存在する」と「オブジェクトがその機能を行う」の間の最後の数センチメートルであるということです。電子部品は教科書通りでした。アンテナの計算は最初からうまくいきました。私を打ち負かしそうになったのは、私のチップのことを全く聞いたことのないアプリの互換性チェックボックスでした。

しかし、カードを持っているときに私が考えているのはそれではありません。私が考えているのは、その光です。電源のない平らなガラス繊維の板が、スマホをかざしただけで命を吹き込まれるのです。私はウェブサイトを開く名刺を作ろうとしました。それは、かすかに気の利いたパーティーのトリックです。私は、借りた数ミリワットの光に、より興味を持つようになりました。なぜなら、その同じトリック、つまりオブジェクトが所有していない電力で目覚めるということが、私が今作りたい他の百ものものの種となるからです。

とにかく。もし私たちが会って、私が黒いカードを渡したら、それをタップしてください。そして、尻尾を見てください。

引用

[1] 近距離無線通信 — Wikipedia (NFCは13.56 MHzで動作します) ↩
[2] NT3H2111/NT3H2211 NTAG I²C plus データシート — NXP Semiconductors (エネルギーハーベスティング出力、典型値約5 mA) ↩
[3] U.S. Bank Shopper Cash Rewards Visa 発売 — Business Wire (非接触型決済中に点灯するLEDカード) ↩
[4] JLCPCB — PCB製造・組立サービス ↩
[5] sendMiFareCommand — Apple Developer ドキュメント (NFCタグへのネイティブコマンド送信) ↩