"Wait, we can refuse service?!" #Starbucks, probably. #SarahSanders #RedHen19:56:12 96 018 Miter
TVShow 3X12 Flashing Light Prize (1) Arduino Wave Generator
Probable electrocution? Check.
KY Jelly? Lubricated.
Let's show this prehistoric bitch how we flash bulbs down town.

Ingredients
1. Arduino Uno
2. Micro Servo
3. 5V Regulator
4. (2) 10nf Cap
5. 12V Incandescent Bulb
6. Acrylic (Dollar Store Picture Frame)
7. 10K Potentiometer (Optional)
8. Table Salt or Baking Soda

Notation(s)
1. Discovered the miniaturization of our previous wave generator provided less opportunity for more visually amplified waves. Ended up with a beached wave...so...crap, another words. Tip; depth, shallows and angle of attack. Next FLP (2) project will approach things differently. Vodka and flames?!

2. Plain tap water is a poor electrical conductor. Added table salt and baking soda to increase conductivity. To what ratio? This much to this much by this many.

3. (Update) Attempted several further lever variations w/o any significant increase in wave pattern. Simply requires enlarged length and depth for greater motion...that's what she said.

Sketchy
`// Flashing Light Prize (1)// VijeMiller#include <Servo.h>Servo wave;// Pot Analog Pin 0int pot = A0;// Delay Valueint val = 0;// Servo Positionsint fro = 0;int bac = 160;int pos = 0;void setup() {  Serial.begin(9600);  wave.attach(5);  wave.write(pos);}void loop() {  // Read Potentiometer  val = analogRead(pot);  // Print Value  Serial.println(val);  // Map Pot to Delay Value  val = map(val, 0, 1023, 0, 20);  // Print Value  Serial.println(val);  // Back  for (pos = fro; pos <= bac; pos += 1)  {    wave.write(pos);    delay(val);  }  // Forward  for (pos = bac; pos >= fro; pos -= 1)  {    wave.write(pos);    delay(val);  }}`

Archive
https://www.flashinglightprize.com/
https://vid.me/gSap
TVShow 3X11 Arduino Darkest Timeline Bot

#SixSeasonsAndAMovie

Notation(s)
1. Adjusting to the new video-contraption i.e. smart phone, left one angle particularly poor and vocal audio equally as dismal. Inadequate tools remain inadequate. Regardless, the governing rule of this series remains stead fast; "Get this piece of shit off my desk top and let us move on..." Sigh.

2. Limitation to distance traveled observed in the video is not present in the sketch posted.

3. Our AI interface "Jacob" present in previous episodes was the go between for response to the auditory key words "no movie" triggering the cruel events that followed.

4. This was built for the sake of stupid; C minus.

5. Why the white boards?! The wheels (see HaD.io project logs) are made from card board and hot glue...they uh, did not do well on uneven worn wood floors.

Ingredients
1. Arduino Uno
2. HC-06 Bluetooth Module
3. SR06 Ultrasonic Sensor
4. 360 Degree Servo
5. Boring Regular Servo
7. 1000nf Cap
8. 47K Res
9. Cardboard

