Last week I ordered a RFID shield for Arduino via Marc Boon (who also organizes regular workshops on RFID here in the Netherlands). Friday evening I soldered it together, using the easy to follow instructions Marc sent with the kit.

The ready RFID shield mounted on to the Arduino.
Currently I am troubleshooting the RFIDuino. It seems to start up all right, as it nicely announces itself when connected to the serial monitor in the Arduino software. Green LED lights up as well, meaning it is scanning for RFID tags in the neighbourhood. However it does not see any, when I put a RFID tag on the antenna. Perhaps something wrong with the antenna. Or it may be a power issue (USB port not delivering enough power to the board), however that seems unlikely because the active part of the RFIDuino is working fine.
In my last posting I wrote about a working prototype of a Wiimote Whiteboard. Yesterday the projector I bought arrived, so I could now test drive the Wiimote Whiteboard set up fully.
Using a projector has the advantage that the projected screen is a lot bigger than the laptop: this makes the relative size of the IR light dot smaller, and therefore the general functioning more sensitive.
Also I used two Wiimotes as IR cameras, and positioned them to both sides of the projected screen. I used two so that whenever I am in front of the screen at least one camera can see me.
Technorati Tags: wiimote, johnnychunglee, uweschmidt, infrared, smartboard
Ever since I saw Johnny Chung Lee's videos of what you can do with a Wii remote control for the first time in March 2008, I wanted to try and built a smartboard (i.e. interactive whiteboard) with a Wiimote. I didn't really get around to it, but this weekend I finally started experimenting. Got myself some infrared light emitting diodes, and grabbed the Wiimotes from the Wii console in the living room.
Johnny Lee demonstrating the Wiimote based smartboard
Johnny Chung Lee created the software to be able to connect the Wiimote to your laptop via Bluetooth, but that software is Windows only. I found a suitable Mac-compatible version on the website of Uwe Schmidt, and that installed without a hitch.
The Wiimote has an infrared camera at the front and is able to see up to 4 moving infrared objects at the same time. But to use it you need an infrared lightsource, a light pen. Using an IR LED (of unknown type), a resistor and a momentary switch I created a prototype set-up on a breadboard. In the video below you can see that the LED is not very bright, and the angle of the light it projects not very wide. This means the Wiimote may have some difficulty spotting it at certain angles.
Using my breadboard set-up as a light pen (more like a light brick ;) ) I already had a proof of concept, placing the Wiimote camera near my laptop.

The 'light pen' in its most basic form on a breadboard
Working prototype as proof of concept. See the mouse pointer move on the screen.
The next step was checking if I could use it at some distance as well. Putting the Wiimote (and then 2) at one end of the home office, and then use the light pen on the far wall (the green wall in the pics) worked nicely, both with 1 and 2 Wiimotes.

Using two Wiimotes as cameras side by side

Both cameras showing a single IR dot, slightly different positioned.
I have a feeling that my IR LEDs aren't the right ones to use in this case, so I ordered some of the type that is mentioned everywhere as the most suitable LED to use (higher power, wider angle of light, makes do with 1 penlight battery), the Vishay TSAL6400.
Next steps for this little project are:
a) experiment with different positions of the Wiimote camera
b) buying myself a projector (I need one anyway), so I can actually project my computerscreen on a surface,
c) testing the basic set-up using the Vishay LEDs
d) make a usable pen or pointing device, and then make a few more (for multi-touch experiments)
e) make a little stand for the Wiimote
f) get an additional Wiimote if everything works
Hopefully I will then have a quick and cheap smartboard solution I can take with me everywhere I go to present. After all, if a projector is already in place, all you need to bring is the IR pen and a Wii remote.
Technorati Tags: wiimote, johnnychunglee, uweschmidt, infrared, smartboard
Technorati Tags: fablab, community, mindmeister
My main goal to start with was to get my Arduino board to send data to Processing. This way you can build applications around data that is coming from the Arduino board, or have apps send data to the Arduino.
Basically what you do is load the Arduino with a Fermata script that continuously reads/writes the Arduino's digital and analog in/outputs. Then in Processing you actually create your script (which you otherwise would create in the Arduino software tool).
First you need to make sure that the right libraries are available to both Arduino and Processing. Good instructions for this are on the Arduino website.
With the Arduino board I created a simple circuit with a temperature sensitive resistor connected to an analog input, so that with changing temperature the reading of that temperature would change.
I loaded the Arduino board with the Simple_Analog_Firmata script (the other Analog_Firmata I could not get to work properly yet). Simple_Analog_Firmata is part of the Library_Firmata library, and should be available under Open, Examples.
Then in Processing I loaded arduino_input from Libraries, Arduino, Examples.
The example script reads all digital and analog input ports of the Arduino, but I only needed the analog one that was connected to the thermistor. So I simplified the setup() routine by deleting the initialisation for the 13 digital inputs, and simplified the draw() routine to:
void draw() {
background(off);
stroke(on);
fill(on);
ellipse(235, 140, (arduino.analogRead(2)-300), 20);
}
This little statement draws an ellipse with the value from analog port 2 on the Arduino as the horizontal radius. I substracted 300 from the Arduino reading, as that brought the value within a range that was easy to draw. I kept the vertical radius constant, so I could see a vertical line even when there was no reading from the Arduino. Then I ran the Processing script.
Now when I touched the thermistor (causing its temperature to rise, and its value to fall) the ellipse's horizontal radius became smaller. How pleased can you be with a small blue ellipse on your screen? Very! :)

