commit a6aeb35272d05e0dd0d09de43b0fbed7b1bc483d
parent 2dfcc95d9ff3546f1b483141b46d83eef4a3849a
Author: thing1 <thing1@seacrossedlovers.xyz>
Date: Sun, 9 Nov 2025 22:29:23 +0000
Merge branch 'master' of seacrossedlovers.xyz:uni
Diffstat:
8 files changed, 324 insertions(+), 0 deletions(-)
diff --git a/CS12020/robot/buttons/1.ino b/CS12020/robot/buttons/1.ino
@@ -0,0 +1,34 @@
+#define GREEN_LED 7
+#define YELLOW_LED 12
+#define RED_LED 13
+
+#define BUTTONA 4
+#define BUTTONB 2
+
+void
+setLEDs(int g, int y, int r) {
+ digitalWrite(GREEN_LED, g);
+ digitalWrite(YELLOW_LED, y);
+ digitalWrite(RED_LED, r);
+}
+
+void
+waitButton(int pin) {
+ while (digitalRead(pin) == HIGH) ;
+}
+
+void setup() {
+ pinMode(GREEN_LED, OUTPUT);
+ pinMode(YELLOW_LED, OUTPUT);
+ pinMode(RED_LED, OUTPUT);
+ pinMode(BUTTONA, INPUT);
+ pinMode(BUTTONB, INPUT);
+}
+
+void loop() {
+ waitButton(BUTTONA);
+ setLEDs(HIGH, HIGH, HIGH);
+ delay(400);
+ setLEDs(LOW, LOW, LOW);
+ delay(400);
+}
diff --git a/CS12020/robot/buttons/2.ino b/CS12020/robot/buttons/2.ino
@@ -0,0 +1,36 @@
+#define GREEN_LED 7
+#define YELLOW_LED 12
+#define RED_LED 13
+
+#define BUTTONA 4
+#define BUTTONB 2
+
+void
+setLEDs(int g, int y, int r) {
+ digitalWrite(GREEN_LED, g);
+ digitalWrite(YELLOW_LED, y);
+ digitalWrite(RED_LED, r);
+}
+
+void
+waitButton(int pin, int state) {
+ while (digitalRead(pin) == state) ;
+}
+
+void setup() {
+ pinMode(GREEN_LED, OUTPUT);
+ pinMode(YELLOW_LED, OUTPUT);
+ pinMode(RED_LED, OUTPUT);
+ pinMode(BUTTONA, INPUT);
+ pinMode(BUTTONB, INPUT);
+
+ waitButton(BUTTONA, HIGH);
+}
+
+void loop() {
+ setLEDs(HIGH, HIGH, HIGH);
+ delay(400);
+ waitButton(BUTTONA, HIGH);
+ setLEDs(LOW, LOW, LOW);
+ delay(400);
+}
diff --git a/CS12020/robot/buttons/3.ino b/CS12020/robot/buttons/3.ino
@@ -0,0 +1,45 @@
+#define GREEN_LED 7
+#define YELLOW_LED 12
+#define RED_LED 13
+
+#define BUTTONA 4
+#define BUTTONB 2
+
+void
+setLEDs(int g, int y, int r) {
+ digitalWrite(GREEN_LED, g);
+ digitalWrite(YELLOW_LED, y);
+ digitalWrite(RED_LED, r);
+}
+
+void
+waitButton(int pin, int state) {
+ while (digitalRead(pin) == state) ;
+}
+
+void
+debounce(int pin) {
+ waitButton(pin, LOW);
+ delay(20);
+ waitButton(pin, HIGH);
+ delay(20);
+}
+
+void setup() {
+ pinMode(GREEN_LED, OUTPUT);
+ pinMode(YELLOW_LED, OUTPUT);
+ pinMode(RED_LED, OUTPUT);
+ pinMode(BUTTONA, INPUT);
+ pinMode(BUTTONB, INPUT);
+
+ waitButton(BUTTONA, HIGH);
+}
+
+void loop() {
+ setLEDs(HIGH, HIGH, HIGH);
+ delay(400);
+ waitButton(BUTTONA, HIGH);
+ setLEDs(LOW, LOW, LOW);
+ delay(400);
+}
+
diff --git a/CS12020/robot/leds/1.ino b/CS12020/robot/leds/1.ino
@@ -0,0 +1,28 @@
+#define GREEN_LED 7
+#define YELLOW_LED 12
+#define RED_LED 13
+
+
+void setup() {
+ // put your setup code here, to run once:
+ pinMode(GREEN_LED, OUTPUT);
+ pinMode(YELLOW_LED, OUTPUT);
+ pinMode(RED_LED, OUTPUT);
+}
+
+void loop() {
+ // put your main code here, to run repeatedly:
+ digitalWrite(GREEN_LED, HIGH);
+ delay(100);
+ digitalWrite(YELLOW_LED, HIGH);
+ delay(100);
+ digitalWrite(RED_LED, HIGH);
+ delay(100);
+ digitalWrite(GREEN_LED, LOW);
+ delay(100);
+ digitalWrite(YELLOW_LED, LOW);
+ delay(100);
+ digitalWrite(RED_LED, LOW);
+ delay(100);
+}
+
diff --git a/CS12020/robot/leds/2.ino b/CS12020/robot/leds/2.ino
@@ -0,0 +1,24 @@
+#define GREEN_LED 7
+#define YELLOW_LED 12
+#define RED_LED 13
+
+void
+setLEDs(int g, int y, int r) {
+ digitalWrite(GREEN_LED, g);
+ digitalWrite(YELLOW_LED, y);
+ digitalWrite(RED_LED, r);
+}
+
+void setup() {
+ // put your setup code here, to run once:
+ pinMode(GREEN_LED, OUTPUT);
+ pinMode(YELLOW_LED, OUTPUT);
+ pinMode(RED_LED, OUTPUT);
+}
+
+void loop() {
+ setLEDs(HIGH, HIGH, HIGH);
+ delay(400);
+ setLEDs(LOW, LOW, LOW);
+ delay(400);
+}
diff --git a/CS12020/robot/libs/util.h b/CS12020/robot/libs/util.h
@@ -0,0 +1,73 @@
+#define GREEN_LED 7
+#define YELLOW_LED 12
+#define RED_LED 13
+
+#define BUTTONA 4
+#define BUTTONB 2
+
+#define SERVOA_PIN 6
+#define SERVOB_PIN 5
+
+#define SERVOA_ZERO 96
+#define SERVOB_ZERO 96
+
+#define SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
+
+Servo servoA;
+Servo servoB;
+
+void
+setupRobot() {
+ Serial.begin(9800);
+ pinMode(GREEN_LED, OUTPUT);
+ pinMode(YELLOW_LED, OUTPUT);
+ pinMode(RED_LED, OUTPUT);
+ pinMode(BUTTONA, INPUT);
+ pinMode(BUTTONB, INPUT);
+ pinMode(SERVOA_PIN, OUTPUT);
+ pinMode(SERVOB_PIN, OUTPUT);
+ servoA.attach(SERVOA_PIN);
+ servoB.attach(SERVOB_PIN);
+ servoA.write(SERVOA_ZERO);
+ servoB.write(SERVOB_ZERO);
+}
+
+void
+setLEDs(int g, int y, int r) {
+ digitalWrite(GREEN_LED, g);
+ digitalWrite(YELLOW_LED, y);
+ digitalWrite(RED_LED, r);
+}
+
+void
+waitButton(int pin, int state) {
+ while (digitalRead(pin) == state) ;
+}
+
+void
+debounce(int pin) {
+ waitButton(pin, LOW);
+ delay(20);
+ waitButton(pin, HIGH);
+ delay(20);
+}
+
+void
+SEprintf(const char *fmt, ...) {
+ static char sbuf[64] = { 0 };
+ va_list ap;
+
+ va_start(ap, fmt);
+ vsnprintf(sbuf, 64, fmt, ap);
+ va_end(ap);
+
+ Serial.print(sbuf);
+}
+
+int
+readint() {
+ while (!Serial.available()) ;
+ int i = Serial.parseInt();
+ SEprintf("\n");
+ return i;
+}
diff --git a/CS12020/robot/servo/1.ino b/CS12020/robot/servo/1.ino
@@ -0,0 +1,11 @@
+#include <Servo.h>
+#include "util.h"
+
+void
+setup() {
+ SETUP_ROBOT();
+ servoA.write(20);
+}
+
+void
+loop() {}
diff --git a/CS12020/robot/servo/util.h b/CS12020/robot/servo/util.h
@@ -0,0 +1,73 @@
+#define GREEN_LED 7
+#define YELLOW_LED 12
+#define RED_LED 13
+
+#define BUTTONA 4
+#define BUTTONB 2
+
+#define SERVOA_PIN 6
+#define SERVOB_PIN 5
+
+#define SERVOA_ZERO 96
+#define SERVOB_ZERO 96
+
+#define SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
+
+Servo servoA;
+Servo servoB;
+
+void
+setupRobot() {
+ Serial.begin(9800);
+ pinMode(GREEN_LED, OUTPUT);
+ pinMode(YELLOW_LED, OUTPUT);
+ pinMode(RED_LED, OUTPUT);
+ pinMode(BUTTONA, INPUT);
+ pinMode(BUTTONB, INPUT);
+ pinMode(SERVOA_PIN, OUTPUT);
+ pinMode(SERVOB_PIN, OUTPUT);
+ servoA.attach(SERVOA_PIN);
+ servoB.attach(SERVOB_PIN);
+ servoA.write(SERVOA_ZERO);
+ servoB.write(SERVOB_ZERO);
+}
+
+void
+setLEDs(int g, int y, int r) {
+ digitalWrite(GREEN_LED, g);
+ digitalWrite(YELLOW_LED, y);
+ digitalWrite(RED_LED, r);
+}
+
+void
+waitButton(int pin, int state) {
+ while (digitalRead(pin) == state) ;
+}
+
+void
+debounce(int pin) {
+ waitButton(pin, LOW);
+ delay(20);
+ waitButton(pin, HIGH);
+ delay(20);
+}
+
+void
+SEprintf(const char *fmt, ...) {
+ static char sbuf[64] = { 0 };
+ va_list ap;
+
+ va_start(ap, fmt);
+ vsnprintf(sbuf, 64, fmt, ap);
+ va_end(ap);
+
+ Serial.print(sbuf);
+}
+
+int
+readint() {
+ while (!Serial.available()) ;
+ int i = Serial.parseInt();
+ SEprintf("\n");
+ return i;
+}