Cruel Code
`// Darkest Timeline Bot// VijeMiller// SixSeasonsAndAMovie#include <Servo.h>#include <Adafruit_NeoPixel.h>// Neopixel#define PINPIXEL 6Adafruit_NeoPixel pixels = Adafruit_NeoPixel(3, PINPIXEL,NEO_GRB + NEO_KHZ800);// Sensor ValuesServo headservo;Servo rollservo;#define trigPin 9#define echoPin 8// Set Distance (cm)int setdist = 40;// Head Positionsint pos = 3;int good = 3;int evil = 158;// Roll Positionsint forw = 75;int halt = 90;int back = 105;int slow = 80;// Bleu Cheesechar incom = 0;void setup() {  Serial.begin (9600);  // Servo Pins  headservo.attach(5);  rollservo.attach(7);  // Set Start Position  headservo.write(good);  rollservo.write(halt);  // Sensor Pins  pinMode(trigPin, OUTPUT);  pinMode(echoPin, INPUT);  // Load Neopixel  pixels.begin();}void loop() {  // Happy Blue  pixels.setPixelColor(0, pixels.Color(0, 0, 255));  pixels.setPixelColor(1, pixels.Color(0, 0, 255));  pixels.setPixelColor(2, pixels.Color(0, 0, 255));  pixels.show();  // Roll Bluetooth (Jacob)  if (Serial.available() > 0) {    incom = Serial.read();    if (incom == '1') {      cruel();    }    else if (incom == '2') {      cool();    }    else if (incom == '3') {      gloat();    }  }  // Sensor Sequence  long duration, distance;  digitalWrite(trigPin, LOW);  delayMicroseconds(2);  digitalWrite(trigPin, HIGH);  delayMicroseconds(10);  digitalWrite(trigPin, LOW);  duration = pulseIn(echoPin, HIGH);  // Centimeter Conversion  distance = (duration / 2) / 29.1;  // Print for Testing  Serial.print(distance); Serial.println(" cm");  if (distance > setdist) {    forward();  } else if (distance < setdist) {    backward();  } else {  }  delay(10);}void forward() {  rollservo.write(forw);  delay(1000);  rollservo.write(halt);}void backward() {  rollservo.write(back);  delay(1000);  rollservo.write(halt);}void cruel() {  // Black  pixels.setPixelColor(0, pixels.Color(0, 0, 0));  pixels.setPixelColor(1, pixels.Color(0, 0, 0));  pixels.setPixelColor(2, pixels.Color(0, 0, 0));  pixels.show();  // Become Evil  for (pos = good; pos <= evil; pos += 1) {    headservo.write(pos);    delay(20);  }  delay(500);  // Evil Red  pixels.setPixelColor(0, pixels.Color(255, 0, 0));  pixels.setPixelColor(1, pixels.Color(255, 0, 0));  pixels.setPixelColor(2, pixels.Color(255, 0, 0));  pixels.show();  delay(1000);  rollservo.write(slow);  delay(5000);  // Murder  rollservo.write(halt);  cool();  incom = 0;}void cool() {  // Black  pixels.setPixelColor(0, pixels.Color(0, 0, 0));  pixels.setPixelColor(1, pixels.Color(0, 0, 0));  pixels.setPixelColor(2, pixels.Color(0, 0, 0));  pixels.show();  // Become Good  for (pos = evil; pos >= good; pos -= 1) {    headservo.write(pos);    delay(20);  }  incom = 0;}void gloat() {  rollservo.write(slow);  delay(5000);  rollservo.write(halt);}`

Archive
TVShow S03E10 Behind The Music "Metal Lickers"

Found lost MTV episode of Behind The Music featuring Metallica back up lead singer Mark Nieman.
TVShow S03E09 ASMR Cranial Nerve Exam

Go in to the light, ma'am.

Notation
Unaware of precisely what ASMR is? Our brains are triggered to auditory stimulation and with that, in a sensory over loaded environment that we have more recently created, less is now mor. A babbling brook, a calming breeze, ASMR performers are merely taking advantage of a soothing interpretation. An added caveat to the success of a performer also applies visual stimulation, giving more attractive performers a greater advantage.

Sample(s)

TVShow S03E08 IoT Sit Counter
Once a luxury, sitting has now become an ailment. Have you yet wondered to just how many times in a day you sit or to what percentage of your day is consumed on bended knee? Making use of a resistance sensor and a NodeMCU ESP-12E, we are able to track our daily lethargy and display it in all of it's aggregated misery. Amend as needed.

Ingredients
1. NodeMCU ESP-12E
2. (2) LEDs
3. (4) 1K Resistor
4. Push Button
5. Slide Switch
6. 10K Pot

