キノコの自省録

テクノロジーとコンテンツの融合を目指して

IoT智絵里アラームを作ろうと思う(7) - 動画投稿しました

動くようになったので、動画編集して投稿しました。

ソフトに関しては、今のところGitHubにアップする予定です。 一応説明エントリも書く予定。

とりあえずアラームとしての最低限の機能は持ってますが、ぶっちゃけこれじゃツマランとも思ってます。

IoT智絵里アラームを作ろうと思う(6) - デコレーション編

前回の続き。

ただの木箱では寂しいので、装飾を施します。

工程1 ニス

完全なる生木だったので、ウレタンニスを塗りました。実は結構前に塗りました。2度塗りしています。

f:id:kinokorori:20180304234418j:plain:w300

工程2 草

脚の土台に草を敷いてみます。100均(DAISO)で買ってきた人工芝です。

f:id:kinokorori:20180505172609j:plain:w300

接着には3Mの超強力両面テープを使用。本当に強力です。全くはがれません。敷いた様子がこちら。

f:id:kinokorori:20180505173937p:plain

右奥に出っ張っているのがスヌーズボタンです。箱手前の鳥型のオブジェは、100均(Seria)で買った画鋲です。Seriaはこんな感じのインテリアプッシュピンを結構種類取り揃えているみたいです。これは形の違う画鋲が4個ついて100円。うさぎのピンもあったんですが、歪んでいたので鳥にしました。

工程3 箱のロック

蓋が簡単に開いてしまって危ないので、何かしらの手段でロックします。マグネットロックを最初に考えたんですが、電子基板に影響与えそうなので見送り、ロック付き蓋止めは箱が小さすぎて収まらず。ということで、中央にリベットつけて、蓋の両端をから紐でロックする方針にしました。

リベット代わりに使用したのが先ほどの画鋲です。紐にタコ糸を考えたのですが、あまりにも変なので、チェーンに変更。こんな感じです。

f:id:kinokorori:20180505174954j:plain:w400

f:id:kinokorori:20180505175301j:plain

チェーンは100均(CanDo)、留め具(真鍮ヒートン)は東急ハンズで1袋120円くらいで購入しました。チェーンは買った状態では長すぎたため、適当にカットして使用しています。

工程4 スヌーズボタンのボタントップ変更

ボタンが思いっきり上に出ているのは変なので、100均(DAISO)で買ってきた小型のうさぎのぬいぐるみを接着。ボタントップに3Mの超強力両面テープを使用。

f:id:kinokorori:20180505175917j:plain:w300

ぬいぐるみ単体の写真撮り忘れましたが、この後登場します。

工程5 花を接着

草だけでは寂しいので、花を敷きます。花も適当に100均で買った造花です。どこで買ったか覚えてませんが、100均なら種類が違えど、大体どこでも売ってます。

f:id:kinokorori:20180505180253j:plain

先ほどの花を適当にカットして、ドリルで土台に穴を開けて、グルーガンで花を接着という作業を繰り返します。

f:id:kinokorori:20180505180306j:plain

あ、ちなみに先ほどのスヌーズボタンのうさぎはこれです。

最終版

今のところの最終形態はこちら。

f:id:kinokorori:20180505180838j:plain:w500

うーん、少し花が寂しいですね。前面が空いているのは、ちょっと今後拡張を考えてのことなんですが。まあ少なくともIoT機器には見えないでしょう。個人的には、「私機械です」みたいな外観ってあんまり好きじゃないので……

全体像はこちら。

f:id:kinokorori:20180505181636j:plain:w500

残るはソフト

実はソフトも大体完成していて、この段階でもうある程度アラームとして動いています。自分はソフト屋な分、特に迷いもなくサクサク作ってしまうので、あ、終わったみたいな感じです。そのうち記事にします。

IoT智絵里アラームを作ろうと思う(5) - 電子回路実装編2

前回の続き。

スピーカー・アンプ回路やり直し

スピーカー、アンプ回路ですが……

  • どこか接触が緩いのか、音声が途切れ途切れになることがある
  • 立ち上げると、プツプツノイズが断続的に発生する
  • トランジスタのベース電流を一度カットしないと再生できない
  • やり直ししすぎて実装が意味不明
  • スピーカーのワイヤーが長すぎて邪魔
  • 音声ノイズ対策用コンデンサの組み合わせがイマイチ

