Blog has moved!

Leave a comment

Starting this term (2014b – summer term 2014) we have moved to our own new blog at

http://blog.medien.ifi.lmu.de/swh/
NewBlog

See you there!

(This blog will stay online for posts on past terms)

Brainstorming Techniques

1 Comment

In the beginning of our course we didn’t know what kind of game or toy we wanted to give a new meaning. The motto of the course was „Toys in an other context“. So the question was how to handle it.
For solving this issue there are a lot of good brainstorming techniques.

In some way brainstorming techniques are just a target-oriented way to find a good idea and to break through a deadlocked way of thinking. For good brainstorming you need to fulfill some conditions. It’s not just to sit down in a group in a closed room for about 60 minutes and the team will be bubbling over with ideas.

At fist the rules:

  1. Quality is better than Quantity

  2. Don’t rate the ideas

  3. It’s allowed to take an already established idea and modify it

  4. It is allowed to come up with something that might not yet be practical with the current level of technology.

That are the basics of brainstorming but there are a view things you will have to consider.

  • Have a mixed group with various backgrounds
    Most people prefer being in a group of people with the same background and the same thoughts. But for brainstorming it’s important to have various thoughts in every direction.

  • All members of the group have to be treated as equals
    Everybody has the same level of knowledge of the topic. Also there are no hierarchies.

  • Create a relaxed and stress-free atmosphere

  • Communication standards
    Actually it should be natural
    – to let the others finish speaking
    – not to attack the others verbal
    – to be friendly …

  • search for the right questions
    If you ask for A you will soon find everything about A, but is A really that what you was looking for?

  • Let the members sleep one night over it
    The brain will go on with brainstorming while we are sleeping. Now it’s important not to forget what you brainstormed at night ;-)

OK, these were the basics. But what should we do when we are deadlocked in our thinking? If we always think about the same ideas? If we are blocked in our thinking and acting?

Also there are a few simple tricks to break through your pattern of thoughts.

  • make a journey through time
    What would you do if you had this task 100 years ago, or 10 years….?

  • transport yourself to an other place
    Of course only in your thoughts. What would you think of it if you would be in China, or in Russia…?

  • Be someone else
    What would you think of it, if you were a woman/man? If you had a different Age? …

  • Role reversal
    What would you think of if you were Einstein/ the Queen / Obama / Spiderman / … ?

  • Make a location plan
    Think of where you are just now (A), and where you want to go (B).
    Which different ways are between A and B?
    Which barriers you will have to overcome?
    Write down the individual steps in the right order!

  • Make a Mind Map of your thoughts

  • Everything is possible
    What would you do if everything would be possible? If you would have a endless amount of Money? Nothing is off-limits!

  • What would your favorite brand do?
    Nike/Coca Cola/ Nivea/ …

  • Serendipity
    Think of a random word and bring it in the context of the challenge. For example open a lexicon and choose a random word.

  • From A to Z
    Find a Idea for every letter.

  • The Opposite

    What would you think would be the completely wrong way to handle the problem? What would nobody imagine? What is standard and what is the opposite?

I hope my short introduction will help the following members of the course to find really new ideas;-)

TOGEBEAR

Leave a comment

What is it?

The topic of the current sketching with hardware course were toys used in a uncommon situation. We designed a teddy bear which supports relationships over far distance. Couples which can’t be together in their daily life often miss their significant other. With TOGEBEAR it’s more easy to tell the beloved person that he or she is on your mind. You simply have to push a button and TOGEBEAR sends an email to your partner. Both have one and when the email arrives a blinking heart and the smell of the perfume signalizes the incoming email.

 

Idea

The toy we used was a teddy bear. At the beginning we thought about various toys but we always came bake to the traditional plush toy. The normal usage of a teddy is to cuddle it or to play role games. We liked the sweet look of the common teddy and tried to expand the possible features. TOGEBEAR is able to exude the smell of the loved person. Moreover the toy can send random emails over a button in the ear and signalizes incoming emails via a big blinking heart. We wanted to make something real special, so we didn’t buy a teddy bear, no, we made one right from the beginning out of 5 bags of wool. So no teddy will be like TOGEBEAR.

