Physical Computing – Week #14 – Welcome Stacklight!

As we wrote in the previous post, we got our object to work. The remaining work we still had to cover was:

  • figure out the connections (to move away from copper)
  • choose final components
  • finish fabrication

 

Connections

We decided to give a shot to the magnets, as we have purchased bunch of them at the beginning of the project anyway.

For the test we drilled two holes on each of the layers to make connections work:

  • two holes in the center of the ground piece
  • 4 holes (2 on top and 2 on the bottom) of the middle piece
  • 2 holes at the bottom of the top piece

Just to note: it’s super hard to solder on the magnets as they keep running away! We’ve spent a lot of time to make it happen. The magnetism reduced a lot as we hitting magnets up in soldering.

 

Final components

As for now, we sticked to the LEDs. There are 4 LEDs in total: 3 on the bottom piece and one on the top. As both top and the bottom of the middle piece is acrylic, when you stack the pieces together, it looks like LEDs are in all of them.

 

Fabrication

Shir also used CNC again to cut the new pieces. We first cut the pieces out of blue foam to make sure that the final is as we need it and then moved on to the wood.

 

Here’s what we’ve got:

 

6B4A9930-1024x683 6B4A9955_1-1024x683

We’ve got good feedback during our presentation, we also made a keynote with our process – you can find it here.

We took some shots of our project before class, it was great to have our stuff working, as you can see in this pic:

6B4A9963_1

All our fellow classmates express the stacklight could be a good toy/product in the future if we keep working on it. By product, we mean the stacklight could really be a lighting product in the bedroom. Users can stack rounds that have lamp inside up, depending on how much light they would need to consume. This can be a really good idea for the future side project.

However, since we did a lot of research on kids development and their toys. We really want to build Stacklight to a higher level.

Some options for the future:

  1. Work on better connections (magnets still keep running away and we should try working with bigger ones)
  2. Play with different outcomes (sound, motor, etc.)
  3. Try different wood (dark one should look really good together with acrylic)
  4. Add a pocket for battery disassembling

 

We have also applied for the ITP Winter Show: if we get in, we’ll have to work on some of the things from that list!

Although with frustrations it was a really good project: including research, playtesting with kids, pcomp part itself, and, of course, teamwork.

On my end, I feel that working on one project for a long time lead to good results and a number of revisions that we had, just helped us make it better. I wish we could make it work with the Neopixel, as we can have much more control on the outcome, but I guess that for this run we had to come up with lighter solution. 

I think that the choice of choosing simple interaction helped me to figure out a lot of the basics in Pcomp and troubleshooting that can help me later on- sometimes when things doesn’t work- you need to know the way back in order to fix it. It was a good experience, and I had great time also to bring some new techniques like the CNC to this project.

Thanks for reading this  🙂

Physical Computing – Week #13 – Final project Process Part 6

We went through a lot since the last blog post. By “a lot” we mean a lot of changes, a lot of frustrations, few office hours with Benedetta and ITP’s resident Pedro, again a lot of frustrations.

To be completely honest, we got stuck: we did a great research on kids development, did an amazing playtesting, but got stuck with electronics part.

We could stay stuck and write much more about our frustrations, but it’s better to focus on finishing the project and moving forward.

We listened to Benedetta’s advice: go back to a simple circuit with a couple of LEDs and make that work.

We chose to not fabricate any new pieces until we make it work with what we’ve got now.

For the circuit we had two options:

I. Keep the battery in the ground piece and LED in the middle and top pieces.

2015-12-07-09.30.16-1200x960

We tried working on it but realized that we cannot really continue the power and ground to the top piece once we have first two pieces connected (because the circuit closes and there’s no way to differentiate power and ground again).

So we went forward with the second option.

II. Have the battery in the middle piece and LEDs in the ground and top pieces.

2015-12-07-09.28.28-1200x960

It works like this:

The legs of LED in the ground piece are wired to the copper on the ladder of the piece. The copper goes through to the outside of the piece and acts as a connection point to the middle piece.