ということで、やり直しました。。。

やり直した基板はこちら。やり直しに加えて複雑な回路というわけでもないので、割とすぐ実装できました。これで上記問題はほぼ解決。

f:id:kinokorori:20180505124234j:plain:w600

ただ、突入電流が弱いのか、一度MuteをOn(トランジスタのベース電流をカット)しないと、一発目が再生できないという問題は残りました。オシロで色々チェックすると、ベース電流が足りてないような感じがします。時折、電圧がガクンと落ち込みます。むむ。今回利用したトランジスタは、単に手元にあったという程度で、あんまり深く考えずに使ってます。まさかこんなことになるとは。

とはいえ、再生時以外はMute状態だし、特に問題はないので今回はこのまま。

ノイズカット用コンデンサは、22p, 0.1u, 33uの組み合わせです。これでほとんどノイズが聞こえなくなりました。

スイッチ類やり直し

いろいろグネグネやっているうちに骨折しました……。

スイッチ(スヌーズ+アラームOn/Off)側の片足に220Ωの抵抗を直接はんだ付けして、熱収縮チューブで覆っていたのですが、思いのほかこれが邪魔で、ケーブル同士が狭いスペースで喧嘩しあっていました。そもそもワイヤーも長すぎて邪魔ということもあったので、一度完全にやり直し。

スイッチ受け用のポスト基板を作って、スイッチに圧着したXHコネクタと接続するようにしました。これで骨折事故は防げる見込み。微妙に邪魔だった抵抗も、この基板上に実装。

電源やり直し

ラズパイ用電源のやり直し。前はベース付きポストにワイヤーをはんだ付けして中継していたのですが、これだと弱すぎてすぐ骨折してしまいましたので、方針変更。USBのワイヤーが細すぎるという問題もあります。

そこで、USBケーブルを、圧着コネクタで繋ぐか、DCプラグをくっつけるか迷ったのですが、USB AにDCプラグは変かなと思い、ワイヤーを圧着することにしました。100均で買ってきたUSB Aは線が細すぎる(上になんとシールドがない!)ので、USB A組み立てキットに、そこそこ太さのあるワイヤーをはんだ付けして、コネクタを圧着しました。


uxcell USB2.0プラグ USB 2.0 タイプAオス 45 x 17 x 9mm  4 ピン DIP 15個入り

ラズパイ側から伸ばしたコネクタもコンタクト圧着なので、ベース付きポストを2つくっつけたジェンダー変換基板を間に挟んで差し込むようにしました。 これで骨折事故はだいぶ防げると思います。

最終形態

以上の修正を加えて、箱に収めた写真がこちら。

f:id:kinokorori:20180505124548j:plain

箱右上部にくっついているのがスイッチ用ベース付きポストを取り付け、左奥が電源のジェンダー変換基板。

こうしてみると、結構隙間がありますね。取り付け用の機構を作って、機構ごとスポっと収めるようにしておけばよかったかも。

IoT智絵里アラームを作ろうと思う(4) - 電子回路実装編

前回の続き。

前回、箱に納まるよう部品を色々調達したので、今回は粛々と実装。

とりあえず、最終的な回路はこちら。 この通り、回路自体はかなりシンプルなので、はんだ付けと圧着を間違えないようにやるだけなんですが、思った通りに動かないとはままあることで……。

f:id:kinokorori:20180414145559p:plain:w600

スイッチピンはPullUpで、GNDに落としてOnとしてます。3.3Vで50mA以下という制約から、割と一般的な220Ωを採用しました。ちなみにラズパイのPullUpの内部抵抗が1.3KΩくらいらしいです。

D級アンプのPAM8403は、チップそのものではなく、モジュール品です。10個220円で買いましたが、HiLetgoが日本法人作った影響か、すぐ届くようになった代わりに値段が上がりました。

HiLetgo PAM8403 2 * 3W クラスD ミニ デジタル パワー アンプボード AMP 2.5-5V入力 (10個セット)

アンプがぷつぷつ言う問題

今回一番困ったのが、アンプがプツプツ音を出して、再生してくれないことが多い、という問題でした。波形をPWMから送っても、プツプツ言っている間は全く再生せず、圧着ハウジングの辺りを下に引っ張ると直って再生したりと、なんだかよくわからない現象。