Concept

We wanted TOGEBEAR to involve all senses. In the final concept we decided to add a fragrance which sprays when you get an email from your partner. And a heart, which is held by the bear, that should make a light-signal. We created a step-by-step concept, which made it possible to see how fast the transformation of our ideas works. Referring to that we thought about more possible features, but in that short time it wasn’t possible to realize them all. The possible additional features were the favorite song of the couple played by TOGEBEAR, and also the possibility to send a voice mail to your partner.

How does it work/Problems?

  • to spray fragrance

At the beginning we had a lot of problems with this feature. First we thought we could simply press the button with a „servo“, but this wasn’t the solution. We then came to the idea that it would be easier to exchange the smell of an “AIRWICK” with our perfume. That was really difficult but after a some “smashed” ones we finally found the solution.

  • to send an mail

We just put an button in the ear of the bear and wrote a program that sends an random email to a previous named person.

  • blinking heart

We made a chain out of LED’s and connected it with an ARDUINO.

The most important thing: We solved every problem, even it was sometimes hard

Next Steps

I already mentioned the possible sound feature. No TOGEBEAR needs a connection via USB. In the future it would be nice to integrate BLUETOOTH.

Sketching with Hardware 2013

Leave a comment

And if you are even more interested, watch the extended summary (7 minutes) of this years annual Sketching with Hardware Seminar : http://y2u.be/Hrc92otFVqE

The “Real” Dropbox

Leave a comment

The Idea

The Real Dropbox is a interactive scanning device directly connected to the users dropbox account.
Initially the concept suggested further functionality such as implementing the ability to make phone calls using a skype account and a earphone.
The goal was to produce something out of an idea, that could indeed be useful to someone. Even if it was only ourselves.

Bildschirmfoto 2013-08-25 um 16.21.02

The original concept

The Implementation

Step 1: Hardware slaughter

The origin was an old multifunctional device from Hewlett-Packard. Our idea was to scan-only, so first of all we needed to get rid of the redundant features. By removing the print framework and keeping only the scanner, we were able to reduce the height of the whole box by multiple centimeters.

2013-08-06 09.51.53

Mess that ol’ thing up

After reaching this first semi-goal without killing the scan function, we went further to the next step: getting the scanner to communicate with the Arduino.

Step 2: Communication via Raspberry Pi

For the idea of automatically scanning and uploading the dropped document, we needed to achieve a well timed communication between all used components. The plan was to aggregate all the required electronic on the inside of the box to build a standalone device, which isn’t visibly connected with other computers. Because the space inside the box was limited, it was impossible to put bigger notebooks in it.
For that reason we decided to use a Raspberry Pi for the communication between scanner and dropbox API, what led us to our first major problem.

Problem #1

Based on a Linux distribution,  we weren’t able to find correct raspberry drivers for our scanner device. Without drivers, there was no chance to interact with the device.  After long research, we admitted our defeat and changed our plans.

Step 2: Communication via Rasperry Pi Windows Computer

After getting caught with this problem for several hours, we finally decided to use the good old-fashioned Windows computer. Required drivers could be found and test scans proved the functionality of both scanner and communication with the computer. Now that we established a connection between scanner and computer, we could begin to explore practical ways to realize our (still theoretical) idea of the real dropbox.

Running the Code

Coding, coding, coding

Step 3: The Box

IMG_0027

Integrating the LEDs and wiring up

To create the user’s interaction as easy as possible, weput the whole electronic in a box consisting of acryl glass. This matches the mental model “just putting things into boxes”. Bringing the box to life, we first needed to let the box realize when someone steps infront of it. To reach this goal we built an Infrared Sensor into the front of the box. Two servo motors on the top of the scanner move the lid up- and downwards to enable putting documents in it and close it again to ensure the correct scan process. For the feedback of that scan process, we used LED stripes on the inside of the box.

Step 4: Code, Communication and Connectivity

To make the Arduino, scanner and computer interact, we needed a programming language suitable for this effort. Python became our language of choice.
The communication basically consisted of four parts. The Arduino Code itself to be able to communicate events back and forth between the sensors and python via serial. Secondly we needed a Dropbox registered application with API-Keys to be able to transfer scanned documents directly to the users account. The third part was a shell script executing a .exe runnable to let the scanner do its duty and eventually the python script to glue it all together.