Screenshot of the ellipse

At higher temperature the ellipse becomes smaller
Technorati Tags: arduino, processing
I have decided to create a new blog next to my Interdependent Thoughts, to write about Transient Technology, the Internet of Things, Mobile Applications, and Personal Production. In general these topics I think are fine to cover in my regular blog. However, I am now also experimenting with electronics, internet aware objects and personal production in a FabLab. Any reports on those experiments, sharing designs etc., don't fit well in my main blog I think. For that purpose I've created this side blog.
The title speaks for itself: Interdependent Things
Because interdependent these things truly are. They connect to the internet or to each other, or the way these things get created is the result of different people contributing and building different parts. It is all about the digital world nestling on a more basic level in our physical world. The world of bits is becoming an embedded part of the world of atoms.
The internet of things, increases the role of physical objects as social objects enormously, because it adds heaps of context that can serve relationships. Physical objects always have been social objects, but only in their immediate physical context. A social object is an enabler for human interaction and to form relationships around. Human networks grow, interact, change, take on meaning, through social objects. They can be the (temporary) subject of a conversation, relationships and group forming, and transactions. 
Some 'internetted' things in our household: Nabaztag, Chumby, Arduino board, Tikitag RFID reader.
Making physical objects internet-aware creates a slew of possible new uses for it as social objects.
Think of aspects like:
Where has the object been, where is it now, where is it going?
Who has owned this object, who owns it now?
Where can you get it, how much is it?
What do people think about it?
Who is near the object now?
Who has handled the object?
What does it notice in its environment?
What can this object be connected to, part of?
What is it currently connected to or part of?
What parts does this object consist of?
What materials is it made of, what other uses have these materials?
What does it take to produce it, what are alternatives?
How can I reuse this object, where do I dispose of it?
Can you create/copy this object yourself?
What uses does this object have, what uses have people come up with?
Where can I use it?
How does it work?
Who designed or manufactured it, what else did they design or manufacture?
What are its physical attributes?
Is this object useful today, will I need it? (think connecting your umbrella to the weather forecast for today)
Why did the object change hands?
How does it relate to other objects?
What other objects did it interact with and where?
What other objects did it come in contact and where?
What does the object look/feel like, in different settings, colors etc?
What does the object look/feel like when used in different ways?
What other stuff do people that use this object use?
And if you add more sensors or actuators to a product (object hacks so to speak), the list grows accordingly.
My explorations into FabLab and transient technology are meant as experimenting around this internet of things.
Technorati Tags: internetofthings, socialobjects, nabaztag, arduino, tikitag, chumby
After the workshop last week Friday on experimenting with Lego Mindstorms and Arduino open source hardware, I returned to the ProtoSpace FabLab in Utrecht today. This time around it was all about learning to work with the machines the FabLab is equipped with: a laser cutter, a vinyl cutter, a milling machine and a full colour 3D printer.
The impressive bit of FabLab is not the fact that the type of machines it offers exist. The impressive part is that you can get these machines to do your bidding by feeding it things as simple as PDF files. You create your model or drawing and then basically hit the print button, select 'laser cutter' instead of your regular ink jet printer, and watch the machine get to work.
We played with the 3D full colour printer, which is very impressive.
In the 5 minute video below I documented the whole process. From the example object, to making 7 smaller copies of it. 3D printing is time consuming, but you can do amazing things with it.
Siert and I created a card board casing for Arduino boards to prevent it from short-circuiting because of the surface it is lying on. For the first version I simply drew a first sketch in Neooffice (the Mac version of Open Office), in a text document. I then imported that text document as PDF into Corel Draw on one of the PCs in the FabLab and hit the print button. The lasercutter cut a piece of card board according to my sketch, which assembled resulted in the first version of our Arduino holder.