The battery (power and ground sides) is wired to the copper plates on the bottom of the piece. When two pieces touch, connection happens and LED in the ground piece lights up. At the same time there are two more wires extended from the copper plates of the bottom of the middle piece to the ladder of the piece to another two copper plates that act as a connection to the top piece.

In the top piece there’s another LED with legs wired to the copper on the piece background. The the piece is put on the middle piece, connection happens and the second LED lights up.

We first made the circuit on Arduino to always have it in front of us and see how it works:

2015-12-04-15.36.40-1200x900

2015-12-06-13.17.23-e1449502252524-1200x900

Then moved into making our own switches and connecting it to the breadboard.

2015-12-06-13.27.47-1200x900 2015-12-06-13.28.03-1200x900

Then added the second switch to act as a top piece and finally made it work!

2015-12-06-15.07.15-1200x900

2015-12-06-15.07.07-1200x900 2015-12-06-15.07.21-1200x900

This is how the switches look from top:

2015-12-06-15.13.39-e1449502871406-1200x900

One lesson learnt hard way during the work: never solder directly onto the battery! We just had one exploding into Ruta’s face.
After we had the Arduino and switches version working, we moved onto making a prototype. We used the same wooden pieces that we had from before and also found some acrylic in the junk shelf to cut for the covers.

 

 

2015-12-06-16.47.07-1200x9002015-12-06-17.25.09-1200x1600 2015-12-06-17.24.40-1200x1600 2015-12-06-17.28.54-1200x1600 (1)

Next steps:

  1. To figure out the best way to connect the pieces: we want to use copper, but we need to find a way to hide it in acrylic and make it stable as it’s still very loose now.
  2. Once we have connections working 100% choose final components for the outcomes: whether stronger LEDs or change one LED to the speaker, etc.
  3. Do the final fabrication.

All before this Thursday when we’re presenting it in the class.

Physical Computing – Week #12 – Final project Process Part 5

Last Friday we bought a full RGB neopixel strip (unfortunately, Lighting Plus didn’t have the addressable ones, so we had to go to Tinkesphere again).

The one we bought had 60 pixels and once we plugged it in, they were all so dim because of not enough current.

To change that we tried the external power source. We took the one from ITP shop and Shir also had a power jack to connect a 12V battery.
Lesson learnt: if we keep using neopixel strip we will always need external power supply, which may make things a bit complicated and literally heavier for a 3-year old.

2015-11-25-16.04.23-1200x900 2015-11-25-16.28.36-1200x900 2015-11-25-16.29.06-1200x900

 

CNCing new parts

We remeasured the wood blocks to be exact fit for the neopixel strip as well as the circuit (we want to hide the Arduino Micro inside to make the entire object mobile). Shir made new Illustrator files for the new prototypes and is going to CNC it later.

2015-11-28-15.54.39-1200x1600 2015-11-28-15.57.18-1200x900 2015-11-28-17.15.12-1200x900

Second years Maya and Abhishek helped with the 3D design. First try to cut wasn’t so successful because the speed got too fast (or something else):

 

Code

Ruta managed the code to light single neopixel to be of different color, as such we can do first 18 neopixels red, and the other 15 to be green (and so on) by running one sketch.

Processed with VSCOcam with c1 preset

2015-11-28-16.51.39-e1448747928217-1200x900

This is the code:

 

// NeoPixel Ring simple sketch (c) 2013 Shae Erisson

// released under the GPLv3 license to match the rest of the AdaFruit NeoPixel library

 

#include <Adafruit_NeoPixel.h>

#ifdef __AVR__

#include <avr/power.h>

#endif

 

// Which pin on the Arduino is connected to the NeoPixels?

// On a Trinket or Gemma we suggest changing this to 1

#define PIN            6

 

// How many NeoPixels are attached to the Arduino?

#define NUMPIXELS      60

 

// When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.

// Note that for older NeoPixel strips you might need to change the third parameter–see the strandtest

