Arduinoライト&ノック検出ドアロック:4ステップ

Arduinoライト&ノック検出ドアロック:4ステップ

目次:

Anonim

これは秘密のクラブハウスにとって、そしていつも自分の鍵を失うように見える私のような人々にとって素晴らしいガジェットです。このプロジェクトは、以下の主な変更を加えたGrathioの指導によるオリジナルのSecret Knock Lock(下記参照)に基づいています。

1)周りにいる人があなたのノックを聞き取ることができるときのための第二の秘密の入力を持っています。今すぐフォトダイオードはのぞき穴を通して「フォトノック」(光フラッシュ)を登録することができます!

2)それにドアの鍵を開けることおよびロックすること両方を可能にするHモーター橋を含んでいます(モーターを渡る電圧の方向を変えます)

3)プログラミングは平均(バックグラウンド)ノイズ/サウンドレベルを記録し、それに応じて感度(しきい値)を調整します

***ここに記載されている情報はGrathioの指示からのものです。 Grathio Labsは、このような包括的なガイドを他のユーザーも利用できるようにしてくれたことに感謝し、感謝しています。電子機器のプログラミングと配線の手順を説明してから、GrathioのPVCドアマウントの作成手順の手順に進みます(残念ながら、まだ機能的なケースを作成中です)。

Grathio独自のKnock-Lockインストラクターについては、http://www.instructables.com/id/Secret-Knock-Detecting-Door-Lock/を参照してください。

用品:

ステップ1:道具、備品、そしてスキル

スキル:

このプロジェクトを完了するには、次のことができる必要があります。

基本的なはんだ付けをする。

回路図を読みます。

マイクロコントローラについてある程度の知識が必要です(私はArduinoを使用します)。

即興

ツール:

ドリル(理想的にはドリルプレス)とドリルビットの品揃え。

PVCパイプを切断することができると見ました。 (つまり:かなり見たことはありません。)

はんだごてとはんだ

ペンチ。

スクリュードライバー

熱収縮チューブおよび/または電気テープ。

ワイヤーストリッパー

安全メガネ。

手袋。

あなたが便利であると思うかもしれない他のもの:定規/巻尺、マルチメータ、ブレッドボード、いくつかのテープ、魔法のマーカー、紙やすり、ファイル、熱い接着剤。そして、あなたが私のようなものであれば、品揃え豊富な応急処置キットです。

材料:

エレクトロニクス:

1 Arduino Uno(または類似の)マイクロコントローラー

高トルクの1 12Vギア減速モーター

1つの小型マイク

1 SPSTの一時的な押しボタン。 (通常は「オフ」/「オープン」)

1つの赤いLED

1個の緑色LED

1フォトダイオード

1 4倍ハーフHブリッジSN754410NEチップ

1 100kオーム抵抗(1/4ワット)

110kΩ抵抗(1/4ワット)

11MΩ抵抗(1/4ワット)

2 560オームの抵抗器(または5Vであなたの赤と緑のLEDを動かすものは何でも)

パフォーマンスボード1枚5×15以上の穴。

Arduino用1 12Vウォールアダプタープラグ

はんだ付けする前に回路を設定してテストするためのブレッドボードを用意することもお勧めです。手順3でこれを行います。

場合:

(このデザインはGrathioのソースから直接来ています。)

20 "PVCパイプ1/2"

3直角1/2 "PVCコネクタ。

1 5ウェイ1/2インチPVCコネクタ。(例)

2 1/2 "PVCエンドプラグ。

3 1 1/2 "サクションカップ(金物店や工芸品店で利用可能です。)メモ:ドアがサクションカップに適していない場合は、3つのエンドキャップを取り付けてください。粘着ストリップまたはネジを使ってロックを取り付けることができます。

幅1/2インチ、厚さ1/64インチの金属ストリップ(鋼、錫、銅など)6インチ(ハードウェア、工芸品、画材の販売店で入手可能)

幅4.5cm、幅1インチの金属板、厚さ1/32インチ(スチール、錫、銅など)(金物類、工芸品、美術品店で入手可能)

ナット付きの2 3/32 "x 3/8"ネジ。 (小さいものが見つからない場合は、1/8 "でもうまくいきます。)

2 1.6M(メートル)の16mmネジ。あなたがそれらを見つけることができるならば、理想的に皿頭で。 (モーターを固定するために。モーターの仕様を確認して、必要なねじを確認してください。1つのモーターで1.6M、2Mで試してみました。おそらく、長いモーターを購入し、必要な長さに切断する必要があります。)

1個の大型サクションカップ(フォトダイオード用)

ステップ2:Arduinoをプログラムする

電子機器を使用する前にスケッチをアップロードしておくとよいでしょう。コードは以下に添付されており、全体を通してコメントがあります。このステップではArduinoソフトウェア/ドライバをインストールする必要があります。

1)添付ファイルのダウンロード

2)ArduinoをコンピューターのUSB入力に接続してください。

