Sarah’s Final Project: Slither

Slither is a desk pedometer, it tracks your steps and displays them visually. It is the perfect product for people who spend too much time at their desk. Instead of relying on your iPhone or Apple watch to remind you to get up from your desk and start walking Slither takes care of those reminders in sleek way. This decorative desk piece lights up to show you your progress towards walking your 50,000 step/week goal.

Slither’s form came from…a snake. Slither actually started as a painting I made for fun it evolved into a vector and now a pedometer. I definitely pushed my boundaries trying to create such a complex shape that contained several pieces.

The Materials

  1. Passion fruit Acrylic
  2. Hall effect sensor + Magnet 
  3. Adafruit HUZZAH ESP8266 wifi Breakout
  4. Wires
  5. Soldering Kit + solder
  6. 2 x Adafruit NeoPixel LED Side Light Strip – Black 90 LED 
  7. Hot Glue gun (with glue) + Gorilla glue
  8. IFTTT + Adafruit IO accounts
  9. Scrap wood
  10. 5V 2A switching power
  11. .75″ PVC pipe
  12. Edge tape
  • Machines
    1. CNC (wood)
    2. Laser Cutter (acrylic)
    3. Sander

The Build
Construction started with the CNC machine. We spent a lot of time together. Probably too much.

Once I calculated the dimensions I would need I CNC-ed my shapes out of plywood. I made sure to add dowel holes so the wooden frames would align properly.

I had to do some extra chiseling and sawing to get the shapes out. I also cut some PVC pipe that would be my on/off switch.

My wood frames needed lots of sanding. Next, I used the dowels to stack the frames on top of each other. Each frame had a layer of wood glue. I clamped that together for 30 mins.

Next I used the laser to cut the same shape out and also some circles for the PVC piece.


My feather huzzah board was connected to both a hall effect sensor and two strips of LED lights. The hall effect sensor is a sensor that turns on in the presence of a magnet.

Not pictured: lots of soldering…and resoldering…and oh no it broke soldering.

Next up, start trying to fit the huzzah board and LEDs.

I glued the acrylic piece to the top wood frame

Next, I glued an acrylic circle to cut PVC pipe. Wet wood strips and molded it to the cylinder volume before gluing.

The Code & Circuit
I used IFTTT to create a trigger for the Fitbit app. Every day the Fitbit app would fire a notification to my Adafruit IO feed with a step count. I set a goal for 50,000 steps. Slither would continue to light up until 50,000 steps was hit. When it hit the goal slither would go dark and reset.

Challenges

The CNC proved to me very time consuming. I think I will be more aware of the time it takes in the future and the problems that may arise with working with a machine like that. Lots of testing had to be done and many of the frames I wasn’t super happy with I ended up using for times sake. Sanding these frames was difficult because of the small spaces between.

If I were to do this again I would definitely probably try not to fit everything into the snake. Trying to fit it all inside caused lots of electrical issues and broke my circuit a few times. If I did try and fit it all inside again, I would make the head larger. I wasn’t able to finish the back pieces because the gap wasn’t large enough.

I wasn’t able to UV print on the acrylic because it was broken. Funnily, the placement for the dowels ended up looking like eyes anyway. If I could make this again I would add a layer of matte clear plastic so you didn’t see the gaps for the LED channel so much.

What I learned

  • 3D print probably would have been easier
  • Don’t get so complicated with shapes for the CNC machine
  • Compressed boards would probably have been better than plywood in terms of chipping
  • Mini LEDs are very difficult and time consuming to solder
  • Hall effect sensors aren’t as sensitive as you’d think
  • Laser cutting is pretty easy
  • You can do weird dancing when PoD is empty

Instructables:
https://www.instructables.com/Slither-a-Visual-Pedometer/

The Code

#define IO_USERNAME    "YOUR IO USERNAME"
#define IO_KEY         "YOUR IO KEY"

