tes ir atas semua

Dependencies:   mbed ADS1115 StepperMotor SRF05 TPA81new

Committer:
hisyamfs
Date:
Fri Mar 01 10:28:41 2019 +0000
Revision:
44:49ef8addf233
Parent:
43:b82c19d0c6a9
Child:
45:96815f504b17
ir aja

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hisyamfs 12:1e3227a6fcd7 1 #include "mbed.h"
hisyamfs 12:1e3227a6fcd7 2 #include "TPA81new.h"
hisyamfs 16:771d84a80e3d 3 #include "SRF05.h"
hisyamfs 19:9a7b34bedc6c 4 #include "Uvtron.h"
hisyamfs 41:71c6f608fd2b 5 #include "Stepper.h"
hisyamfs 42:3b682b7d0388 6 #include "AMG8833.h"
hisyamfs 44:49ef8addf233 7 #include "Adafruit_ADS1015.h"
hisyamfs 44:49ef8addf233 8
hisyamfs 44:49ef8addf233 9 // Konstanta
hisyamfs 44:49ef8addf233 10 #define WAIT_TIME 0.05
hisyamfs 44:49ef8addf233 11 // infrared
hisyamfs 44:49ef8addf233 12 #define a_depan 5000000
hisyamfs 44:49ef8addf233 13 #define b_depan 1.229
hisyamfs 44:49ef8addf233 14 #define a_ads 500000
hisyamfs 44:49ef8addf233 15 #define b_ads 1.184
hisyamfs 14:207770fefedf 16
hisyamfs 15:da7a15289893 17 Serial pc(USBTX,USBRX);
hisyamfs 17:fd06e8104835 18
hisyamfs 42:3b682b7d0388 19 // AMG
hisyamfs 44:49ef8addf233 20 Adafruit_AMG88xx amg(PB_3, PB_10); // sda, scl
hisyamfs 42:3b682b7d0388 21 float pixels[AMG88xx_PIXEL_ARRAY_SIZE];
dmgongora 0:79e2a8171b16 22
hisyamfs 18:f3b23331090f 23 DigitalOut relay(PB_2);
hisyamfs 44:49ef8addf233 24 Uvtron uv(PC_12);
hisyamfs 26:9c7f39e21df4 25 DigitalIn sound(PA_9);
hisyamfs 21:bfb064f77f88 26 AnalogIn line(PC_1);
hisyamfs 21:bfb064f77f88 27
hisyamfs 44:49ef8addf233 28 // Infrared
hisyamfs 27:4d79aba70fe8 29 // atas
hisyamfs 27:4d79aba70fe8 30 AnalogIn ira1(PC_5);
hisyamfs 27:4d79aba70fe8 31 AnalogIn ira2(PA_5);
hisyamfs 27:4d79aba70fe8 32 AnalogIn ira3(PC_2);
hisyamfs 27:4d79aba70fe8 33 AnalogIn ira4(PC_3);
hisyamfs 44:49ef8addf233 34 AnalogIn ira5(PC_4);
hisyamfs 44:49ef8addf233 35 AnalogIn ira6(PB_1);
hisyamfs 44:49ef8addf233 36 AnalogIn ira7(PA_7);
hisyamfs 44:49ef8addf233 37 AnalogIn ira8(PA_6);
hisyamfs 27:4d79aba70fe8 38 // bawah
hisyamfs 27:4d79aba70fe8 39 AnalogIn irb1(PA_0);
hisyamfs 27:4d79aba70fe8 40 AnalogIn irb2(PA_1);
hisyamfs 27:4d79aba70fe8 41 AnalogIn irb3(PA_4);
hisyamfs 27:4d79aba70fe8 42 AnalogIn irb4(PB_0);
hisyamfs 44:49ef8addf233 43 // ADC
hisyamfs 44:49ef8addf233 44 I2C ads_i2c(PB_9, PB_8); // sda, scl
hisyamfs 44:49ef8addf233 45 Adafruit_ADS1115 ads(&ads_i2c);
hisyamfs 27:4d79aba70fe8 46
hisyamfs 44:49ef8addf233 47 stepper s(PC_8, PC_6, PA_12, PA_11, PB_12, PC_7);
hisyamfs 40:1c29f33d54d7 48 // stepper(PinName _en, PinName ms1, PinName ms2, PinName ms3, PinName _stepPin, PinName dir);
hisyamfs 40:1c29f33d54d7 49
hisyamfs 44:49ef8addf233 50 DigitalOut led_api(PB_6);
hisyamfs 37:f0b535131cbf 51 DigitalOut led_sound(PH_1);
hisyamfs 37:f0b535131cbf 52
hisyamfs 27:4d79aba70fe8 53 float call_depan(uint16_t x){
hisyamfs 27:4d79aba70fe8 54 float side_distance = a_depan/pow(x,b_depan)+1;
hisyamfs 27:4d79aba70fe8 55 return side_distance;
hisyamfs 27:4d79aba70fe8 56 }
hisyamfs 27:4d79aba70fe8 57
hisyamfs 44:49ef8addf233 58 float call_ads(uint16_t ir) {
hisyamfs 44:49ef8addf233 59 float voltage = ir * 6.2676 * 10e-5; // ubah ke mV
hisyamfs 44:49ef8addf233 60 uint16_t x = (voltage/3.3f) * 0xFFFF; // ubah ke uint16_t sesuai max nucleo
hisyamfs 44:49ef8addf233 61 float dist = a_ads/pow(x, b_ads);
hisyamfs 44:49ef8addf233 62 return dist;
hisyamfs 44:49ef8addf233 63 }
hisyamfs 44:49ef8addf233 64
dmgongora 0:79e2a8171b16 65 int main()
hisyamfs 12:1e3227a6fcd7 66 {
hisyamfs 41:71c6f608fd2b 67 relay = 1;
hisyamfs 37:f0b535131cbf 68 led_api = 0;
hisyamfs 37:f0b535131cbf 69 led_sound = 0;
hisyamfs 42:3b682b7d0388 70 amg.begin(AMG88xx_ADDRESS);
hisyamfs 42:3b682b7d0388 71 amg.setMovingAverageMode(1);
hisyamfs 42:3b682b7d0388 72
hisyamfs 44:49ef8addf233 73 // while(sound.read()){
hisyamfs 44:49ef8addf233 74 // wait(0.2);
hisyamfs 44:49ef8addf233 75 // }
hisyamfs 42:3b682b7d0388 76
hisyamfs 44:49ef8addf233 77 // pc.printf("Sound Detected\n");
hisyamfs 42:3b682b7d0388 78
hisyamfs 15:da7a15289893 79 while(1) {
hisyamfs 44:49ef8addf233 80 //// AMG
hisyamfs 44:49ef8addf233 81 // amg.readPixels(pixels);
hisyamfs 44:49ef8addf233 82 // float max_temp = pixels[0];
hisyamfs 44:49ef8addf233 83 // int max_i = 0;
hisyamfs 44:49ef8addf233 84 // float sum_temp = 0;
hisyamfs 44:49ef8addf233 85 // for (int i = 1; i <= AMG88xx_PIXEL_ARRAY_SIZE; i++) {
hisyamfs 44:49ef8addf233 86 // if (pixels[i-1] > max_temp) {
hisyamfs 44:49ef8addf233 87 // max_temp = pixels[i-1];
hisyamfs 44:49ef8addf233 88 // max_i = i;
hisyamfs 44:49ef8addf233 89 // }
hisyamfs 44:49ef8addf233 90 // sum_temp += pixels[i-1];
hisyamfs 44:49ef8addf233 91 // }
hisyamfs 44:49ef8addf233 92 // pc.printf("temp max= %.2f at %d\n", max_temp, max_i);
hisyamfs 44:49ef8addf233 93 // pc.printf("temp rata2 = %.2f", sum_temp/AMG88xx_PIXEL_ARRAY_SIZE);
hisyamfs 17:fd06e8104835 94
hisyamfs 44:49ef8addf233 95 //// UVTron
hisyamfs 43:b82c19d0c6a9 96 // uv.Read();
hisyamfs 44:49ef8addf233 97 // int read = uv.Flag;
hisyamfs 43:b82c19d0c6a9 98 // if (read) pc.printf("FIRE DETECTED\n");
hisyamfs 43:b82c19d0c6a9 99 // else pc.printf("NOT DETECTED\n");
hisyamfs 43:b82c19d0c6a9 100 // wait(0.5); // 200 ms
hisyamfs 15:da7a15289893 101
hisyamfs 44:49ef8addf233 102 //// Relay
hisyamfs 44:49ef8addf233 103 // relay = 0;
hisyamfs 44:49ef8addf233 104 // pc.printf("RELAY ON\n");
hisyamfs 44:49ef8addf233 105 // wait(1);
hisyamfs 44:49ef8addf233 106 // relay = 1;
hisyamfs 44:49ef8addf233 107 // pc.printf("RELAY OFF\n");
hisyamfs 21:bfb064f77f88 108
hisyamfs 44:49ef8addf233 109 //// Line
hisyamfs 44:49ef8addf233 110 // pc.printf("Line = %.2f\n", 3300*line.read());
hisyamfs 44:49ef8addf233 111 //
hisyamfs 42:3b682b7d0388 112 // IR
hisyamfs 44:49ef8addf233 113 uint16_t ads_raw[4] = {0, 0, 0,0};
hisyamfs 44:49ef8addf233 114 for (int i=0; i < 4; i++) {
hisyamfs 44:49ef8addf233 115 ads_raw[i] = ads.readADC_SingleEnded(i);
hisyamfs 44:49ef8addf233 116 };
hisyamfs 27:4d79aba70fe8 117 uint16_t raw_a1 = ira1.read_u16();
hisyamfs 27:4d79aba70fe8 118 uint16_t raw_a2 = ira2.read_u16();
hisyamfs 27:4d79aba70fe8 119 uint16_t raw_a3 = ira3.read_u16();
hisyamfs 27:4d79aba70fe8 120 uint16_t raw_a4 = ira4.read_u16();
hisyamfs 27:4d79aba70fe8 121 uint16_t raw_a5 = ira5.read_u16();
hisyamfs 27:4d79aba70fe8 122 uint16_t raw_a6 = ira6.read_u16();
hisyamfs 27:4d79aba70fe8 123 uint16_t raw_a7 = ira7.read_u16();
hisyamfs 27:4d79aba70fe8 124 uint16_t raw_a8 = ira8.read_u16();
hisyamfs 27:4d79aba70fe8 125
hisyamfs 27:4d79aba70fe8 126 uint16_t raw_b1 = irb1.read_u16();
hisyamfs 27:4d79aba70fe8 127 uint16_t raw_b2 = irb2.read_u16();
hisyamfs 27:4d79aba70fe8 128 uint16_t raw_b3 = irb3.read_u16();
hisyamfs 27:4d79aba70fe8 129 uint16_t raw_b4 = irb4.read_u16();
hisyamfs 27:4d79aba70fe8 130
hisyamfs 27:4d79aba70fe8 131 float dist_a1 = call_depan(raw_a1);
hisyamfs 27:4d79aba70fe8 132 float dist_a2 = call_depan(raw_a2);
hisyamfs 27:4d79aba70fe8 133 float dist_a3 = call_depan(raw_a3);
hisyamfs 27:4d79aba70fe8 134 float dist_a4 = call_depan(raw_a4);
hisyamfs 27:4d79aba70fe8 135 float dist_a5 = call_depan(raw_a5);
hisyamfs 27:4d79aba70fe8 136 float dist_a6 = call_depan(raw_a6);
hisyamfs 27:4d79aba70fe8 137 float dist_a7 = call_depan(raw_a7);
hisyamfs 27:4d79aba70fe8 138 float dist_a8 = call_depan(raw_a8);
hisyamfs 44:49ef8addf233 139 float dist_a9 = call_ads(ads_raw[0]);
hisyamfs 44:49ef8addf233 140 float dist_a10 = call_ads(ads_raw[1]);
hisyamfs 44:49ef8addf233 141 float dist_a11 = call_ads(ads_raw[2]);
hisyamfs 44:49ef8addf233 142 float dist_a12 = call_ads(ads_raw[3]);
hisyamfs 27:4d79aba70fe8 143 float dist_b1 = call_depan(raw_b1);
hisyamfs 27:4d79aba70fe8 144 float dist_b2 = call_depan(raw_b2);
hisyamfs 27:4d79aba70fe8 145 float dist_b3 = call_depan(raw_b3);
hisyamfs 27:4d79aba70fe8 146 float dist_b4 = call_depan(raw_b4);
hisyamfs 27:4d79aba70fe8 147
hisyamfs 27:4d79aba70fe8 148 pc.printf("ir atas\n");
hisyamfs 44:49ef8addf233 149 pc.printf("%.2f %.2f %.2f %.2f\n", dist_a9, dist_a10, dist_a11, dist_a12);
hisyamfs 44:49ef8addf233 150 pc.printf("%.2f %.2f\n", dist_a3, dist_a1);
hisyamfs 44:49ef8addf233 151 pc.printf("%.2f %.2f\n", dist_a4, dist_a6);
hisyamfs 44:49ef8addf233 152 pc.printf("%.2f %.2f %.2f %.2f\n", dist_a2, dist_a8, dist_a7, dist_a5);
hisyamfs 27:4d79aba70fe8 153
hisyamfs 27:4d79aba70fe8 154 pc.printf("ir bawah\n");
hisyamfs 28:528c2fbd6a54 155 pc.printf(" %.2f\n", dist_b1);
hisyamfs 28:528c2fbd6a54 156 pc.printf("%.2f %.2f\n", dist_b2, dist_b3);
hisyamfs 28:528c2fbd6a54 157 pc.printf(" %.2f\n", dist_b4);
hisyamfs 37:f0b535131cbf 158
hisyamfs 37:f0b535131cbf 159 wait(1);
hisyamfs 37:f0b535131cbf 160
hisyamfs 44:49ef8addf233 161 //// Stepper
hisyamfs 44:49ef8addf233 162 // pc.printf("Stepper \n");
hisyamfs 44:49ef8addf233 163 // for (int i = 0; i < 50; i++) {
hisyamfs 44:49ef8addf233 164 // s.step(1, 1, 1/WAIT_TIME);
hisyamfs 44:49ef8addf233 165 // }
hisyamfs 44:49ef8addf233 166 //
hisyamfs 44:49ef8addf233 167 // for (int i = 0; i < 50; i++) {
hisyamfs 44:49ef8addf233 168 // s.step(1, -1, 1/WAIT_TIME);
hisyamfs 44:49ef8addf233 169 // }
hisyamfs 44:49ef8addf233 170 //
hisyamfs 44:49ef8addf233 171 // // LED
hisyamfs 44:49ef8addf233 172 // led_api = 1;
hisyamfs 44:49ef8addf233 173 // pc.printf("led api on\n");
hisyamfs 44:49ef8addf233 174 // wait(0.5);
hisyamfs 44:49ef8addf233 175 // led_api = 0;
hisyamfs 44:49ef8addf233 176 // pc.printf("led api off\n");
hisyamfs 42:3b682b7d0388 177
hisyamfs 44:49ef8addf233 178 //led_sound = 1;
hisyamfs 44:49ef8addf233 179 // pc.printf("led sound on\n");
hisyamfs 44:49ef8addf233 180 // wait(0.5);
hisyamfs 44:49ef8addf233 181 // led_sound = 0;
hisyamfs 44:49ef8addf233 182 // pc.printf("led sound off\n");
hisyamfs 44:49ef8addf233 183 // wait(0.5);
hisyamfs 42:3b682b7d0388 184
hisyamfs 37:f0b535131cbf 185 pc.printf("\033[2J\033[H");
hisyamfs 14:207770fefedf 186 }
hisyamfs 15:da7a15289893 187 }