diff --git a/Code/miniRobot/miniRobot.ino b/Code/miniRobot/miniRobot.ino index 4f94f72..bb40118 100644 --- a/Code/miniRobot/miniRobot.ino +++ b/Code/miniRobot/miniRobot.ino @@ -23,6 +23,7 @@ void inline clearCommands() { } const byte address[6] = "00001"; +const byte address2[6] = "00002"; //Kommandos #define nothing 9 //reset/nichts tun #define speedA 1 // set speed A + speed @@ -60,7 +61,7 @@ bool forwardA = true; bool forwardB = true; volatile bool driveOn = false; -int temperatur = 0; +int16_t temperatur = 0; volatile long driveTimeout = 0; @@ -71,6 +72,7 @@ void setup() { // motorA.setPWM16(2,RESOLUTION); // motorB.setPWM16(2,RESOLUTION); radio.begin(); + radio.openWritingPipe(address2); radio.openReadingPipe(0, address); radio.setPALevel(RF24_PA_MAX); radio.startListening(); @@ -83,6 +85,7 @@ void setup() { } void loop() { + Serial.println(temperature); if (radio.available()) { radio.read(&commands, sizeof(commands)); commandInterpretation(); @@ -92,16 +95,18 @@ void loop() { pwmA = 0; pwmB = 0; } + drive.setPWM_A(pwmA); drive.setPWM_B(pwmB); - + + //Temperatur- und Abstandsmessung temperature = dallas(4, 0); if(millis() - timer >= 100){ - measureDistance(); - timer = millis(); + measureDistance(); + timer = millis(); } distance = calculateDistance(); @@ -150,8 +155,10 @@ void commandInterpretation() { break; } case getTemp : { - - radio.write(&temperature, sizeof(temperature)); + Serial.println("Senden!"); + radio.stopListening(); + radio.write(&temperature, sizeof(int16_t)); + radio.startListening(); break; } case timeToDrive : { diff --git a/Code/miniRobotRC/JoystickSteuerung.ino b/Code/miniRobotRC/JoystickSteuerung.ino index 6c03c41..42b7304 100644 --- a/Code/miniRobotRC/JoystickSteuerung.ino +++ b/Code/miniRobotRC/JoystickSteuerung.ino @@ -64,11 +64,5 @@ void joystickInit() { commands[7] = highByte(driveTimeout); commands[8] = lowByte(driveTimeout); commands[9] = goDrive; - commands[10] = getTemp; - commands[11] = highByte(temperature); - commands[12] = lowByte(temperature); - commands[13] = getTemp; - commands[14] = highByte(distance); - commands[15] = lowByte(distance); radio.write(&commands, sizeof(commands)); } diff --git a/Code/miniRobotRC/_main.ino b/Code/miniRobotRC/_main.ino index 5d1d314..cf28a5f 100644 --- a/Code/miniRobotRC/_main.ino +++ b/Code/miniRobotRC/_main.ino @@ -20,11 +20,12 @@ void setup() { void loop() { //lcdMenu(); + while(!tasten.getButtonCycle(buttonStart)) { manualDigitalDrive(); } tasten.clearButton(buttonStart); - while(!tasten.getButtonCycle(buttonStart)){ + while(!tasten.getButtonCycle(buttonStart)){ motorMapping(); } tasten.clearButton(buttonStart); @@ -32,6 +33,7 @@ void loop() { joystickSteuerung(); //TODO () } tasten.clearButton(buttonStart); + } void lcdMenu() { diff --git a/Code/miniRobotRC/fahrsteuerung_old.ino b/Code/miniRobotRC/fahrsteuerung_old.ino index 4c764b4..500a42c 100644 --- a/Code/miniRobotRC/fahrsteuerung_old.ino +++ b/Code/miniRobotRC/fahrsteuerung_old.ino @@ -1,4 +1,5 @@ void manualDigitalDrive() { + bool goOn = false; String temp_str = "T: " + String(temperature) + " Grad C"; lcdLines[5] = temp_str; @@ -48,6 +49,30 @@ void manualDigitalDrive() { radio.write(&commands, sizeof(commands)); goOn = false; } + + //Temperatur <3 + + if((millis() - temp_time) >= 5000){ // jede Sekunden + temp_time = millis(); + bool err = false; + clearCommands(); + commands[0] = getTemp; + radio.write(&commands, sizeof(commands) && !err); + long start = micros(); + radio.startListening(); + while(!radio.available()){ + //Serial.println("nix"); + if((micros()- start) >= 1){ + + err = true; + } + } + if(!err){ + radio.read(&temperature, sizeof(int16_t)); + } + radio.stopListening(); + } + // } // tasten.clearAllButtons(); } diff --git a/Code/miniRobotRC/funkInit.ino b/Code/miniRobotRC/funkInit.ino index 308995f..aa72370 100644 --- a/Code/miniRobotRC/funkInit.ino +++ b/Code/miniRobotRC/funkInit.ino @@ -1,6 +1,8 @@ void funkInit() { radio.begin(); + radio.openWritingPipe(address); + radio.openReadingPipe(0, address2); radio.setPALevel(RF24_PA_MAX); radio.stopListening(); } diff --git a/Code/miniRobotRC/miniRobotRC.ino b/Code/miniRobotRC/miniRobotRC.ino index eb73d78..322d632 100644 --- a/Code/miniRobotRC/miniRobotRC.ino +++ b/Code/miniRobotRC/miniRobotRC.ino @@ -42,6 +42,8 @@ uint16_t driveTimeout = 0; int16_t distance; int16_t temperature = 0; +int16_t temp_time = millis(); + //Funk #include #include @@ -50,5 +52,6 @@ int16_t temperature = 0; RF24 radio(A2, A3); // CE, CSN const byte address[6] = "00001"; +const byte address2[6] = "00002"; uint8_t commands[32];