3)Arduinoスケッチでファイルを開き(または問題がある場合は、ファイルを.txtに変更してコードを空のスケッチにコピー/貼り付け)、コンパイル/検証します。

4)Arduinoにアップロードしてください。

これからのステップでは、コードの特定の部分に関するトラブルシューティングのヒントを提供します(特定のパラメーターを各システムに合わせて調整する必要があります)。コードの詳細に興味がある人のために、私は以下に要約を含めました。スケッチはいたるところでよくコメントされていますが、それはかなり大きいファイルであり、時々解釈するのが少し不器用です(これをよりエレガントにするために気軽にコメントを送ってください)。

4〜33行目:コードで使用するArduinoのピン、定数、および変数を定義します。

- あなたはおそらくあなたの特定のドア/システムのためにこれらを微調整したくなるでしょう。私はこれを通してあなたを導きます

行35〜47(設定):ピンモードを定義し、シリアルモニタリングを開始します

49〜84行目(ループ):ノック(点滅)を聞くのを待つときの回線の動作を定義します。

- ここで、バックグラウンド/平均化機能を設定します。これは、データを継続的にサンプリングし、それに応じてしきい値を調整します。光または音の信号がしきい値を超えて登録されている場合は、 "listenToSecretKnock"を実行します。

86〜161行目(listenToSecretKnock):マイクによって登録されたノックを記録します

- ノック間の時間(遅延長)を配列に記録し、そのデータをvalidateKnockに送信します。このセクションの一部は、登録されているノックに合わせて点滅するLEDインジケーターを指示するためのものです。ロックが確認されると、 "doorState"(私たちが最後にロックされたのかロック解除されたのかを示す)に応じて、ドアはドアをロックまたはロック解除します。

163〜238行目(listenToSecretPhotoKnock):フォトダイオードによって記録されたフラッシュ光を記録します

- 基本的には86-161行目と同じですが、現在はフォトダイオードの信号/パラメータがあります。あなたがコードをもう少し合理化することを考えているなら、これは開始するのに良い場所です、それはそれが以前に使われたことの多くを繰り返すので(私の仕事リストに)

239〜255行目(triggerDoorUnlock):ドアのロックを解除するためにモーターをオンにする

- このセクションを理解することはhブリッジの振る舞いを知ることと関係があります。そして、それはモーターにかかる電圧の方向を決定します。あなたはもっと理解するためにあなたのチップのためにスペックシートを調べたいかもしれません(これは私が使ったものでした:http://html.alldatasheet.com/html-pdf/28616/TI/SN754410NE/24/1/SN754410NE.html )

257〜272行目(triggerDoorLock):ドアをロックするためにモーターを逆回転させる

- このセクションでは、いくつかのコーディングも繰り返しています。

274〜349行目(validateKnock):記録されたパターンがキーと一致するかどうかを確認します。

- これは各ノックを最も長い休止時間に正規化し、ノック間の相対間隔を比較します。これは、同じパターンをゆっくりまたは速くすることができることを意味します、そしてそれはまだモーターを引き起こすべきです。

ステップ3:ブレッドボード上の回路のテスト

すべての電子機器をブレッドボードに接続し、すべてがうまくいくことを確認します。ブレッドボードの回路図とレイアウト図は上の画像に添付されています。配線中に電源からあなたのARDUINO /回路を引き抜くために無意識のうちに触れることを忘れないでください、そして忘れないでください!

1)マイクを配線する

マイクに12インチ(30cm)のリード線を半田付けします。アナログピン0とグランドの間にそれを接続します。また、アナログピン0とグランドの間に1MΩの抵抗器を取り付けます。

テスト:Arduinoをコンピュータに接続した状態で、スケッチウィンドウの右上にあるシリアルモニタウィンドウを開きます。 「プログラム開始」というテキストが表示されます。マイクをタップすると、タップするたびに「ノック開始」と「ノック」と表示されます。 1、2秒停止すると、おそらく「シークレットノックが失敗しました」と表示されます。ひげ剃りとヘアカットをタップしてみて、「ドアのロックが解除されました」と表示されるかどうかを確認してください。メッセージ!次に、arduinoはドアをロックするための信号を聞いています。これのためのデフォルト(コードで変更可能)は4つの等間隔のノックです。

トラブルシュート:

- 何も表示されない、またはシリアルモニタリングからのジャンクがない場合は、シリアルポートが9600ボーに設定されていることを確認し、電源をリセットしてください。

- ノックパターンの認識/検証の感度を調整するには、 "rejectValue"と "averageRejectValue"の値を使用して遊びます(13行目と14行目)。個々のノックがrejectValue(パーセンテージ)を超えてオフになった場合、またはノックの平均タイミングがaverageRejectValueを超えてオフになった場合、arduinoはノックを検証したりモーターをトリガーしたりしません

- 1回のノックが2回以上登録されている場合、または2回のノックが同じノックとして登録されている場合は、 "knockFadeTime"(15行目)を調整します。タイマー)。