Butt-On State Code
`// IoT Sit Counter// Version 0.1// VijeMiller// NodeMCU ESP-12E 1.0#include <ESP8266WiFi.h>// WIFI Network Accessconst char* ssid = "XXXXXX";const char* password = "XXXXXXX";WiFiServer server(80);// ThingSpeak Accesschar thingSpeakAddress[] = "api.thingspeak.com";String APIKey = "XXXXXXXXXXX"; // APIconst int updateThingSpeakInterval = 10 * 1000; // Intervallong lastConnectionTime = 0;boolean lastConnected = false;WiFiClient client;// LEDsint activeled = 13;int wifiled = 12;// Sensorint sensor = A0;int ssr = 0;int sensorstart = 0;int senres = 0;int sensorstate = 0;// Buttonint button = 14;int buttstate;// Statsint sitdown = 0;int pretime = 0;float dattime;float runpert;// Statesint mainstate = 0;void setup() {  Serial.begin(9600);  pinMode(button, INPUT);  pinMode(activeled, OUTPUT);  pinMode(wifiled, OUTPUT);  digitalWrite(activeled, LOW);  digitalWrite(wifiled, LOW);  calibrate();}void loop() {  digitalWrite(activeled, HIGH);  // WIFI Button Pressed?  buttstate = digitalRead(button);  // WIFI Yes or No?  if (buttstate == HIGH) {    Serial.println("Connecting");    digitalWrite(wifiled, HIGH);    // Load WiFi    while (WiFi.status() != WL_CONNECTED) {      WiFi.begin(ssid, password);      delay(10000);    }    Serial.println("Connected");    server.begin();    // Calculate Minutes Seated    dattime = pretime / 60.0;    // Truncate    dattime = (int) dattime;    // Calculate Percent Seated    runpert = millis();    // Convert to Seconds    runpert = runpert / 1000.0;    // Convert to Minutes    runpert = runpert / 60.0;    // Convert to Percent    runpert = dattime / runpert;    // Truncate    runpert = (int) runpert;    // Update ThingSpeak    String sitfinal = String(sitdown, DEC);    String timefinal = String(dattime, DEC);    String runfinal = String(runpert, DEC);    updateThingSpeak("field1=" + sitfinal + "&field2=" +     timefinal + "&field3=" + runfinal);    delay(3000);    // Reset Data    sitdown = 0;    pretime = 0;    dattime = 0;    runpert = 0;  } else {    // No WIFI    digitalWrite(wifiled, LOW);    // Read Sensor    sensorstate = analogRead(sensor);    // Sitting?    if (sensorstate > sensorstart) {      // Delay For 5 Seconds To Confirm Sit      if (mainstate == 0) {        delay(5000);        mainstate = 1;        goto escape;      } else if (mainstate == 1) {        // Add A Sit        sitdown = sitdown + 1;        // Run While Sitting To Track Time        // 1 Second Per Loop        while (sensorstate > sensorstart) {          sensorstate = analogRead(sensor);          pretime = pretime + 1;          delay(1000);        }        // Reset State        mainstate = 0;      }    }  }  delay(1000);  digitalWrite(activeled, LOW);  delay(1000);escape:}// Calibrate While Standingvoid calibrate() {  for (int x = 0; x < 10; x++) {    ssr = analogRead(sensor);    sensorstart = sensorstart + ssr;    delay(100);    digitalWrite(activeled, HIGH);  }  // sensorstart Equals Average Standing Value  sensorstart = sensorstart / 10;  // Add Leniency  sensorstart = sensorstart + 200;  digitalWrite(activeled, LOW);}// ThingSpeakvoid updateThingSpeak(String tsData) {  if (client.connect(thingSpeakAddress, 80)) {    client.print("POST /update HTTP/1.1\n");    client.print("Host: api.thingspeak.com\n");    client.print("Connection: close\n");    client.print("X-THINGSPEAKAPIKEY: " + APIKey + "\n");    client.print("Content-Type: application/x-www-form-urlencoded\n");    client.print("Content-Length: ");    client.print(tsData.length());    client.print("\n\n");    client.print(tsData);    lastConnectionTime = millis();  }}`

Archive
https://thingspeak.com/channels/281292
TVShow S03E07 Field Medic 101 Episode 4 "Triage"
TVShow S03E06 KNGI Roanoke
TVShow S03E05 Dogwalkers

A profession that shd be ridiculed and scorned is of course treated as more necessary than dignity in New York City. I for one welcome our climate change rising seas over lords.

Shd be noted, the quality is once again as result of a collaboration of absolutely NOT recommendable recording equipment; old Droid Razr -- and conditions; light bulbs, ambient light and a plastic green table cloth. These elements merge with an inescapable shrug while editing and my internal therapist rewards me with a treat, noting that we may ultimately move on. Moving on...
TVShow S03E04X76 Arduino Back Scratcher Plotter
Digitally ditch the itch --