The Interaction

In practice, the user steps infront of the Real Dropbox and (after the IR sensors signal) the servo motors open the lid. All the user’s got to do is dropping his document into the open box and the rest is done automatically. The lid closes and that’s the signal for the scanner to begin. In that state, the LED color changes to blinking yellow giving feedback about the process. After the scanning process is done, the python script enables the dropbox api, so that the scanned .jpeg file is being uploaded into the Dropbox account. After it has been uploaded successfully, the LED change to green, informing the user that the job is done and no errors occured. At the end, the box opens again giving the opportunity to remove the document and then changes the LEDs to blue, which displays that it’s ready for the next scan & upload job.

The final box

The final box

Project Summary

In the end – after a series of failures and frustration in the beginning – the “Real” Dropbox became just the thing we wanted it to be. An easy to use und useful document scanning device. No giggly gadgetry and unneccessary buttons or messages. Our goal was to make things easier and more useful, providing an easy option for people who just want to burn their paper mess at home and have it available wherever they go, without having to buy a new Device, but instead upcycle their old scanners from home.

Reuse, Reduce, Recycle – Gameboy 0.5 beta

Leave a comment

“Reuse, Reduce, Recycle”

was the general topic for this semesters Sketching with Hardware course, so first of all, we needed something to work with. It was pretty clear that it would be most fun to take an old thing – whatever it would be – and make it behave in an unusual way. Luckily, we found this at a flea market:

IMG_5052_farbabgleich

It says oscilloscope on it and was once used in medicine for graphing the human pulse. The oscilloscope consists of two main parts, the left side holding a revolving paper roll, a spring and mechanics to move the paper stripe.

IMG_5124

On the right side, we find two moving arms with small containers for ink at their ends. Each is mounted onto a box that contains an axis which turns in response to small changes in pressure. Tubes connect the box to a cuff and a switch allows the user to select into which box the air flows.

What did we make out of it?

IMG_5417

“Gameboy 0.5 beta” – our idea of how gaming might have looked 100 years ago. We built an arcade game for the advanced. You don’t play one level, you play two. At the same time. With a joystick. The two needles are arranged vertically, so the game is split into an upper level and a lower level. The upper level is always the same, collect the golden coins by going over them and loose one each time you crash into a wall. The y-axis if the joystick directly maps to the position of the needle.

For the lower level, we offer two modes, one of them is basically the same as on the top, so we use the x-axis of the joystick to set the distance between the needles. The second one is inspired by jump and run games, you try to avoid running into boxes by jumping. Once you have jumped, you need to wait until you touch the ground before you can jump again. After completing the level, unfortunately you need to count the score yourself. Which is easy because you left an ink line, see?

IMG_5399

How does it work?

Let us first say what we did not change: We saw the beautiful mechanics that power the paper roll and quickly decided to leave that complete part untouched. We replaced the original black cover with a transparent one so you can see the wheels turning while playing.

IMG_5154

Apart from that though, we changed most parts. All the tubes had to go and the mechanics in the pressure-sensitive boxes were replaced by servo motors. These
enable us to directly control where the needles point. An arduino receives the input from the joystick and translates it into angles for the servos,

depending on the mode.  The mode can be changed with the knob that originally directed the air flow (POS. 1 or POS. 2).

IMG_5053

Another thing we changed are the needles. Since we could not find ink that worked with the original ones (picture above), we use the tips of edding rollers that are attached to laser-cut arrows.

Technical stuff

This is how the components are put together. The weird thing in the bottom right corner is the joystick ;).

Joystick_Steuerung_Steckplatine

How do we get the joystick input values? – We use an old joystick that has a GamePort-plug, so the arduino 5V is on pin 1, pins 3 and 6 are both wired through a potentiometer in the joystick. The arduinos analog inputs can now measure the incoming voltages for both x- and y-axis. Our code automatically calibrates the center position – the specification says the resistance should vary between 0 and 100000 Ohms but of course, that is not even close to reality.

