hachioji.pm

Hachioji.pm のおしらせブログです。

builderscon tokyo 2019 見本市、展示物解説ページ

本エントリは8/31(土)のビルコン見本市に展示する様々なガジェットの解説ページです。

写真などは、完了あとに追記いたしますので、ぜひ見に来てください。

REAL FM

令和の時代、「本物の」FMを聴く人は少なくなってしまいました。

しかしインターネットの多くのポッドキャストにはドメインの形で「.fm」は残り続けています。

一度立ち返って、本物のFMというものを皆さんに思い出してもらえるよう、放送局にもなり、受信装置にもなる電子バッジを作ってみました。

f:id:mackee_w:20190831011731p:plain
本物のFMがここにある

右上のスイッチをRXに倒せば聞こえてくる周波数の瞬き、TXに倒してジャックにあなたの声を吹き込めば、その場でしか聞けないポッドキャストが始まります。

また、RDSの送受信機能があります。データベースの話ではないですよ? アメリカなどで行われているサービスで、FMラジオ電波に文字データを載せて送れるシステムです。

音だけではなく、あなたのステーションネームをブロードキャスティングして、視覚だけではなく電波でコミュニケーションをとってみませんか?

なお、会場に展示するバッジはRDSの送信は機能しているのですが、受信機能がうまく機能させるところまで至りませんでした。代わりに会場では海外のRDS機能付きラジオでの受信の様子を展示します。詳しい人助けてください!!

カンファレンス電子バッジであるからには配ります! ハックしてくれる方はぜひ挙手!!

技術的な話

  • TX(送信)
    • シリコンラボ Si4713 を採用
    • 他のパーツとは違い手軽に入手可能なbreakout boardがなかったため、ちゃんとリフロー実装
  • RX(受信)
    • シリコンラボ Si4703 を採用したvbreakout boardを接続して使用
    • チップを買うよりbreakout boardのほうが安いのでこのような形に
    • 本当はヘッダピンなしで表面実装の技法で接続しようとしたが、下穴が小さくて断念
  • OLED
    • 128x32でI2C接続のよく自作キーボードで使われるやつ
    • カセットの窓のように配置
  • スイッチ付きロータリーエンコーダー x 2
  • ESP32-DevKitC
    • 一番高いパーツ
    • 別にWiFiやBTは吹いていない
    • zigzagスルーホールという技術ではんだ付け無しで取り外しができる!
  • その他、タッチパッドやESP32からTX側ジャックに音声出力できる回路などを搭載

ノーデメリットプラグアンドプレイシャッター

f:id:uzulla:20190901214611p:plain

「楽しい」

カメラのシャッターは好きですか?

そうですね、公共の空間でバシャバシャしているとプライバシーがきになりますね。

テックカンファレンスでは特に嫌われていますね、公式にも遠慮して下さいと言われます!無音にできるカメラアプリをつかおう!

では、誰もいないところでは?いや、スマホのストレージが消費されますね、無駄なのでみんな嫌いでしょう。

多くの人はシャッター音は消したいと願っているはずです。

でも、シャッター音は昔からこだわられています。一眼レフのシャッター音は良し悪しがしばしば議論になります。そして、音がなるものは好きなはず。

ということで、「プライバシーを侵害しない(写真がとれない)」「ストレージが減らない(写真がとれない)」という改善をおこない、さらに小型にしてみました!

楽しい!(二度目)

f:id:uzulla:20190901214636p:plain

使い方は簡単、USBバッテリーに接続してシャッターボタンを押すだけ!楽しい!!(三度目)

技術的な話

DF Player miniとよばれる100円くらい(Aliexpressしらべ、amazonだと400円くらい)のモジュール、一個数十円位の8Ωのスピーカー、転がっていた充電用USBケーブルを分解して結合。USBバッテリーは使い古したものや、100円ショップの300円のもので十分です。スイッチを回路に直につないでいるので、ソフトウェアもありません。

広義には、再生しかできないMP3 Playerですね。

欠点は、結構壊れやすいことですね(2回くらいつくりなおした)


アンチカンファレンスマシン

「このトークを台無しにしたい…」そう考えた時に、ギリギリ合法なのがスマホでの写真です(合法だが、追い出される可能性はあります)」ガンガンとってガンガン台無しだ!!。

