Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino-gebaseerd beveiligingssysteem

Componenten en benodigdheden

Arduino UNO
× 1
Ultrasone sensor - HC-SR04 (algemeen)
× 1
Servo's (Tower Pro MG996R)
× 1
Zoemer
× 1
Broodplank (algemeen)
× 1
Mannelijke/Vrouwelijke doorverbindingsdraden
× 1
Plastic doos
× 1

Benodigde gereedschappen en machines

Mes

Apps en online services

Arduino IDE
Verwerking van IDE

Over dit project

Inleiding

Dit project is een op Arduino gebaseerd beveiligingssysteem dat bestaat uit een Arduino Uno, een servomotor, een ultrasone sensor en een piëzo-elektrische zoemer.

Hier detecteert de ultrasone sensor een object dat zich binnen zijn bereik bevindt, wat de zoemer activeert. Deze sensorgegevens worden ook ingevoerd in een Processing IDE-software, die een grafische kaart maakt.

De servomotor wordt gebruikt om de ultrasone sensor te roteren om een ​​groot gebied te bestrijken.

Dit is een vrij eenvoudig project en kan binnen een uur worden gedaan.

Hier is de procedure voor het project -

  • Verbind de triggerpin van de sensor met pin 2 van de Arduino
  • Verbind de Echo Pin van de Sensor met Pin 3 van de Arduino
  • Sluit respectievelijk Vcc en GND van de sensorvoeding en aarde aan
  • Plaats de zoemer op het breadboard
  • Verbind het positieve uiteinde met pin 10 van de Arduino en verbind het negatieve uiteinde met aarde
  • Bevestig de zwarte en rode draad van de servomotor respectievelijk aan aarde en voeding
  • Bevestig de gele draad van de servomotor aan pin 9 van de Arduino
  • Sluit de 5V-aansluiting van de Arduino aan op de voeding en de GND-aansluiting van de Arduino op aarde

Nadat u deze verbindingen hebt gemaakt, plaatst u het hele circuit in de doos zoals weergegeven in de afbeelding.

Dan is het tijd om te coderen.

Code

  • Beveiligingssysteem_IDE
  • Verwerking
