From 5439a5f51122176e995b299100586d204bb7a0a0 Mon Sep 17 00:00:00 2001 From: Abel Tim Date: Fri, 21 Mar 2025 20:47:25 +0100 Subject: fix serial --- CODE/CODE.ino | 38 +++--- CODE/debug/IR/IR_sens/IR_sens.ino | 149 +++++++++++++++++++++ CODE/debug/IR/IR_sens/IR_sens1.ino | 149 --------------------- .../debug/IR/communication/direct_rx/direct_rx.ino | 15 +++ .../debug/IR/communication/rx_teensy/rx_teensy.ino | 6 +- CODE/debug/IR/communication/tx_seeed/tx_seeed.ino | 2 +- CODE/debug/IR/teensydeco/teensydeco.ino | 6 +- CODE/debug/color/Blink.txt | 1 - 8 files changed, 193 insertions(+), 173 deletions(-) create mode 100644 CODE/debug/IR/IR_sens/IR_sens.ino delete mode 100644 CODE/debug/IR/IR_sens/IR_sens1.ino create mode 100644 CODE/debug/IR/communication/direct_rx/direct_rx.ino delete mode 100644 CODE/debug/color/Blink.txt (limited to 'CODE') diff --git a/CODE/CODE.ino b/CODE/CODE.ino index 6b07d67..0d225a4 100644 --- a/CODE/CODE.ino +++ b/CODE/CODE.ino @@ -94,7 +94,7 @@ void setup() { pinMode(pr8, INPUT); Serial.begin(9600); - Serial1.begin(9600); + Serial3.begin(9600); Serial2.begin(9600); Timer3.initialize(800); // 800 microseconds / 1.25kHz @@ -152,24 +152,24 @@ void mcpsoftpwm1(int value1) { if (value1 < 0) value1 = 0; if (value1 > 100) value1 = 100; - Serial.print("softPWM pin: 3, value: "); - Serial.println(value1); + //Serial.print("softPWM pin: 3, value: "); + //Serial.println(value1); PWMval1 = value1; } void mcpsoftpwm2(int value2) { if (value2 < 0) value2 = 0; if (value2 > 100) value2 = 100; - Serial.print("softPWM pin: 3, value: "); - Serial.println(value2); + //Serial.print("softPWM pin: 3, value: "); + //Serial.println(value2); PWMval2 = value2; } void mcpsoftpwm3(int value3) { if (value3 < 0) value3 = 0; if (value3 > 100) value3 = 100; - Serial.print("softPWM pin: 3, value: "); - Serial.println(value3); + //Serial.print("softPWM pin: 3, value: "); + //Serial.println(value3); PWMval3 = value3; } @@ -190,8 +190,8 @@ void drive(int speed, int direction){ digitalWrite(m1enB, LOW); digitalWrite(m2enB, LOW); digitalWrite(m3enB, LOW); - Serial.println("debug2"); - Serial.println(direction); + //Serial.println("debug2"); + //Serial.println(direction); if(direction>330 || direction<=30){ //0 deg digitalWrite(m1pwm1, LOW); @@ -202,10 +202,10 @@ void drive(int speed, int direction){ digitalWrite(m3pwm1, LOW); digitalWrite(m3pwm2, HIGH); - Serial.println("0 deg"); + //Serial.println("0 deg"); }else if (direction>30 && direction <= 90){ //60 deg - Serial.println("60deg"); + //Serial.println("60deg"); digitalWrite(m1pwm1, LOW); digitalWrite(m1pwm2, LOW); @@ -216,7 +216,7 @@ void drive(int speed, int direction){ digitalWrite(m3pwm2, HIGH); }else if (direction>90 && direction <= 150){ //120 deg - Serial.println("120 deg"); + //Serial.println("120 deg"); digitalWrite(m1pwm1, HIGH); digitalWrite(m1pwm2, LOW); digitalWrite(m2pwm1, HIGH); @@ -225,7 +225,7 @@ void drive(int speed, int direction){ digitalWrite(m3pwm2, LOW); }else if (direction > 150 && direction <= 210) { //180 degrees - Serial.println("on 180"); + //Serial.println("on 180"); digitalWrite(m1pwm1, HIGH); digitalWrite(m1pwm2, LOW); @@ -250,7 +250,7 @@ void drive(int speed, int direction){ digitalWrite(m1pwm2, HIGH); digitalWrite(m2pwm1, LOW); digitalWrite(m2pwm2, HIGH); - Serial.println("300deg"); + //Serial.println("drive 300deg"); digitalWrite(m3pwm1, LOW); digitalWrite(m3pwm2, LOW); }else{ @@ -287,8 +287,8 @@ void loop() { }else if (dpr8 == HIGH){ //go back to ?deg }else{ - if (Serial1.available() > 0) { - incomingbyte1 = Serial1.read(); + if (Serial3.available() > 0) { + incomingbyte1 = Serial3.read(); //Serial.print(char(incomingbyte1)); if (incomingbyte1 == 's'){ iswriting1 = true; @@ -318,6 +318,10 @@ void loop() { //Serial.println(locdat); sscanf(locdat1.c_str(), "%d, %d", &nir1, &pir1); sscanf(locdat2.c_str(), "%d, %d", &nir2, &pir2); + + Serial.print("locdat: "); + Serial.print(String(locdat1)); + Serial.println(String(locdat2)); if(pir1 > pir2){ @@ -357,6 +361,8 @@ void loop() { degwhere = 337.5; } } + + Serial.print("Ball is at "); Serial.print(degwhere); Serial.println(" degrees."); drive(75, degwhere); diff --git a/CODE/debug/IR/IR_sens/IR_sens.ino b/CODE/debug/IR/IR_sens/IR_sens.ino new file mode 100644 index 0000000..85089d4 --- /dev/null +++ b/CODE/debug/IR/IR_sens/IR_sens.ino @@ -0,0 +1,149 @@ +int ir1 = 0; +int ir2 = 1; +int ir3 = 9; +int ir4 = 2; +int ir5 = 3; +int ir6 = 4; +int ir7 = 5; +int ir8 = 8; + +int dir1 = 1; // data IR1 +int dir2 = 1; // data IR2 +int dir3 = 1; // etc +int dir4 = 1; +int dir5 = 1; +int dir6 = 1; +int dir7 = 1; +int dir8 = 1; + +volatile long IRcount1 = 0; +volatile long IRcount2 = 0; +volatile long IRcount3 = 0; +volatile long IRcount4 = 0; +volatile long IRcount5 = 0; +volatile long IRcount6 = 0; +volatile long IRcount7 = 0; +volatile long IRcount8 = 0; + +void setup() { + pinMode(ir1, INPUT); + pinMode(ir2, INPUT); + pinMode(ir3, INPUT); + pinMode(ir4, INPUT); + pinMode(ir5, INPUT); + pinMode(ir6, INPUT); + pinMode(ir7, INPUT); + pinMode(ir8, INPUT); + + Serial.begin(9600); + Serial1.begin(9600); + Serial.println("start"); + Serial1.println("start"); + + attachInterrupt(digitalPinToInterrupt(ir1), IRtrigger1, CHANGE); + attachInterrupt(digitalPinToInterrupt(ir2), IRtrigger2, CHANGE); + attachInterrupt(digitalPinToInterrupt(ir3), IRtrigger3, CHANGE); + attachInterrupt(digitalPinToInterrupt(ir4), IRtrigger4, CHANGE); + attachInterrupt(digitalPinToInterrupt(ir5), IRtrigger5, CHANGE); + attachInterrupt(digitalPinToInterrupt(ir6), IRtrigger6, CHANGE); + attachInterrupt(digitalPinToInterrupt(ir7), IRtrigger7, CHANGE); + attachInterrupt(digitalPinToInterrupt(ir8), IRtrigger8, CHANGE); + + Serial.println("Starting loop"); + Serial1.println("Starting loop"); +} + +void IRtrigger1() { + IRcount1++; +} +void IRtrigger2() { + IRcount2++; +} +void IRtrigger3() { + IRcount3++; +} +void IRtrigger4() { + IRcount4++; +} +void IRtrigger5() { + IRcount5++; +} +void IRtrigger6() { + IRcount6++; +} +void IRtrigger7() { + IRcount7++; +} +void IRtrigger8() { + IRcount8++; +} + +void loop() { + Serial.print("ir 1 changes: "); + Serial.print(IRcount1); + Serial.print(", ir 2 changes: "); + Serial.print(IRcount2); + Serial.print(", ir 3 changes: "); + Serial.print(IRcount3); + Serial.print(", ir 4 changes: "); + Serial.print(IRcount4); + Serial.print(", ir 5 changes: "); + Serial.print(IRcount5); + Serial.print(", ir 6 changes: "); + Serial.print(IRcount6); + Serial.print(", ir 7 changes: "); + Serial.print(IRcount7); + Serial.print(", ir 8 changes: "); + Serial.println(IRcount8); + + Serial1.print("ir 1 changes: "); + Serial1.print(IRcount1); + Serial1.print(", ir 2 changes: "); + Serial1.print(IRcount2); + Serial1.print(", ir 3 changes: "); + Serial1.print(IRcount3); + Serial1.print(", ir 4 changes: "); + Serial1.print(IRcount4); + Serial1.print(", ir 5 changes: "); + Serial1.print(IRcount5); + Serial1.print(", ir 6 changes: "); + Serial1.print(IRcount6); + Serial1.print(", ir 7 changes: "); + Serial1.print(IRcount7); + Serial1.print(", ir 8 changes: "); + Serial1.print(IRcount8); + + volatile long IRcounts[] = {IRcount1, IRcount2, IRcount3, IRcount4, IRcount5, IRcount6, IRcount7, IRcount8}; + long maxCount = IRcounts[0]; + int highessensor = 1; + for (int i = 0; i < 7; ++i) { + if (IRcounts[i] > maxCount) { + maxCount = IRcounts[i]; + highessensor = i + 1; + } + } + Serial.print("Ball is at sensor: "); + Serial.print(highessensor); + Serial.print(", with value of "); + Serial.println(maxCount); + + Serial1.print("s"); + Serial1.print(highessensor); + Serial1.print(", "); + Serial1.println(maxCount); + Serial1.print("e"); + + IRcount1 = 0; + IRcount2 = 0; + IRcount3 = 0; + IRcount4 = 0; + IRcount5 = 0; + IRcount6 = 0; + IRcount7 = 0; + IRcount8 = 0; + + + + delay(250); + +} diff --git a/CODE/debug/IR/IR_sens/IR_sens1.ino b/CODE/debug/IR/IR_sens/IR_sens1.ino deleted file mode 100644 index df4a5fc..0000000 --- a/CODE/debug/IR/IR_sens/IR_sens1.ino +++ /dev/null @@ -1,149 +0,0 @@ -int ir1 = 0; -int ir2 = 1; -int ir3 = 9; -int ir4 = 2; -int ir5 = 3; -int ir6 = 4; -int ir7 = 5; -int ir8 = 8; - -int dir1 = 1; // data IR1 -int dir2 = 1; // data IR2 -int dir3 = 1; // etc -int dir4 = 1; -int dir5 = 1; -int dir6 = 1; -int dir7 = 1; -int dir8 = 1; - -volatile long IRcount1 = 0; -volatile long IRcount2 = 0; -volatile long IRcount3 = 0; -volatile long IRcount4 = 0; -volatile long IRcount5 = 0; -volatile long IRcount6 = 0; -volatile long IRcount7 = 0; -volatile long IRcount8 = 0; - -void setup() { - pinMode(ir1, INPUT); - pinMode(ir2, INPUT); - pinMode(ir3, INPUT); - pinMode(ir4, INPUT); - pinMode(ir5, INPUT); - pinMode(ir6, INPUT); - pinMode(ir7, INPUT); - pinMode(ir8, INPUT); - - Serial.begin(9600); - Serial1.begin(9600); - Serial.println("start"); - Serial1.println("start"); - - attachInterrupt(digitalPinToInterrupt(ir1), IRtrigger1, CHANGE); - attachInterrupt(digitalPinToInterrupt(ir2), IRtrigger2, CHANGE); - attachInterrupt(digitalPinToInterrupt(ir3), IRtrigger3, CHANGE); - attachInterrupt(digitalPinToInterrupt(ir4), IRtrigger4, CHANGE); - attachInterrupt(digitalPinToInterrupt(ir5), IRtrigger5, CHANGE); - attachInterrupt(digitalPinToInterrupt(ir6), IRtrigger6, CHANGE); - attachInterrupt(digitalPinToInterrupt(ir7), IRtrigger7, CHANGE); - attachInterrupt(digitalPinToInterrupt(ir8), IRtrigger8, CHANGE); - - Serial.println("Starting loop"); - Serial1.println("Starting loop"); -} - -void IRtrigger1() { - IRcount1++; -} -void IRtrigger2() { - IRcount2++; -} -void IRtrigger3() { - IRcount3++; -} -void IRtrigger4() { - IRcount4++; -} -void IRtrigger5() { - IRcount5++; -} -void IRtrigger6() { - IRcount6++; -} -void IRtrigger7() { - IRcount7++; -} -void IRtrigger8() { - IRcount8++; -} - -void loop() { - Serial.print("ir 1 changes: "); - Serial.print(IRcount1); - Serial.print(", ir 2 changes: "); - Serial.print(IRcount2); - Serial.print(", ir 3 changes: "); - Serial.print(IRcount3); - Serial.print(", ir 4 changes: "); - Serial.print(IRcount4); - Serial.print(", ir 5 changes: "); - Serial.print(IRcount5); - Serial.print(", ir 6 changes: "); - Serial.print(IRcount6); - Serial.print(", ir 7 changes: "); - Serial.print(IRcount7); - Serial.print(", ir 8 changes: "); - Serial.print(IRcount8); - - Serial1.print("ir 1 changes: "); - Serial1.print(IRcount1); - Serial1.print(", ir 2 changes: "); - Serial1.print(IRcount2); - Serial1.print(", ir 3 changes: "); - Serial1.print(IRcount3); - Serial1.print(", ir 4 changes: "); - Serial1.print(IRcount4); - Serial1.print(", ir 5 changes: "); - Serial1.print(IRcount5); - Serial1.print(", ir 6 changes: "); - Serial1.print(IRcount6); - Serial1.print(", ir 7 changes: "); - Serial1.print(IRcount7); - Serial1.print(", ir 8 changes: "); - Serial1.print(IRcount8); - - volatile long IRcounts[] = {IRcount1, IRcount2, IRcount3, IRcount4, IRcount5, IRcount6, IRcount7, IRcount8}; - long maxCount = IRcounts[0]; - int highessensor = 1; - for (int i = 0; i < 7; ++i) { - if (IRcounts[i] > maxCount) { - maxCount = IRcounts[i]; - highessensor = i + 1; - } - } - Serial.print("Ball is at sensor: "); - Serial.print(highessensor); - Serial.print(", with value of "); - Serial.println(maxCount); - - Serial1.print("s"); - Serial1.print(highessensor); - Serial1.print(", "); - Serial1.println(maxCount); - Serial1.print("e"); - - IRcount1 = 0; - IRcount2 = 0; - IRcount3 = 0; - IRcount4 = 0; - IRcount5 = 0; - IRcount6 = 0; - IRcount7 = 0; - IRcount8 = 0; - - - - delay(250); - -} diff --git a/CODE/debug/IR/communication/direct_rx/direct_rx.ino b/CODE/debug/IR/communication/direct_rx/direct_rx.ino new file mode 100644 index 0000000..336b27b --- /dev/null +++ b/CODE/debug/IR/communication/direct_rx/direct_rx.ino @@ -0,0 +1,15 @@ +int incomingbyte = 0; +void setup() { + Serial.begin(9600); + Serial2.begin(9600); //19200 + Serial3.begin(9600); //19200 + Serial.print("Starting ...."); +} + +void loop() { + if (Serial3.available() > 0) { + incomingbyte = Serial3.read(); + Serial.print(char(incomingbyte)); + } + +} diff --git a/CODE/debug/IR/communication/rx_teensy/rx_teensy.ino b/CODE/debug/IR/communication/rx_teensy/rx_teensy.ino index 96e14eb..68a768b 100644 --- a/CODE/debug/IR/communication/rx_teensy/rx_teensy.ino +++ b/CODE/debug/IR/communication/rx_teensy/rx_teensy.ino @@ -6,12 +6,12 @@ int nir = "-99"; // which ir sensor it is int pir = "-99"; // amount of pulses it had void setup() { Serial.begin(9600); - Serial1.begin(9600); //19200 + Serial3.begin(9600); //19200 } void loop() { - if (Serial1.available() > 0) { - incomingbyte = Serial1.read(); + if (Serial3.available() > 0) { + incomingbyte = Serial3.read(); //Serial.print(char(incomingbyte)); if (incomingbyte == 's'){ iswriting = true; diff --git a/CODE/debug/IR/communication/tx_seeed/tx_seeed.ino b/CODE/debug/IR/communication/tx_seeed/tx_seeed.ino index c77e618..dc2d2e9 100644 --- a/CODE/debug/IR/communication/tx_seeed/tx_seeed.ino +++ b/CODE/debug/IR/communication/tx_seeed/tx_seeed.ino @@ -10,7 +10,7 @@ void setup() { } void loop() { - randNumber1 = random(999); + randNumber1 = random(1000); randNumber2 = random(1, 8); Serial1.print("s"); Serial1.print(randNumber2); diff --git a/CODE/debug/IR/teensydeco/teensydeco.ino b/CODE/debug/IR/teensydeco/teensydeco.ino index 2d06af9..f8fe2a5 100644 --- a/CODE/debug/IR/teensydeco/teensydeco.ino +++ b/CODE/debug/IR/teensydeco/teensydeco.ino @@ -16,13 +16,13 @@ float degwhere = -99.0; // where the ball is in degrees void setup() { Serial.begin(9600); - Serial1.begin(9600); + Serial3.begin(9600); Serial2.begin(9600); } void loop() { - if (Serial1.available() > 0) { - incomingbyte1 = Serial1.read(); + if (Serial3.available() > 0) { + incomingbyte1 = Serial3.read(); //Serial.print(char(incomingbyte1)); if (incomingbyte1 == 's'){ iswriting1 = true; diff --git a/CODE/debug/color/Blink.txt b/CODE/debug/color/Blink.txt deleted file mode 100644 index 0626334..0000000 --- a/CODE/debug/color/Blink.txt +++ /dev/null @@ -1 +0,0 @@ -Turn an LED on and off. \ No newline at end of file -- cgit v1.2.3