Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Système de sécurité basé sur Arduino

Composants et fournitures

Arduino UNO
× 1
Capteur à ultrasons - HC-SR04 (Générique)
× 1
Servos (Tower Pro MG996R)
× 1
Sonnerie
× 1
Planche à pain (générique)
× 1
Câbles de raccordement mâle/femelle
× 1
Boîte en plastique
× 1

Outils et machines nécessaires

Couteau

Applications et services en ligne

Arduino IDE
Traitement IDE

À propos de ce projet

Présentation

Ce projet est un système de sécurité basé sur Arduino composé d'un Arduino Uno, d'un servomoteur, d'un capteur à ultrasons et d'un buzzer piézoélectrique.

Ici, le capteur à ultrasons détecte un objet qui se trouve à sa portée, ce qui active le buzzer. Ces données de capteur sont également introduites dans un logiciel Processing IDE, qui crée une carte graphique.

Le servomoteur est utilisé pour faire tourner le capteur à ultrasons de manière à couvrir une grande surface.

C'est un projet assez simple et peut être fait en une heure.

Voici la procédure pour le projet -

  • Connectez la broche de déclenchement du capteur à la broche 2 de l'Arduino
  • Connectez la broche d'écho du capteur à la broche 3 de l'Arduino
  • Connectez Vcc et GND de l'alimentation du capteur et de la terre respectivement
  • Placez le buzzer sur la planche à pain
  • Connectez son extrémité positive à la broche 10 de l'Arduino et connectez l'extrémité négative à la terre
  • Fixez les fils noir et rouge du servomoteur à la terre et à l'alimentation respectivement
  • Fixez le fil jaune du servomoteur à la broche 9 de l'Arduino
  • Connectez la borne 5V de l'Arduino à l'alimentation et la borne GND de l'Arduino à la terre

Après avoir terminé ces connexions, placez l'ensemble du circuit à l'intérieur de la boîte comme indiqué sur la figure.

Ensuite, il est temps de coder.

Code

  • Système de sécurité_IDE
  • Traitement
