Wednesday, May 11, 2016

Final V

No Pennies Plz


The final completed project!


1) the title and “strapline" of your project:
  • No Pennies Plz: The Small Change Solution for the Savvy User
2) introductions to the team members 
  • Just me: Brendan Ward, Gallatin Senior, Sociology and Design
3) the “elevator pitch” of your project:
  • It's a change box that tracks your total $$$ and sorts your coins into different recepticals. 
  • NO pennies though
4) description of the target audience:
  • Anyone who saves change and can do without pennies
5) description of the need and/or existing interaction that the project mediates:
  • It enhances the piggy bank into something that is interactive and much more useful
6) a step-by-step guide, with either photos or video, that clearly shows "how it works” from a user’s perspective
  • see video below:
    • Turn on
    • Put coins in visually and size coordinating slots
    • Read LCD total
7) a short discussion of where the project succeeded in its goals:
  • It works pretty great
  • With glass jars inside the sound of the coins dropping in is so satisfying!
  • I lasercut the housing so I think it is quite aesthetically pleasing.
8) a short discussion of where the project failed to achieve its goals:
  • The only real failure is the aesthetics of the inside of the box, which you wouldn't see very often anyway
9) what you would do differently next time:
  • I might try to make it smaller
10) final thoughts/observations
  • I will definitely use this thing! It's a great final/retirement of my Arduino!


Video of me using it:



Presentation:

My Presentation








Final IV

Implementation

Code:

Coding this change box was really tricky only because I needed a persistent variable that could be written and accessed over multiple program runs.

Arduino has EEPROM memory which is writable and persistent, HOWEVER you can only store one byte of data at each EEPROM address.

I did a lot of research online and was playing around with some functions to splice and store data over several addresses when I found someone who had written the functions already.

----------
Full disclosure and Attribution:

I used the functions EEPROM_Write_Int and EEPROM_READ_Int

StackExchange Question: "How to Store 2 analogRead values and read using EEPROM for Arduino uno?"

Question Id: 15910 (http://arduino.stackexchange.com/questions/15910/how-to-store-2-analogread-values-and-read-using-eeprom-for-arduino-uno)

Author: Anurag S. Vasanwala (AnuragVasanwala@gmail.com)
----------

I needed to change one thing in the write function:

It turns out that EEPROM has a limited number of writes before the address wears out. I changed the final EEPROM.write() to EEPROM.update(), because .update() will only rewrite if the data is different saving memory

This problem also meant that I had to flag each sense of a coin from the photo interruptors and only update my EEPROM within a flagged if statement. If one ended up outside of an if statement I could burn through the address very quickly because of how many cycles the program can go through every second.

I then just printed the total on the LCD screen in my void loop() so that it updates in real time

The reset button simply saves zero to all the EEPROM addresses 

Code:






Final III


Implementation


Housing:

I wanted to laser cut my housing so I built an Illustrator file that had appropriate tongue and groove walls for easy assembly

I also include raster etching for the lettering and detail work of the different coins


After I managed to get the laser cuts done I simply had to glue all the sides together expect the top (which I wanted to put on hinges so that you could access the coins/circuit inside.

I ended up going for the non linear slot position so that vessels could be placed under each slot catching the different denominations of coins separately.

The etching turned out great!


Sound = Glass!

I tried various materials for the interaction design component of dropping in the coins, especially with sound.
It turns out glass mason jars make a beautiful *cha ching sound so I have three small mason jars corresponding to the different slots


The Circuit:

Wiring the circuit turned out to be quite complicated, basically it went:
  • LCD has 6 pin connections one of which is a potentiometer to control brightness of the backlight
    • it also has 2 power pins and three ground pins
    • I ended up soldering it all together so that it could fit in the limited number of available powers/grounds/pins on the Arduino
  • Each Photo interrupter needed:
    • A power and ground on one side
    • A power and analog pin on the other side with a pull-down resistor to ground.
      • Depending on how much resistance you put across the emitter the reading varies
  • I also needed a reset button which was a basic button circuit to a digital pin
  • Finally I spliced a switch into my battery power supply to power the whole thing



I explain the Code in the next post!


Wednesday, May 4, 2016

Final - Ideation II

Components:
  • LCD screen:
    • This is to log the total amount of money in my change box
  • 3x Photo Interrupter:
    • These will log the amount of money put into the box
    • Each sensor will map to a certain coin / value
    • With each interruption the coin value is added to the total in Arduino memory
Things that are still needed:
  • I need a simple on / off switch to turn on the system and LCD screen
  • I need some mechanism of resetting the memory - maybe a button inside the box that you hold to reset.

Design:



I am working with the size of the Arduino plus the breadboard. What I'm thinking is forego the breadboard and solder all my components in, so that I can have more efficient space. The trick is that each slot needs to have an uninterrupted "fall" space to whatever container is collecting the coins.

I'm also playing with different configurations of where the slots will go. Either side to side or more spread out. Ideally I would like to be able to engrave the actual image of a coin next to each slot. 


Next Steps:

  • I need to buy a switch
  • I need to wire everything with the breadboard to make sure my code and circuit works
  • Solder components together
  • Need to make the precision cuts of the lid
  • Build the housing




Wednesday, April 27, 2016

Final - Ideation

No Pennies Plz

     Basically a semi-smart piggy bank. A device with a mounted LCD screen that logs how much money you have in change you put in it. The idea comes from my own problem with my current change collection system. I have a can on my bookshelf that I just throw my spare change in. The issue is I never know how much change I have and it is totally unsorted. I personally don't like pennies, so I think implementing a toss out of any pennies added would be a fun gimmick to give the device a bit more depth and interaction. The final device would accept and sort dimes, nickels, and quarters in different slots, adding each value to a total that would display on the LCD screen.
  • who is the target audience?
    • Anyone who collects change and is too bougie for pennies.

  • does your project solve an existing need?
    • It solves the need for an attractive change collection and sorting device

  • does your project enhance an existing interaction or human behavior?
    • It enhances the behavior of collecting change into an efficient and organized system

  • what parts do you need, how much do they cost, and when are they due to arrive?
    • I need a couple of optical emitter and sensor pairs
    • They are quite cheap and I'm probably going to buy them at Tinkersphere

  • what, if any, hardware, mechanical devices, and/or movements will your project involve?
    • It will involve the photo switches to log each coin that goes through each slot
    • The LCD screen will show the total money in the bank.
    • I might have the device shoot out any pennies added (hence the name!)

  • what, if any, Arduino, Processing, or other software applications or libraries will your project use?
    • I will only need Arduino to implement this design
    • I will be using the EEPROM to store the total

  • who are your team members
    • I am doing this project alone.
    • I am a Sociology major in Gallatin.
    • I am better at the physical designing and building but not bad at coding
    • However I will be doing all the labor


Tuesday, April 26, 2016

Data Visualization Labs

Experiment #1: Visualizing a single series of data









Experiment #2: Visualizing the comparison of multiple sets of data


Experiment #3: Animated visualization

I used a photoresistor to sense the light in a room and then transferred that data through Serial to processing and visualized it.

I could easily slow down the animation process to show the change in light over a longer period of time

OR

The device and animation could be used to test the different light levels in different rooms in real time (like if you were looking to rent a new apt. or something!)




Wednesday, April 13, 2016

Motor Labs



Controlling a servo motor from a Processing program




Controlling DC Motor with Potentiometer



Code:


Controlling Motor with Processing




Code: