Arduino Water Boarding
 A lie is the sin man tells in fear. To seek the truth, we must aide the sinner in crossing a threshold to find deliverance. Problem is, I am binge watching Ally McBeal Season 4, so allow us to automate the process. Attach sensors to said victim...er...suspect and allow our computer (Jacob) and an Arduino Uno to decipher if they are telling the truth or require some, inspiration.A notation; the quality of this video is sub-par because I often shoot on poverty driven video equipment, namely an elderly Droid Razr. Forgive the potato.Arduino Linguistics`// Arduino Water Board// Vije Miller#include "Servo.h"Servo spigot;Servo rightarm;// Servo Positionint spigpos = 45;int armpos = 15;// Resting Statefloat lieset = 0;int lierec = 0;int lietotal = 0;int lieavg = 0;int lienew = 0;// Varianceint spvar = 20;int liepin = A0;// Valveint valve = 8;// LEDsint 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);}`Archivehttps://hackaday.io/project/14813-arduino-water-boarding17:15:48 191-0165:32:38 95 019