Système de sécurité_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, SORTIE); pinMode(ePin, INPUT); pinMode(buz,OUTPUT); monServo.attach(9) ; }boucle vide() { for(i=0;i<=180;i +=10) { monServo.write(i); retard(30); d2 =calculerDistance(); Serial.print(i); Serial.print(","); Serial.print(d2); Serial.print("."); } for(i=180;i>0; i-=10){ monServo.write(i); retard(30); d2 =calculerDistance(); Serial.print(i); Serial.print(","); Serial.print(d2); Serial.print("."); }}int calculateDistance(){ digitalWrite(tPin,HIGH); retard(1000); digitalWrite(tPin, LOW); d1 =pulseIn(ePin, HIGH); d2 =d1 * 0,0171821306 ; if (d2 <10) { digitalWrite(buz,HIGH); } else { digitalWrite(buz,LOW); } renvoie d2; }
TraitementJava
import processing.serial.* ; // importe la bibliothèque pour la communication sérieimport java.awt.event.KeyEvent; // importe la bibliothèque pour lire les données du port série java.io.IOException;Serial myPort; // définit l'objet série// désactive les variablesString angle="";String distance="";String data="";String noObject;float pixsDistance;int iAngle, iDistance;int index1=0;int index2=0;PFont orcFont; void setup() { taille (1366, 768); // ***CHANGEZ CETTE RÉSOLUTION D'ÉCRAN*** smooth(); myPort =new Serial(this,"COM3", 9600); // démarre la communication série myPort.bufferUntil('.'); // lit les données du port série jusqu'au caractère '.'. Donc en fait, il lit ceci :angle, distance.}void draw() { fill(98,245,31); // simuler le flou de mouvement et le fondu lent de la ligne en mouvement noStroke(); remplir (0,4) ; rect(0, 0, largeur, hauteur-hauteur * 0,065); remplir (98,245,31); // couleur verte // appelle les fonctions de dessin du radar drawRadar(); dessiner une ligne(); drawObject(); drawText();}void serialEvent (Serial myPort) { // commence à lire les données du port série // lit les données du port série jusqu'au caractère '.' et le met dans la variable String "data". data =monPort.readStringUntil('.'); data =data.substring(0,data.length()-1); index1 =data.indexOf(","); // trouve le caractère ',' et le met dans la variable "index1" angle=data.substring(0, index1); // lit les données de la position "0" à la position de la variable index1 ou c'est la valeur de l'angle que la carte Arduino a envoyé dans le port série distance=data.substring(index1+1, data.length()); // lit les données de la position "index1" à la fin des données pr c'est la valeur de la distance // convertit les variables de chaîne en entier iAngle =int(angle); iDistance =int(distance);}void drawRadar() { pushMatrix(); translate(largeur/2,hauteur-hauteur*0,074); // déplace les coordonnées de départ vers le nouvel emplacement noFill(); poids du trait(2) ; accident vasculaire cérébral (98,245,31); // dessine les lignes d'arc arc(0,0,(width-width*0.0625),(width-width*0.0625),PI,TWO_PI); arc(0,0,(largeur-largeur*0.27),(largeur-largeur*0.27),PI,TWO_PI); arc(0,0,(largeur-largeur*0.479),(largeur-largeur*0.479),PI,TWO_PI); arc(0,0,(largeur-largeur*0.687),(largeur-largeur*0.687),PI,TWO_PI); // dessine les lignes d'angle 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))); ligne((-largeur/2)*cos(radians(30)),0,largeur/2,0) ; popMatrix();}void drawObject() { pushMatrix(); translate(largeur/2,hauteur-hauteur*0,074); // déplace les coordonnées de départ vers le nouvel emplacement strokeWeight(9) ; course (255,10,10) ; // couleur rouge pixsDistance =iDistance*((hauteur-hauteur*0.1666)*0.025); // couvre la distance du capteur de cm aux pixels // limite la plage à 40 cm if(iDistance<10){ // dessine l'objet en fonction de l'angle et de la ligne de distance(pixsDistance*cos(radians(iAngle)) ,-pixsDistance*sin(radians(iAngle)),(largeur-largeur*0,505)*cos(radians(iAngle)),-(largeur-largeur*0,505)*sin(radians(iAngle))); } popMatrix();}void drawLine() { pushMatrix(); poids de la course(9) ; course (30, 250, 60); translate(largeur/2,hauteur-hauteur*0,074); // déplace les coordonnées de départ vers la nouvelle ligne de position(0,0,(height-height*0.12)*cos(radians(iAngle)),-(height-height*0.12)*sin(radians(iAngle))); // dessine la ligne selon l'angle popMatrix();}void drawText() { // dessine les textes à l'écran pushMatrix(); if(iDistance>10) { noObject ="Hors de portée" ; } else { noObject ="Dans la plage"; } remplissage (0,0,0); noStroke(); rect(0, hauteur-hauteur*0.0648, largeur, hauteur); remplir (98,245,31); textSize (25); texte("2cm",largeur-largeur*0.3854,hauteur-hauteur*0.0833) ; texte("4cm",largeur-largeur*0.281,hauteur-hauteur*0.0833) ; texte("6cm",largeur-largeur*0.177,hauteur-hauteur*0.0833) ; texte("10cm",largeur-largeur*0.0729,hauteur-hauteur*0.0833) ; tailletexte(40); text("Akshay6766 ", largeur-largeur * 0,875, hauteur-hauteur * 0,0277) ); text("Angle : " + iAngle +" ", largeur-largeur*0.48, hauteur-hauteur*0.0277) ); text("Distance : ", largeur-largeur*0.26, hauteur-hauteur*0.0277) ); if(iDistance<40) { text(" " + iDistance +" cm", largeur-largeur*0.225, hauteur-hauteur*0.0277) ; } tailletexte(25); remplir (98,245,60); translate((largeur-largeur*0.4994)+largeur/2*cos(radians(30)),(hauteur-hauteur*0.0907)-largeur/2*sin(radians(30))); rotation(-radians(-60)); texte("30",0,0); resetMatrix(); translate((largeur-largeur*0,503)+largeur/2*cos(radians(60)),(hauteur-hauteur*0,0888)-largeur/2*sin(radians(60))); rotation(-radians(-30)); texte("60",0,0); resetMatrix(); translate((largeur-largeur*0,507)+largeur/2*cos(radians(90)),(hauteur-hauteur*0,0833)-largeur/2*sin(radians(90))); rotation(radians(0)); texte("90",0,0); resetMatrix(); translate(largeur-largeur*0,513+largeur/2*cos(radians(120)),(hauteur-hauteur*0,07129)-largeur/2*sin(radians(120))); rotation(radians(-30)); texte("120",0,0); resetMatrix(); translate((largeur-largeur*0,5104)+largeur/2*cos(radians(150)),(hauteur-hauteur*0,0574)-largeur/2*sin(radians(150))); rotation(radians(-60)); texte("150",0,0); popMatrix(); }

Schémas


Processus de fabrication

  1. Détecteur de langage TinyML basé sur Edge Impulse et Arduino
  2. Jeu de gyroscope Arduino avec MPU-6050
  3. Dés numériques Arduino
  4. Iron Man
  5. Trouvez-moi
  6. Contrôle de l'humidificateur Arduino
  7. Sonar utilisant arduino et affichage lors du traitement de l'IDE
  8. MobBob :Robot Arduino DIY contrôlé par smartphone Android
  9. Lampe de bureau réactive audio Arduino