Beveiligingssysteem_IDEC9Search
#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, UITGANG); pinMode (ePin, INPUT); pinMode(buz,OUTPUT); mijnServo.attach (9); }void loop() { for(i=0;i<=180;i +=10) { myServo.write(i); vertraging (30); d2 =berekenAfstand(); Serial.print(i); Serieel.print(","); Serieafdruk(d2); Serieel.print("."); } for(i=180;i>0; i-=10){ myServo.write(i); vertraging (30); d2 =berekenAfstand(); Serial.print(i); Serieel.print(","); Serieafdruk(d2); Serieel.print("."); }}int berekenAfstand(){ digitalWrite(tPin,HIGH); vertraging (1000); digitalWrite(tPin, LAAG); d1 =pulseIn(ePin, HOOG); d2 =d1 * 0,0171821306; if (d2 <10) { digitalWrite(buz,HIGH); } else { digitalWrite(buz,LOW); } retourneer d2; }
VerwerkingJava
import processing.serial.*; // importeert bibliotheek voor seriële communicatieimport java.awt.event.KeyEvent; // importeert bibliotheek voor het lezen van de gegevens van de seriële poortimport java.io.IOException;Serial myPort; // definieert Object Serial// defubes variabelenString angle="";String distance="";String data="";String noObject;float pixsDistance;int iAngle, iDistance;int index1=0;int index2=0;PFont orcFont; void setup() { size (1366, 768); // ***WIJZIG DIT IN UW SCHERMRESOLUTIE*** smooth(); myPort =nieuw serieel (deze, "COM3", 9600); // start de seriële communicatie myPort.bufferUntil('.'); // leest de gegevens van de seriële poort tot het teken '.'. Dus eigenlijk staat er dit:angle,distance.}void draw() { fill(98,245,31); // simuleren van bewegingsonscherpte en langzame vervaging van de bewegende lijn noStroke(); vul (0,4); rect(0, 0, breedte, hoogte-hoogte*0.065); vullen (98.245,31); // groene kleur // roept de functies aan voor het tekenen van de radar drawRadar(); teken lijn(); tekenObject(); drawText();}void serialEvent (Serial myPort) { // begint met het lezen van gegevens van de seriële poort // leest de gegevens van de seriële poort tot het teken '.' en zet het in de String-variabele "data". data =myPort.readStringUntil('.'); data =data.substring(0,data.length()-1); index1 =data.indexOf(","); // zoek het teken ',' en plaats het in de variabele "index1" angle=data.substring (0, index1); // lees de gegevens van positie "0" naar positie van de variabele index1 of dat is de waarde van de hoek die het Arduino-bord naar de seriële poort heeft gestuurd distance=data.substring(index1+1, data.length()); // lees de gegevens van positie "index1" tot het einde van de gegevens pr dat is de waarde van de afstand // converteert de String-variabelen naar Integer iAngle =int(angle); iDistance =int(distance);}void drawRadar() { pushMatrix(); vertalen(breedte/2,hoogte-hoogte*0.074); // verplaatst de startcoördinaten naar de nieuwe locatie noFill(); slagGewicht(2); beroerte (98.245,31); // tekent de booglijnen arc(0,0,(width-width*0.0625),(width-width*0.0625),PI,TWO_PI); arc(0,0,(breedte-breedte*0,27),(breedte-breedte*0,27),PI,TWO_PI); arc(0,0,(breedte-breedte*0.479),(breedte-breedte*0.479),PI,TWO_PI); arc(0,0,(breedte-breedte*0.687),(breedte-breedte*0.687),PI,TWO_PI); // tekent de lijn van de hoeklijnen (-width/2,0,width/2,0); line(0,0,(-width/2)*cos(radialen(30)),(-width/2)*sin(radialen(30))); line(0,0,(-width/2)*cos(radialen(60)),(-width/2)*sin(radialen(60))); line(0,0,(-width/2)*cos(radialen(90)),(-width/2)*sin(radialen(90))); line(0,0,(-width/2)*cos(radialen(120)),(-width/2)*sin(radialen(120))); line(0,0,(-width/2)*cos(radialen(150)),(-width/2)*sin(radialen(150))); line((-width/2)*cos(radialen(30)),0,width/2,0); popMatrix();}void drawObject() { pushMatrix(); vertalen(breedte/2,hoogte-hoogte*0.074); // verplaatst de startcoördinaten naar de nieuwe locatie strokeWeight (9); slag (255,10,10); // rode kleur pixsDistance =iDistance*((height-height*0.1666)*0.025); // bestrijkt de afstand van de sensor van cm tot pixels // beperkt het bereik tot 40 cm if(iDistance<10){ // tekent het object volgens de hoek en de afstandslijn (pixsDistance*cos(radians(iAngle)) ,-pixsDistance*sin(radialen(iAngle)),(width-width*0.505)*cos(radialen(iAngle)),-(width-width*0.505)*sin(radialen(iAngle))); } popMatrix();}void drawLine() { pushMatrix(); slagGewicht (9); slag (30,250,60); vertalen(breedte/2,hoogte-hoogte*0.074); // verplaatst de startcoördinaten naar de nieuwe locatieregel (0,0,(height-height*0.12)*cos(radians(iAngle)),-(height-height*0.12)*sin(radians(iAngle))); // tekent de lijn volgens de hoek popMatrix();}void drawText() { // tekent de teksten op het scherm pushMatrix(); if(iDistance>10) { noObject ="Buiten bereik"; } else { noObject ="Binnen bereik"; } vul(0,0,0); geen slag(); rect(0, hoogte-hoogte*0.0648, breedte, hoogte); vullen (98.245,31); tekstgrootte(25); text("2cm",breedte-breedte*0.3854,hoogte-hoogte*0.0833); text("4cm",breedte-breedte*0.281,hoogte-hoogte*0.0833); text("6cm",breedte-breedte*0.177,hoogte-hoogte*0.0833); tekst("10cm",breedte-breedte*0.0729,Hoogte-Hoogte*0.0833); tekstgrootte(40); text("Akshay6766", breedte-breedte*0.875, hoogte-hoogte*0.0277); text("Angle:" + iAngle +" ", width-width*0.48, height-height*0.0277); text("Afstand:", width-width*0.26, height-height*0.0277); if(iDistance<40) { text(" " + iDistance +" cm", width-width*0.225, height-height*0.0277); } tekstgrootte(25); vullen (98.245,60); translate((breedte-breedte*0.4994)+width/2*cos(radialen(30)),(height-height*0.0907)-width/2*sin(radialen(30))); roteren(-radialen(-60)); tekst("30",0,0); resetMatrix(); translate((breedte-breedte*0.503)+width/2*cos(radialen(60)),(height-height*0.0888)-width/2*sin(radialen(60))); roteren(-radialen(-30)); tekst("60",0,0); resetMatrix(); translate((width-width*0.507)+width/2*cos(radialen(90)),(height-height*0.0833)-width/2*sin(radialen(90))); roteren(radialen(0)); tekst("90",0,0); resetMatrix(); translate(breedte-breedte*0.513+breedte/2*cos(radialen(120)),(hoogte-hoogte*0.07129)-breedte/2*sin(radialen(120))); roteren (radialen (-30)); tekst("120",0,0); resetMatrix(); translate((width-width*0.5104)+width/2*cos(radialen(150)),(height-height*0.0574)-width/2*sin(radialen(150))); roteren (radialen (-60)); tekst("150",0,0); popMatrix(); }

Schema's


Productieproces

  1. TinyML-taaldetector-gebaseerd op Edge Impulse &Arduino
  2. Arduino-gyroscoopspel met MPU-6050
  3. Arduino digitale dobbelstenen
  4. Iron Man
  5. Vind mij
  6. Arduino-luchtbevochtigerbediening
  7. Sonar met arduino en weergave op verwerkings-IDE
  8. MobBob:doe-het-zelf Arduino-robot bestuurd door Android-smartphone
  9. Arduino Audio Reactive Desk Light
  10. NeoMatrix Arduino Pong
  11. Arduino-joystick