Designing the Hardware
Requirements weren’t really constraining.
At first, there were two sides to consider:
- computer side
- user/device side
Indeed, the computer has to be able to receive data from a wireless device. Let’s check the device at first, the computer side will come to our mind more naturally.
At first, I thought about the Arduino Fio.
Indeed, it is intended for wireless applications, from its wireless Xbee-module compliant headers to its feature about external power supply, I found my solution. You can find more explanations different boards available in Arduino’s big family in my book.
Here is a view of this board:
Arduino Fio’s front
It even provides an on/off switch and is able to charge an external power supply via USB which is a nice feature for our digital art installation. Indeed, people on the place can put devices in charge each day, for instance.
On this second picture, we can see at the top 2 headers fitting perfectly the wireless modules I’ll describe further.
Arduino Fio’s back
Sending data wirelessly without consuming too much current concept brought to my mind the pure IEEE 802.15.4 standard, I mean: ZigBee specification. It is a suite of specifications designed for high-level communication protocols for personal area networks (PAN). By using this specification, it is quite easy to build low-powered devices able to send/receive data in a quite local range until even 30 or 40 meters.
I chose the module XBee 1mW Trace Antenna Series 1.
The idea was to use an XBee without external antenna for the device and one with the antenna on the computer side.
Here are both modules in picture:
XBee 1mW Series 1 with and without external antenna
This particular wireless module is able to send/receive data until 100 meters. It is very enough for our project because the data flows from the device to the computer where the digital piece runs and we have to keep the computer near from the screen because of video projection requirements. It is able to send data at a 250kbps maximum data rate. Again, this is very enough.
We can see on the first Arduino Fio picture the white connector on the top. It fits perfectly usual Polymer Lithium-Or Batteries. Here is the battery I chose:
Polymer Lithium-Or Battery
As I wrote before, the battery charge can be handled via the Arduino Fio connected to a computer, for instance. Easy design.
At last, on the device side I needed an accelerometer able to convert movements data into message for Arduino Fio itself. I took the ADXL345 which I already used for some projects and here is its face :
It is quite easy to wire it to any micro-controller. We can see the small axis references at the bottom: X, Y and Z (Z is in our direction from the device).
On the computer side, I didn’t want to use an Arduino Fio. Indeed, I’m more inside minimal design ways so why to use a full Arduino board if I only have to receive data and pass them to the program running ? This is why I chose to buy the XBee Explorer small board. This small board is an interface between serial pins of the XBee boards and the USB of our computer. It can be used both to program XBee boards but also to send/receive data from our computer using the XBee wireless feature.
Here is this board
Here is now the big schematic showing both parts:
- device part on the left,
- computer part on the right.
The Arduino Fio requires another component for programming it: an FTDI Basic module can do that for cheap. Here is this module:
Here are the whole list of component I needed to design the hardware part of the project
Now, let’s check how I made this small architecture around wireless modules and how I used Max6 especially for all test & prototyping.