#define WIFI_SSID       "PUT WIFI NAME HERE"
#define WIFI_PASS       "PUT PASSWORD HERE"

#include "AdafruitIO_WiFi.h"
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);

/************************ Main Program Starts Here *******************************/
#include <ESP8266WiFi.h>
#include <AdafruitIO.h>
#include <Adafruit_MQTT.h>
#include <ArduinoHttpClient.h>

// #define BUTTON_PIN 4
//#define LED_PIN 13


#include <Adafruit_NeoPixel.h>

#define PIXELS_PIN 15
#define NUM_LEDS 180
#define BRIGHTNESS 50
#define HALL_SENSOR 2

Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIXELS_PIN, NEO_GRB + NEO_KHZ800);

int state = 0;
int TotalSteps = 0;
int ledlevel = 1;


// button state
//int current = 0;
//int last = 0;
//int sensorValue = 0;

// set up the 'command' feed
AdafruitIO_Feed *slither = io.feed("slither");



void setup() {

  // set button pin as an input
  // pinMode(BUTTON_PIN, INPUT_PULLUP);
 // pinMode(TotalSteps, INPUT);
  pinMode(HALL_SENSOR, INPUT);


  strip.setBrightness(BRIGHTNESS);
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'


  // start the serial connection
  Serial.begin(115200);

  // connect to io.adafruit.com
  Serial.print("Connecting to Adafruit IO");
  io.connect();
  
  // set up a message handler for the 'command' feed.
  // the handleMessage function (defined below)
  // will be called whenever a message is
  // received from adafruit io.
 slither->onMessage(handleMessage);

  // wait for a connection
  while(io.status() < AIO_CONNECTED) {
    Serial.print(".");
    delay(500);
  }

  // we are connected
  Serial.println();
  Serial.println(io.statusText());

}

void loop() {

  // io.run(); is required for all sketches.
  // it should always be present at the top of your loop
  // function. it keeps the client connected to
  // io.adafruit.com, and processes any incoming data.
  io.run();
  ledlevel = map(TotalSteps,0,50000,0,strip.numPixels());


  state = digitalRead(HALL_SENSOR);
  if (state == LOW){
    Serial.println("Hall Effect Sensor Activated");
    Serial.print("LEDs to light up: ");
    Serial.println(ledlevel);
for(int i=0; i<ledlevel; i++) { 
   strip.setPixelColor(i, strip.Color(100,0,30)); //on
   strip.show();
}  
delay(10);

  }
  else {
    Serial.println("no magnet detected");
for(int i=0; i<strip.numPixels(); i++) { 
strip.setPixelColor(i, strip.Color(0,0,0,0)); //off
   strip.show(); 


    }
  }
}






// this function is called whenever a 'command' message
// is received from Adafruit IO. it was attached to
// the command feed in the setup() function above.
void handleMessage(AdafruitIO_Data *data) {

  //int command = data->toInt();
  TotalSteps = TotalSteps+ (data->toInt());


Serial.print("steps counted: ");
    Serial.println(data->value());
    

if (TotalSteps >= 50000){
  TotalSteps = 0; 

}

// else {

    //Serial.println("no steps");
    
  

//
//
//  //change NeoPixel color here using format strip.Color(R,G,B,W)
//     strip.setPixelColor(0, strip.Color(0,0,0,100)); //turn off NeoPixel
//     strip.setPixelColor(1, strip.Color(1,0,100,0)); //turn off NeoPixel
//     strip.setPixelColor(2, strip.Color(2,100,0,0)); //turn off NeoPixel
//     strip.setPixelColor(3, strip.Color(3,100,100,0)); //turn off NeoPixel
//     strip.setPixelColor(4, strip.Color(4,0,80,40)); //turn off NeoPixel
//     strip.setPixelColor(5, strip.Color(5,90,0,20)); //turn off NeoPixel
//     strip.show(); //always remember to call strip.show() to display changes
//
//     
//     delay(500);
//
//     strip.setPixelColor(0, strip.Color(0,0,0,0)); //turn off NeoPixel
//     strip.setPixelColor(1, strip.Color(0,0,0,0)); //turn off NeoPixel
//     strip.setPixelColor(2, strip.Color(0,0,0,0)); //turn off NeoPixel
//     strip.setPixelColor(3, strip.Color(0,0,0,0)); //turn off NeoPixel
//     strip.setPixelColor(4, strip.Color(0,0,0,0)); //turn off NeoPixel
//     strip.setPixelColor(5, strip.Color(0,0,0,0)); //turn off NeoPixel
//
//     strip.show(); //always remember to call strip.show() to display changes
//     
//  } 
}

