Transferred existing firmware code to git

This commit is contained in:
2026-06-03 00:59:19 +01:00
parent 119958f939
commit a1f8d05d52

58
src/Firmware/Firmware.ino Normal file
View File

@ -0,0 +1,58 @@
#define HAPTIC_FWD_PIN 3
#define HAPTIC_MID_PIN 5
#define HAPTIC_BACK_PIN 6
#define MQ3_ENABLE_PIN 4
#define MQ3_READ_PIN A0
#define MQ3_READ_RATE 100
unsigned long lastSend = 0;
uint8_t cmd = 0xFF;
void setup() {
pinMode(HAPTIC_FWD_PIN, OUTPUT);
pinMode(HAPTIC_MID_PIN, OUTPUT);
pinMode(HAPTIC_BACK_PIN, OUTPUT);
pinMode(MQ3_ENABLE_PIN, OUTPUT);
pinMode(MQ3_READ_PIN, INPUT);
Serial.begin(9600);
}
void loop() {
if (millis() - lastSend > MQ3_READ_RATE) {
Serial.print(analogRead(MQ3_READ_PIN));
Serial.print("\n");
lastSend = millis();
}
if (Serial.available() > 0) {
if (cmd == 0xFF) {
cmd = Serial.read();
}
if (cmd == 0x00) { // Turn off MQ3
digitalWrite(MQ3_ENABLE_PIN, LOW);
cmd = 0xFF;
} else if (cmd == 0x01) { // Turn on MQ3
digitalWrite(MQ3_ENABLE_PIN, HIGH);
cmd = 0xFF;
} else if (cmd == 0x02) { // Send motor commands
if (Serial.available() >= 3) {
analogWrite(HAPTIC_FWD_PIN, Serial.read());
analogWrite(HAPTIC_MID_PIN, Serial.read());
analogWrite(HAPTIC_BACK_PIN, Serial.read());
cmd = 0xFF;
}
} else if (cmd == 0x10) { // Ping
Serial.print("P\n");
cmd = 0xFF;
} else if (cmd == 0x11) { // Oh god oh fuck it's on fire
analogWrite(HAPTIC_FWD_PIN, 0);
analogWrite(HAPTIC_MID_PIN, 0);
analogWrite(HAPTIC_BACK_PIN, 0);
digitalWrite(MQ3_ENABLE_PIN, LOW);
cmd = 0xFF;
} else {
cmd = 0xFF;
}
}
}