工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

シス卿のように家に入る

コンポーネントと消耗品

>
パーティクルフォトン
× 2
Arduino UNO
× 1
Adafruit Music MakerMP3シールド
× 1
AdafruitPIRモーションセンサー
× 1
LED(汎用)
× 2
抵抗220オーム
× 2
ジャンパー線
× 1
スピーカー:3W、4オーム
× 1
ブレッドボード(汎用)
× 2
USB MicroBウォールチャージャー
× 1
USB-AからBへのケーブル
× 1
男性-ヘッダー36位置1行-長さ(0.1 ")
× 1

必要なツールとマシン

>
はんだごて(汎用)

アプリとオンラインサービス

パーティクルクラウド

このプロジェクトについて

私の娘はスターウォーズの大ファンです(彼女はまだ映画を見ていませんが)。当然のことながら、私がスターウォーズをテーマにしたプロジェクトを構築したいかどうか尋ねたとき、彼女はそのすべてにいました。彼女が部屋に壮大な入り口を作るために彼女のダースベイダーの衣装を着ているときに、彼女が私にインペリアルマーチ(ダースベイダーのテーマソング)を何回プレイさせたかはわかりません。そこで、私たちはすぐにこのプロジェクトのアイデアに落ち着きました。誰かが家に帰ってくるのを自動的に検出し、その人が家に入る直前にインペリアルマーチの演奏をトリガーします。

これはかなり単純なプロジェクトなので、初心者に適しています。クラウドへの/クラウドからのパブリッシュ/サブスクライブパターンを使用したのは初めてなので、興味深いと思いました。また、さまざまな種類のマイクロコントローラーを1つのプロジェクトに統合したのも初めてでした。クラウド接続ソリューションの作成に関しては、Photonのシンプルさと使いやすさが気に入っています。そして、Arduinoで利用可能なアドオンハードウェアの多様性と規模に勝るものはありません。それらを簡単にまとめることができたため、このプロジェクトをすばやくまとめることができました。


ステップ1:センサーを組み立てる

時間:10分

部品:フォトン、220オーム抵抗、LED、PIRモーションセンサー、ブレッドボード、オス/オスジャンパー線、USBマイクロBケーブル

ツール:N / A

まず、LEDをフォトンに接続します。 Photonをブレッドボードにマウントします。次に、フォトンのアースピンとブレッドボードの開いた列の間に抵抗を接続します。最後に、LEDの長い脚をPhotonのデジタルPINに接続し(私はピンD0を使用しました)、LEDの短い脚を抵抗が接続されている開いた列に接続します。率直に言って、LEDはオプションですが、PIRセンサー自体はモーションが検出されたときの表示を提供せず、Photonがイベントをクラウドに公開するときに表示を提供しないため、センサーの状態を示すために使用します。

次に、PIRセンサーをフォトンに接続します。 PIRセンサーをブレッドボードに取り付けます-PIRセンサーをブレッドボードに垂直に「固定」できるようにするため、直角のメスヘッダーピンを使用してPIRセンサーをブレッドボードに接続します。 (直角ヘッダーピンがない場合は、両面テープまたは粘着性のあるタックを使用して、PIRセンサーをテーブルまたは取り付けているものに取り付け、PIRセンサーのオスから直接メス/オスのジャンパー線を使用しますジャンパー線を使用して、PIRのGNDをPhotonのGNDピンに接続し、PIRの5VピンをPhotonのVinピンに接続し、PIRの信号ピンをPhotonのデジタルピンに接続します(ピンD7を使用しました)。

<図> <図> <図> <図>

センサーのデータシートを再確認して、センサーの5V、GND、および信号ピンを正しく識別していることを確認してください。これらの順序はメーカーによって異なります。私のPIRセンサーは5ボルトで動作しますが、信号ピンはわずか3.3Vで動作するため、Photonのデジタルピンに直接接続できます。繰り返しになりますが、センサーのデータシートを再確認して、信号の電圧が3.3Vであることを確認してください。

PhotonのUSBMicroBコネクタを介してPCまたは壁のコンセントにアセンブリの電源を入れます。パーティクルIDEを開き、以下に示すセンサーコードを貼り付けます。次に、コードをPhotonにフラッシュします。

ここで、センサーの前で手を振ると、LEDが点灯するはずです。また、パーティクルダッシュボードでログをチェックして、イベントが公開されたことを確認できます。

<図>

ステップ2:トリガーを組み立てる

時間:10分

部品:フォトン、220オームの抵抗、LED、ブレッドボード、オス/メスのジャンパー線

ツール:NA

前の手順で行ったように、LEDと抵抗をフォトンに接続します。繰り返しになりますが、LEDはオプションですが、パーティクルクラウドからイベントを受信したことを示すのに便利です。次に、ジャンパー線のオス側をPhotonのVin、GND、およびデジタルピン(ピンD7を使用)に接続します。 Photonのデジタルピンは、ミュージックメーカーのGPIOピンの1つに接続して、音楽をトリガーします。 PhotonのVinおよびGND接続は、ArduinoからPhotonに電力を供給するために使用されます。

<図> <図>

ただし、最初に、Arduinoに接続する前に、PhotonのUSB MicroBコネクタを介してPCまたは壁のコンセントにアセンブリの電源を入れます。パーティクルIDEを開き、以下に示すトリガーコードを貼り付けます。次に、コードをPhotonにフラッシュします。2つのデバイスがParticle IDEに接続されているので、コードをフラッシュする正しいデバイスを選択していることを確認してください。



ステップ3:Arduinoとミュージックメーカーのシールドを組み立てる

時間:20分

パーツ:Arduino Uno、Adafruit Music Makerシールド、Photon、220オーム抵抗、LED、ミニブレッドボード、ジャンパー線、USBケーブル

ツール:はんだごて

ヘッダーピンはミュージックメーカーシールドに含まれていますが、はんだ付けする必要があります。シールドをArduinoに接続するためのヘッダーピンに加えて、GPIOおよびPhotonからの電源接続用にシールドの上部にオスのヘッダーピンを追加しました。 (メスのヘッダーピンがあれば、オス/オスのジャンパー線だけが必要になるように使用していましたが、(オス/メスのジャンパー線に加えて)オスのヘッダーピンしか手元になかったので、それを使用しました代わりにルートしてください。)

PhotonのデジタルピンからシールドのGPIOピンにジャンパー線を接続します(シールドのピン7を使用しました)。 PhotonのVinからシールドの5vピンにジャンパーを接続し、GNDジャンパーをシールドのGNDピンに接続します。

<図>

最後に、スピーカーをシールドの端子台に接続します。右側のスピーカー用に1つ、左側のスピーカー用に1つの端子台があります。スピーカーを1つ接続しただけです。娘の壊れたおもちゃの1つから小さなスピーカーを回収してから、捨てました。

<図>

Arduinoを開発マシンに接続し、以下のArduinoスケッチをArduino IDEに貼り付けて、アップロードします。

それでおしまい。センサーの前を歩き、座って音楽が始まるのを待ちます。

コードについて

先に述べたように、パブリッシュ/サブスクライブパターンを使用したのはこれが初めてでした。 Photonを使用するのは非常に簡単でした。センサーコードでは、PIRセンサーの信号ピンがHIGHになると、LEDをオンにして、パーティクルクラウドにイベントを公開します。イベントの公開には1行しか必要ありません:

published =Particle.publish( "motion-detected"、NULL、60、PRIVATE);

当初、私は公開を非公開にしませんでした。個人を特定できる情報がないため、気にしませんでした。しかし、私がイベントを購読しようとしたとき、私は多くの誤警報を受け取りました-どうやら、他の多くのユーザーが「モーション」指向のイベントを公開しています。そこで、「MY_DEVICES」パラメーターを追加して、サブスクライブ呼び出しをデバイスからのイベントのみにサブスクライブするように切り替えました。

Particle.subscribe( "motion"、soundAlarm、MY_DEVICES);

また、サブスクライブ機能を自分のデバイスのみに制限するには、公開を非公開にする必要がありました。

トリガーコードは、モーションイベントが発生したときにイベントハンドラー(soundAlarm)を呼び出すだけです。イベントハンドラーが行うのは、LEDをオンにして、ミュージックメーカーシールドのGPIOピンをHIGHにすることだけです。 Arduinoスケッチは、GPIOピンがHIGHであることを検出し、SDカードでMP3ファイルを再生する前に60秒待機します(車を駐車し、物を集め、家に入るまで)。


プロジェクトを展開する

車を駐車する場所のすぐ隣の棚にあるガレージにセンサーを設置しました。家に帰ると娘がいつも台所のテーブルにいるので、トリガーと音楽メーカーのシールドとスピーカーを備えたArduinoをキッチンカウンターに置きました。どちらの場所にも壁のコンセントが近くにあり、プロジェクトの両方の部分に簡単に電力を供給できます。

<図> <図>

コード

  • センサーコード
  • トリガーコード
  • Arduinoとミュージックメーカーのシールドコード
センサーコード C / C ++
モーションが検出されるたびにイベントをパーティクルクラウドに公開するPhotonのサンプルコード。
 //ピンD0intled =D0でLEDを定義; //ピンD6intpir =D6でPIRセンサー入力を定義; //トラック公開が成功したかどうかboolpublished; void setup(){// LEDピンを出力として設定pinMode(led、OUTPUT); // PIRセンサーの入力ピンを入力pinMode(pir、INPUT);として設定します// LEDがオフになっていることを確認しますdigitalWrite(led、LOW);} void loop(){if(digitalRead(pir)==HIGH)//モーションが検出された場合{//検出されたことを示すインジケーターとしてLEDをオンにしますdigitalWrite(led、HIGH);公開=Particle.publish( "motion-detected"、NULL、60、PRIVATE); if(!published)//公開に失敗した場合{//公開失敗のインジケーターとしてLEDを10回点滅for(int i =0; i <10; i ++){digitalWrite(led、LOW); delay(500); digitalWrite(led、HIGH); delay(500); }}} else //動きが検出されない場合は、LEDをオフにしますdigitalWrite(led、LOW); // 2秒待ってから、別の読み取り遅延(2000);} 
トリガーコード C / C ++
センサーによって公開されたパーティクルクラウドのモーションイベントをサブスクライブし、ミュージックメーカーシールドをトリガーしてMP3を再生するフォトンのサンプルコード。
 //ピンD0intled =D0にLEDを定義; //トリガーを定義ArduinoのピンD7intトリガー=D7; void soundAlarm(const char * event、const char * data){//モーションイベントがトリガーされたとき// LEDをオンにするdigitalWrite(led、HIGH); //トリガーをオンにしますdigitalWrite(trigger、HIGH); // 2秒待つdelay(2000); //トリガーをオフにしますdigitalWrite(trigger、LOW); // LEDをオフにしますdigitalWrite(led、LOW);} void setup(){//デバイスからのモーションイベントのみをサブスクライブします// soundAlarmをイベントハンドラーとして定義しますParticle.subscribe( "motion"、soundAlarm、MY_DEVICES); // LEDピンを出力として設定しますpinMode(led、OUTPUT); //トリガーピンを出力として設定しますpinMode(trigger、OUTPUT);} void loop(){} 
Arduinoとミュージックメーカーのシールドコード Arduino
接続されたフォトンからのトリガーに基づいて、ミュージックメーカーシールドを介してMP3を再生するArduinoのサンプルコード。
 / *********************** *************************************このスケッチは、AdafruittMusicを使用してSDカードからMP3を再生しますシールドのGPIOピンの1つに接続されているフォトンによってトリガーされたときにシールドを作成します。よく書かれたチュートリアルとライブラリを提供してくれたAdafruitに感謝します。 https://learn.adafruit.com/adafruit-music-maker-shield-vs1053-mp3-wav-wave-ogg-vorbis-player/pinouts ***************** ******************************************** /// SPIを含み、 MusicMakerおよびSDライブラリ#include  #include  #include  //音楽メーカーのシールドに使用するピンを定義します#defineSHIELD_RESET -1 // VS1053リセットピン(未使用! )#define SHIELD_CS 7 // VS1053チップセレクトピン(出力)#define SHIELD_DCS 6 // VS1053データ/コマンドセレクトピン(出力)#define CARDCS 4 //カードチップセレクトピン// DREQはIntピンである必要があります。httpを参照してください。 ://arduino.cc/en/Reference/attachInterrupt#define DREQ 3 // VS1053データ要求、理想的には割り込みピン//音楽プレーヤーを定義Adafruit_VS1053_FilePlayer musicPlayer =Adafruit_VS1053_FilePlayer(SHIELD_RESET、SHIELD_CS、SHIELD_DCS、DREQ、CARDCS); //フォトンが接続するGPIOピンを定義しますintphotonPin =7; void setup(){//音楽プレーヤーを初期化しますmusicPlayer.begin(); // SDカードを初期化しますSD.begin(CARDCS); //左右のチャンネルの音量を設定します。数字が小さい==音量が大きい! musicPlayer.setVolume(1,1); // DREQが割り込みピン(uno、#2、または#3)にある場合//バックグラウンドオーディオ再生は可能ですが、//プロジェクトのこの初期フェーズでは使用されていません// DREQ割り込みを初期化します// musicPlayer.useInterrupt(VS1053_FILEPLAYER_PIN_INT); //フォトンが接続されているGPIOピンを入力として初期化しますmusicPlayer.GPIO_pinMode(photonPin、INPUT);} void loop(){if(musicPlayer.GPIO_digitalRead(photonPin)==HIGH){//再生する前に60秒待ちます//家がdelay(60000);を開始した直後に家に足を踏み入れます。 //ファイルを再生し、完全になるまで戻らないmusicPlayer.playFullFile( "track001.mp3"); } delay(500);} 

回路図

Sensor.fzz trigger.fzz

製造プロセス

  1. CNCマシンで使用されるコンポーネントは何ですか
  2. 危機における良好なコミュニケーションの重要な要素
  3. ものづくりの未来はどうなるのか?
  4. The Annoy-O-Bug:A Chirping Light-Up Throwie
  5. ナノテクノロジーはIoTセキュリティ戦争に参入する準備ができていますか?
  6. 圧縮空気システムのコンポーネントは何ですか?
  7. 近代化中にさまざまなクレーンコンポーネントはどうなりますか?
  8. 将来の技術者はどのようになりますか?
  9. 帯鋸盤の主な構成部品
  10. 機械加工部品を設計するための究極のガイド
  11. 航空宇宙部品および精密航空機部品市場