Components and supplies
HC-05 Bluetooth Module
Sharp 2Y0A21
Arduino UNO
Jumper wires (generic)
Step Down DC/DC lm2596
Breadboard (generic)
RGB Diffused Common Cathode
Servo Motor HS-311
Project description
Code
Arduino Code
arduino
1#include <Servo.h>; 2//#include <SoftwareSerial.h>; 3float dataout; 4String datain; 5String id; 6int dataID; 7float data; 8int SIR,dist,prom; 9 10//SoftwareSerial BTserial(10,9); 11 12Servo servo1; 13 14void setup() { 15// BTserial.begin(9600); 16 Serial.begin(9600); 17 delay(1000); 18 servo1.attach(20); 19 pinMode(2,OUTPUT);//RED 20 pinMode(3,OUTPUT);//GREEN 21 pinMode(4,OUTPUT);//BLUE 22servo1.write(90); 23digitalWrite(3,HIGH); 24delay(1000); 25digitalWrite(3,LOW); 26 digitalWrite(4,HIGH); 27 delay(50); 28 digitalWrite(4,LOW); 29 dataout=servo1.read(); 30 Serial.print("S"); 31 Serial.println(dataout); 32} 33 34void loop() { 35 prom=0; 36 for(int i=0;i<=10;i++){ 37 SIR=analogRead(A0); 38 dist=pow(10,log10(SIR/1821.2)/-0.65);delay(100); 39 prom+=dist; 40 } 41 prom=prom/11; 42 43 if(prom<30 && prom>20){ 44 digitalWrite(2,HIGH); 45 Serial.print("D"); 46 Serial.println(prom); 47 }else{ 48 digitalWrite(2,LOW); 49 Serial.print("D"); 50 Serial.println(prom); 51 52 } 53 54 55 if(Serial.available()>0) 56 {datain= Serial.readStringUntil('\n'); 57 58 id=datain.substring(0,1); 59 datain=datain.substring(1); 60 data=datain.toFloat(); 61 62 if(id=="S"){ 63 servo1.write(data); 64 digitalWrite(4,HIGH); 65 delay(50); 66 digitalWrite(4,LOW); 67 dataout=servo1.read(); 68 Serial.print("S"); 69 Serial.println(dataout); 70 } 71 } 72 } 73 74 75 76
Arduino Code
arduino
1#include <Servo.h>; 2//#include <SoftwareSerial.h>; 3float dataout; 4String datain; 5String id; 6int dataID; 7float data; 8int SIR,dist,prom; 9 10//SoftwareSerial BTserial(10,9); 11 12Servo servo1; 13 14void setup() { 15// BTserial.begin(9600); 16 Serial.begin(9600); 17 delay(1000); 18 servo1.attach(20); 19 pinMode(2,OUTPUT);//RED 20 pinMode(3,OUTPUT);//GREEN 21 pinMode(4,OUTPUT);//BLUE 22servo1.write(90); 23digitalWrite(3,HIGH); 24delay(1000); 25digitalWrite(3,LOW); 26 digitalWrite(4,HIGH); 27 delay(50); 28 digitalWrite(4,LOW); 29 dataout=servo1.read(); 30 Serial.print("S"); 31 Serial.println(dataout); 32} 33 34void loop() { 35 prom=0; 36 for(int i=0;i<=10;i++){ 37 SIR=analogRead(A0); 38 dist=pow(10,log10(SIR/1821.2)/-0.65);delay(100); 39 prom+=dist; 40 } 41 prom=prom/11; 42 43 if(prom<30 && prom>20){ 44 digitalWrite(2,HIGH); 45 Serial.print("D"); 46 Serial.println(prom); 47 }else{ 48 digitalWrite(2,LOW); 49 Serial.print("D"); 50 Serial.println(prom); 51 52 } 53 54 55 if(Serial.available()>0) 56 {datain= Serial.readStringUntil('\ 57'); 58 59 id=datain.substring(0,1); 60 datain=datain.substring(1); 61 data=datain.toFloat(); 62 63 if(id=="S"){ 64 servo1.write(data); 65 digitalWrite(4,HIGH); 66 delay(50); 67 digitalWrite(4,LOW); 68 dataout=servo1.read(); 69 Serial.print("S"); 70 Serial.println(dataout); 71 } 72 } 73 } 74 75 76 77
Processing Code
processing
1 import processing.serial.*; 2 3 Serial btserial; 4 5 PShape l , r, flecha; 6 float varin; 7 boolean over; 8 boolean click; 9 float pos0=2, pos1=2, pos2=2, pos3=2, pos4=2, pos5=2, pos6=2, pos7=2, pos8=2; 10 float datain, senIn, datasen; 11 String bufferin,ID="uno", ID2="dos",data,data2; 12 13 14void setup(){ 15 btserial=new Serial(this,Serial.list()[1],9600); 16 17 printArray(Serial.list()); 18 background(20); 19 size(600,200,P2D); 20 smooth(); 21 22 23 24 25} 26 27void draw(){ 28 29 textAlign(LEFT); 30 fill(255); 31 text("Arduino + HC05",10,20); 32 33 34 textAlign(CENTER); 35 text("Led",100,140); 36 text("Servo",400,165); 37 text("SHARP IR",230,35); 38 text("Distancia:",230,80); 39 fill(0); 40 rectMode(CENTER); 41 rect(230,94,58,18); 42 fill(255); 43if(senIn>80){text("F.D.R",230,100);}else{ 44 text(int(senIn),230,100);} 45 46 image(img1,430,-10,200,60); 47 image(img2,0,160); 48 image(img3,448,170,150,33); 49 50 // LED 51 stroke(126); 52 fill(200); 53 ellipseMode(CENTER); 54 if(mouseX>50 && mouseX<150 && mouseY>50 && mouseY<150) 55 {fill(255); 56 } 57 58 if(ID2.equals("D") && senIn>20 && senIn<30){fill(255,0,0);} 59 if(ID2.equals("D") && (senIn>=30 || senIn<=20)){fill(200);} 60 ellipse(100,100,50,50); 61 62 //Sensor SHARP 63 rectMode(CENTER); 64 fill(126); 65 rect(230,50,60,20); 66 rect(230,60,25,7); 67 fill(150); 68 rect(230,50,58,18); 69 fill(0); 70 ellipse(210,50,15,15); 71 fill(255,0,0); 72 ellipse(250,50,15,15); 73 74 75 //Radar o Movimiento del Servo 76 stroke(0); 77 strokeWeight(3); 78 //fill(56,206,56); 79 fill(100); 80 arc(400,150,200,200,-PI,0); 81 //stroke(100,100,100); 82 stroke(40); 83 strokeWeight(1); 84 line(400,150,400+(100*(cos(radians(22.5)))),150-(100*(radians(22.5)))); 85 line(400,150,400+(100*(cos(PI/4))),150-(100*(sin(PI/4)))); 86 line(400,150,400+(100*(cos(3*PI/8))),150-(100*(sin(3*PI/8)))); 87 line(400,150,400+(100*(cos(PI/2))),150-(100*(sin(PI/2)))); 88 line(400,150,400+(100*(cos(5*PI/8))),150-(100*(sin(5*PI/8)))); 89 line(400,150,400+(100*(cos(3*PI/4))),150-(100*(sin(3*PI/4)))); 90 line(400,150,400+(100*(cos(7*PI/8))),150-(100*(sin(7*PI/8)))); 91 92 93 94 if(mouseX>488 && mouseX<508 && mouseY>138 && mouseY<158) 95 {over=true;if(datain!=pos0){fill(0,255,0);} 96 if(over && mousePressed){click=true;pos0=180.00;} 97 if(click){btserial.write("S"+pos0);}}else{fill(2,165,0);} 98 if(ID!=null && ID.equals("S") && datain==180){fill(255,255,255);} 99 ellipse(498,148,20,20); //Elipse en 180 100 101 102 if(mouseX>470 && mouseX<500 && mouseY>102 && mouseY<122) 103 {over=true;if(datain!=pos1){fill(0,255,0);} 104 if(over && mousePressed){click=true;pos1=157.50;} 105 if(click){btserial.write("S"+pos1);}} else{fill(2,165,0);} 106 if(ID!=null && ID.equals("S") && datain==157){fill(255,255,255);} 107 ellipse(490,112,20,20);//Elipse en 157.5 108 109 110 if(mouseX>459 && mouseX<479 && mouseY>69 && mouseY<89) 111 {over=true;if(datain!=pos2){fill(0,255,0);} 112 if(over && mousePressed){click=true;pos2=135.000;} 113 if(click){btserial.write("S"+pos2);}}else{fill(2,165,0);} 114 if(ID!=null && ID.equals("S") && datain==135){fill(255,255,255);} 115 ellipse(469,79,20,20);//Elipse en 135 116 117 118 if(mouseX>427 && mouseX<447 && mouseY>47 && mouseY<67) 119 {over=true;if(datain!=pos3){fill(0,255,0);} 120 if(over && mousePressed){click=true;pos3=112.500;} 121 if(click){btserial.write("S"+pos3);}}else{fill(2,165,0);} 122 if(ID!=null && ID.equals("S") && datain==112){fill(255,255,255);} 123 ellipse(437,57,20,20);//Elipse en 112.5 124 fill(2,165,0); 125 126 if(mouseX>390 && mouseX<410 && mouseY>40 && mouseY<60) 127 {over=true;if(datain!=pos4){fill(0,255,0);} 128 if(over && mousePressed){click=true;pos4=90.000;} 129 if(click){btserial.write("S"+pos4);}}else{fill(2,165,0);} 130 if(ID!=null && ID.equals("S") && datain==90){fill(255,255,255);} 131 ellipse(400,50,20,20);// Elipse en 90 132 133 if(mouseX>351 && mouseX<371 && mouseY>47 && mouseY<67) 134 {over=true;if(datain!=pos5){fill(0,255,0);} 135 if(over && mousePressed){click=true;pos5=67.500;} 136 if(click){btserial.write("S"+pos5);}}else{fill(2,165,0);} 137 if(ID!=null && ID.equals("S") && datain==67){fill(255,255,255);} 138 ellipse(361,57,20,20);// Elipse en 67.5 139 140 if(mouseX>319 && mouseX<339 && mouseY>69 && mouseY<89) 141 {over=true;if(datain!=pos6){fill(0,255,0);} 142 if(over && mousePressed){click=true;pos6=45;} 143 if(click){btserial.write("S"+pos6);}}else{fill(2,165,0);} 144 if(ID!=null && ID.equals("S") && datain==45){fill(255,255,255);} 145 ellipse(329,79,20,20); // Elipse en 45 146 147 if(mouseX>300 && mouseX<320 && mouseY>102 && mouseY<122) 148 {over=true;if(datain!=pos6){fill(0,255,0);} 149 if(over && mousePressed){click=true;pos7=22.5;} 150 if(click){btserial.write("S"+pos7);}}else{fill(2,165,0);} 151 if(ID!=null && ID.equals("S") && datain==22.5){fill(255,255,255);} 152 ellipse(310,112,20,20);// Elipse en 22.5 153 154 155 if(mouseX>291 && mouseX<311 && mouseY>138 && mouseY<158) 156 {over=true;if(datain!=pos8){fill(0,255,0);} 157 if(over && mousePressed){click=true;pos8=0;} 158 if(click){btserial.write("S"+pos8);}}else{fill(2,165,0);} 159 if(ID!=null && ID.equals("S") && datain==0){fill(255,255,255);} 160 ellipse(301,148,20,20);// Elipse en 0 161 162 163 164if(btserial.available()>0) 165 {bufferin=null; 166 bufferin=btserial.readStringUntil('\n'); 167 if(bufferin!=null){ 168 println("ID= "+ID+" ID2= "+ID2); 169 if(bufferin.substring(0,1).equals("S")){ //S180 D29 170 ID="S"; 171 data=bufferin.substring(1); 172 float indata=float(data); 173 datain=indata; 174 btserial.clear();} 175 if(bufferin.substring(0,1).equals("D")){ 176 ID2="D"; 177 data2=bufferin.substring(1); 178 float indata2=float(data2); 179 senIn=indata2; 180 println(datain); 181 btserial.clear();} 182 } 183 }} 184 185 186void mouseReleased(){ 187 over=false; 188 click=false; 189 190} 191
Downloadable files
Squematic
Squematic
Squematic
Squematic
Comments
Only logged in users can leave comments
victruino
0 Followers
•0 Projects
Table of contents
Intro
6
0