※ ほんとにやめてください

音も大きくなきゃですよね、プレイヤーだと貧弱だからアンプも積みましょう、スピーカーもちょっと大きめの3Wのものをつけました。

フラッシュもあったほうが絶対邪魔だし、フラッシュもつけました。

あとは、iPhoneは押しっぱなしで連打、これもウザいですよね、勿論実装済みです。

ということで、カンファレンスのバッジとしては絶対に嫌がられるこの一品です!

「なんて迷惑な!おかしいのでは!?」って思うかもしれません。ただ、古来よりTV B goneというものがありまして、それはあらゆるテレビの電源を切るいたずらリモコンなのですが、

https://en.wikipedia.org/wiki/TV-B-Gone

私がリスペクトしているバッジの故郷ともいっていい、DEFCONではそのTV-B-Goneの機能がついたバッジが初期にあったそうです。

まあ、ベクトルは完全に違うんですけど、「迷惑か、迷惑じゃないか」でバッジをかんがえちゃダメかな?俺も倫理より面白さをとるぞ!って思ったわけです。

技術的な話

MP3プレイヤーをUARTでマイコンと接続し、再生しています。sdカードには音が二種類はいっていて、それをだしわけています。

ボタンはリリース時を判定し、長くおされていたら連射モード、短かったら単射モードにしています、まあ簡単ですね。タイミングとかはこだわりました。

フラッシュはこれでも最大輝度ではないです、最大輝度だと一瞬で怒られそうなので。

しかし、シャッターボタンが(カーソルキーの)上キーというのはすごく不便ですね?まあここが一番結線しやすいという理由でしかないのですが。

原価はそうですね〜、マイコンをもっと安くすればもっと安いでしょうね。

なお、アンプ(スピーカー)ってかなり電流を消費します。だいたい800mAくらいですかね、最近のUSBバッテリーは2Aとか3Aとか出るので大丈夫ですが。


どっかでみたことがあるコピー商品

イケイケアゲアゲになりたくありませんか?私はなりたい。

そういう感じでamazonをさがすと、スペクトラムアナライザーTシャツってやつがみつかりますね、ピカピカひかって、しかも音とシンクする、クール!

ということでつくりました。この名札であなたもダンスフロアの人気者!!

ダンスフロアにいかないあなたでも、口笛の高低をつかって「あっ、周波数がスイープした!」とか一人で寂しい遊びができます、すごくたのしいです(個人の主観です)

技術的な話

ちょっと強めのマイコンに、マイクをつなぎ、アナログから10khzくらいで電圧をよみとって、FFTにかけています。あとはまあうまい感じに8バンドにふりわけて、LEDをピカピカしています。

結構このFFTが割り込みつかいまくるっぽくて、Neopixel(LED)がめちゃめちゃあばれてバグります。まあキレイだからいいんじゃないか??とおもいますが、Neopixelは割り込みをいじる系のコードと相性がわるすぎて辛い。もう一個間に安いマイコンをはさんで、そっちで制御したほうがよいんでしょうね。

なお、部品点数がめっちゃ少ないし、これは時間がなくて1時間でつくりましたので、ユニバーサル基板すらつかってません。実際のダンスフロアにいくときには、端子が他人に刺さらないようにしましょう。

原価は、マイコンがESP32ということでちょっとお高めです。通信機能いらないんで、Armとかの石を使ったほうが良いとおもいます。


どっかでみたことがあるコピーその2

LEDマトリクスをスマホから設定できる、こんな万能感が得られるものもあるだろうか?いやない。

ということで、どっかでみたことがあるようなのをつくりました。

アニメーション機能(総フレーム数4)ができます。

LEDマトリクスといっても8x4しかない貧弱さを逆手に取って、クリエイティブしましょう。

技術的な話。

ESP系のマイコンは便利。

WifiのAPにして、ウェブサーバーをたててやっていっています。

ESPのWebserver、最初サンプルコードをみて「これ、ウェブサーバーたてたら、以後はなにもできないんじゃ?」とおもいましたが、メインループでコールするメソッドはちゃんと処理の不要なタイミングでは次のループにもどしてくれるっぽいです。

