Pith - arduino_water_boarding
arduino_water_boarding/arduino_water_boarding.ino [2.2 kb]
Modified: 22:58:27 56 026 (14 May 026)
16 Days Ago
// Arduino Water Board
// vgmlr
#include "Servo.h"
Servo spigot;
Servo rightarm;
// Servo Position
int spigpos = 45;
int armpos = 15;
// Resting State
float lieset = 0;
int lierec = 0;
int lietotal = 0;
int lieavg = 0;
int lienew = 0;
// Variance
int spvar = 20;
int liepin = A0;
// Valve
int valve = 8;
// LEDs
int blue = 13;
int green = 12;
int red = 11;
void setup() {
  spigot.attach(9); // Spigot
  rightarm.attach(10); // Rag Arm
  pinMode(valve, OUTPUT);
  pinMode(blue, OUTPUT);
  pinMode(green, OUTPUT);
  pinMode(red, OUTPUT);
  Serial.begin(9600);
  // Reset Position
  spigot.write(45);
  delay(1500);
  rightarm.write(15);
  digitalWrite(valve, LOW);
  // Obtain Resting State -- Calibration
  for (int x = 0; x < 100; x++) {
    lieavg = analogRead(liepin);
    lietotal = lietotal + lieavg;
  }
  lieset = round(lietotal / 100);
}
void loop() {
  Serial.println(analogRead(liepin));
  digitalWrite(red, LOW);
  digitalWrite(green, LOW);
  digitalWrite(blue, HIGH);
  // Jacob Communication
  if (Serial.available()) {
    char ser = Serial.read();
    switch (ser) {
      case '1':
        detect();
        break;
    }
  }
  delay(20);
}
void detect() {
  // Query GV Response
  for (int x = 0; x < 50; x++) {
    lieavg = analogRead(liepin);
    lietotal = lietotal + lieavg;
    Serial.println(analogRead(liepin));
    delay(2);
  }
  lienew = round(lietotal / 50);
  // Lie or Truth?
  // Jacob Polls Serial Response
  if (lienew + spvar > lieset || lienew - spvar > lieset) {
    Serial.println("Lie");
    torture();
  }
  else if (lieset > lienew + spvar || lieset > lienew - spvar) {
    Serial.println("Truth");
    truth();
  }
  else {
    Serial.println("Unclear")
    detect();
  }
}
void torture() {
  digitalWrite(red, HIGH);
  digitalWrite(green, LOW);
  digitalWrite(blue, LOW);
  for (armpos = 15; armpos <= 85; armpos += 1) {
    rightarm.write(armpos);
    delay(15);
  }
  for (spigpos = 45; spigpos <= 90; spigpos += 1) {
    spigot.write(spigpos);
    delay(15);
  }
  delay(1500);
  digitalWrite(valve, HIGH);
  delay(10000);
  digitalWrite(valve, LOW);
  spigot.write(45);
  delay(1500);
  rightarm.write(15);
}
void truth() {
  digitalWrite(red, LOW);
  digitalWrite(green, HIGH);
  digitalWrite(blue, LOW);
}
Updates
Shim - Android 70.026.1
Wedge - Linux 68.026.1
Wedge - Android 68.026.1
Taper - Linux 64.026.1
Ayh Extension - Chrome 63.026.1
Dev
TVShow (227) 'CSA'
TVShow (228) 'APT'
TVProgram (83) 'BXT'
Miter Update(s)
Shim (Dictation)

Menu
Calendar
Project Tin (024/029)
Miter
RSS Feed
User Avatar
@vgmlr
=SUM(parts)