tes ir atas semua

Dependencies:   mbed ADS1115 StepperMotor SRF05 TPA81new

Committer:
hisyamfs
Date:
Tue Mar 05 12:22:31 2019 +0000
Revision:
45:96815f504b17
Parent:
44:49ef8addf233
Child:
46:4030083b43b3
ir adc 1 untuk semua, sesuai channel 1 (pojok kiri depan)

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 45:96815f504b17 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 45:96815f504b17 45 Adafruit_ADS1015 ads(&ads_i2c);
hisyamfs 27:4d79aba70fe8 46
hisyamfs 45:96815f504b17 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 45:96815f504b17 53 float call_depan(uint16_t x)
hisyamfs 45:96815f504b17 54 {
hisyamfs 27:4d79aba70fe8 55 float side_distance = a_depan/pow(x,b_depan)+1;
hisyamfs 27:4d79aba70fe8 56 return side_distance;
hisyamfs 27:4d79aba70fe8 57 }
hisyamfs 27:4d79aba70fe8 58
hisyamfs 44:49ef8addf233 59 float call_ads(uint16_t ir) {
hisyamfs 44:49ef8addf233 60 float voltage = ir * 6.2676 * 10e-5; // ubah ke mV
hisyamfs 44:49ef8addf233 61 uint16_t x = (voltage/3.3f) * 0xFFFF; // ubah ke uint16_t sesuai max nucleo
hisyamfs 45:96815f504b17 62 float dist = a_ads/pow(x, b_ads)+1;
hisyamfs 44:49ef8addf233 63 return dist;
hisyamfs 44:49ef8addf233 64 }
hisyamfs 44:49ef8addf233 65
dmgongora 0:79e2a8171b16 66 int main()
hisyamfs 12:1e3227a6fcd7 67 {
hisyamfs 45:96815f504b17 68 while (1) {
hisyamfs 42:3b682b7d0388 69 // IR
hisyamfs 44:49ef8addf233 70 uint16_t ads_raw[4] = {0, 0, 0,0};
hisyamfs 45:96815f504b17 71 for (uint8_t i=0; i < 4; i++) {
hisyamfs 44:49ef8addf233 72 ads_raw[i] = ads.readADC_SingleEnded(i);
hisyamfs 44:49ef8addf233 73 };
hisyamfs 27:4d79aba70fe8 74 uint16_t raw_a1 = ira1.read_u16();
hisyamfs 27:4d79aba70fe8 75 uint16_t raw_a2 = ira2.read_u16();
hisyamfs 27:4d79aba70fe8 76 uint16_t raw_a3 = ira3.read_u16();
hisyamfs 27:4d79aba70fe8 77 uint16_t raw_a4 = ira4.read_u16();
hisyamfs 27:4d79aba70fe8 78 uint16_t raw_a5 = ira5.read_u16();
hisyamfs 27:4d79aba70fe8 79 uint16_t raw_a6 = ira6.read_u16();
hisyamfs 27:4d79aba70fe8 80 uint16_t raw_a7 = ira7.read_u16();
hisyamfs 27:4d79aba70fe8 81 uint16_t raw_a8 = ira8.read_u16();
hisyamfs 45:96815f504b17 82
hisyamfs 27:4d79aba70fe8 83 uint16_t raw_b1 = irb1.read_u16();
hisyamfs 27:4d79aba70fe8 84 uint16_t raw_b2 = irb2.read_u16();
hisyamfs 27:4d79aba70fe8 85 uint16_t raw_b3 = irb3.read_u16();
hisyamfs 27:4d79aba70fe8 86 uint16_t raw_b4 = irb4.read_u16();
hisyamfs 45:96815f504b17 87
hisyamfs 27:4d79aba70fe8 88 float dist_a1 = call_depan(raw_a1);
hisyamfs 27:4d79aba70fe8 89 float dist_a2 = call_depan(raw_a2);
hisyamfs 27:4d79aba70fe8 90 float dist_a3 = call_depan(raw_a3);
hisyamfs 27:4d79aba70fe8 91 float dist_a4 = call_depan(raw_a4);
hisyamfs 27:4d79aba70fe8 92 float dist_a5 = call_depan(raw_a5);
hisyamfs 27:4d79aba70fe8 93 float dist_a6 = call_depan(raw_a6);
hisyamfs 27:4d79aba70fe8 94 float dist_a7 = call_depan(raw_a7);
hisyamfs 27:4d79aba70fe8 95 float dist_a8 = call_depan(raw_a8);
hisyamfs 45:96815f504b17 96 float dist_a9 = call_ads(ads_raw[1]);
hisyamfs 45:96815f504b17 97 float dist_a10 = call_ads(ads_raw[3]);
hisyamfs 44:49ef8addf233 98 float dist_a11 = call_ads(ads_raw[2]);
hisyamfs 45:96815f504b17 99 float dist_a12 = call_ads(ads_raw[0]);
hisyamfs 27:4d79aba70fe8 100 float dist_b1 = call_depan(raw_b1);
hisyamfs 27:4d79aba70fe8 101 float dist_b2 = call_depan(raw_b2);
hisyamfs 27:4d79aba70fe8 102 float dist_b3 = call_depan(raw_b3);
hisyamfs 27:4d79aba70fe8 103 float dist_b4 = call_depan(raw_b4);
hisyamfs 45:96815f504b17 104
hisyamfs 27:4d79aba70fe8 105 pc.printf("ir atas\n");
hisyamfs 44:49ef8addf233 106 pc.printf("%.2f %.2f %.2f %.2f\n", dist_a9, dist_a10, dist_a11, dist_a12);
hisyamfs 44:49ef8addf233 107 pc.printf("%.2f %.2f\n", dist_a3, dist_a1);
hisyamfs 44:49ef8addf233 108 pc.printf("%.2f %.2f\n", dist_a4, dist_a6);
hisyamfs 44:49ef8addf233 109 pc.printf("%.2f %.2f %.2f %.2f\n", dist_a2, dist_a8, dist_a7, dist_a5);
hisyamfs 45:96815f504b17 110
hisyamfs 27:4d79aba70fe8 111 pc.printf("ir bawah\n");
hisyamfs 28:528c2fbd6a54 112 pc.printf(" %.2f\n", dist_b1);
hisyamfs 28:528c2fbd6a54 113 pc.printf("%.2f %.2f\n", dist_b2, dist_b3);
hisyamfs 28:528c2fbd6a54 114 pc.printf(" %.2f\n", dist_b4);
hisyamfs 45:96815f504b17 115
hisyamfs 45:96815f504b17 116 wait_ms(200);
hisyamfs 37:f0b535131cbf 117 pc.printf("\033[2J\033[H");
hisyamfs 14:207770fefedf 118 }
hisyamfs 15:da7a15289893 119 }