なんかそういうコードがググってもでてこなくて、やっぱりやってみんといかんなあ、とおもいました。

HTMLをCで手組みするという懐かしいことができてたのしかったです(二十何年前くらいに、Cで(CGIで)掲示板がつくられたりしていました)、テンプレートエンジンほしい!


草生えバッジ(Pixe.laクライアント)

pixela https://pixe.la/というウェブサービスをご存知ですか?Githubの草(ハイコンテキストだ)みたいなのが簡単につくれるメトリクス可視化、時系列データ保存サービスです。

すごくいい!LEDマトリクスと相性がよさそう!ということでつくりました。

LEDが8x4しかないので4週間分ですが、まあこれは一ヶ月くらいとおもえば工数計算がはかどります。

机において、すごく目立つ感じでなにかのメトリクスを表示しましょう!

でも、いつも緑だと飽きる気もします、なのでファイヤーモードもあります。カラーテーマを変更してもりあげましょう!

技術的な話

まず、M5Stackは液晶がついているのでLEDつかう意味はないです。名札の体裁にしたかったというだけです。

ESP32(M5stack)は簡単に無線LANHTTPS接続ができます。あとはArduinoJSONでパースして描画。これでだいたい説明ができた。

ただ、ESP32のHTTPSリクエストはめっちゃ遅い、めっちゃ遅いのでリフレッシュに30〜60秒かかります、ローディングの表示のためにLCDが活用されました。

pixe.laはバルクで値がとれないので30回飛ばす必要があるんです。HTTPSって重いですね、自分のサーバーにProxyをおけばいいけど、まあ遅いのも味かなってことにしました。あるいはKeep aliveを実装すればいいのかなあ?

起動直後のカラーテーマ(私が適当につくったもの)はしょぼくれた色ですが、これくらいにしないとダメなのです、なぜなら人の目は明るさの差に鈍感。差を識別できるようにすると大きな値のセルはめちゃめちゃ明るくする必要があります、すごく目に悪い。

すごくつらかったところは、Neopixelの割り込み?の都合でちらついたり、意図しないLEDが全力緑になったりするところですね、どうしようもないので適当にdelayをいれて抑制したりしています。

こういうガジェットは場所によっては役立ちそうですが、はたして…?

それはさておき、良いWeb Serviceです!ありがとうございます!


アルコールセンサー付きMFA(TOTP)デバイス

近年様々なウェブサービス等で、サインイン時にはいわゆる二段階認証、MFAを利用することが必須となりつつあります、良い事だと思っています。

しかしながら、事故・インシデントには外部からの攻撃ではないものもあります、身近な所だとアルコールなどを摂取しているとツイートが攻撃的になるなどをみかけるでしょう。

もちろんそのような個人的なことだけでなく、IT業界では(当然すぎるからでしょうが)ニュースになることはあまりないと思われますが、ご存知の通り飲酒をしての業務は非常に危険なので法的に禁止されている事も多くあります。

さて、そういった時代において、今回先駆けて(自分しらべ)アルコールセンサー搭載し、飲酒をしているとトークンが払い出されないMFAデバイス(あるいは2FA、TOTP)を作成しました!

こちらにより、自分の飲酒度合いを確認しつつインフラへのログインを控える事ができ、世界平和に役立つと思われます。

MFAに対応しているサービスは数多く、GithubTwitterAWSなど大手も採用済みです。

また、アルコールセンサーはMFAとしての機能を使わなくとも独立動作するようにしておりますので、日々の自己管理にもご活用いただけます。

使い方としては、息をセンサーにはきかけながら発行ボタンをおします、するとセンサがガス強度を見て、特定の強度を超えていると表示を抑制します。

物理MFAデバイスは常時表示のものが多いですが、本デバイスは発行ボタンをおしてから60秒アクティブ化され(再度おすと、延長されます)、自動的に表示を終了します(なお、通常のトークンは30秒が寿命です)。そして、このバッジはRTCを搭載することで正しい残り時間を認識しており、カラフルなバーグラフで残り時間を提示、これで数秒で有効期限が切れるトークンを入力させられようとして自分が切れるなどを未然に防げます。もちろん、トークンが切り替わったタイミングで自動的に表示が更新されます。

