Ultrasonic searcher with Servo controlled by PC

Dependencies:   HCSR04 Servo TextLCD mbed

Committer:
Birkan
Date:
Wed Nov 13 22:33:57 2013 +0000
Revision:
1:3707e73808d1
Parent:
0:0fd92cba86c2
Servo_Ultrasonic_LCD_PC

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Birkan 0:0fd92cba86c2 1 #include "mbed.h"
Birkan 0:0fd92cba86c2 2 #include "Servo.h"
Birkan 0:0fd92cba86c2 3 #include "hcsr04.h"
Birkan 0:0fd92cba86c2 4 #include "TextLCD.h"
Birkan 0:0fd92cba86c2 5
Birkan 1:3707e73808d1 6 LocalFileSystem local("local"); // text dosyası açılımı
Birkan 0:0fd92cba86c2 7 Serial pc(USBTX, USBRX); // pc & mbed seri iletişimi
Birkan 0:0fd92cba86c2 8 TextLCD lcd(p15, p16, p17, p18, p19, p20); // rs, e, d4-d7 LCD pin bağlantısı
Birkan 0:0fd92cba86c2 9 Servo myservo(p21); // servo pin girişi
Birkan 0:0fd92cba86c2 10 DigitalOut hedef_var(LED1);
Birkan 0:0fd92cba86c2 11 DigitalOut working(LED2);
Birkan 0:0fd92cba86c2 12 DigitalOut open(LED3);
Birkan 0:0fd92cba86c2 13 DigitalOut close(LED4);
Birkan 0:0fd92cba86c2 14 HCSR04 usensor(p25,p9); // ultrasonic sensor trig, echo pinleri
Birkan 0:0fd92cba86c2 15
Birkan 0:0fd92cba86c2 16 int dist; // distance için 'd'
Birkan 0:0fd92cba86c2 17 char c; // pc den alınan karakter için 'c'
Birkan 1:3707e73808d1 18 float p,i,j,a,b; // servo için adım tanımı
Birkan 0:0fd92cba86c2 19
Birkan 0:0fd92cba86c2 20 int main()
Birkan 0:0fd92cba86c2 21 {
Birkan 0:0fd92cba86c2 22
Birkan 0:0fd92cba86c2 23 working=1; // çalıştığını gösteriyor
Birkan 0:0fd92cba86c2 24
Birkan 0:0fd92cba86c2 25 while(1)
Birkan 0:0fd92cba86c2 26 {
Birkan 0:0fd92cba86c2 27
Birkan 0:0fd92cba86c2 28
Birkan 0:0fd92cba86c2 29 for(p=0.0; p<=1.0; p += 0.05) // servo için adım
Birkan 0:0fd92cba86c2 30 {
Birkan 0:0fd92cba86c2 31 usensor.start(); // usensor sinyal gönderiyor
Birkan 0:0fd92cba86c2 32 wait_ms(500);
Birkan 0:0fd92cba86c2 33 dist=usensor.get_dist_cm(); // sinyal dönüşü mesafe hesabı
Birkan 0:0fd92cba86c2 34 lcd.cls();
Birkan 0:0fd92cba86c2 35 lcd.locate(0,0);
Birkan 0:0fd92cba86c2 36 lcd.printf("Obs Range cm:%ld",dist); // LCD ye mesafe yazdırılıyor
Birkan 0:0fd92cba86c2 37 printf("%d\n ",dist); //
Birkan 0:0fd92cba86c2 38 printf("%f\n ",p); //
Birkan 0:0fd92cba86c2 39
Birkan 0:0fd92cba86c2 40
Birkan 0:0fd92cba86c2 41 if(dist<50) //30 cm den az hedef varsa doğrulamak için
Birkan 0:0fd92cba86c2 42 {
Birkan 0:0fd92cba86c2 43 lcd.cls();
Birkan 0:0fd92cba86c2 44 lcd.locate(0,0);
Birkan 0:0fd92cba86c2 45 lcd.printf("Obs Range cm:%ld",dist);
Birkan 0:0fd92cba86c2 46 lcd.locate(0,1);
Birkan 0:0fd92cba86c2 47 lcd.printf("location :%f",p);
Birkan 1:3707e73808d1 48 hedef_var=1;
Birkan 0:0fd92cba86c2 49 }
Birkan 0:0fd92cba86c2 50
Birkan 0:0fd92cba86c2 51 else if(dist>50)
Birkan 0:0fd92cba86c2 52 {
Birkan 0:0fd92cba86c2 53 hedef_var=0;
Birkan 0:0fd92cba86c2 54
Birkan 0:0fd92cba86c2 55 }
Birkan 0:0fd92cba86c2 56
Birkan 0:0fd92cba86c2 57
Birkan 0:0fd92cba86c2 58 myservo = p;
Birkan 0:0fd92cba86c2 59 wait(0.2);
Birkan 0:0fd92cba86c2 60
Birkan 0:0fd92cba86c2 61
Birkan 0:0fd92cba86c2 62 }
Birkan 0:0fd92cba86c2 63
Birkan 0:0fd92cba86c2 64 // SERVO GERİ DÖNÜYOR //
Birkan 0:0fd92cba86c2 65
Birkan 0:0fd92cba86c2 66 for(p=1.0; p>0.0; p -=0.05)
Birkan 0:0fd92cba86c2 67 {
Birkan 0:0fd92cba86c2 68 usensor.start();
Birkan 0:0fd92cba86c2 69 wait_ms(500);
Birkan 0:0fd92cba86c2 70 dist=usensor.get_dist_cm();
Birkan 0:0fd92cba86c2 71 lcd.cls();
Birkan 0:0fd92cba86c2 72 lcd.locate(0,0);
Birkan 0:0fd92cba86c2 73 lcd.printf("Obs Range cm:%ld",dist);
Birkan 0:0fd92cba86c2 74 printf(" %d\n ",dist); //
Birkan 0:0fd92cba86c2 75 printf("%f\n ",p); //
Birkan 0:0fd92cba86c2 76
Birkan 0:0fd92cba86c2 77 if(dist<=50)
Birkan 0:0fd92cba86c2 78 {
Birkan 0:0fd92cba86c2 79
Birkan 0:0fd92cba86c2 80
Birkan 0:0fd92cba86c2 81 lcd.cls();
Birkan 0:0fd92cba86c2 82 lcd.locate(0,0);
Birkan 0:0fd92cba86c2 83 lcd.printf("Obs Range cm:%ld",dist);
Birkan 0:0fd92cba86c2 84 lcd.locate(0,1);
Birkan 0:0fd92cba86c2 85 lcd.printf("location :%f",p);
Birkan 1:3707e73808d1 86 hedef_var=1;
Birkan 1:3707e73808d1 87
Birkan 0:0fd92cba86c2 88 }
Birkan 0:0fd92cba86c2 89 else if(dist>50)
Birkan 0:0fd92cba86c2 90 {
Birkan 0:0fd92cba86c2 91 hedef_var=0;
Birkan 0:0fd92cba86c2 92 }
Birkan 0:0fd92cba86c2 93
Birkan 0:0fd92cba86c2 94
Birkan 0:0fd92cba86c2 95 myservo = p;
Birkan 0:0fd92cba86c2 96 wait(0.2);
Birkan 0:0fd92cba86c2 97
Birkan 0:0fd92cba86c2 98
Birkan 0:0fd92cba86c2 99 }
Birkan 0:0fd92cba86c2 100
Birkan 0:0fd92cba86c2 101 }
Birkan 0:0fd92cba86c2 102
Birkan 0:0fd92cba86c2 103
Birkan 0:0fd92cba86c2 104
Birkan 0:0fd92cba86c2 105
Birkan 0:0fd92cba86c2 106 }
Birkan 0:0fd92cba86c2 107