uni

Thing1's amazing uni repo
Log | Files | Refs

commit 5b235286754032a59fe38edc01edf32cf7b8e1f4
parent 7eda023d753f8b914d1e85ed2c873c181a2d3f84
Author: thing1 <thing1@seacrossedlovers.xyz>
Date:   Tue,  4 Nov 2025 17:00:47 +0000

calibrated the servo

Diffstat:
ACS12020/robot/libs/util.h | 73+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ACS12020/robot/servo/1.ino | 11+++++++++++
ACS12020/robot/servo/util.h | 73+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 157 insertions(+), 0 deletions(-)

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; +}