なおTOTPの6桁数字は簡単すぎるという声をたまに聞きます、一瞬ちらっとみただけで読めて暗記のできるコードに不安を覚えるのは理解できます。

そのため、このデバイスでは6桁をバイナリ(2進数)で表示することにより、高度な情報技術者にしかすぐに読めないようになっております。

「安全」についてどのように考えるかは様々な意見がありますが、すくなくとも十分に習熟するまでテスターは解読に15秒程度を要しておりますので、読み取り難易度はたかいと言えるでしょう。

このように安全性をさらに高めるデバイスは画期的と言えるでしょう。

技術的な話

アルコールセンサーと、RTC、マイコンを組み合わせて、TOTPトークンを払い出しています。

課題は山程ありますが、一番面倒なのは秘密鍵の書き込みです。LEDディスプレイと数個のボタンでどうするんだ?まあここは将来的にどうにかするということで、単に書き込み時に設定しています。 (リアルにやるなら、やはりカメラモジュールを搭載でしょうね)

次に、実装のヘボさですが、LEDが暴れます。RTCとはシリアル通信をおこなっていますが、どうにもNeoPixelの某ライブラリはそのあたりに弱いのか、どうしても0番が緑に光ります。数時間で作りたいのに…。 素直にこれはYakだと判断し、物理的解決をおこないました(実機を参照ください)。

もっと根本的な課題はあります。なぜならアルコールセンサーは、実際のところ対象の人間の呼気が正しくふきかけられているか判断ができないからです。発行ボタンをおしたときに故意に呼気をふきかけていないと…まあ発行できますね。自己管理で、ということで割り切っています。 (とはいえ、真横に焼酎があるとかなら、勝手に反応するので、案外どうにかなるのでは)

そしてアルコールセンサーの感度にも問題があります。アルコールセンサーはアナログで出力された信号をよみとり、それをもって強度としますが(DigitalOutなどとあっても、単にポテンショメーターでしきい値をアナログに設定できるだけだったり)、じゃあ、どの電圧なら問題となる飲酒量なのでしょうか?テスターは自宅ではあんまりのまないので、あまりテストができていません。よいマップ作成は今後の課題です。

また、同時に、この出力電圧も結構ふわふわしていて、電源投入後20秒またないと正確な結果はでないといいます。でも、実際は20秒たってもわりとドリフトします。安物だからか?

あとはなんでしょうかね、耐タンパー性は特にかんがえていないので(かといって、チップの中のフラッシュを読むのは(マイコンにもよりますが)簡単でもないでしょうが)、TOTPデバイスとしては三流であるとか、2進数を30秒以内に読んで入力するのは難しいとか、そんなところでしょうか。

まあ、MFAデバイスとしてみれば、大きいのでなくさないだろうな!ということだけは思います。

このデバイスは、当初公式バッジの提案リストの中にありました。しかしアルコールって別に全員がのむものじゃないよね?アルコールって(どういう扱い方をしても)不謹慎では?マジでMFAにつかわれたらこわくね(耐タンパー性)?みたいな所もあり、わりと早めにドロップしました。でも個人的にはアイディアはお気に入りです。


反知性バッジ

youtu.be

なにも考えずに盛り上がりたい、ピカピカしていたい、そういう時があると思います。

ということでこれです。

説明はいりませんね、なにせ反知性なのだから、Don't think, feel.

技術的な話

https://amzn.to/2zs9Pz4

最近の夜祭でチッカチッカしている子供のおもちゃはこれが入ってると思います。とにかく光る!

お急ぎ便ができるamazonですら一個5円くらいでうってるLEDで、制御チップ内蔵で、正しく電源をつなぐだけできれいな感じになります。本当に最高。

実は、このLEDはある件で3つくらいほしかっただけなんですが、100個入しかなかったっていうね…。

まあでもこれでかなり消費できました、ただ、これのために1kの抵抗を1000本かってしまって、こんどは抵抗があまっています、またLEDを買うしかないのか?

実装は、無心で大量につなぎます。明るさをそろえたかったので必死で並列につないでいます、健気。このあたりも力技というか、知性を感じない、反知性にふさわしい風体。

