uni

Thing1's amazing uni repo
Log | Files | Refs

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:
ACS12020/robot/buttons/1.ino | 34++++++++++++++++++++++++++++++++++
ACS12020/robot/buttons/2.ino | 36++++++++++++++++++++++++++++++++++++
ACS12020/robot/buttons/3.ino | 45+++++++++++++++++++++++++++++++++++++++++++++
ACS12020/robot/leds/1.ino | 28++++++++++++++++++++++++++++
ACS12020/robot/leds/2.ino | 24++++++++++++++++++++++++
ACS12020/robot/libs/util.h | 73+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ACS12020/robot/servo/1.ino | 11+++++++++++
ACS12020/robot/servo/util.h | 73+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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; +}