はじめに

どのような城を思いつきましたか! そして、トリッキーなキー、数字の組み合わせ、そして身体の部分の認識が必要です。 しかし、私はまだ会っていない城を作りたかった。 私はピアノを弾くのが好きなので、私はそのアイデアに遠くに行く必要はありませんでした:おなじみのメロディーを「聞いた」後にのみ開くを作ることに決めました。
この投稿では、メロディ認識アルゴリズム、制御回路、およびcreatingの作成プロセスについてお話したいと思います。
どうした
メロディ認識
ご存知のように、私たちが音として知覚するものは、鼓膜への空気の衝撃とみなすことができます。 彼は空気を押した-彼は神経を登録しました。 私たちがメモとして認識していることは、一定の周期の震えと考えることができます。 言い換えれば、この神経を毎秒130回くすぐると、「do」の音が「聞こえ」ます。
メモを認識するデバイスは、1秒あたり何回マイクがくすぐられたか、どの周波数になったか(したがってメモ)を理解しようとします。 周波数から音への移行は簡単なことです。 「周波数→音」という表があります 。
マイクのデータを周波数に変換するアルゴリズムはいくつかあります。 最も有名なのはフーリエ変換です。 操作の原理は次のとおりです。入力に力が加えられると、空気が各瞬間にマイクを押します。 出力は、どの程度の周波数が含まれていたかです。 彼の作品は写真で最も簡単に説明されています。

したがって、音符の認識を実現することが可能です。 時間ごとに、どの周波数が最も大きいかを判断します。 予想と一致する場合は、次の音の認識に進むか、メロディが終わったらロックを開きます。
しかし、私たちは反対に行きます。 どの特定のノートが演奏されているかを知る必要はありません。 現在再生中のノートが再生されているかどうかを確認する必要があります。 Goertzelのアルゴリズムが助けになります。 このアルゴリズムは、トーンを決定する必要がある場合に電話で使用されます。 一番下の行は簡単です。アルゴリズムには、マイクからの希望の周波数とデータが与えられ、希望の周波数の「音量」が何であるかを答えます。
NoteDetector.cppファイルのアルゴリズムの実装を見ることができます。
コンポーネントの選択
かなり標準的なコンポーネントに決めました。 便利なものは次のとおりです。
16Mhzチップを搭載したATMega328Pは、デバイスの頭脳です。 彼と仕事をするだけで痛いので、選択は彼にかかった。
OPA344アンプ付き エレクトレットマイク -これら2つのデバイスは、Sparkfun Webサイトの単一ボードでキットとして販売されていました。 このデバイスからのデータは、マイクロコントローラーのアナログ入力から直接読み取ることができます。

このモーターは、航空機のモデリングの世界で一般的に使用されています。 私の知る限り、それらはエルロン偏差によって規制されています。 メーカーのウェブサイトでそれについて読むことができます。
TPS2020サーキットブレーカは、電源を切ったときの消費電力が非常に低い(10μA)優れたサーキットブレーカです。 彼はサーボのパワーを管理します。
LM2936Zは、動作点で小電流(≤15μA )の3.3Vリニアレギュレータです。 バッテリーで駆動されるデバイスに必要なもの。
MAX1555充電器は、バッテリ充電を制御し、バッテリがいっぱいになると点滅するチップです。
スキーム
デバイスの回路には特に複雑なものはありません。 ここで完全なアウトラインを見つけることができます。 そして、これはコンポーネントがそれと関係していることを説明する簡単な図です:

ボードを小さな箱に収まるように配置することは非常に興味深いことがわかりました。 自宅ですべてを自分でやることにしたので、多層基板のオプションは適合しませんでした。 そのため、偽の多層基板を考え出す必要がありました。デバイスは、Arduinoのシールドとして接続する2つのレベルで構成されています。 次のような結果になりました。

青い接続は、ボード自体の接続です。 赤は、後で追加するもので、ボード上にネームプレートまたはワイヤーが付いています。
ボード作成
私はフォトレジストの作成方法を使用することにしました。 私はそれをhabrで説明したので、私はほんの2、3の写真を提供するだけです。
スキームを透明フィルムに印刷し、ボードのベースを切り取ります。

錫メッキおよび穴あけ前の料金:

一方でボード:

一方、ボード:

収集されたボード:

一方、

ket作り
ボックスは、ボックス自体と、回路とモーターを囲む壁で構成されています。 未完成の箱を購入して、塗料とワニスで自分で覆うことにしました。 Ponokoの Webサイトで壁とアクセサリーを注文しました。SVGで図面を送って、薄い合板でレーザーでカットできます。 図面はここにあります 。 この図面の外観と実装は次のとおりです。

プラス3週間:

これらの部品がボックスに統合された後、次のようになりました。

これで、ボックスに色を付け、ニスで覆うことができます。 何世紀にもわたって、私はペンキを2回塗り、ワニスを2回塗りました。 おそらく、このプロセスには特に複雑なことは何もありません。 木を非常に高品質に剥く必要がない限り、釣りをした場所がはっきりと見えます。 起こったことは次のとおりです。

ロックメカニズムは次のようになります。

結果
その結果、回路は完全にボックスに収まります。

私はこのクラフトを数人の友人に持ち込みました。正しいメロディは、さまざまなピアノで認識されます。電子ピアノ、普通のピアノ、ピアノです。 認識精度:半トン。
コントローラのソースコード、回路、ボードの図面は、 Google Codeにあります。 どんな質問にも答え、批判や提案に耳を傾けます。