Where does the power come from? – The arduino delivers enough power to run the servos and the LED. A hole in the box can be used for a USB plug, but we have a 9V battery connector inside as well.

How are the servos held in the boxes? – Mostly glue and some paper to keep the right distance.

How are the servos connected to the axes? – Again, glue. Actually, we broke the original axes and mounts, so we use parts of an old umbrella instead. The moving arms are held by magnets. That allows us to remove them whenever they run out of ink.

How much does it cost? – The oscillograph was 4€, the joystick 0,5€. All other material was already present. We were, however, quite lucky with the oscillograph, there is one on ebay for 60€ at the moment.

Demo

If you want to play yourself, you will be able to do so at the Media Informatics Open Lab Day this fall. If you only want to see it in action, check out the video!

 

 

Thanks

to Sebastian LöhmannBernhard Slawik and Frederick Brudy for their help throughout the course!

PEO – Personal Energy Orb

22 Comments

PEO is a little energy device that limits your computer usage time to a value generated from the distance you traveled with your bicycle in advance. It raises awareness for the amount of time spent in front of computers nowadays and forces its users to seek physical exercise in compensation for their “screen hours”.

The Idea

the concept poster

The excessive use of computers is a common problem in todays connected world. Many jobs require the use of personal computers throughout the work day and also our spare time is frequently spent at home in front of computers or similar technical devices, whereas our time spent on physical activities decreases. This can lead to a lack of social interaction and can ultimately cause health problems.

While it is not possible to simply reduce the time of computer use for anyone, e.g. computer scientists, a way of mitigating this problem is to find the right balance between computer use and physical exercise. However, as is generally known, regular sportive activities require a certain level of self-control, therefore our idea was to create something that supports people with keeping that balance between computer use and being outside and doing sports.

The Scope

Following the topic of the course “outdoor electronics”, PEO is mobile and even encourages its users to go outside and rewards exercise with a raising energy level. Furthermore, PEO combines the two subtopics “distance” and “energy awareness”:

  • Distance: The distance you travel with your bike has a direct impact as it increases your virtual energy level
  • Energy Awareness: The virtual energy level serves as a metaphor for time as a limited resource that is wasted in front of a computer which should rather be used more consciously.

The Interaction

PEO allows no direct interaction, but can be influenced in two ways:

  • By using the computer with PEO connected, PEO’s energy level is constantly decreased
  • When riding your bicycle with PEO attached, its energy level can be increased again

Trough color and luminosity change, PEO provides visual feedback about its energy level as well as the mode it currently is in (for a detailed explanation, see next paragraph “Technical realization“). A more precise feedback on the energy level change can be achieved by using the PC application. When PEO’s energy decreases, it slows down the mouse speed of the computer it is connected to. At zero percent, the mouse speed is set to the slowest possible mouse speed on Windows computers. While at this speed it is not entirely impossible to work, operating your PC becomes so annoying that you will want to stop using your computer and recharge your PEO again.

PEO’s color represents its current energy level (red = low energy).

The PC software shows the exact energy level.

Technical realization

PEO contains an Arduino (Uno) programmed to be in one of three states:

    1. Connected to the bike:PEO knows that it is connected to the bike thanks to a reed switch in its base plate. The bike mount holds three magnets that serve two purposes:
      • They hold the PEO in place when attached to the mount
      • They activate the reed switch connected to an input pin of the Arduino, so that it knows that the orb is connected to the bike.

When connected to the bike, PEO keeps glowing all the time. That serves as feedback that it is connected correctly and shows the current energy level so that changes can be seen without delay. Only in bike mode, the Arduino will listen to input from the revolution counter on the bike. The internal energy level is increased with every revolution of the wheel and PEO changes its color to represent the current energy level.

  1. Connected to the PC: When connected to the PC, PEO is powered by current from the USB port instead of its built-in battery. On the PC a little python program pings the Arduino in a short time interval over a serial connection. The Arduino checks for incoming messages and sends an answer back when it receives a ping. This ensures that Arduino and PC know that they are connected to each other. Both will switch to the “disconnected” state when they don’t receive messages for more than a few seconds. While the PEO is connected to the PC, the lights stay on all the time. The PC program sends a message to the Arduino every few seconds to decrease its energy level. The Arduino then sends back its updated energy level so that it can be shown in the energy level monitor application on the PC.
  2. Idle: PEO changes to this state when it’s neither connected to the bike nor to the PC. To save energy, the lights inside won’t stay on all the time, but will flash every few seconds to show the energy level.

