27 Sep 2010

Prototyping a Networked Family

4 Comments Design, Education, Examples, Physical Computing, project, Social Media, Technology

Being a first time dad has been the most amazing experience of my life. Watching my daughter grow, and witnessing her constant exploration of the world around her has been extraordinary. Unfortunately when Mondays roll around, it is time for me and many other parents to drop off our kids at the babysitter.  The amount of time we get to interact with each other is very minimal, and pretty sad.

In a world where we all feel so “connected”, the people that matter most have no method of remotely interacting with us.  My 1 1/2 year has no twitter, or Facebook account to update.  She doesn’t check into fourSquare every time we go to grandma’s house. Even with mobile phones and Skype video conferencing, there is no direct method of me interacting with her without the assistance and supervision of an adult. So basically, we could only interact with each other when another adult has both the time and is willing to put in the effort to set up an environment for us to communicate.

This got me thinking “how can my daughter and I interact during my work hours?”  The first thing I did was identify the main characteristics of my daughter, back when I first started working on this project:

  • My daughter was one year old.
  • Her vocal communication ability was in the preliminary stages of development
  • Her motor skills where still not fully developed, so complex tasks like using a keyboard or mouse where not possible.
  • She needs adult assistance to use our everyday communication tools that available to us (moble and land-line phones, computers, etc).

At this young age, children are extremely dependent on their parents and other adults for just about everything.  However, there are also several activities that come as naturally as breathing and eating to a child. Two of those activities that i observed where exploration and play, many times triggered by a common catalyst of curiosity.

Children gradually explore their environment and toys and interacted with them, mastering the new skills that they learn along the way. Quickly they are able to identify all sorts of toy input locations which triggered various types of output, such as audio and visual feedback.
Read more

Popularity: 6% [?]

05 May 2010

Multi-Master Arduino Setup using i2c

1 Comment Examples, Physical Computing, programing

I working on a project, I was faced with a challenge of creating a serial bus via multiple Arduino which could communicate with each other. My first intuition, after a little push in the right direction by Tom Igoe, was to create a Master/Slave setup where a Master micro-controller polls all the slave micro-controllers, and dispatches an action. Although this answered one of my question, polling didn’t allow for complete 2-way communication. It tuned out that the answer was mainly an oversight of my interpretation of the Wire documentation.

From Arduino Site:

Wire.begin()
Wire.begin(address)
====
Description
Initiate the Wire library and join the I2C bus as a master or slave.
====
Parameters
address: the 7-bit slave address (optional); if not specified, join the bus as a master.
====
Returns
none

I interpreted this explanation as Wire.begin(SomeAddress) would default as a slave, and not be allowed to be a Master. Being as curious, and stubborn as I typically am, i decided to forget what I thought I was being told, and instead try to break the library, so I could then see where it broke, and attempt to adjust it in a way that better suited my need. Surprise, surprise, it worked, and not need to change anything at all! The address parameter is optional and defaults as a master role if no address is set. However if you do plan on sending messages to the master, you could switch speaker and listener roles via a slaves Wire.onReceive(handler) rather then polling using onRequest(handler). Read more

Popularity: 8% [?]

20 Mar 2010

Initial Test of my Expandable/Interchangeable Circuit

1 Comment Examples, Physical Computing, programing

So what do i mean by expandable? Basically the idea is that I would like the cheapest possible way to be able to create a circuit that I could chain sub circuits too (those are the 2 sub circuits in the video). After lots of trial and error, I was able to put on my crafty hat to make these darn electrons work the way I wanted them too.

In the accompanying video, I give a quick run through of how the circuit works. Essentially, the main goal that I was able to achieve was that I would be able to clone one the inner circuits and add it right in the middle. All I would need to do is connect them to the 2 digital pins, 2 analog pins, one ground, and one 5V series, and it should work without any additional rewiring (although the idea is to make the sub circuits slightly different in their interaction, yet the same in their communication), asides from programing the EEPROM (I used the 24LC256 from SparkFun for $1.95) to contain a unique identifier. The secret to success…diodes..lots of them.

I based my code on a great snippet of code to help me get the I2C communication working on my EEPROMs. I also checked out a helpful tutorial which also helped me out substantially.

One quick tip: Keep in mind that Arduino has an EEPROM mounted on the chip. I intially made the silly mistake of using the EEPROM code that is found on the Arduino tutorial page. This code was reading and writing data on my Arduino’s board mounted EEPROM, which i quickly realized once I realized that the unique data I was writing on each external EEPROM chip did not seem to be working properly.

So why go through all this extra effort? Read more

Popularity: 3% [?]

26 Feb 2010

Update Twitter Status w/ Arduino & Processing

8 Comments Examples, Physical Computing, programing

The next phase of my project was to send the serial communication from my Arduino, over to Processing, which then would formulate a status update based on the button you pressed and send it over to Twitter. I’ve worked with several Twitter API’s in the past, so I decided to go with Twitter4J, the “J” in this case stands for Java, which works perfectly with Processing.

Bellow is an updated version of my previous Arduino coding. I plan on switching the status updating to the Processing side, instead of the Arduino side. If this where to be a real product, it would be easier to download a software update, then to have to reprogram the toy itself. I will add that to my todo list, once i get all the major Read more

Popularity: 12% [?]

24 Feb 2010

Arduino: Print a Single Serial Message per Button Press

No Comments Examples, Physical Computing, programing

So I’ve been working on a new project and have run into a bit of an issue. I plan to send a serial message over to Processing, however it very important that I don’t send multiple values stating the same button press. Since Arduino is in a constant loop state, when i press a button using something like:
Read more

Popularity: 8% [?]

09 Feb 2010

DIY Simon with Arduino w/ Source and Diagram

No Comments Examples, Physical Computing, project


So i finally had time to tinker around with this Simon Sez project again. Turns out there wasn’t an issue after all with my circuits, it was an issue in my code. I also did some house keeping on the code, and created a nice little diagram using Fritzing, an awesome app that was recommend to our class Read more

Popularity: 3% [?]

Get Adobe Flash playerPlugin by wpburn.com wordpress themes