なお、見た目に反して、別途のマイコンなどは一切無いので、めちゃめちゃ電池がもちます、百均のバッテリーでも多分オールナイトいけるのでは?

スイッチをいれて30秒くらいは、全部のLEDがなんとなく同期しているようにみえて、昔のSFででてきたコンピューターみたいな雰囲気をかもしだしてかっこいいです(子供並みの感想)


フルテン3ワット

大きい音を出す、というのは根源的な欲求でしょう。

ということで、コンパクトフルパワーなスピーカーをつくりました。

モノラルですけど、些細なことです。

ただ、製作者はこれをつくっている最中、仏教音楽をあまりにも大音量でながしつづけ、近隣からおこられるのでは?と冷静になってしまったためにうっかりボリュームなどという余分なものがついてしまったのが残念です。

スピーカーとしてハウジングがないのはありえないと思うでしょう、そんなときはスピーカーを指でくるむようにして上げると結構パワーのある音になります。

自然と「オッケーサイン」になりますので、なにもかもがオッケーです。

技術的な話

USBから5Vをとって、3Wまで動かせるアンプモジュールと、3W4Ωだったっけな、のスピーカーをつないであります。結構音がでかい。

しかしハウジングがないとスピーカーって体感半分くらいになりますね(つまりは1/10くらいなんだろう)紙テープで裏をふさいでわずかに稼いでいますが、まあめちゃくちゃなやり方です、ちゃんとエンクロージャーを用意しましょう。

あと、電磁シールドという概念が一切ないので、ハムノイズがやばいです、楽しい。

なお、ボリュームは本当に後付です。本当はつけないつもりだった。でも、すげーーーーうるさいのでつけた。適当な1kだか10kだかの可変抵抗をむりくりつけたので、操作性はよくないのが欠点です。

なお、このアンプは10枚1000円とかなので本当にやすくてよい。ブッダマシーンくらいしか再生ソースがないので音質はよくわからない(まあノイズがやばい次点で、「このモノについては」お察し、チップは評判が良いらしいが)

なお、これを作っている最中に、「GNDおとしたらノイズへるかな?」と適当につついてアンプを1枚を焼き、1枚を「これこわれてるだろ?」って疑って剥がしてこわしました(実際には電圧不足だった)。ハードウェアはデバッグが大変ですね。


プラグアンドプレイブッダ

www.youtube.com

徳をつみたい。

そう考えた時、経典を読み、読経をし、マニ車をまわします。

ただ、我々はデジタル世代なので、もっと自動化したい。

ということで(?)仏教音楽を再生するプレイヤーをつくりました。

コイン電池二個で動作し、お好きなイヤフォンを刺すだけです。

曲は12曲くらいはいっています、ボタンをおすと次々に変わります。

ボリューム?そういうものはあきらめましょう。ブッダもそう言ってた。

とにかく「徳い」ガジェットです。

技術的な話

仏教音楽チップを小さくしたかった。

本命につないでなんか流す音源がないか?ということでつくりました。

(多分)5Vで動かすのが定格ですが、リチウムコイン電池の3.3v * 2でうごかしています、大丈夫、動きます。

内蔵のアンプ(PWM出力)は本来結構パワーがあるのですが、初戦コイン電池なので電源都合で全くドライブできません、グリッチします。(ハイインピーダンスなイヤフォンなら動きます)

他の機械をつくっているときに、デバッグ用として重宝しました。

なお、このコインケーススイッチがついてて便利なんですが、素材はすごくホットボンドと相性がわるくて、ちょっとすると剥がれて辛い。両面テープがおすすめです。

フォンジャックのプラグ&プラグもつくりました。友人いわく「なんだこのヤベエプラグは」とのことです。


ニルヴァーナ名札

我々は普段涅槃はみません。なので、涅槃がみえそうな名札をつくりました。

キラキラトリップするLEDと、徳の高い音が流れ出ます。

日々の生活の邪魔にならないように首からかけられて便利!

技術的なところ

昔から、ブッダマシーンとか呼ばれる読経が延々ながれるプレイヤーがあります。そのチップだけがaliexpressとかうっています、一枚100円くらい、安い。

