Introduction: DIY Wireless Fun Presenter
Presenting a talk from your laptop? You can buy a wireless mouse to click through your powerpoint. But you could make something more creative and fun.
For about 20 euro's of electronics, you can make a wireless presenter yourself in whatever you choose. And -be different!- present not in powerpoint everybody uses, but in your own DIY Processing sketch!
The public will be intrigued by your presenter, amazed by your sketch, and it is even more fun to present.
For the wireless part of my presenter I have chosen a toy piano, this has the advantage that when the public is bored with the accelerated expansion of the universe talk, I can play a simple tune on the piano to keep them awake!
The presenter is wireless (using a RF12 transceiver, see later on) and will connect to a bare bones arduino like device, either inside an airplane toy or a shaker (with a so called jeenode).
This receiver also has to be fun.So I have put this small chip in a free shaker of pink transparent plastic. Since there are plenty of free pins left, I have added some LED's, which flash a bit when a signal is received. It is important that is seems to be alive...
(Why the two kinds of receivers? I bought a cheap UART-USB converter at dealextreme.com, cheap but...only for WINDOWS. So to do the talk from my MACOS side I used the shaker with the jeenode, for which the UART interface has drivers for both XP and MACOS.) For 4dollars you can buy UART-USB converters at dealextreme.com, see later for link, only be careful and check the drivers indicated.)
About the signals, I am NOT sending numbers, like 1,2,3,4 for going on in the talk, or back, or to the beginning, or the end... No, I send nice words, like peace, love, friend and DIY! I know that the ASCII codes are numbers after all, but it just gives a human flavor....
I am not the person to believe that sending these words makes a better world, but it adds a flavour to technology.
Step 1: Difficult?
All the single steps are not too difficult.
The problem can be the variety of skills in the different levels. You have to be able to do some soldering, some programming, and some hacking and modifying, beside worrying about your talk.
Lucky you that you don't have to do the wireless RF12 library too! (It is complex!) This has been done by several people and is available at www.jeelabs.com. I provide my own version and ready made scripts in a following step.
Then there is your talk! Better not prepare this presenter and the lecture at the same time!
(In fact I started putting it together on the morning of my universe presentation (accelerated expansion of the universe for a group of seven years old...:-)....this was too late! )
And the last bit of software, the laptop sketch or Flash movie has to work smoothly, "better" than powerpoint! Do some good testing...
Step 2: Electronic Components
For the electronics you have a lot of options.
Basically you need two units with a chip (like two arduino's) and two RF12 (cheap wireless transceivers)
ATmega168 / Atmega328, www.farnell.com, or www.jeelabs.com, 5-6 euro's.
RF12, www.jeelabs.com , www.pollin.de, 5-6 euro's. (wireless transceiver chip)
one UART USB converter, dealextreme.com:
(this one has MACOS and Windows drivers)
Or more easy: two jeenodes
You can also use two jeenodes ( www.jeelabs.com ) I used only one, because the toy piano didn't have enough room for the jeenode.
The advantage of the jeenodes is that they come with a nice PCB with RF12. If you make your own PCB, you have to do more wiring to the RF12 (see picture 5 for an example).
A jeenode (the easy alternative to DIY Atmega):
http://jeelabs.com/products/jeenode, 18.50 euros, more expensive than an atmega328 and a RF12, but it saves you wiring and soldering the RF12, but still cheaper than an Arduino.
For the jeenode you need a USB - UART converter (also for programming the atmega on this board)
this is probably the unexpected expensive part, but you can reuse it. For the Arduino...this part is included on this board, and you need this printer cable to connect to the laptop. (if you know how you can use the UART-USB from dealextreme also for this connection, not difficult, just carefully check the connections RX TX VCC and GND and the voltage.)
If you choose the ATmega and RF12, you need 2 capacitors of 22pF and an oscillator 16MH.
and a bit of PCB, a chip holder.
You could do without the oscillator, but than you have to use a programmer to set the fuses after programming in the Arduino, or convert the script to AVR-gcc.
For the rest, some buttons, first I used simple push buttons, but then I found the illuminated orange things at www.sparkfun.com
Some LED's here and there, the resistors for the LED's, depending on the voltage you have chosen.
Step 3: Fun Components
Here are my toy piano, and for XP only the airplane (because of the UART-USB from www.dealextreme.com only had the XP driver) or the pink shaker with a jeenode (for both MACOS and Windows)
Other ideas for hiding chips and adding "smart" behaviour?
Why not use a teddy bear and a dinosaur toy! So whatever you fancy.....as long as you can put the electronics inside.
It can even be your dress!
There is a important design choice...make the smart things really visible, or just the opposite - invisible.
For invisible you can make soft buttons,
magnetic reeds (like my t-shirt)
or even use RFID, why not.....
for visible you add LED's, sound etc.
It seems inevitable that in the coming few years every object will be provided with chips. That is why it is so interesting to do these experiments already.
Step 4: Tools
you need the usual tools:
for electronics, soldering device, pincher, tweezer, wire, PCB...
for the toys, screw drivers, glue, drill, saw.
maybe a bit of paint here and there....
Step 5: Electronics
The main task: the Atmega328 (169) RF12 connection.
(This problem can be avoided if you are not confident:
Juts buy two jeenodes, wireless RF12 included and solder the components.)
So more adventurous: make two bare bones Arduino's, just using the ATmega328's, oscillators etc.
Making the bare bones Atmega: you can find this anywhere on the internet. (just the atmega328 or 168, two capacitors 22pF, and the oscillator of 16 Mhz. If you have an empty chip set the fuses right and the lockbits, add the bootloader and off you go.)
You can use an Arduino to program the chip, if you use the oscillator of 16 Mhz it will still work in the PCB setting, if you don't use an oscillator, than you have to set the fuses differently (be careful!). In the bare bones situation you need a programmer like AVR MKIISP
In case of the chip on a PCB, connect the RF12 (or RF12b) like this:
INT0 = arduino PIN2 : on RF12, oscillator side, 2 from top (see picture)
PB3 = arduino PIN 12
PB2 = arduino 10: on RF12 other side 1 from top
PB5 = arduino 13: on RF12 other side, 2 from top
PB3 = arduino 11: on RF12, other side 3 from top
Then on RF12 5 from top, other side, GND
on RF12 6 from top VCC (either 5 V fro RF12, or 3.3 for RF12B )
and the last on the RF12, the antenna a piece of wire around 8 cm, the antenna
The receiving side , my shaker, is the same thing.
The RF12 / Atmega connection. There are free PIN's left, so make something funny!
My toy piano runs at two batteries AAA, so in this case I could feed the Atmega on this 2.8 V.
Buttons of the toy piano.
I experimented adding the actions of sending to the piano buttons. But this was not easy (or impossible) the keyboard is driven from the toy piano chip, and the keys do not use a GND voltage, so either the atmega was disturbed, or the sounds were distorted, that is why I decided to add my own buttons.
The pictures show several of my own bare bones setup, and the jeenode. Of course if you have enough space you could use an Arduino too. (in fact for testing before building in, this is advisable!)
These are the transfer and the receive PINS. They can be found on the chip and on the converter, Also the jeenode uses these PINS to transfer the data. See picture for connections. Most of the times the RX TX have to be switched between the devices, that is what is for the sender TX is for the receiver RX.
Step 6: The Buttons of the Toy Piano
First I used boring buttons, then I found buttons with LED's inside at sparkfun.com:
(but there was no max voltage indicated...)
You can use four pins of the Atmega for four buttons.
So for programming the toy piano (see next steps for the scripts)
- RF12 code for sending
- basic button script
- four button LED's
- one middle LED
This mending was quite a job, for which I made another instructable:
In the end the worked like this: the LED off - the button is orange, LED on - the button becomes green!
Step 7: The Airplane
The receiver of the messages sent by the witeless toy piano.
WOrking with hardware, always be prepared fro problems. Here the first option was running the Atmega from the toy batteries. These small batteries were fine, but the power dropped quickly. Although the airplane noise was continued the chip didn´t have enough left.
But the UART/USB converter has a VCC pin )and GND of course' so I tapped in with a small resistor to protect the RF12B running at 3.3 V.
Like with LED´s, there is always the different voltage problem to take care of. You would like to run on as little as possible.
Then the last bit was putting it all in the interior of the plane. In the end nothing is visible of the electronics, only the USB wire sticking out!
Step 8: Software 1
There are two layers of software.
The easy thing is: www.jeelabs.com has a fine library for the RF12. This also works with a RF12 in combination with your ATmega328 chip, or Arduino, see pictures. Experiment with the example scripts....
I use a simplified version of this library (included in the xamples). In the arduino script just plain sending (and receiving) the words, "peace", "love", "friend" and "DIY", for four directions.
You have to incorporate the buttons in the sender.
In the receiving end, the receiving gives rise to LED effects (in the shaker), you can program what you like.
A link to the scripts I used:
In this zip three folders, one for sending, one for receiving, and an example for how to connect the serial data to a Processing Sketch, see next step.
Step 9: Software 2
The second layer of software is the presenting program in the laptop. First I used to do this in Flash. For this I used a socket in Flash and Serproxy. But easier, cheaper (free!) and so more fun is using Processing.
In Processing you can open a Serial Port, which listens immediately to your Atmega / Arduino / Jeenode.
Lot's of links which explain this, the best one for me was:
where they show how to use the serialEvent.
Best is to practice this Serial connections first, without the sender, receiver stuff. Connect an arduino which sends characters or words over Serial.
In the IDE of Processing, there are all the examples for loading an image, a sound, or video, that is all you need for a presentation. Of course you can add nice animations, like shifting the images, adding a bouncing ball, or make bubbles with text. This programming bit is what really sets you apart from a powerpoint user.
In the example script I have a ready made script with 5 images form this instructable, and five sounds, also 5 bits of explaining text. You can use the keyboard (arrows) too. This last trick is always necessary, because the batteries may run out of power during the talk, or otherwise. Always be prepared to have a working mode available for if your fancy stuff refuses to cooperate!
Step 10: Putting It All Together
So now you have a wireless fun presenter.
The presenter itself sends the signals, the receiver makes a bit of a performance and talks to the Processing sketch on the laptop, and the resulting images on the laptop are beamed in front of the audience!
In the future, i suppose, every object will have a chip and can perform. That is also why I like making these things, dreaming about the future, experimenting what the world will look like soon....
Oh yes, i nearly forgot: I really present with these things :-)