// example for more information on possible values.

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

 

int delayval = 100; // delay for half a second

 

void setup() {

 // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket

#if defined (__AVR_ATtiny85__)

 if (F_CPU == 16000000) clock_prescale_set(clock_div_1);

#endif

 // End of trinket special code

 pixels.begin(); // This initializes the NeoPixel library.

}

void loop() {

 

 for (int i = 0; i < NUMPIXELS; i++) {

   if (i <= 10) {

     pixels.setPixelColor(i, pixels.Color(255, 0, 0)); // red color

   } else if (i > 10 && i <= 25) {

     pixels.setPixelColor(i, pixels.Color(0, 255, 0)); // green color

   } else if (i > 25 && i <= 40) {

     pixels.setPixelColor(i, pixels.Color(255, 150, 0)); // grey color

   } else if (i > 40 && i <= 60) {

     pixels.setPixelColor(i, pixels.Color (150, 150, 150)); // blue color

   }

 }

 pixels.show();

 delay(delayval);

}

 

The basic color code is going to be initially coded by us and parents will have an opportunity to change the color (we would provide the tutorial and code how to make it happen). For example: when the kids puts the middle piece on the ground one, the ground one lights up in red; when the kid puts the top piece on the middle one, the middle one lights up in green.

 

The remaining questions to figure out are:

 

  • what our external power supply is going to be (and how big)
  • how to hide it
  • what we’ll be using as a switch to make the wooden blocks touch? (As mentioned in the previous post it can either be resistor, photocell, etc.)

We want to make the whole thing as simple as possible, so we eventually agreed on making the switch by simply connecting the power supply wire to the neopixel data wire. One of them would be in the base piece, another in the middle and when they touch, the strip lights up.

For now the pieces look like this:

2015-11-28-17.08.39-1200x1600 2015-11-28-17.08.24-1200x960 2015-11-28-17.08.01-1200x1200 2015-11-28-17.08.51-1200x900

Physical Computing – Week #11 – Final project Process Part 4

We finally moved on to circuits! Woohoo! We borrowed a neon pixel LED from a fellow classmate and tried it with Arduino.

We looked at the Adafruit Neopixel Arduino library to make things happen, but it wasn’t as easy as it seemed.

Here’s the circuit on a breadboard:

2015-11-24 12.57.02

 

Neopixel soldering was done, we tried to connect it this way and another, but it didn’t work! We consulted with few other classmates ( Aaron from 1st year ) and it appeared that probably we had soldered the wrong side of the strip (that’s how we got it). We resoldered and it worked!

2015-11-24 12.57.11

 

To test it we used one of the examples in the Arduino library.

After we got it going, we wanted to add a photocell to control the light (turn it on and turn it off). We tried it before with a regular LED but now we struggled a bit with code as the one we knew and the one from Arduino library for neon pixel strip was a bit different. Good that one of ITP’s residents Pedro was walking nearby, so we asked for his help.

Finally, together me made it work. Here’s a circuit:

2015-11-24 14.01.26

 

And here’s the code:

//———————————————————————————————- Neopixel

#include <Adafruit_NeoPixel.h>

#ifdef __AVR__

 #include <avr/power.h>

#endif

// Which pin on the Arduino is connected to the NeoPixels?

#define PIN            6

#define NUMPIXELS      3

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

int delayval = 500; // delay for half a second

 

//———————————————————————————————- Photocell

int photoPin = A0;

int sensorValue = 0;

int brightness = 0;

int offset = 0;

void setup() {

 //Start Serial

 Serial.begin(9600);

 //Start Neopixel

#if defined (__AVR_ATtiny85__)

 if (F_CPU == 16000000) clock_prescale_set(clock_div_1);

#endif

 pixels.begin();

}

