Scavenger Hunt CluePhone
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要なツールとマシン
> |
| |||
|
このプロジェクトについて
次の手順に従って、古い電話をスカベンジャーハントの手がかりシステムに変換します。
ステップ1-キーパッドの行と列
電話を分解し、キーパッドを取り外します。キーパッドは、行と列のシステムを使用してキーの押下を検出します。このページでは、キーパッド上のボタンを識別し、連続性のあるマルチメータを使用してそれらを適切な行と列にマッピングするための適切な手順を説明します。私の場合、キーパッドは次のようになります。
キーパッドの回路(表示されている場合)により、各キーに接続されているピンを非常に簡単に識別できます。残念ながら、私のキーパッドのピンは完全な行と列を形成していないようです。そのため、2番目の図は、ピンを行と列に分割するために作成したマトリックスを示しています。丸で囲んだ数字はキーパッドのピン番号を表し、マトリックス内の数字はキーを表し、ボックスで囲まれた数字「I / O」はArduinoピンを表します。必ずピンマッピングをメモしてから、各キーパッドピンをArduinoピンに割り当ててください。キーパッドは必要以上にピンが多いように見えるので奇妙ですが、それで問題ありません。
3番目の図は、使用するボタンのみを使用した、最終的な簡略化されたマトリックスを示しています。この時点では、ほとんど行と列のように見えます。私のコードでは、プレースホルダーA、B、C、およびDを使用して、マトリックスの空のスポットを埋めています。これらのキーは私のキーパッドにはありません。
ステップ2-キーパッドへのはんだ拡張
キーパッドピンをブレッドボードに簡単に接続できるように、必要なピンにエクステンションをはんだ付けします。このプロジェクトを作成するために、キーパッドの各キーを使用する必要はないので、下の写真は私が使用することを選択したピンのみを示しています。 4桁のパスコードを使用したので、必要なキーは5つだけでした(*を含む)。
ステップ3-オーディオファイルを準備する
私のプロジェクトでは、手がかりの声は、NaturalReadersのテキストからスピーチまでのPeterです。音声ファイルをダウンロードします。次に、モールス信号を準備します。オンラインには多くのモールス信号オーディオジェネレータがありますが、私はSCPhillips.comからこれを使用しました。このファイルもダウンロードしてください。また、このキーを押すビープ音をダウンロードしてください。
Audacityはオーディオを編集するための優れたツールであり、モールス信号と音声ファイルをマージしたり、ビープ音を1つのビープ音に短縮したりするために使用できます。
これらのファイルをAudacityにドラッグアンドドロップし、必要に応じて手がかりファイルを調整します。また、不要な部分を強調表示して[削除]をタップして、キーパッドのビープ音を短くします。
Audacityファイルを保存してから、各トラックをMP3として個別にエクスポートします。これまでにAudacityを使用したことがない場合は、LAMEMP3エンコーダーをダウンロードする必要があるかもしれません。
この特定のMP3プレーヤーボードでオーディオファイルを再生するには、オーディオファイルに正しい名前を付け、SDカードのフォルダ内に配置する必要があります。 各MP3には名前を付ける必要があります 001、002など MP3ボードのトリガーピン1〜9に対応します。また、ファイルはという名前のフォルダ内にある必要があります 01 SDカードの。 他のMP3トリガーボードはこれをより簡単に処理できる可能性があります。
ステップ4-ライブラリをダウンロードしてコードを準備する
このプロジェクトでは、キーパッドとパスワードのArduinoライブラリが必要です。これらのライブラリをダウンロードしてインストールし、このプロジェクトのコードをダウンロードします(以下)。パスコードを好きなように作成し、対応するキーをキーマトリックスに入力します。
ステップ5-すべてを接続する
電話の内部を消化し、新しいものを中に詰め込みます!そこにパワーバンクを詰め込むことができます。
> > > > >このプロジェクトが好きですか?ここで私の他のプロジェクトをチェックしてください!
コード
- 電話のキーパッドのスケッチ
電話のキーパッドスケッチ Arduino
このサンプルコードは、電話のキーパッドとMP3トリガーで動作するように変更されました。#include//http://www.arduino.cc/playground/uploads/Code/Password.zip#include //http://www.arduino.cc/playground/uploads/Code/Keypad.zipPassword password =Password( "7365"); const byte ROWS =4; // 4行constバイトCOLS =3; //列// Keymapcharキーを定義[ROWS] [COLS] ={{'4'、 '5'、 '6'}、{'7'、 '8'、 'A'}、// "A"プレースホルダーです。キーパッドにそのようなボタンはありません{'B'、 '2'、 '3'}、// "B"はプレースホルダーです。そのようなボタンは私のkeyopadに存在しません{'*'、 'C'、 'D'} // "C"と "D"はプレースホルダーです。キーパッドにそのようなボタンはありません}; byte rowPins [ROWS] ={7,5,3,8}; //キーパッドの行をこれらのArduinoピンに接続します。bytecolPins[COLS] ={6,4,2}; / /キーパッドの列をこれらのArduinoピンに接続します。constintdial=13; //デジタルArduinoピンはMP3に移行しますtriggerboard.constint morse =12; //デジタルArduinoピンをMP3トリガーボードに接続します。//キーパッドを作成しますKeypadkeypad =Keypad(makeKeymap(keys)、rowPins、colPins、ROWS、COLS); void setup(){pinMode(dial、OUTPUT); pinMode(morse、OUTPUT); digitalWrite(dial、HIGH); // MP3ボードはアクティブローをトリガーするため、HIGHから始めます。 digitalWrite(morse、HIGH); // MP3ボードはアクティブローをトリガーするため、HIGHから始めます。 Serial.begin(9600); keypad.addEventListener(keypadEvent); //このキーパッドのイベントリスナーを追加します} void loop(){keypad.getKey();} //いくつかの特別なイベントを処理しますvoidkeypadEvent(KeypadEvent eKey){switch(keypad.getState()){case PRESSED:Serial。 print( "Pressed:"); // Serial.println(eKey);を監視するため// digitalWrite(dial、LOW);を監視するため//ダイヤルビープ音声ファイルを再生します;これは、キーを押すたびに発生しますdelay(50); digitalWrite(dial、HIGH); switch(eKey){case '*':checkPassword();壊す; // *はエンターキーのデフォルトです:password.append(eKey); }}} void checkPassword(){if(password.evaluate()){Serial.println( "Success"); // password.reset();を監視しています//キーエントリをクリアしますdigitalWrite(morse、LOW); //手がかりのオーディオファイルを再生しますdelay(50); digitalWrite(morse、HIGH); } else {Serial.println( "Wrong"); // password.reset();を監視しています//次のパスコード試行のキーエントリをクリアします}}
回路図
製造プロセス