Version 1.0 of Arduino board holder
Then Sierts education as an engineer kicked in and he adapted the design into version 2.0. Again hitting Print resulted in a handful of pieces of cardboard coming out of the lasercutter that fitted snugly together. Who would have guessed I could be so pleased with a few bits of card board?

Version 2.0 of the Arduino holder
The video below shows another run with the laser cutter for a different item (part of a 3D game board)
Last week as well as today I made a point of showing the other participants how easy it is to share pictures and video of what you are doing while you are doing it. To help lower the threshold for them to start sharing their FabLab work as well.
Technorati Tags: protospace, fablab, utrecht, lasercutter, 3dprinting, learningbyplaying
When I attended the Spimes workshop at SHiFT08, we used a recipe to brainstorm spime applications.
This was the 5 point recipe:
1) Choose the spime's sensors for its interaction (electromagnetic, mechanical, chemical, social sensors etc.)
2) Choose the level of spime data aggregation for your application (loca, global, non-geographic)
3) Choose a point in the timeline of technological development (now, at some specific point in the future)
4) Design machine to machine interaction (reliability, redundancy, systems needed etc.)
5) Design machine to human interaction (what is 'friending', information display, social objects)
Thinking this weekend on how to brainstorm interesting projects for my Arduino prototyping kit or my Lego Mindstorms kit, I decided to extend the recipe by a 6th point: choosing your actuators. Or perhaps it can replace the 3rd point, as in experimenting with Arduino and the like, you are using available technology by definition.
So my Arduino recipe becomes:
1) Choose the project's sensors for its interaction (electromagnetic, mechanical, chemical, social sensors etc.)
2) Choose the level of data aggregation for your application (loca, global, non-geographic)
3) Choose the project's actuators for its interaction (servo's, switches, displays, sounds, lights etc.)
4) Design machine to machine interaction (reliability, redundancy, systems needed etc.)
5) Design machine to human interaction (what is 'friending', information display, social objects)
Playing with my Arduino kit
Transient Technology
For about 18 months now I've been looking into transient technologies. Digital applications are breaking the boundaries of our laptop screens, and the internet of things, as well as internet connected peripheral devices, both sensors and actuators, are moving into our physical surroundings. This means that it is now no longer enough for me to have a sense of what is happening in software development circles to see what kind of new apps are coming, and that I also feel the need to look into hardware more. Open source hardware like Arduino, sensor based space and time aware applications (Spimes), RFID tech, Chumby and Nabaztag etc. That is why I proposed an Arduino workshop to Reboot last June, even though I did not know much about it myself. Alexandra and Nick of Tinker.it in London stepped up and made it happen, but in the end I did not get to attend my 'own' workshop (except for opening it and closing it), because I was speaking at the same time in the hall next door. 
Workshop at ProtoSpace
But today I finally attended an Arduino workshop. It's been a long time since I tinkered with electronics. About 18 years I guess, but I assume I still have a soldering iron in the attic. The workshop was organized by ProtoSpace, one of the FabLabs in the Netherlands. My brother in law is the lab manager there, and he attended the Arduino workshop at Reboot I mentioned. He is now spreading that knowledge again.
In the morning of the day we covered a basic introduction about FabLab and ProtoSpace, and talked about Phidgets (physical widgets) and Lego Mindstorms, before getting to Arduino. The entire afternoon was then spend on playing with Arduino.
Play
I have been used to playing with software tools for so long I really rediscovered the fun of playing with tangible stuff again. A lot of old knowledge of electronics resurfaced. The physics of it hasn't changed of course, but the threshold to make programmable stuff has been seriously lowered, as has the cost of acquiring sensors and actuators that enable you to do interesting stuff.
Playing with Lego Mindstorms:
The trajectory the Mindstorms robot has to follow
Designing the trajectory before programming
Programming the robot via USB
Video of the finished experiment
Experimenting with Arduino open source hardware:
FabLab
Next week Friday I will return to ProtoSpace for a workshop on how to use the different machines that make up the FabLab there: a lasercutter, a milling machine, a vinyl cutter, and a full color 3D printer. All programmable of course. Already looking forward to it.
Lasercutting an apple during lunch:
3D printing examples lying around:
Technorati Tags: fablab, protospace, arduino, utrecht, legomindstorms, reboot10, shift08