void loop() {

   sensorValue = analogRead(A0);

   brightness = map(sensorValue, 10, 40, 0,255);

   if(brightness <= 10){

     brightness = 0;

   }

   if(brightness >= 240){

     brightness = 255;

   }

   pixels.setPixelColor(0, pixels.Color(0, 0, brightness)); // Moderately bright green color.

   pixels.setPixelColor(1, pixels.Color(0, brightness, 0)); // Moderately bright green color.

   pixels.setPixelColor(2, pixels.Color(brightness, 0 ,0)); // Moderately bright green color.

   Serial.println(brightness);

   pixels.show(); // This sends the updated pixel color to the hardware.

   delay(50);

}

 

And here’s the video:

We also then tried to add the second photocell — because after all the idea is that each photocell would control the different piece.

2015-11-24 15.10.01

Code is the same with the second lines added for the second photocell:

//———————————————————————————————- Neopixel

#include <Adafruit_NeoPixel.h>

#ifdef __AVR__

 #include <avr/power.h>

#endif

 

// Which pin on the Arduino is connected to the NeoPixels?

#define PIN            6

#define NUMPIXELS      3

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

int delayval = 500; // delay for half a second

 

//———————————————————————————————- Photocell

int photoPin1 = A0;

int photoPin2 = A1;

 

int sensorValue1 = 0;

int sensorValue2 = 0;

 

int brightness1 = 0;

int brightness2 = 0;

 

void setup() {

 //Start Serial

 Serial.begin(9600);

 

 //Start Neopixel

#if defined (__AVR_ATtiny85__)

 if (F_CPU == 16000000) clock_prescale_set(clock_div_1);

#endif

 pixels.setPixelColor(2, pixels.Color(0, 0, 0));

 pixels.begin();

}

 

void loop() {

 

   sensorValue1 = analogRead(photoPin1);

   brightness1 = map(sensorValue1, 10, 40, 0,255);

   sensorValue2 = analogRead(photoPin2);

   brightness2 = map(sensorValue2, 10, 40, 0,250);

 

   if(brightness1 <= 11){

     brightness1 = 0;

   }

 

   if(brightness1 >= 255){

     brightness1 = 250;

   }

///////////////////////////////////

   if(brightness2 <= 11){

     brightness2 = 0;

   }

 

   if(brightness2 >= 240){

     brightness2 = 250;

   }

   

   pixels.setPixelColor(0, pixels.Color(0, 0, brightness1)); // Moderately bright green color.

   pixels.setPixelColor(1, pixels.Color(0, brightness2, 0)); // Moderately bright green color.

   pixels.setPixelColor(2, pixels.Color(0, 0, 0));

 

   Serial.print(brightness1);

   Serial.print(” | “);

   Serial.println(brightness2);

   

 

   pixels.show(); // This sends the updated pixel color to the hardware.

 

   delay(50);

 

}

 

The real struggle with photocells is that you have to remap the values every single time. Even now it took us 5-6 times until we could find a good value reading.

To avoid this, Pedro mentioned, there is a bunch of different ways to achieve the same result but will less frustration. One of such ways is using a resistor.

2015-11-24 15.32.11

The resistor would be a final component in closing the circuit; just as you see in the picture above, adding right resistor lets LED to light up, whereas if we added a stronger resistor, LED would remain silent.

For us this is still unexplored territory, so what we’ll do next is play some more with possible options and only then choose the final one.

We also want to buy a longer neon pixel strip that would fit the perimeter of our base round and see how it works (the piece that we borrowed still doesn’t look very stable).

Physical Computing – Week #11 – Final project Process Part 3

On Friday, we managed to do a short play testing with Emily’s son, Ian. Emily works in the Tisch office located a few blocks away(yay), we got to her through Gene, that works in the international students applications dept. We tested 4 sets of our prototypes on him, two different pyramids, one round set and one square puzzle set with four individual parts.Ian

 

Ian expressed big interest in all shapes in the beginning and tried to grab all different ones at once. But firstly, he grabbed pyramid with three layers, tried to stack them on top of each other, but didn’t do it in order. He placed the base one (the biggest one) in between the middle one and the knob (the smallest) one. It was interesting to see that kids love to stack, but for 3-year-olds, they don’t necessarily have a clear logic about which one is supposed to go on top of the other ones.