どうもパワー切れを起こして、不安定になっている様子。上の回路では、47μFのケミコンが実装されてますが、最初は10μFで、1つしか差してませんでした。ということで、47μFのケミコンを追加。

さらっと書きましたが、前回のエントリの通り、小さい基板に実装しなければならないので、修正は容易ではありませんでした。しかも結構原因がわからず、コンデンサを付け替えたり、配線やり直したりと。

ただ、ケミコン追加してもまだ少し不安定で、一度ミュートをOn(ベース電流を流さない)にしないと再生が安定しません。うーん、ブレッドボード上では何の問題もなかったので油断してました。もう少し大きめのコンデンサを実装したいところですが、縦にも横にも隙間がないため断念。もう少し早く気づけば手の打ちようはあったのですが。ただ、とりあえず起動時にMute Onに変更するからまあ良しとします。

電源用USBケーブルの芯細すぎ問題

RaspberryPiはご存知の通りMicroBで給電できますが、Microといっても意外とコネクタはそこそこ大きさがある上、硬くて場所を取ります。MicroBコネクタが通るよう箱に大穴を開けるようなことをあまりしたくなかったことと、MicroBは引っ張ると抜けやすいので、MicroBをカットして圧着コネクタ(XH)を装着することにしました。

ということで、百均でTypeA - MicroBケーブルを買ってきて、MicroB側を切断、圧着端子のポスト側にはんだ付けをしたのですが、芯がめちゃくちゃ細いです。ちょっと引っ張っただけでポストから取れてしまいます。

対策は現在検討中。策はあるので、どれにしようかというところ。

その他

ラズパイはソケットを上から被せる格好になってます。そうすると、ソケットの逆側(要するに天井)からワイヤーを引っ張る必要があります。結構面倒くさいです。

確認したはずなのに、トランジスタの足を間違えるのはお約束……。

完成品

こんな感じになりました。

f:id:kinokorori:20180414222321p:plain:w500

右側のコネクタはスヌーズとアラームスイッチに、左側のコネクタは+5Vに繋がります。スピーカーモジュールも、ラズパイ側と着脱可能なように、XHコネクタで接続しています。

別に何の変哲もない圧着の様子をパシャリ。エンジニアのPA-09です。

f:id:kinokorori:20180321145432j:plain:w550

ということで、一通りハード系は完成といったところ。。。疲れました。もう少し取り付け作業を行って、残るはソフトとデコレーション。

IoT智絵里アラームを作ろうと思う(3) - 電子部品調達編

前回の続き。

前回紹介した通り、中に実装する回路は大まかにこんな感じ。

f:id:kinokorori:20180324162958p:plain:w250

回路自体はかなりシンプルなものの、これを百均の木箱に取り付ける部品選定に難儀。

f:id:kinokorori:20180304152939j:plain:w300

箱が小さい

この箱、外見はそこそこサイズあるように見えるんですけど、中は結構狭いです。

f:id:kinokorori:20180328220513j:plain:w400

実測すると、W87mm x D61mm x H22mmでした。Cタイプのユニバーサル基板より、一回り大きい程度のサイズです。 紙で表現するとこんな感じ。

f:id:kinokorori:20180328221111j:plain:w400

幅はそこそこありますが、奥行きと高さが厳しいです。この中に、

  • RaspberryPi Zero W
  • RaspberryPi Zero W用ピンソケット取り付け基板
  • RaspberryPi用電源+5Vケーブル
  • プッシュスイッチ (スヌーズ用)
  • アンプ回路 (ミュート含む)
  • スピーカー
  • トグル系スイッチ (アラーム自体のOn/Off)
  • 抵抗、コンデンサいくつか
  • ワイヤー、圧着コネクタ

を頑張って配置します。各モジュールを全部直はんだ付けしてしまえば省スペースになりますが、それするとにっちもさっちもいかなくなるので、圧着コネクタも必須です。

部品

プッシュスイッチとトグル系スイッチ、スピーカーは、少なくとも箱に入るサイズじゃなきゃ困るので、結構いろいろ買いました。電流はほとんど流さない(3.3V 30mA)ので、本当にサイズ次第です。

On/Offスイッチ