Monica’s Mood Tracker Blog Submissions

Group project by: Nihaarika & Monica

Short project description

The IoT mood tracker is a device that provides feedback to student advisors on how a group of students is feeling. Graduate school can be extremely challenging. Sometimes it gets so bad that students get burned out. What if student advisors knew that students were not doing well before they reached the burnout stage?

The IoT Mood tracker uses a suite of Adafruit products, Adafruit IO and IFTTT to invite passersby to hit a physical thumbs up, thumbs down, or thumb level that represents the mood they are feeling. When any one thumb has been pressed a certain amount of times, the device sends an email to a student advisor.

Watch the IoT Mood Tracker in action here:

Link to Instructables:

https://www.instructables.com/PoD-Mood-Tracker/

A sample social media message:

Have you ever got burnt out with schoolwork? This IoT Mood Tracker helps student advisors know how a student cohort is doing through out the semester in order to keep burnout at bay. The device uses thumb-shaped buttons, electronics and the internet to record student moods and relay the information to school administrators.

Blogs we sent our Pitch to

Hackaday
Hackaday
Arduino Education
Arduino Education
Adafruit Blog
Adafruit

https://www.hackster.io/news/icon-based-student-mood-tracker-adecc1431de1

Charvi’s You Better NOT Forget My Birthday CupCake

https://www.instructables.com/Different-Time-Zone-Birthday-Reminder/

Inspired by my friends’ tradition of calling each other at exactly 12 midnight on their birthdays, I developed this product out of guilt of missing out on this tiny but precious practice. To make it worse, due to the time difference, I have been calling my friends either too early or too late to wish Happy Birthday. This simple product is a gag gift to give your forgetful friend.

Giancarlo’s Physical/Digital Spray can (Final Project)

i made, what i call, “street art magic” — a physical/digital spray can

essentially it’s a symbol for the use of spray cans and their connection to street art in the digital age. 

this one works as a can, or trigger, for the acrylic tag that i constructed to become a light. the use case would be someone who is a fan of graffiti and just wants a novel spray can that lights up a tag; however, it would be great for the setup to be used as a communication tool for young artists to non-verbally communicate when they arrive hone after a night on the streets. Being that Huzzahs are [going to be] used, the cans can trigger lights that are remote (another town, city, state) by using WiFi. 

overall the process was undulant but the challenges made it worthwhile in the end. currently the product and video, themselves, are only a work-in-progress, due to challenging software/hardware interface issues. the current production uses acrylic to display the tag and diffuse light, with a 3D printed casing to wall mount and house the neopixel strip. 

this seems like an appropriate time, so the materials are as follows: 

  1. 2 acrylic sheets (fill and outline)
  2. 3D printed case 
  3. 315/433mhz RF transmitter/receiver (if wanting to create a local remote to trigger) 
  4. Arduino Gemma (if wired version, current prototype) 
  5. Arduino Huzzah (if WiFi version, to interface with others) 
  6. Arduino Huzzah/Metro (if using RF transmitters, for a local remote trigger) 
  7. Dozen (approximately) pvc coated wires 
  8. Neopixel strip 
  9. External Battery 
  10. Button 