Then we encouraged Ian to keep playing with our other prototypes, he then went to play with the puzzled square set. He tried several times to put them together to be a square, which indicates that he knows about shapes. But during playing, one of the parts was put upside down, and he didn’t know that it has to be flipped back to form a square with the other three. So after he tried 3 times, he gave up on that and turned to the round set.

puzzels puzzels(2) rounds

 

He loved the round set, and managed to stack all the pieces following the size order (the biggest going to the bottom). And when we asked him about which one is his favorite, he said he likes the round one the most, because it looks like snowman to him. Very interesting! Kids in his age don’t really perceive the world in 3 dimensions, sometimes they see shapes and describe 3D shapes in 2D objects.  

At this point, he looked to be less interested in our prototypes, but when we encouraged him to play with one more time with the color taped one, he did but not in the way we expected. He didn’t follow our color hints, but instead he stacked four different parts on top of each other again. There wasn’t any size difference and he just tried to stack them up as many as he could.

That said, after play
testing we decided to continue with the round set instead of the pyramid.

 

Buying materials and using CNC for prototyping pieces

After play testing we went to the Prince Lumber and bought some pinewood and CNCed three round shapes (thanks to Illay for helping with 3D models!).

FullSizeRender 2 FullSizeRender 3

Processed with VSCOcam with c1 preset

We plan to put neon pixels strip inside of the round pieces, and cover it with veneer so kids can see the light coming through the wood when it’s powered. We will have a complete circuit inside of the base round and some change matured by both the middle and top pieces.

The current idea would be to introduce kids to different concepts of light: the background piece would light up when the middle piece is placed on top. We would either have a photocell or resistor acting as a switch to close the circuit.

The entire thing would also include Arduino to be able to program neopixel and to light (or change the color when necessary). The same would happen after placing the top piece on top: however, it would generate slightly different outcome (still figuring out what).

 

 

Physical Computing – Week #11 – Final project Process Part 2

This week in P-comp, I tried more materials creating our puzzle pieces in the laser cutter. We got our magnets and tried to place it on the matt board puzzle pieces. The puzzle shape and the magnet was not a big success. The material is way thick for this operation.

I met Ben light, in order to find what will be the best solution for creating the shapes that we are using. I got Xialong from 2nd year to help me with vector works to create our round and pyramid shape 3d objects if we will decide to do it with any of the machines that are in the shop, using wood.

Meanwhile we got the help from the international students office, to get play testers. We are meeting one of NYU workers 3 years old kid to play with our objects tomorrow:

thumb_P1050726_1024 thumb_P1050727_1024

This is the shapes in Vectorworks…We might need some machines to cut our cubes sharp and straight.

Rest of the angles will be made on the sanding machine.

Screen Shot 2015-11-19 at 9.35.14 PM

 

Screen Shot 2015-11-20 at 1.18.02 AM

Physical Computing – Week #10 – Final project Process Part 1

Last week, we did our first user testing for our idea, we presented our cardboard prototypes and got a few points to check back and research. As our prototypes were small, we need to make it bigger, but fit a child’s hand. The direction that we lead the user to play with our game need to be visible in terms of colors or shapes on the toy. The way that the game will be built and get to visible outcome – help them understand how to solve problems. While Ruta did a great research, and Xiwei on the BOM and system diagram,  I tried to think of a good way to convey the idea of building the 3d prototype. We got to a conclusion that stacking is not enough for our toy, and decided to split our first “floor” to four pieces. Them our next level can react to first one, and third level can change one of the elements in the second level.

I started with the sketching in illustrator the pieces that eventually repeat itself:

Piece_b

 

 

 

 

 

 

 

 

 

This is the result after laser cutting two pieces. I wasn’t calculating the distance that the material will take in order to close the shape, so we had to cut the few walls in order to see the pieces connect nicely.

2015-11-10-13.54.47-768x10242015-11-10-14.43.49-1024x768