On/Offスイッチなので、スライド、ロッカー、トグルあたりが対象ですが、On/Offが目で見て分かりやすい方がいいので、ロッカースイッチを中心に探しました。この画像はボツ品です。理由はサイズが箱に対して大きすぎる、というだけです。一応ギリ嵌らなくはないものの、あまり大穴を開けると強度が心配。たぶん、ちょっと力が入るとボキッといきます。

f:id:kinokorori:20180328230930j:plain:w300

最終的に選んだのは、15mm x 10mmのスイッチ。結構小さめです。たぶんこれと同じだと思います。

プッシュスイッチ

プッシュスイッチは天板につけるので、サイズは結構余裕がある……と思いきや、底が浅いということを改めて気づかされる事態に。画像はよく見かけるゲームスイッチです。今回は全部採用見送り。右と左は高さが大きすぎるため、蓋が閉まらなくなります。中央も、ピンを曲げればギリ入る程度。ただ、流石に径が大きすぎて、超大穴が必要になってしまいます。

f:id:kinokorori:20180328232755j:plain:w400

スヌーズ用ということもあり、ある程度のサイズがあり、かつ押しやすさ加減が丁度いい品じゃないと、あまり芳しくありません。いろいろ押して回った結果、最終的にマル信無線電機 MS-370M(緑)にしました。割と押した感じが良く、高さもなんとか納まります。縦横が少し小さめですが、そこは上に何か置いて、見かけを大きくする予定。

f:id:kinokorori:20180328233621j:plain:w120

スピーカー

スピーカーも、小さい方が当然取り付けが楽なのは確かなんですが、音が小さかったり割れたりすると、今度はアラームとして意味がなくなってしまいます。色々視聴してみた結果、φ2.5cmでギリ音が許容レベル、かつこれ以上大きいと取り付けが厳しいというところで落ち着きました。

f:id:kinokorori:20180329000701j:plain:w220

ただ、これ磁石が後ろに出ているため、取り付けが厳しい中で絶縁が心配ではあります。表面実装スピーカーでもよかったかもしれないなどと思っています。私は音響波形の解析は結構経験多いんですけど、スピーカーに関する知識はかなり乏しいです。他に良いのがあったら、もしかしたら変更するかも。

RaspberryPi Zero W用ピンソケット取り付け基板

ラズパイのピンにはんだ直付けする実装は流石にナシなので、ユニバーサル基板に2x20ピンソケットを取り付けて拡張します。ユニバーサル基板はフリスクサイズのこれ。

ユニバーサル基板 56.5×32mm: パーツ一般 秋月電子通商 電子部品 ネット通販

そしてまたしても高さの問題が浮上。ラズパイ+ピンソケ付きユニバーサル基板を合わせると、天井まで5mmしか隙間がありません。なので、ユニバーサル基板に実装できるのは、せいぜいワイヤーか1/4W抵抗程度、ケミコンは寝せないと蓋が閉まらなくなります。EH/XHコネクタですらサイズオーバーになります。厳しい。

アンプ回路

基本はD級アンプPAM8403を実装したモジュールを使用します。10個220円で買いました。今は倍以上しますね。それでも10個550円。これにPWMと5VをRaspberryPiから入力して使います。

HiLetgo PAM8403 2 * 3W クラスD ミニ デジタル パワー アンプボード AMP 2.5-5V入力 (10個セット) [並行輸入品]

これは薄べったいし、あまりサイズも大きくないので、ラズパイの隣に配置できそうな感じ。こちらは高さは問題ないでしょう。たぶん……。

配置確認

天板に穴を開け、スヌーズスイッチの嵌り具合も確認。

f:id:kinokorori:20180329001326j:plain:w300

ゾリゾリ

部品を箱に仮配置して、まあ行けそうかな、というところ。次回はたぶん電子回路作成編。

IoT智絵里アラームを作ろうと思う(2) - ソフト・ハード概念設計編

前回の続きです。智絵里フィギュアの土台に電子回路入れて、目覚ましを作ろうプロジェクト。

目覚まし概要

目覚まし時計なので、時計表示やアラーム設定ができるディスプレイ、操作ボタンなどなど必要かな、と考えたのですが、 欲しいのはアラームであって、時計ではないのです。別に現在時刻を見る必要はないし、何らかの手段でアラーム時刻が設定できれば良い。そして、設定した時刻にアラームが鳴れば十分です。へんてこなボタンがゴテゴテついたら嫌なので、できればバッサリいきたい。