In using the materials, I tried to manage my time efficiently so I could work on the various pieces of the project concurrently. Almost all software and hardware resulted of new endeavors, but it wasn’t too overwhelming (other than the RF module being defective). 

Process photos and explanation: 

Wiring photo (RF attempts, Current modified button cycler, and Huzzah); Tag sketch (in notepad); Laser Cutter; 3D model for case 

Overall I’m satisfied with the current state of the project, but my next steps for the near-future iterations will use both the RF module and Arduino Huzzah (for the local, and/or remote LED triggering spray cans). 

Final video 

Various mini pieces within the video, it’s use case, and a snippet of the product in-use. 

Instructable: https://www.instructables.com/Digital-Spray-Can-Street-Art-Magic-Giancarlo-Cipri/

Cheryl’s Final Project

We are dogs’ biggest enemy and we are here to save pet owners. 

What do dogs get excited about besides playing fetch? The answer is food. They would eat anything. So don’t you hate to see your dog stealing snacks from the food cabin? It is almost like your money getting stolen by your child at home. Nobody likes that. 

Lightbox is an interior decor that serves as your food cabin guard with an “implanted” buzzer, a movement sensor, and surrounding lights. When the dog approaches the Lightbox, the sensor will sense movement and enable the buzzer to activate and the light to change color as a way to warn and scare away your greedy dog.   

Lasercutting
Circuit diagram

Soldering

Assembling

https://www.instructables.com/Stay-Away-Lightbox/

Xinyue’s Mini Music Stage

Every music lover desires a stage, but not everyone has a stage, and not everyone likes to participate in that kind of public stage. I want to create a new experience for music lovers. Whether it is practicing musical instruments, karaoke, or playing music, the stage will change different effects according to the rhythm. Everyone can have their own music stage!

https://www.instructables.com/Mini-Music-StageSound-Visualization-Device/

About Shape

I got inspiration from this stage.

Modeling process

1. Cut Acrylic

I used Rhino to make a model first, and then laser cut it.

2. Making fiber optic tubes

3. Drilling

4. Assembly

5. Combine the Circuit With the Acrylic Frame

5. Fix the fiber tube with hot glue

Circuit and code process

Improvements and prospects:

  1. Add button to change modes, so don’t need upload code to Gemma to change modes.
  2. Separate the base from the column and use the Lego principle to make it easier to assemble, and easy to carry and transport.
  3. The stage can fix any characters or props you like.

Reduce costs and go to the market!

Finally, thank you Corey, Cathy, Qiting, Liam, Gee and all other Pod students! Last but not the least, Becky!!! Superwomen!

Cathy Tung Final Project

Concept

Designers spend time on matching colors. However, the best matching inspirations sometimes come from the nature around us. The lamp is designed to help designers get objects’ RGB color. (See details in Instructables)

Process

Step 1 – Ideation

Project started from concept ideation. I created ideas from abstract shapes to realistic products. Sketching will help you to visualize ideas flying in your head. Meanwhile, you can also find “smart product project” online for getting creative inspirations. The channels related to smart object, physical computing, IoT, etc are listed below: 

Step 2 – Shopping

Once you get clear idea of concept, you can start making a shopping list. Before you go to check, make sure all the parts are available with each other. I recommend you to buy circuit on Adafruit, which has clear spec and instruction.

Step 3 – Circuit Design

Basically you can find some open resource projects to learn from. Thanks to Becky Stern’s Chameleon Scarf project.

When soldering components together, remember to differentiate channels with different colors. The circuit I designed having Uno, color sensor, neopixel strip, and photoresistor.

  • Black – Uno Ground + Color sensor Ground + Neopixel Ground + Photoresistor Round
  • Red – Uno 5v + Color sensor VIN + Neopixel 5v + Photoresistor Positive
  • Yellow – Uno SCL + Color sensor SCL
  • Blue – Huzzah SDA + Color sensor SDA 
  • White – pin for Photoresistor
  • Green – pin number for Neopixel