We eventually completed the shape by  cutting the reflected pieces:

Piece_flip

image-768x1024 image-2-768x1024 image-1-768x1024

We thought about trying to get an invisible connections of the pieces by magnets, and consulted with Sam and Joe from 2nd year about it, and we got some magnets coming. I see the toy made out of wood, and trying to get my fabrication homework getting to know better all the machines we have to check what will be the best way to make it happen.

Physical Computing – Week #9 – Final project Planning

In the last week, after sharing my thoughts on the final P-comp project, I teamed up with Xiwei and Ruta from my class. We spend a lot of this week researching and defining our project goal and usage. We made kind of a general thought that our product is a toy from kids to teach them the idea of electronics, but it the most simplest way to understand. In order to do that, we had a few back and forth emails with our teacher Benedetta, to try and get as much information about what’s available today regarding toys and electronics for young ages, and how we can make object the will be different.

As far as researching, most of insights from parents, sellers in toy stores and phycologists, we need to use shape, color and size in order to catch children’s attention, specifically, bold and big shapes, contrast colors and size that can fit a child hand, but not too big or heavy.

We out our first thought to paper:

IMG_8407IMG_1564

Our first attempt to put this thought into reality, was the basic shapes that can help leading the child for a simple interaction – Put together a complete toy figuring the different sizes. Our electronic feature will be simple as sound, light and spin. Each shape will demonstrate a feature that most likely used by it’s shape: fan to a circle, speaker to square, pyramid to light (yes, light can be any shape!).

I had some thought of reference for the design, but it might be too complex for out target audience, aged 2-4, but I might use colors reference, which I think make a good combinations:

 

 

 

charlie-02-product-image HF24-product-01 PRES-product-Fu

As for out assignments for this week, Ruta created this time table, for this to be one of her favorite stuff- organizing time 🙂

OUR BRIEF

We’re building an educational toy for kids. The goal of the toy is to teach kids electronics in the appealing hands-on way.

While doing the market research, we noticed that most of the products are aimed towards 8 year old kids and older and there’s not a lot of variety to a really small ones. Our goal is to try and create something for 3 year olds and maybe a bit younger or older.

All the education material says that at this age kids start recognizing patterns among objects and putting them together. They start organizing objects based on the size, shape and color.

Playing with such a small age kids, we cannot teach electronics in the same way as we would teach 8 year olds (explain about different components, etc.), so our main goal is to put electronics concepts in the back of their minds for the future.

BOM

As part pf the planning we had to plan Bill of Materials, we made a general one for now and we will narrow it this week.

PLAYTEST

We wanted to tryout objects in terms of size and shape, so we prepared this examples for interactions:

Screen Shot 2015-11-04 at 5.56.06 PM

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

And some visualizations:

Circle_01

Physical Computing – Week #8 – Final project thoughts

The final project made me go back to look for inspirations. The midterm project has brought up a lot of options that opened for future projects, but was too complicated for a short time. I love the fact that an object can be independent, I would consider it also as sustainable, and i’m trying to look for those elements, or behaviors in this direction.

Work by Yuri Suzuki

Screen Shot 2015-10-28 at 6.18.58 PM

 

 

 

 

 

 

 

 

I’m also interested in looking into machines that can be used in live concerts, which is the most common activity that i’m doing in the city since I arrived here, and it’s also something that I used to do back in Tel-Aviv.

Another elements that I’d love to research is distances in space. After this Tuesday applications speaker (-name-) I was a little bit off of the subject, but I was wondering how I can visualize distances in outer space, from earth to the moon? when someone say “I love you to the moon and back” – how much is it?

I would love to check also the option of making products for children, something that can react and teach them something, even one word, or a color..something to make my nieces happy..

GilbertAtomicOpentrimmed

While researching I found out about paper.js which is a lot of visual examples using javaSvcript. it might be nice to incorporate this examples in a music video, or maybe live music video, with a pad made out of buttons, that maybe you can record your own music video using your own effects..