ということで考えたのが、スマホから設定できればいいや、というインタフェースです。どうやってアラームを設定するか?というところですが、いくつかの実現手段があります。BLE通信する、カメラで2次元バーコードを撮らせる、Webサーバを立てる、赤外線通信(これはiPhone側にないですが)、音声認識など。今回は一番楽で拡張性も容易なWebサーバでやります。RaspberryPi ZeroWを中に入れる予定なので、外部のどこか適当な場所にサーバを立てるのではなく、目覚まし自体をWebサーバにしてしまいます。RaspberryPiは家のWiFiに繋いでしまえば、同じネットワークドメインなら自由にアクセスできます。

要するに今流行りのIoT機器ということですね。IoT智絵里アラーム。

物理的なブロック構成は、以下のような感じになります。Webサーバはなんでもいいんですが、割と使い慣れたNode.jsでやります。

f:id:kinokorori:20180324162831p:plain:w600

目覚ましのペリフェラル

ディスプレイと、アラーム設定用ボタンは要らないですが、かといって全くインタフェースが要らないかというと、それも困ります。スヌーズボタンと、アラームOn/Offボタンくらいはないと、アラームとして機能しません。もちろん、スピーカーとアンプ回路も必須です。

以上を踏まえた最低限必要な機器構成は、以下のようになります。一見シンプルですが、ボタン2つにスピーカーと、大物が3つあるため、箱のどこに取り付けるか考える必要が出てきます。なお、図のピン配は適当です。

f:id:kinokorori:20180324162958p:plain:w400

ということで、これを前回の箱の内部に取り付けていきます。

f:id:kinokorori:20170906212353j:plain:w300

フィギュアに電子回路を取り付けて目覚ましにする

フィギュアやプラモ(特にガンプラ)ってエレクトロニクスと抱き合わせると、もっと面白く、表現豊かになるんじゃないかなと、前々から漠然と考えてました。といっても、実際に駆動させるとなると、それは材料からやり直しになる上、造形師の協力が必要なので、流石にそこまでのことはちょっと厳しいですが。ちなみに、この分野に真剣に取り組まれている、スピーシーズという会社があります。私はこの手の機構設計は全くさっぱり知識がないものの、興味はあります。ちょっとやってみたい。単純に面白そうだし、夢がある感じ。

HOME of Speecys Kichijoji Design Studio

今回は、もっと難易度を落として、フィギュアの土台をデコるついでに、土台の中に電子基板を入れて、ちょっとした機能を追加してみようと思います。それでも、結構面白い試みになるんじゃないかと思ってます。

台座って自作している方が多いみたいで、探すと多数見つかります。アクリル台座が多い印象。

何を作るか

とりあえず土台を何かの箱に差し替えて、中に基板を入れます。どういった機能を実装するかですが、今回は目覚まし機能を入れようと思います。目覚ましなら、キャラクターボイスが生かせますし。

対象と台座

この智絵里フィギュアを改造します。

あれ、今売ってるのって、アクリル台座なんですかね?手持ちとちょっと違います。しかもなんか値段が上がってますね。。。それはさておき、智絵里の見た目で、智絵里ボイスの目覚ましを作るということです。こりゃすげえ。

手持ちの台座は至ってシンプル。ABS樹脂ですかね?取り外しも簡単。中央の穴に足の先を挿入して立たせる感じです。

f:id:kinokorori:20180324140502j:plain:w300

代わりの台座は100均で買った、この木箱を使います。キャラ的に木材の方が合うかと思ったので。この中に回路を取り付ける予定。

f:id:kinokorori:20180304152939j:plain:w300

台座の穴あけ

採寸した足の穴を開けて、ヤスリかけて終わり。簡単です。穴は彫刻刀で開けました。ドリルや糸鋸使うなど、いくらかやり方がありますのでお好みで。

f:id:kinokorori:20170906211051j:plain:w300

ばっちり立ちます。鉛筆や削りの汚れがありますが、上にカバーかけてデコる予定なので無問題です。

f:id:kinokorori:20170906212353j:plain:w300

次回はソフトウェア・ハードウェアの設計のお話になると思います。