https://ja.aliexpress.com/wholesale?catId=0&initiative_id=SB_20190827210629&SearchText=buddist+module+&switch_new_app=y

あとはこれをマイコンにつないで制御します。正直マイコンにつながなくてもいいんですが、そこはまあ、自作の名札ベースボードがプルアップ抵抗つんじゃってるので…。

ボリュームの実装をまちがえていて、ちゃんとボリューム調整がリニアにできませんが、まあ気をつけてれば操作できる。

LEDの光り方はどうするか色々かんがえたんですけど、LEDをみつめつづけて頭痛がしてきたので、適当に3パターンつくって切り替えできるようにしました。この名札は所詮デモ用なので、時限でもきりかわります。

中央からレインボーすると結構いい感じでしょ?


名札ボード

カンファレンスに必須の名札、去年謎ガジェットこと電子名札があまりにもウッディ(木製、実際にはMDFだから紙製?)だったので、本当のPCBをもとめ、本番中国深センまでいってつくってきました。

2mm厚、金メッキという素材を贅沢につかい、名札としての強度を担保しています。とにかく板として目立つ!重厚感!

上部分には「space for rent」とかいて、いつか未来の協賛企業へのアピールもばっちり。

下部には広大な土地を用意して、見ての通り、なんらかを貼り付けたりできます。

裏面はでかでかとしたグラフィックをシルクスクリーンして「アピール」を主張してみました。

実装された基盤には、Neopixelを32個搭載し、zigzag配列。

あとは、やはりボタンもいるだろうと、8個のボタンを、しかもプルアップ抵抗付きで実装しており、いますぐにボードをつかって開発する気分が立ち上がります。

作者は日本でデータ制作し入稿、そして深セン郊外の工場に実際に訪れて手渡ししてもらったのですが、なかなかの感動です。

その感動をあなたにも。

技術的な話

Kicadで書きました、ほとんど初めてに近い経験だったので、なかなか「ほんとにこれでいいのか…?」ってなって不安でしたが、結果として(見ての通り)できました!

まずボタンは8個もいらん。4個もあれば十分。次にプルアップ抵抗をいれたのはべんりっちゃ便利なんですが、逆にHIGHでONにしたい(単なるスイッチとして使いたい)時に困るな…とおもいました。今度つくるときはパターンショートや抵抗を剥がすことでHIGH ONにしやすいつくりにしたいなと思います。

逆に、pixelは8x4は英語も表示するのにつらい、もしやるなら32x32くらいはあったほうがよいですよ。(次つくるならそうする…まあお値段の都合もありますが…)

PCB 2mm厚はすごく強度があっていいのですが、このサイズになると結構重いですね…。名札は思いと肩がこると指摘をもらっていたのに、またやってしまったのか俺は。

なお、実装バージョンは、経験のためにボタンとLEDと抵抗は深セン電気街にもちこんでアセンブリしてもらったものです。一切英語も通じない相手にWechat片手に色々言ってやってもらうのは大変でした。すごくたのしくていい経験です。

ただ、結果としてでてきたものとしてはイマイチ半田の品質も微妙だし(半田ミスもそこそこ多い)、全部Neopixelの方向がまちがってたという有様で、必死にホットエアでリワークしましたのもいい思い出ですね。

まあちゃんとしたところに、ちゃんとした指示で、ちゃんと時間の余裕を持って持ち込むというのが重要です、焦るとダメ。

色々と心残りもあるのですが、楽しかったです!本件では低レベル勉強会に大変お世話になりました、真にありがとうございました!


以下後日談

当日は皆様ありがとうございました!

とにかく色々な方にみていただけましたが、台数ばかりおおく説明ポップなどが不足していて怪しさが強すぎたかもしれません。

本エントリを随時更新してもっとわかりやすくしたいかなと思います。

最後に、REAL FMみたいな一風変わったガジェットをノベルティで配布してほしい!という人は是非リアクションをお願いいたします!

反応の大きさが、やはり協賛のお願いには重要です(あるいは、レスポンスがない=我々が明後日を向いている事の認識にもつながるのですが!)

今回本当に面白かったなと思っており、場を提供頂いた builderscon tokyo 2019 に感謝したいです、ありがとうございました!