To prevent a loss of your current energy level when the battery runs empty, PEO automatically saves its energy level to the non-volatile EEPROM of its integrated Arduino and restores it on restart.

The Circuit

PEO’s circuit (made with Fritzing)

The Code

Arduino Sketch

Python Program

Problems encountered

In its first draft, PEO was intended to consist of two orbs instead of one. One smaller orb should be kept attached to the bike and the bigger one to the PC at home. The idea was to only carry the smaller one to your PC to recharge the bigger one. Therefore we built two orbs at first, the first one with the bike logic integrated and the second one with the PC logic. We were looking into ways to transfer the data between both orbs without wires. That is why we chose to use XBees because they seemed like a good compromise between complexity and possibilities. Both Arduinos inside the orbs had XBee wireless transmitters connected to them to exchange the energy level.

While we were able to get the XBees and the energy level transmission working, it turned out to be impossible to use the serial connection of the Arduino for both the XBee transmission and the transmission to the python program on the PC at the same time, because the XBee constantly interfered with the serial communication to the PC. After over one day of trying we decided to drop the wireless aspect and put everything into one orb.

At the day of the final presentation, we got everything running right on time, but realized that two minutes before the presentation, PEO’s battery ran empty, although we exchanged it with a new one two hours before. Apparently the Arduino needs at least 7V when connected to the external power supply. Fortunately we could power it over USB instead, but still that was a pity, because we therefore needed to keep it close to the laptop and people could not drive around and try the recharging process as we intended.

Photos

Prototypes & Project Progress

Final Project

Addendum:

Good looking Web interfaces for Arduino with Python

Designing a GUI for a project is always problematic. There are hundreds of different toolkits to create GUIs but learning them takes a lot of time. A very simple way to quickly create a nice looking interface to your Arduino project is pybottle.

Pybottle is a micro web-framework that simplifies creating a small website. Combined with pyserial to read Arduino output from the COM port this is a good way to prototype your GUI. We used it for PEO’s energy level monitor application in the PC.


import bottle
from bottle import static_file

@bottle.route('/')
def index():
return open('./html/index.html','r')

bottle.run()

This small peace of code already serves you the index.html file. The standard pybottle server starts on port 8080 so this page is accessible on http://localhost:8080/.

If your site contains images and other resources you should define a static_filepath:


@bottle.route('/html/')
def static(filepath):
return static_file(filepath, root='./html/')

@bottle.route also allows you to directly return JSON like objects by adding key, value pairs to a dictionary.


@bottle.route('/arduino/')
def getArduino():
dic = {}
dic['sensor1'] = sensor1
return dic

Now for the tricky bit. The Pybottle server is running in an endless loop this means that if we want to continuously read the sensor values from an Arduino we need
a separate thread.

First we need additional modules:


import sys, threading, time, os, signal, operator

And a little helper class:


class MyThread(threading.Thread):
def __init__(self, target, *args):
threading.Thread.__init__(self, target=target, args=args)
self.start()

In this thread we have another endless loop that reads from the COM port and updates the sensor values.


def arduino_serial_connection():
global credits

while running:
try:
serial_connection = serial.Serial(mySerialPort,9600)
line = serial_connection.readline()
print line
except SerialException, e:
print e

time.sleep(1)

To update the value on the HTML page we can use a simple jquery javascript function.


<script type="text/javascript">// <![CDATA[
var allVals = []; function getArduinoValue(){ $.getJSON('/arduino/', function(data){ if(data.credits >=0) {
$('#value').html(data.sensor1);
}
});
}

setIntervall("getArduinoValue()",500);
// ]]></script>

Just add your favorite HTML-Template a little bit CSS magic and presto you have a nice looking web interface for your Arduino.

A complete example can be found here.

Older Entries

Follow

Get every new post delivered to your Inbox.