2)フォトダイオードを配線する

アノード側(通常は短い方のワイヤのもの)を5Vに、カソードをアナログピン3に接続し、100Kの抵抗を介してグランドに接続します(回路図を参照)。

テスト:あなたのフォトダイオードに光のフラッシュを当ててください、そして、あなたが光をフラッシュするたびにあなたはテキスト「フォトノック開始」と「フォトノック」を見るべきです。マイクタップを使ったときと同じ「ひげそりと散髪」のパターンで光が点滅してみてください。

トラブルシュート:

- ダイオードのライトを点滅させても何も見えない場合は、100k抵抗の両端の電圧をテストし、予想通りに動作していることを確認します(ライトが飽和しているときは+ 5V、暗いときは0になります)。 。

- 1つのフラッシュが複数回登録されている、または2つのフラッシュが1つとして登録されている場合は、「photoknockFadeTime」を調整します(16行目)。

3)LEDを配線する

何が起こっているのか見るためにシリアルケーブルを使う必要がないようにいくつかのLEDを配線しましょう。対応する560Ωの抵抗を直列にして、赤色LEDをデジタルピン4に、緑色LEDをデジタルピン5に接続します。

テスト:あなたが回路に電源を入れるならば、緑色のLEDは各ノックのために瞬間的に点灯して薄暗くなるべきです。 arduinoが正しいシーケンスを確認したら、緑色のLEDが数回点滅します。間違ったシーケンスは赤いものを点滅させるはずです。

トラブルシュート:

- LEDとすべての接続の極性を確認してください。あなたのLEDは5Vで動作するために異なる抵抗を必要とするかもしれません、それらが薄すぎるかオフであるならあなたは抵抗を下げることを試みることができます。

4)プログラミングボタンを配線する

はんだ8 "がボタンにつながります。ボタンの片側を+ 5vに接続します。ボタンのもう一方のピンをデジタルピン2に接続し、10Kの抵抗を通してアースに接続します。

テスト:電源を入れます。ボタンを押すと赤いランプが点灯します。ボタンを押しながら簡単なシーケンスをタップします。プログラミング中にタップすると両方のLEDが点滅します。終わったら、たった今タップしたパターンが両方のライトで繰り返されるはずです。再生が完了すると、新しいノックコードが保存され、ライトが赤と緑に交互に点滅します。

トラブルシュート:

- ボタンが押されていない状態で抵抗を記録するために抵抗計を使用して、ボタンが通常開いている(「瞬間的に閉じる」)ことを確認します。これがゼロまたは低い値を返す場合は、間違ったタイプの押しボタンがあります。

5)Hブリッジとモーターの配線

Hブリッジの場合は、ピン1と16を+ 5Vに接続します。ピン4と5をGNDに、ピン2をArduinoデジタルピン3に、ピン7をarduinoデジタルピン6に、そしてピン8をarduino Vinに接続します。 8インチのリード線をモーターにはんだ付けし、これらをhブリッジピン3と6に接続します。

テスト:回路に電源を入れます。デフォルトの「ひげ剃りとヘアカット」ノックを正しくタップすると、モーターが作動します。もう一度正しいパターンをタップすると、モーターは反対方向に回転します。

トラブルシュート:

- チップの電源が入っていてアースされていることを確認してください。

- モーターの回転方向を確認してください。初めて実行されるときは、デッドボルトを回してロックを解除するのと同じように向きを変える必要があります。そうでない場合、モーターを逆転させるべきモーターのリード線を交換してください。

- モーターが180度回転するようにするには、モーターがトリガーされるたびにモーターが1/2回転するまで "lockTurnTime"(17行目)を調整します。

おめでとうございます。あなたは働く秘密のノック検出器回路を作りました!

ステップ4:ケースとフォトダイオードアタッチメントの製作

ドアマウント/ケースを作るための詳細なステップはここに行きます:

私の台紙は、いくつかの変更を加えたこの設計に基づいています(私は私の学校であるPomona Collegeからあまり一般的ではないツールにアクセスできました)。それは軽量でポータブルだったので私はPVCのデザインにこだわった。私は私が回路基板を印刷することを可能にする機器へのアクセスを持っていた、それでそれほど多くのワイヤーがケーシングに詰め込まれる必要はなかった。最後の回路基板をはんだ付けした後、私は想定されていないものがarduinoに触れないことを確かめるために(arduinoに面する)裏面をテープで固定しました。私のモーターは減速機を含んでいませんでした、それで我々は一組のギアとアルミニウムギアケースを組み立てました。マイクは長い金属片(装飾用にピンクのテープで覆われている)の端に固定されています。

フォトダイオードアダプターを作るには、あなたのダイオードのサイズより少し小さい吸盤に穴を開けて(吸い込みは妥協しないように)、フォトダイオードを吸盤から見てドアの表面に向けて置きます。それはあなたののぞき穴とデッドボルトの間の距離にまたがることができるようにフォトダイオードの上に長いリード線を残します。