Stick some BLE in ME.
Dependencies: TB6612FNG mbed BLE_nRF8001
main.cpp
00001 //THE INFAMOUS NET TRAP 00002 //Brought to you by Team LaTe 00003 00004 00005 #include "mbed.h" 00006 #include "TB6612.h" 00007 #include "nRF8001.h" 00008 #include "BLEPeripheral.h" 00009 #include "BLECharacteristic.h" 00010 00011 //Init 00012 DigitalOut led1(LED1); 00013 DigitalOut led2(LED2); 00014 DigitalOut led3(LED3); 00015 Serial serial(USBTX, USBRX); // tx, rx 00016 00017 //BLE breakout 00018 SPI spi(D11, D12, D13); 00019 DigitalInOut req(PTD0); // D10 00020 DigitalInOut rdy(PTD4); // D2 needs a different pin 00021 DigitalInOut rst(PTD5); // D9 00022 00023 //Motor driver 00024 DigitalOut BIN2(D3); 00025 DigitalOut BIN1(D4); 00026 PwmOut PWMB(D6); 00027 DigitalOut stdby(D14); 00028 TB6612 motorB(D6,D3,D4); // PWMA,AIN1,AIN2 00029 00030 //Ultrasonic 00031 float distance = 0; 00032 float raw = 0; 00033 int dropped = 0; 00034 DigitalOut ultra_trigger(D8); 00035 AnalogIn ultra_out(A0); 00036 00037 BLEProperty read = BLERead; 00038 BLEProperty write = BLEWrite; 00039 BLEProperty notify = BLENotify; 00040 00041 BLEPeripheral blePeripheral = BLEPeripheral(&req,&rdy,&rst); 00042 BLEService service = BLEService("5794ba16-ce64-46e5-9804-6851f7b3a183"); 00043 BLECharacteristic netDropChrc = BLECharacteristic("fbb3136a-fe49-445b-a612-2019d1b33a6c",read | write,1,1); 00044 BLECharacteristic netDisarmedChrc = BLECharacteristic("f80fb006-0e8e-412c-8a92-19fe85328daa",read | write | notify,1,1); 00045 00046 int main() 00047 { 00048 serial.printf("starting something\r\n"); 00049 led1 = 1; 00050 led2 = 1; 00051 led3 = 1; 00052 00053 ultra_trigger = 1; 00054 motorB = 0.0; 00055 stdby = 1; 00056 00057 blePeripheral.setLocalName("NETTRAP"); 00058 blePeripheral.setDeviceName("net trap peripheral!"); 00059 blePeripheral.setAdvertisedServiceUuid(service.uuid()); 00060 blePeripheral.addAttribute(service); 00061 serial.printf("set up attributes and so on \r\n"); 00062 blePeripheral.addAttribute(netDropChrc); 00063 blePeripheral.addAttribute(netDisarmedChrc); 00064 serial.printf("added characteristics\r\n"); 00065 00066 char* bufTrue = "t"; 00067 char* bufFalse = "f"; 00068 netDropChrc.setValue(bufFalse); 00069 netDisarmedChrc.setValue(bufFalse); 00070 serial.printf("set up characteristic values\r\n"); 00071 00072 blePeripheral.begin(); 00073 serial.printf("began peripheral supposedly\r\n"); 00074 00075 00076 00077 while(true) { 00078 00079 00080 if (*netDropChrc.value() == 'f') { 00081 if (*netDisarmedChrc.value()== 't') { 00082 dropped = 1; 00083 } 00084 else { 00085 dropped = 0; 00086 } 00087 } 00088 00089 else { 00090 dropped = 1; 00091 } 00092 00093 blePeripheral.poll(); 00094 motorB = 0.0; 00095 raw = ultra_out; 00096 distance = (ultra_out * 5) / 0.0098 ; 00097 serial.printf("%1.3f %1.3f \n", raw, distance); 00098 if (distance < 20 && dropped == 0) { 00099 motorB = 1.0; 00100 netDropChrc.setValue(bufTrue); 00101 dropped = 1; 00102 } 00103 wait(1); 00104 } 00105 00106 } 00107 00108 00109 00110 00111 00112 00113
Generated on Sat Jul 16 2022 01:36:01 by 1.7.2