Z Looking Glass: Project SmartSurfaces

A insider's observation of Project SmartSurface

Technology isn’t always expensive: Johnny Lee demos Wii Remote hacks December 19, 2009

Filed under: Uncategorized — zilinzen @ 1:36 pm

Using Wii-remote to build a interactive surface with only $5 that normally would cost more than $2,000.

The idea of using what we have around us is genius and enlightening.


Sixth Sense: a reverse thinking of project smartsurface. A smartsurface is not the only way

Filed under: Uncategorized — zilinzen @ 1:34 pm

From TED talk. Amazingly, we can see how much difference when we approach the problem with a completely different way. And that’s smart.


Pololu Motor Controllers (Relay) for digital control on DC motors with Arduino Mega.

Filed under: Uncategorized — zilinzen @ 12:44 pm

Dual VNH2SP30 Motor Driver Carrier MD03A and Pololu High-Power Motor Driver 18v15 from Pololu Robotics and Electronic are the motor relay we are going to use to control the DC motors that drive our smartsurface.

Dual VNH2SP30 Motor Driver Carrier MD03A

Pololu High-Power Motor Driver 18v15

Basically, a motor controller acts like a “switch” that can be controlled by computers or other logic circuits. We planed to connect these motor controller to Arduino Mega. Therefore, we can controller the orientation and speed of the motor by regulating the directions and amount of current going through the motors. So far, there are no existing examples of these two types of controllers being used with Arduino platform. So the safest way, which is also the most time-consuming way, is going through pages of datasheet and searching posts on Pololu’s forum for similar projects. From my past experience, open source community is always a faster route.

The Dual VNH2SP30 Motor Driver Carrier MD03A we bought can control two motors. Besides functions like controlling motor orientation and speed, VNH2 version also includes current sensing and can operate a higher PWM frequency (20 KHz) than its VNH3 counterpart. Here is the general idea of connections I got from reading the datasheet so far: power supply/batteries are connected to VIN(+) and GND (-) on the right side of the controller as shown below. OUT 1A, 1B are the output currents that go into two poles of a DC motor. The rest is as easy as we learned from our high school physics class: by controlling the polarization between motor’s two poles, we can make the motor run clockwise (CW) or counter-clockwise (CCW). Pins on the left side of the board is for micro-controllers such as Arduino. Usually professionals call it “logic side”. 1IN_A 1IN_B pins are digital pins that outputs either High (1) or Low (0) that changes the polarity of OUT 1A and OUT 1B. Speed of the motor is governed by the 1PWM pin that regulates output voltage with duty cycles. For more information, please see the article from Arduino Reference page about Pulse Wave Modulation (PWM). +5V(IN) on the logic side is the power input from micro-controllers, considering there are several tiny LEDs on the board, even though I’m not sure what they are supposed to do because nothing was mentioned about LED in the datasheet. CS and DIAG/EN are pins for the higher level controls like current sensing and monitoring mentioned before.

Dual VNH2SP30 Pins Configurations

For Pololu High-Power Motor Driver 18v15, the electronic configuration is quite similar to that of Dual VNH2SP30 Motor Driver Carrier MD03A. The only difference is that Pololu High-Power Motor Driver 18v15 could only control one motor, as you can see from the single pair of OUTA OUTB motor output pins on the left shown in the pic below.

Pololu High-Power Motor Driver 18v15 Pins Configurations


Using WiShield, WiServer for Complex Data Processing & Field Control November 5, 2009

Filed under: Uncategorized — zilinzen @ 3:37 pm

Since an Arduino board only has processing memory up to 32KB, using it for computing “smart & emotional” interactions is beyond the reach of such tiny board. A WiShield wirelessly connected to a WiServer, which can be held on a laptop, could be a better alternative because a server can process large and complex data and send only tiny amount of data containing commands for mechanical devices to the Arduino board via wireless connections. People from AsyncLab successfully demonstrated using WiServer to control a seven-segment display from an iPod touch. Because there are copious computing resource, a WiServer can also process and control many Arduino boards at the same time, which means controlling a field of smart surfaces. The only obstacle is that we are not sure if we can have wireless connection at the gallery where we are going to show our surface.

Using WiServer to Control a Seven Segment Display


A “Tweeting” Arduino

Filed under: Uncategorized — zilinzen @ 3:19 pm

Participation and “viralbility” are the key reasons why we investigate possible ways to connect our smart surface to online social media. With Twitter API and existing Twitter library available in open source like Arduino Playground, making an Arduino board talk to Twitter is possible and has already done before. A employee at SparkFun Electronics built a “Tweeting Kegerator” that tells the temperature and how many beer is left inside a Kegerator on Twitter, with an Arduino Ethernet shield, 100 pound force sensor and a temperature sensor. Taking advantage of the powerful social network platform certainly make this monitoring system very cheap and instantly available to people of interest. Comparing the time and cost invested, it’s definitely better than creating a separate software interface only for one specific purpose. Moreover, the powerful infrastructure of Twitter can possibly push the interaction part of our smart surface to a whole new level.

Picture 1

SparkFun Electronics Kegerator on Twitter: an inexpensive Keg monitoring system

While folks at SparkFun enjoy following their Kegerator on twitter, people at Hacklab.to pushed the Arduino-Twitter concept even further: they actually made a toilet that will post to twitter with every flush. It’s quite ridiculous in a way, yet it indeed makes a joke viral over the Internet, which is very similar to what we want to achieve with our smart surface.

hacklab.TOilet - a twitter-enabled toilet at hacklab.to

Picture 2

hacklab.TOilet live on Twitter with 800 followers


The Bubble Face November 3, 2009

Filed under: Uncategorized — zilinzen @ 2:10 pm

We are planning to use LED matrix to display the message and face of our smartsurface since a LED matrix allows large variety of programmable expressions. One possible design is the “Bubble Face”: combining message and face all together, dynamically switch between each other. The inspiration comes from a Chinese online short-film series called “Kuang-Kuang-Kuang”. It blends the traditional speech bubble and face together with a big-head design, which is quite neat and friendly.

Picture 3

The Bubble Face: Blending the face and speech together


Face Tracking with CMUcam3

Filed under: Uncategorized — zilinzen @ 1:52 pm

The first step to achieve intelligent interaction between our smart surface and people is to track motions of a human and being able to “focus” on one specific person in order to continue further interactions. This is the solution to one of the problem identified in “Reverse Brainstorm” session. The problem was the surface is not able to distinguish a user from a crowd. Ultrasonic and PIR sensors were the original candidates for this purpose. However, ultrasonic motion sensor is only for calculating distance between an object and itself while a PIR sensor can only detect motion from its surrounding. None of them can serve tracking purpose. A possible solution is using CMUcam, a camera module that can read and process visual information. A simple roller with a CMUcam controlled via an Arduino board has been built before for identifying objects by processing signals of different colors captured by CMUcam. (http://thisismyrobot.blogspot.com/search/label/robot%3A cmu-blue)

However, in order to make our surface smart, being able to tell the difference between a human and a ball on the ground is another problem we need to figure out. Fortunately, a lightweight yet fairly sophisticated facial detection program for CMUcam3 called Viola Jones Face Detector has already been developed. CMUcam3 is the latest of its kind and most importantly, it’s also open-source. A CMUcam3 costs $239, which is within our financial capability for our final $2,500 budget.

Viola-Jones sample project