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

Arduinoベースのセキュリティシステム

コンポーネントと消耗品

>
Arduino UNO
× 1
超音波センサー-HC-SR04(汎用)
× 1
サーボ(Tower Pro MG996R)
× 1
ブザー
× 1
ブレッドボード(汎用)
× 1
オス/メスのジャンパー線
× 1
プラスチックボックス
× 1

必要なツールとマシン

ナイフ

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

>
Arduino IDE
処理中のIDE

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

はじめに

<図>

<図>

このプロジェクトは、Arduino Uno、サーボモーター、超音波センサー、圧電ブザーで構成されるArduinoベースのセキュリティシステムです。

ここで、超音波センサーはその範囲内にある物体を感知し、ブザーを作動させます。このセンサーデータは、グラフィカルマップを作成するProcessingIDEソフトウェアにも送られます。

サーボモーターは、超音波センサーを回転させて広い範囲をカバーするために使用されます。

これは非常に単純なプロジェクトであり、1時間以内に実行できます。

プロジェクトの手順は次のとおりです-

  • センサーのトリガーピンをArduinoのピン2に接続します
  • センサーのエコーピンをArduinoのピン3に接続します
  • センサー電源とアースのVccとGNDをそれぞれ接続します
  • ブレッドボードにブザーを置きます
  • プラス側をArduinoのピン10に接続し、マイナス側をアースに接続します
  • サーボモーターの黒と赤のワイヤーをそれぞれアースと電源に接続します
  • サーボモーターの黄色いワイヤーをArduinoのピン9に取り付けます
  • Arduinoの5V端子を電源に接続し、ArduinoのGND端子をアースに接続します

これらの接続が完了したら、図に示すように、回路全体をボックス内に配置します。

次に、コーディングします。

コード

  • セキュリティSystem_IDE
  • 処理
セキュリティSystem_IDE C9Search
 #include 。 int tPin =2; int ePin =3; int buz =10; int d1、d2; int i =0; int sdistance; Servo myServo; void setup(){Serial.begin(9600); pinMode(tPin、OUTPUT); pinMode(ePin、INPUT); pinMode(buz、OUTPUT); myServo.attach(9); } void loop(){for(i =0; i <=180; i + =10){myServo.write(i); delay(30); d2 =calculateDistance(); Serial.print(i); Serial.print( "、"); Serial.print(d2); Serial.print( "。"); } for(i =180; i> 0; i- =10){myServo.write(i); delay(30); d2 =calculateDistance(); Serial.print(i); Serial.print( "、"); Serial.print(d2); Serial.print( "。"); }} intcalculateDistance(){digitalWrite(tPin、HIGH); delay(1000); digitalWrite(tPin、LOW); d1 =pulseIn(ePin、HIGH); d2 =d1 * 0.0171821306; if(d2 <10){digitalWrite(buz、HIGH); } else {digitalWrite(buz、LOW); } return d2; } 