Step 4 – Physical Structure

Cutting basal foam for making structure and hiding circuit. Using solid ring wood piece as the base of Neopixel strip.

Step 5 – Finalize

In order to get smooth and high-quality texture of product surface, I used aqua resin(the most typical mix ratios of liquid and powder are 1:3 by weight or 1:2 by volume) to coat the balsa foam and sanded with sanding paper.

Next Step

In order to using color efficently, the next step will use Huzzah instead of Uno and send objects’ RGB Decimal Code to users through the internet.

Nihaarika and Monica’s PoD Student Mood Tracker

Nihaarika & Monica’s Final Project

Introduction

Overwhelmed college student

It is normal that school is challenging and, at times, deeply so! But sometimes things really do get out of control, and students, unable to communicate to their teachers and advisors how they are feeling, can fall over the edge. It is at this point–when students are burnt out, sleep deprived, and even physically ill, that the institution notices that it’s time for a change.

We believe this is an issue of feedback delay. What if teachers and academic advisors knew before it is too late, that school life for students is going downhill? What if there was a way to stop the burn out and misery before it happened?

The Concept

Preliminary Sketch

The mood tracker is inspired by the notion of checking in on how a group of people are doing using “thumbs” as a visual cue. An upward, side, or downward-pointing thumb signifies a good, ok, or bad emotional state, respectively 👍👎

When a students punch in their mood on the tracker, the tracker tallies up the number of presses for each button. When any one button reaches 20 presses, the tracker sends data to an internet feed, which in turn triggers an email to the academic advisor announcing the student status.

Let’s See It In Action

Product in use

This product is designed to help academic advisors to know how a student cohort is doing on a daily or weekly basis, so that they can take action when needed.

Research

The concept of of checking in date back to the 1960’s practice of punching. -in at work.

Our mood tracker bears a core resemblance to the standing satisfaction booths in airport bathrooms and stadiums.

However, our product goes further in that it is not so much an endless vessel for feedback, but an alert system that is triggered at specific moments to help educational institutions and staff know when to check in with their students. 

The Neumann study found emotional exhaustion and lack of felt accomplishment are ingredients of the burnout process. Therefore, Emotional fatigue greatly influences student performance and affects personal commitment which makes it important to track and prevent.

Lastly, we use the thumbs similar to the iconic Facebook “LIKE” since it is a familiar concept to a majority of our target audience -Millennials.

Open-Sourcing the Mood Tracker

A mood tracker can be used in settings other than schools. It would be interesting to imagine this product in work settings as well.

To create your on Mood Tracker for school or work, click here and follow the steps.

How We Did It: Our Process

User Story Board
User Story Board
Low Fidelity Model
3D Rendering
Final Product

Final Product Shots

PoD Mood Tracker: Vote Good
PoD Mood Tracker: Vote Bad

Future Projections

Lastly, since emotional feelings are a lot more complex and subjective to each individual having a detailed database on who clicks what button throughout the week would help understand individual emotions better.

What we learned

Once again, two steps forward, one step back.

Don’t let power and ground touch.

Erika’s Final – 1min Punch Break

Instructables link: https://www.instructables.com/One-Minute-Punch-Break/

Take a Break, Let it Out

We’d probably all agree that physical release can be the most satisfying and relieving outlet when stress levels are high or a burst of adrenaline runs through our veins.

The One Minute Punch Break creates a healthy space for frustrations and pent up emotions, designed to turn tension into release and then a smile. Intended to be mounted on the walls of offices and co-working spaces, the massive button starts a 60-sec LED timer while each punch you make is reflected on the counter.

Is working from home driving you insane? Does your office need an anger zone? Or do you find yourself needing an outlet before a big presentation? You probably need to make yourself one of these…


STEP 1: Sketches

STEP 2: Code

STEP 3: Build

STEP 4: Finishing touches!

FINAL PRODUCT: