Código
- Sistema de segurança_IDE
- Processando
Sistema de segurança_IDE C9Search
#include . int tPin =2; int ePin =3; int buz =10; int d1, d2; int i =0; int sdistance; Servo meuServo; void setup () {Serial.begin (9600); pinMode (tPin, OUTPUT); pinMode (ePin, INPUT); pinMode (buz, OUTPUT); myServo.attach (9); } void loop () {para (i =0; i <=180; i + =10) {myServo.write (i); atraso (30); d2 =calcular distância (); Serial.print (i); Serial.print (","); Serial.print (d2); Serial.print ("."); } para (i =180; i> 0; i- =10) {myServo.write (i); atraso (30); d2 =calcular distância (); Serial.print (i); Serial.print (","); Serial.print (d2); Serial.print ("."); }} int calculeDistance () {digitalWrite (tPin, HIGH); atraso (1000); digitalWrite (tPin, LOW); d1 =pulseIn (ePin, HIGH); d2 =d1 * 0,0171821306; if (d2 <10) {digitalWrite (buz, HIGH); } else {digitalWrite (buz, LOW); } return d2; }
Processando Java
import processing.serial. *; // importa biblioteca para comunicação serialimport java.awt.event.KeyEvent; // importa a biblioteca para ler os dados da porta serial java.io.IOException; Serial myPort; // define Serial do Objeto // remove o tubo de variablesString angle =""; String distance =""; String data =""; String noObject; float pixsDistance; int iAngle, iDistance; int index1 =0; int index2 =0; PFont orcFont; configuração vazia () {tamanho (1366, 768); // *** ALTERE ISSO PARA SUA RESOLUÇÃO DE TELA *** smooth (); myPort =novo Serial (este, "COM3", 9600); // inicia a comunicação serial myPort.bufferUntil ('.'); // lê os dados da porta serial até o caractere '.'. Então, na verdade, lê-se o seguinte:ângulo, distância.} Void draw () {fill (98,245,31); // simula o borrão de movimento e o desvanecimento lento da linha em movimento noStroke (); encher (0,4); rect (0, 0, largura, altura-altura * 0,065); preencher (98.245,31); // cor verde // chama as funções para desenhar o radar drawRadar (); desenhar linha(); drawObject (); drawText ();} void serialEvent (Serial myPort) {// começa a ler dados da porta serial // lê os dados da porta serial até o caractere '.' e o coloca na variável String "data". data =myPort.readStringUntil ('.'); data =data.substring (0, data.length () - 1); index1 =data.indexOf (","); // encontre o caractere ',' e o coloque na variável "index1" angle =data.substring (0, index1); // lê os dados da posição "0" para a posição da variável index1 ou esse é o valor do ângulo que a placa Arduino enviou para a porta serial distance =data.substring (index1 + 1, data.length ()); // lê os dados da posição "index1" até o final dos dados antes do valor da distância // converte as variáveis String em Inteiro iAngle =int (ângulo); iDistance =int (distância);} void drawRadar () {pushMatrix (); traduzir (largura / 2, altura-altura * 0,074); // move as coordenadas iniciais para o novo local noFill (); strokeWeight (2); acidente vascular cerebral (98.245,31); // desenha as linhas do arco arc (0,0, (largura-largura * 0,0625), (largura-largura * 0,0625), PI, TWO_PI); arco (0,0, (largura-largura * 0,27), (largura-largura * 0,27), PI, TWO_PI); arco (0,0, (largura-largura * 0,479), (largura-largura * 0,479), PI, TWO_PI); arco (0,0, (largura-largura * 0,687), (largura-largura * 0,687), PI, TWO_PI); // desenha a linha das linhas angulares (-largura / 2,0, largura / 2,0); linha (0,0, (- largura / 2) * cos (radianos (30)), (- largura / 2) * sin (radianos (30))); linha (0,0, (- largura / 2) * cos (radianos (60)), (- largura / 2) * sen (radianos (60))); linha (0,0, (- largura / 2) * cos (radianos (90)), (- largura / 2) * sin (radianos (90))); linha (0,0, (- largura / 2) * cos (radianos (120)), (- largura / 2) * sen (radianos (120))); linha (0,0, (- largura / 2) * cos (radianos (150)), (- largura / 2) * sin (radianos (150))); linha ((- largura / 2) * cos (radianos (30)), 0, largura / 2,0); popMatrix ();} void drawObject () {pushMatrix (); traduzir (largura / 2, altura-altura * 0,074); // move as coordenadas iniciais para o novo local strokeWeight (9); curso (255,10,10); // cor vermelha pixsDistance =iDistance * ((height-height * 0.1666) * 0.025); // cobre a distância do sensor de cm a pixels // limitando o intervalo a 40 cms se (iDistance <10) {// desenha o objeto de acordo com o ângulo e a linha de distância (pixsDistance * cos (radianos (iAngle)) , -pixsDistance * sin (radianos (iAngle)), (largura-largura * 0,505) * cos (radianos (iAngle)), - (largura-largura * 0,505) * sin (radianos (iAngle))); } popMatrix ();} void drawLine () {pushMatrix (); strokeWeight (9); curso (30.250,60); traduzir (largura / 2, altura-altura * 0,074); // move as coordenadas iniciais para a nova linha de localização (0,0, (altura-altura * 0,12) * cos (radianos (iAngle)), - (altura-altura * 0,12) * sin (radianos (iAngle))); // desenha a linha de acordo com o ângulo popMatrix ();} void drawText () {// desenha os textos na tela pushMatrix (); if (iDistance> 10) {noObject ="Fora do intervalo"; } else {noObject ="No intervalo"; } preencher (0,0,0); noStroke (); rect (0, altura-altura * 0,0648, largura, altura); preencher (98.245,31); textSize (25); texto ("2 cm", largura-largura * 0,3854, altura-altura * 0,0833); texto ("4cm", largura-largura * 0,281, altura-altura * 0,0833); texto ("6 cm", largura-largura * 0,177, altura-altura * 0,0833); texto ("10 cm", largura-largura * 0,0729, altura-altura * 0,0833); textSize (40); texto ("Akshay6766", largura-largura * 0,875, altura-altura * 0,0277); texto ("Ângulo:" + iAngle + "", largura-largura * 0,48, altura-altura * 0,0277); texto ("Distância:", largura-largura * 0,26, altura-altura * 0,0277); if (iDistance <40) {text ("" + iDistance + "cm", largura-largura * 0,225, altura-altura * 0,0277); } textSize (25); encher (98.245,60); translação ((largura-largura * 0,4994) + largura / 2 * cos (radianos (30)), (altura-altura * 0,0907) -largura / 2 * sin (radianos (30))); girar (-radianos (-60)); texto ("30", 0,0); resetMatrix (); translação ((largura-largura * 0,503) + largura / 2 * cos (radianos (60)), (altura-altura * 0,0888) -largura / 2 * sin (radianos (60))); girar (-radianos (-30)); texto ("60", 0,0); resetMatrix (); translação ((largura-largura * 0,507) + largura / 2 * cos (radianos (90)), (altura-altura * 0,0833) -largura / 2 * sin (radianos (90))); girar (radianos (0)); texto ("90", 0,0); resetMatrix (); translação (largura-largura * 0,513 + largura / 2 * cos (radianos (120)), (altura-altura * 0,07129) -largura / 2 * sin (radianos (120))); girar (radianos (-30)); texto ("120", 0,0); resetMatrix (); translação ((largura-largura * 0,5104) + largura / 2 * cos (radianos (150)), (altura-altura * 0,0574) -largura / 2 * sin (radianos (150))); girar (radianos (-60)); texto ("150", 0,0); popMatrix (); }