処理 Java
 importprocessing.serial。*; //シリアル通信用のライブラリをインポートしますimportjava.awt.event.KeyEvent; //シリアルポートからデータを読み取るためのライブラリをインポートしますimportjava.io.IOException; Serial myPort; //オブジェクトシリアルを定義します// defubes変数Stringangle =""; String distance =""; String data =""; String noObject; float pixsDistance; int iAngle、iDistance; int index1 =0; int index2 =0; PFont orcFont; void setup(){サイズ(1366、768); // ***これを画面の解像度に変更*** smooth(); myPort =new Serial(this、 "COM3"、9600); //シリアル通信を開始しますmyPort.bufferUntil( '。'); //シリアルポートから文字「。」までのデータを読み取ります。したがって、実際には次のようになります。angle、distance。} void draw(){fill(98,245,31); //動線のモーションブラーとスローフェードをシミュレートしますnoStroke(); fill(0,4); rect(0、0、width、height-height * 0.065); fill(98,245,31); //緑色//レーダーを描画するための関数を呼び出しますdrawRadar(); drawLine(); drawObject(); drawText();} void serialEvent(Serial myPort){//シリアルポートからのデータの読み取りを開始します//シリアルポートから文字「。」までのデータを読み取りますそしてそれを文字列変数「data」に入れます。 data =myPort.readStringUntil( '。'); data =data.substring(0、data.length()-1); index1 =data.indexOf( "、"); //文字「、」を見つけて変数「index1」に入れますangle =data.substring(0、index1); //位置「0」から変数index1の位置まで、またはArduinoボードがシリアルポートに送信した角度の値までデータを読み取りますdistance =data.substring(index1 + 1、data.length()); //位置 "index1"から距離の値であるデータの終わりまでデータを読み取ります//文字列変数を整数に変換しますiAngle =int(angle); iDistance =int(distance);} void drawRadar(){pushMatrix(); translate(width / 2、height-height * 0.074); //開始コーディネートを新しい場所に移動しますnoFill(); strokeWeight(2);ストローク(98,245,31); //円弧を描画しますarc(0,0、(width-width * 0.0625)、(width-width * 0.0625)、PI、TWO_PI); arc(0,0、(width-width * 0.27)、(width-width * 0.27)、PI、TWO_PI); arc(0,0、(width-width * 0.479)、(width-width * 0.479)、PI、TWO_PI); arc(0,0、(width-width * 0.687)、(width-width * 0.687)、PI、TWO_PI); //角度の線を描画しますline(-width / 2,0、width / 2,0); line(0,0、(-width / 2)* cos(radians(30))、(-width / 2)* sin(radians(30))); line(0,0、(-width / 2)* cos(radians(60))、(-width / 2)* sin(radians(60))); line(0,0、(-width / 2)* cos(radians(90))、(-width / 2)* sin(radians(90))); line(0,0、(-width / 2)* cos(radians(120))、(-width / 2)* sin(radians(120))); line(0,0、(-width / 2)* cos(radians(150))、(-width / 2)* sin(radians(150))); line((-width / 2)* cos(radians(30))、0、width / 2,0); popMatrix();} void drawObject(){pushMatrix(); translate(width / 2、height-height * 0.074); //開始コーディネートを新しい場所に移動しますstrokeWeight(9);ストローク(255,10,10); //赤色pixsDistance =iDistance *((height-height * 0.1666)* 0.025); //センサーからcmからピクセルまでの距離をカバーします//範囲を40cmに制限しますif(iDistance <10){//角度と距離線に従ってオブジェクトを描画します(pixsDistance * cos(radians(iAngle)) 、-pixsDistance * sin(radians(iAngle))、(width-width * 0.505)* cos(radians(iAngle))、-(width-width * 0.505)* sin(radians(iAngle))); } popMatrix();} void drawLine(){pushMatrix(); strokeWeight(9);ストローク(30,250,60); translate(width / 2、height-height * 0.074); //開始座標を新しい場所に移動しますline(0,0、(height-height * 0.12)* cos(radians(iAngle))、-(height-height * 0.12)* sin(radians(iAngle))); //角度に従って線を描画しますpopMatrix();} void drawText(){//画面にテキストを描画しますpushMatrix(); if(iDistance> 10){noObject ="範囲外"; } else {noObject ="範囲内"; } fill(0,0,0); noStroke(); rect(0、height-height * 0.0648、width、height); fill(98,245,31); textSize(25); text( "2cm"、width-width * 0.3854、height-height * 0.0833); text( "4cm"、width-width * 0.281、height-height * 0.0833); text( "6cm"、width-width * 0.177、height-height * 0.0833); text( "10cm"、width-width * 0.0729、height-height * 0.0833); textSize(40); text( "Akshay6766"、width-width * 0.875、height-height * 0.0277); text( "Angle:" + iAngle + ""、width-width * 0.48、height-height * 0.0277); text( "距離:"、幅-幅* 0.26、高さ-高さ* 0.0277); if(iDistance <40){text( "" + iDistance + "cm"、width-width * 0.225、height-height * 0.0277); } textSize(25); fill(98,245,60); translate((width-width * 0.4994)+ width / 2 * cos(radians(30))、(height-height * 0.0907)-width / 2 * sin(radians(30)));回転(-ラジアン(-60)); text( "30"、0,0); resetMatrix(); translate((width-width * 0.503)+ width / 2 * cos(radians(60))、(height-height * 0.0888)-width / 2 * sin(radians(60)));回転(-ラジアン(-30)); text( "60"、0,0); resetMatrix(); translate((width-width * 0.507)+ width / 2 * cos(radians(90))、(height-height * 0.0833)-width / 2 * sin(radians(90)));回転(ラジアン(0)); text( "90"、0,0); resetMatrix(); translate(width-width * 0.513 + width / 2 * cos(radians(120))、(height-height * 0.07129)-width / 2 * sin(radians(120)));回転(ラジアン(-30)); text( "120"、0,0); resetMatrix(); translate((width-width * 0.5104)+ width / 2 * cos(radians(150))、(height-height * 0.0574)-width / 2 * sin(radians(150)));回転(ラジアン(-60)); text( "150"、0,0); popMatrix(); } 

回路図


製造プロセス

  1. TinyML-言語検出器-エッジインパルスとArduinoに基づく
  2. MPU-6050を搭載したArduinoジャイロスコープゲーム
  3. Arduino Digital Dice
  4. 鉄人
  5. Find Me
  6. Arduino加湿器制御
  7. arduinoを使用したソナーと処理IDEでの表示
  8. MobBob:Androidスマートフォンで制御されるDIY Arduino Robot
  9. Arduinoオーディオリアクティブデスクライト
  10. NeoMatrix Arduino Pong
  11. Arduinoジョイスティック