Currently embracing a sans-work shop and poverty driven cardboard kick for the gluttony of least-interesting of novelty projects now done solely for critical thinking posterity -- other wise known as boredom.

Unable to reach that nook and/or cranny? Open the Back Scratcher Plotter app on your mobile device and identify the spot where then the X/Y axis is sent via bluetooth to the Arduino Uno affixed to the BSP prototype (sly analogy for rubbish) which then actuates to your -- you know what? Stop wasting your time sitting there even reading this nonsense and go some where -- like Typhoon Lagoon!

Ingredients
1. Arduino Uno
2. Bluetooth Module
3. (2) Servos
4. Motor
5. Cardboard
6. String
8. Power Supply
9. Pulley
10. MIT App Inventor

Back-end Code
`// Back Scratcher Plotter// @VijeMiller// TVMiller.com#include <Servo.h>#include <Stepper.h>// Scratcherconst int stepsrev = 32;Stepper scratch(stepsrev, 2, 4, 3, 5);// For Bluetooth DataString readString, xaxisdata, yaxisdata;// X AxisServo xaxis;// Y AxisServo yaxis;int xpos = 90;int ypos = 90; // Stallint stall = 90;int yup = 75;int ydown = 105;int pos = 90;void setup() {  Serial.begin(9600);  // Max(?) Speed  scratch.setSpeed(800);  xaxis.attach(6);  yaxis.attach(7);  xaxis.write(xpos);  yaxis.write(ypos);}void loop() {  // Bluetooth Data X-Y Axis String?  while (Serial.available()) {    delay(10);    if (Serial.available() > 0) {      char c = Serial.read();      readString += c;    }  }  if (readString.length() > 0) {    // Serial.println(readString);    // X-Y Axis Combined Sent (ex. 368124)    // First 3 Digits    xaxisdata = readString.substring(0, 3);    // Next 3 Digits    yaxisdata = readString.substring(4, 6);    // Convert String to Int    int prexpos = xaxisdata.toInt();    int preypos = yaxisdata.toInt();    // X-Y Based on 480x800 Phone Dimension & MIT App    // X 100 to 350 High 170 to 320 Low    // Y 220 to 560    // Map X to xPos (Actual)    xpos = map(prexpos, 100, 350, 120, 60);    // Map Y to yPos (Delay)    ypos = map(preypos, 220, 560, 0, 6300);  }  // Final Routine  if (readString.length() > 0) {    if (xpos > 90) {      for (pos = 90; pos <= xpos; pos += 1) {        xaxis.write(pos);        delay(40);      }    }    else if (xpos < 90) {      for (pos = 90; pos >= xpos; pos -= 1) {        xaxis.write(pos);        delay(40);      }    }    yaxis.write(yup);    delay(ypos);    yaxis.write(stall);    // Scratch 2048 Steps = 1 Revolution (2 Up/Down)    // Used Stepper bcz Spare Parts -- Sigh!    // 2048 x 7 Seconds = 14336 Steps    scratch.step(14336);    // Return to Start    if (xpos > 90) {      for (pos = xpos; pos >= xpos; pos -= 1) {        xaxis.write(pos);        delay(40);      }    }    else if (xpos < 90) {      for (pos = xpos; pos <= xpos; pos += 1) {        xaxis.write(pos);        delay(40);      }    }    yaxis.write(ydown);    delay(ypos);    yaxis.write(stall);  }  // Reset  readString = "";}`

Archive
https://vid.me/K3Tx
TVShow S03E03X75 Simone Slouchy
After several dismissive attempts (3) -- we have haphazardly weaved together an Arduino Uno with cardboard, ultrasonic sensor, servo(s) and stepper(s) to remind, pester and intolerate your posture.

This project was hobbled together as a slight against the current incarnation of the maker community that at one time had been invested in improving humanity -- now succumbed to vanity and novelty. This project demonstrates that even with little to nothing applied, useless can harbor solution. Plaguing social venues with the antithesis breeds a consequence of evolutionary latency.

Ingredients
1. Arduino Uno
2. Stepper Motor (28BYJ-48)
3. Stepper Driver (ULN2003)
4. Ultrasonic Sensor (HC-SR04)
5. (2) Servos (High Torque)
6. Cardboard
7. Spite

Notations
1. 28BYJ-48 are cheap bcz they are in fact, rubbish -- do not be fooled by reviews documenting "high torque" and "power" bcz they fail to mention they only used these stepper motors to propel insignificantly sized wheeled robots a few paces before over heating and seizing.

2. Per my review above (Notation 1) may I suggest the alternative of either the purchase of or the modification of a servo to operate at 360 degree rotation -- ref. http://tvmiller.com/index.php?entry=entry160123-071155

3. A modified version of this code applied distance reference to alter the position of the shoulder servo relative to the actual distance of the sloucher -- due to impatience, disinterest and coherence of my typical distance, the code is commented but easily accessible.

Slouchy Codey
`// Simone Slouchy (3)// Vije Miller// TVMiller.com#include <Servo.h>#include <Stepper.h>// Handconst int stepsPerRevolution = 64;Stepper hander(stepsPerRevolution, 19, 17, 18, 16);// ShoulderServo shoulder;// Elbow (Servo elbow;// Sensor#define trigPin 2#define echoPin 3// Servo Positionint pos = 30;// What Action Next?int state = 0;// Distance Adjust (Version 2)// int newdis = 0;// Serial For  Testingchar incom = 0;void setup() {  Serial.begin(9600);  shoulder.attach(12);  elbow.attach(5);  pinMode(trigPin, OUTPUT);  pinMode(echoPin, INPUT);  // Set Start Position (Servo)  shoulder.write(15);  elbow.write(30);  // Stepper Starts 0}void loop() {  // Sensor Sequence  long duration, distance;  digitalWrite(trigPin, LOW);  delayMicroseconds(2);  digitalWrite(trigPin, HIGH);  delayMicroseconds(10);  digitalWrite(trigPin, LOW);  duration = pulseIn(echoPin, HIGH);  // Centimeter Conversion  distance = (duration / 2) / 29.1;  // Print for Testing  Serial.print(distance); Serial.println(" cm");  // IF Slouching || > 5cm  // But Not NOT In Chair || < 40cm  if (distance > 5 && distance < 40) {    if (state == 0) {      tap();      // Change State      state = 1;    }    else if (state == 1) {      grab();      state = 2;    }    else if (state == 2) {      assault();      // Reset      state = 0;    }  }  delay(5000);  // Serial For Testing  //  if (Serial.available() > 0) {  //    incom = Serial.read();  //    if (incom == '1') {  //      tap();  //    }  //   else if (incom == '2') {  //      grab();  //    }  //    else if (incom == '3') {  //      assault();  //    }  //  }  // Reset Value (Else)  incom = 0;}void tap() {  // Map Distance for Extension (Coming Soon)  // newdis = map(distance, 5, 20, 70, 110);  // Extend Shoulder and Forearm  // Open Hand  for (int i = 0; i <= 600; i++) {    hander.step(-1);    Serial.println("Open");  }  for (pos = 15; pos <= 30; pos += 1) {    shoulder.write(pos);    delay(20);  }  for (pos = 30; pos <= 90; pos += 1) {    shoulder.write(pos);    elbow.write(pos);    delay(20);  }  for (pos = 90; pos <= 145; pos += 1) {    elbow.write(pos);    delay(20);  }  for (pos = 90; pos <= 110; pos += 1) {    shoulder.write(pos);    delay(20);  }  delay(1000);  // Tap  for (pos = 145; pos >= 110; pos -= 1) {    elbow.write(pos);    delay(10);  }  for (pos = 110; pos <= 145; pos += 1) {    elbow.write(pos);    delay(10);  }  for (pos = 145; pos >= 110; pos -= 1) {    elbow.write(pos);    delay(10);  }  for (pos = 110; pos <= 145; pos += 1) {    elbow.write(pos);    delay(10);  }  // Fold Back  for (pos = 110; pos >= 70; pos -= 1) {    shoulder.write(pos);    delay(50);  }  delay(750);  for (pos = 145; pos >= 70; pos -= 1) {    elbow.write(pos);    delay(20);  }  for (pos = 70; pos >= 30; pos -= 1) {    shoulder.write(pos);    elbow.write(pos);    delay(30);  }  for (pos = 30; pos >= 15; pos -= 1) {    shoulder.write(pos);    delay(30);  }  for (int i = 0; i <= 600; i++) {    hander.step(1);    Serial.println("Close");  }}void grab() {  // Open Hand  for (int i = 0; i <= 600; i++) {    hander.step(-1);    Serial.println("Open");  }  for (pos = 15; pos <= 30; pos += 1) {    shoulder.write(pos);    delay(20);  }  for (pos = 30; pos <= 90; pos += 1) {    shoulder.write(pos);    elbow.write(pos);    delay(20);  }  for (pos = 90; pos <= 145; pos += 1) {    elbow.write(pos);    delay(20);  }  for (pos = 90; pos <= 110; pos += 1) {    shoulder.write(pos);    delay(20);  }  delay(1000);  // Close Hand  for (int i = 0; i <= 250; i++) {    hander.step(1);    Serial.println("Close");  }  // Lower On Sloucher  for (pos = 145; pos >= 115; pos -= 1) {    elbow.write(pos);    delay(30);  }  // Pull Back  for (pos = 115; pos >= 80; pos -= 1) {    shoulder.write(pos);    elbow.write(pos);    delay(30);  }  // Open Hand  for (int i = 0; i <= 250; i++) {    hander.step(-1);    Serial.println("Open");  }  // Extend Forearm  for (pos = 80; pos <= 145; pos += 1) {    elbow.write(pos);    delay(30);  }  // Fold Back  for (pos = 80; pos >= 50; pos -= 1) {    shoulder.write(pos);    delay(40);  }  for (pos = 145; pos >= 50; pos -= 1) {    elbow.write(pos);    delay(30);  }  for (pos = 50; pos >= 30; pos -= 1) {    elbow.write(pos);    shoulder.write(pos);    delay(40);  }  for (pos = 30; pos >= 15; pos -= 1) {    shoulder.write(pos);    delay(40);  }  // Close Hand  for (int i = 0; i <= 600; i++) {    hander.step(1);    Serial.println("Close");  }}void assault() {  for (int i = 0; i <= 600; i++) {    hander.step(-1);    Serial.println("Open");  }  for (pos = 15; pos <= 30; pos += 1) {    shoulder.write(pos);    delay(20);  }  for (pos = 30; pos <= 90; pos += 1) {    shoulder.write(pos);    elbow.write(pos);    delay(20);  }  for (pos = 90; pos <= 145; pos += 1) {    elbow.write(pos);    delay(20);  }  for (pos = 90; pos <= 110; pos += 1) {    shoulder.write(pos);    delay(20);  }  delay(1000);  for (int i = 0; i <= 250; i++) {    hander.step(1);    Serial.println("Close");  }  for (pos = 145; pos >= 115; pos -= 1) {    elbow.write(pos);    delay(30);  }  for (pos = 115; pos >= 60; pos -= 1) {    shoulder.write(pos);    elbow.write(pos);    delay(30);  }  for (int i = 0; i <= 250; i++) {    hander.step(-1);    Serial.println("Open");  }  for (pos = 60; pos <= 80; pos += 1) {    elbow.write(pos);    delay(30);  }  delay(1500);  for (pos = 60; pos <= 80; pos += 1) {    shoulder.write(pos);    delay(20);  }  for (pos = 80; pos <= 115; pos += 1) {    shoulder.write(pos);    elbow.write(pos);    delay(5);  }  for (pos = 115; pos <= 135; pos += 1) {    elbow.write(pos);    delay(5);  }  delay(500);  for (pos = 115; pos >= 80; pos -= 1) {    shoulder.write(pos);    delay(10);  }  for (pos = 135; pos <= 80; pos += 1) {    elbow.write(pos);    delay(30);  }  for (pos = 80; pos >= 30; pos -= 1) {    shoulder.write(pos);    elbow.write(pos);    delay(40);  }  for (pos = 30; pos >= 15; pos -= 1) {    shoulder.write(pos);    delay(40);  }  for (int i = 0; i <= 600; i++) {    hander.step(1);    Serial.println("Close");  }}`

Archive