Starting this term (2014b – summer term 2014) we have moved to our own new blog at
See you there!
(This blog will stay online for posts on past terms)
Practical Course on Physical Computing at Ludwig-Maximilians-Universität München
August 21, 2014
Starting this term (2014b – summer term 2014) we have moved to our own new blog at
See you there!
(This blog will stay online for posts on past terms)
April 17, 2014
The main idea of our concept is presented in the following: when a picture is taken, it would be found in computer immediately by USB connection and modified with an image manipulation program, then be printed with a small photo printer.
But there was a problem with our cheap toy digital camera: when we connected the camera to our computer with a USB cable, the camera went automatically to a “USB mode” and couldn’t let us take pictures at the same time. To solve this problem we decided to hack the USB wire and camera shutter and develop an Arduino program, which makes the camera more intelligent: when we push the camera shutter, it goes to USB mode in 5 seconds and exits the camera USB mode after 20 seconds (the approximate time for our photo manipulation and printing) so we can take the next picture.
There are four wires inside a USB cord which are colored red, black, white and green. Red, as standard color for positive wires, has 5 volts. Black is the ground wire as for negative or ground connections. The other two are translation data wires. We cut the red wire away: one port, which connected to the computer, is use for the power support of our electronic circuit. The other port, which connected to the camera, would be linked to a PNP transistor. With an Arduino program, the camera shutter should be seen as an input to control whether the USB circuit is connected or switched off. The electronic circuit is seen in the picture below.
Photos were manipulated in two different ways:
We wrote a java program that serves three main functions:
At the beginning of the project we were quite unsure which printer would be the most convenient one to use and we didn’t have much time to decide. First we were thinking of the small thermal printer used at the cash points, but since the thermal printer can only print receipts, we found it really weird to have a “Polaroid” which prints black-white receipts. Luckily, we found a Canon mini photo printer on Amazon which was delivered on the next day. The mini photo printer can even work as a wireless device which makes it much easier to design the Polaroid prototype.
Java offers an API for accessing the print jobs and settings. First we encountered some troubles with the page layout, but we managed to hack the settings in the hash table. We were very happy as the photos were successfully printed via Java print API command.
The prototype is a wooden case with the toy camera and the mini printer inside. We used 9mm MDF for building the case. To maintain stability, the boards were cut to puzzle-like shapes so that it can be easily patched together. The back side of the case was left open for cables and wires. In the end we sprayed the boards with varnish to create the glossy coat of a Polaroid.
We cut a big round hole on the front side and put a round glass plate of the same size into the big hole to make it looks like an old fashioned lens opening. There is a smaller hole on the upper board so that one can click the shutter release through the hole. The case edges are additionally protected by metal foils.
The logo and mascot ghost were also engraved by the laser cutter. Actually, the manipulated photos were supposed to be scary, however a meme Polaroid was built instead 😉 Well, that is why the ghost looks so cute.
April 14, 2014
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:
Quality is better than Quantity
Don’t rate the ideas
It’s allowed to take an already established idea and modify it
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
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? …
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/ …
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.
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;-)
April 10, 2014
By Markus Fußenegger & Korbinian Königseder
We developed a concept to modify the famous children’s game Looping Louie. It is a simple reaction game for 4 players where a plane, controlled by a guy named Louie (German: Alois) tries to hit the player’s chickens. The players have to vault the plane with a catapult over their chickens, represented as tokens. Every player owns three chickens. The game ends if only one player has tokens left.
Because this concept gets boring pretty quick, we wanted to modify it. Therefore we created some concepts which enhance the game experience for every player. This should be done with the help of an Iteaduino controller board. The main idea was to control the plane by an enhanced AI which sensors the game’s environmental properties. This AI basically should be very cruel, for example it should attack certain players chickens without them having a chance to react or defend against. But other players should be ignored by Louie. This game mechanism would create a completely new game experience never seen before.
To reach this goal we had to design several different components which have to be added to the game. These main components of the concept are seen in the picture below:
1. Dynamic motor control:
We chose to use the built-in motor, because of its specific size and gearbox and implement the dynamic motor control by adding a external motor control board. We attached the external motor control to ensure that we are able to do reverse and forward motion and are allowed to set the speed of Louie.
2. Flexible height control:
Allowsto let the plane jump and float. But it should not interfere with the natural dynamics of the plane.
The first concept to control the height level was with an electromagnet built in the crane, and a static magnet in the counter weight of the plane. This concept wasn’t feasible because we couldn’t find an electronic magnet which was strong enough to pull the plane up and to fit in unison inside the crane. After this setback we decided to build a cable control to pull up the plane by a stepper motor.
3. Height sensor:
We planned to measure the height of the plane with a potentiometer attached to the hinge of the crane. Based on the angle of the plane we can meter different resistant values. Then these are converted into degrees by software.
4. Position tracking:
As Louie moves around the board the base of the crane closes several contacts on the ground. With this measures we are able to calculate Louie’s position by interpolation based on his velocity.
5. Light barrier to observe the token’s movements:
Every time a token falls it brakes a light barrier that indicates a lost chicken.
6. Sensor the catapult’s state
If the player pushes down the catapult a simple contact gets closed by a conductive metal on the bottom of the catapult.
7. Serial Communication with an AI provider
Because the AI could get very complex we thought to do the AI processing on an external computer. So we can use the power of the Iteaduino board to collect sensor data and execute commands provided by the external PC software.
First we built the light barriers as it seemed that they are the easiest additional module. We placed a LED under the ramp chicken ramp and a photoconductive cell on the top of the ramp. First tests were very promising and coin loses could be measured very precisely. As we started to work at the side arm, we continued to finish that component. So we went on and included two contacts onto the ground under the catapult. So that every time a player hits the catapult, those two contacts get closed by a thin cooper layer. This didn’t work perfectly, because of a small scope in the suspension of the catapult. But after curving the cooper layer the contacts worked almost every hit.
The next step was to include sliding contacts between the crane and the platform. We again used a thin cooper layer and a piece of conductive metal. These connections were responsible to bring the supply voltage and a control wire to the planned height sensor on top of the crane. The third connector tracks the position of the plane. Concurrent we hacked a potentiometer, to sensor the height of the plane. It was placed between the crane and the crane jib. First tests, where we measured the resistant of the potentiometer, just worked correctly. Some modifications and grindings on the crane need to be done, but finally there was no bigger trouble. Additionally we added four contacts on the top of the base to measure the current position of Louie. The idea was to register if one of the contact was closed and then interpolate the current position of Louie.
Meanwhile we ordered a motor control board for the built-in motor and a stepper motor for the height control. We were planning to hook up the motor with our motor control, to get full control over the built-in motor. This allowed us to control Louie’s speed and direction. This also worked very well, but the troubles began as we mounted or stepper motor. It was connected over a wire to the counterweight of Louie. Unluckily the stepper motor was way too weak to sling Louie up in the air. So we stated that lifting Louie would be fully sufficient.
Followed up we assembled all parts and tested every component. Again we run into some major problems. We weren’t able to get any valid data from our height sensor. After we inspected our wiring we found out that we forgot the ground signal line to our potentiometer. Normally this would not have been a big problem, but to get another signal line up in our crane we had do add another sliding contact. We solved it by inserting the new cable into Louie’s shaft. After some small hassle it worked very well, even in motion.
Finally we began to test everything together, and this was the point our whole concept started to collapse. Our height measure could not transmit its data because the sliding contacts were losing contact when Louie was vaulted into the air. Also the position contacts could not be registered every time the plane past one. Besides that our cable to lift Louie would drill itself up in less than five turns and got stuck in the crane shaft, nearly unable to remove. After these big letdowns we decided to rethink our concept and simplify it a bit. We wanted to remove the stepper motor and the cable system and attach them to a catapult. The catapult should be controlled by an AI which should act like a good human player. But this worked not even as close as expected and we thrashed this idea shortly after.
After all of these problems we ran into one we didn’t even thought of it could happen. The Iteaduino Lite we used offers only 8kb of flash memory and almost 2kb are already used for the bootloader. We reached this kb limit in no time with more features left to code. We had to remove the complete serial communication to save crucial flash memory space and had to implement the AI on our Iteaduino board.
To make it to the presentation we wanted to simplify the concept even more, removed the height sensor and imprecise position contacts. Based on the modules we had left, we developed a simple AI which controls our Louie making it nearly impossible for the player to defend its chicken against Louie and the catapult contacts allowing the user to interact with the game logic.
In the end Grantiger Alois was short on some features, but the end result is promising for only one week of sketching and implementation. After the game is set up, the main player has to initiate the game. He presses his catapult down for about two seconds. The green LED mounted on the middle base is indicating if the game was started successfully. After that Louie goes into start mode, whereas he accelerates to reach his maximum speed. When reached he switches into random mode. Now Louie is nearly unpredictable because he changes his speed, direction and even stops for some time. The players need to concentrate hard to follow his exact movements and react quickly to movement changes, to save all tokens. If a token gets hit, Louie enters into his furious mode, whereas he accelerates to maximum speed. If only one player is left Louie stops and the game ends. To see Louie in movement watch the video below:
April 9, 2014
Idea & Concept
We decided to hack the good old wooden labyrinth. We had the idea to play it with potentiometers and by a controller which imitates the board and let it act like this with a position sensor. Therefore we thought about making the game harder by inverting the x and y-axis when passing a certain stage in the game. Other features should be a colourful led strip inside which reacts on different switches and game phases and magnets should influence the ball.
After we programmed the Arduino clone (iteaduino) that the potentiometers and the position sensor were able to control the servos, the next thing was to find a way to move the axes inside the game by the servos.
The challenge was that no one should be able see the changes from outside. So we tried it with two thick gums that we fixed to the lever of the servos and twisted the gums two times around the sticks. We realized that the sticks are too slippery for the gums, so we used tape to get rid of that. Then we attached the servos to the case by two screws instead of glue to have a stable construction because the gums have to be under tension to work fine. The potentiometers were also fixed to the case with a nut.
The next step was to calibrate the servos with the potentiometers that they are horizontal at the start and the mapping to the potentiometers is intuitive. This was a real problem in our project because the calibration of the servos was mostly lost after playing a while (natural problem of the gums), so we programmed an extra calibration program. We realized then that it’s hard to play the game with the thin potentiometers, so we purchased knobs for the potentiometers.
After this we build a controller for the position sensor. For the controller itself we made a template (looking like playstation controllers) and let it cut by the LMU laser cutter. We needed five different wires, so we chose the usb cable of an old keyboard for the connection. We added also a switch outside of the case to switch between potentiometer and position sensor control.
Our next challenge was to attach the rgb led strip to the case and find appropriate transistors for the led strips that we don’t destroy our rgb leds or our iteaduino. It had to be an N-Channel MOSFET with appropriate characteristics to match the power consumption of the LED strip. We settled for the IRF520N which can provide more than enough power.
Additionally we attached an electromagnet in one hole of the game to lock the second ball behind a barrier. This ball is released when you push a button with your ball in another hole before the barrier. This was also done with the same MOSFET we used for the LED strip.
The next thing was to find a way how we can implement switches for the ball. Our first idea: Attaching the switch to the underneath the board and exposing it by drilling a tiny hole and sticking parts of a cable through it that should trigger the switch. This idea did work fine, but influenced the path of the ball. Furthermore because of the width of the lanes we would have needed to use at least two switches to cover the whole width. We tried other approaches using copper tape that we arranged on the board in several ways. In the end we glued two little tapes leaving a small cut across the lane that is bridged when the ball rolls over it and connect them with to cables, resulting in a switch. So we added four switches to the game:
At last we took an arduino prototype board (that you can directly attached to the iteaduino) to solder our wiring on it, because the pins in the breadboard were not stable and it needs too much place in the case. This work was a pain because the layout of the prototyping board was not very intuitive. Additionally we didn’t test the transistors we used beforehand, so at first we thought something went wrong when soldering. But instead the transistors were broken, so we had to solder them out and replace them with new ones. It got to the point that we needed to replace one transistor with another model. This model wasn’t able to drive the electromagnet so we swapped the PINs for the electromagnet and the green color of the LED strip, resulting in green going binary (on/off).
The most persistent problem we had until minutes before the presentation was the random twitching of our servos. We still don’t know where exactly it came from and it appeared and disappeared randomly within the hour. Sometimes we could fix it (i.e. by adding a delay to the loop that controlled the servos), but in the end it always reappeared after a while. We noticed that the power LED of the iteaduino was always flickering when the servos twitched, so we figured it might be a power problem. Minutes before the presentation we fixed it by replacing the iteaduino with an Arduino Uno. Phew.
And for the finish, a video that shows the development from the beginning to the end:
The next steps for Madlab could include:
April 9, 2014
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.
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.
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?
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.
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.
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
I already mentioned the possible sound feature. No TOGEBEAR needs a connection via USB. In the future it would be nice to integrate BLUETOOTH.
April 8, 2014
Idea and Concept
Our initial idea was to buy a toy train and modify its wagons by adding two compressing springs with a set and release mechanism. Positioned on each spring would have been a coloured ball that would jump out of the wagon when the mechanism was released.
The reset of the system would have had to be manual and only two balls per time and wagon could have been made jump each time the apparatus was released. We also intended a second surprise mechanism that made it hard to connect the wagons in the first place and to make it somehow difficult to put the balls onto the wagon so it would have been all the more frustrating when the balls flew off. Also the wagons would have automatically separated after a certain time.
What became of the concept you can see here in the video of the final result:
Getting to work and solving the unsolvable
The concept was then split into two Major assignments:
First: Finding a toy-train in the appropriate size with enough space for our modifications and
Second: Finding springs with the required properties (not too hard to draw back (tensile force) but with a good enough take off power) and designing an apparatus that made balls jump with them.
What we did not know at that point: With our final solution of the second assignment came a third major assignment we did not know of while scheduling our time.
After wasting two costly days on solving both major assignments the planned way we decided to solve it by adding work to reduce it:
Instead of buying a toy-train (and wasting precious time looking for it) we decided to built it ourselves as a made-to-measure solution. Using the leftover-stock we took some wood and learned to use Adobe Illustrator for the vector design.
The base for all the measurements was the remote controlled toy-car we had found in the workshop on a coincidence. We designated the chassis to be our towing vehicle. Later followed the self-made chassis and wheels for the wagons. (We could not find any to buy in the required dimensions)
Lesson learned: I am convinced that despite the additional work we put in making it up from zero we did save a lot of time and learned a lot in the process as well. (Using the lasercutter, working with Adobe Illustrator,how to use the tools in the workshop, AND: improvise, improvise, improvise)
The second major assignment turned to the most unexpected result. After focusing days on first finding the perfect spring (which turned out to be a disaster) and make it work SOMEHOW. The solution lay somewhere totally different. A frustration-solving stroll through the workshop brought me to a discarded piece of acrylic glass. It was both: surprisingly flexible and yet dimensionally stable. And immediately a totally new idea took shape. The prototype on the new concept took only a few minutes and worked on the first run. Here a demonstration:
The new concept brought several more advantages: We no longer had to reset the system for every new round. a hacked 360° servo could keep the springless construction running infinitely. That also meant we were no longer limited to a 1:1 ratio on balls and springs: we now could shoot around a whole load of balls in every wagon.
Lesson learned: Stop trying to reinvent the car when all need is a wheel.
With the train and the spring-less construction done the day before the presentation, we thought nothing could go wrong now. We thought the electronics would be easy. A mistake that literally cost us our sleep the last night.
Taking up an idea we had had quite in the beginning we used popsicle-sticks with a copper coating to transfer signals plus energy and keep the train able to make turns because the coupling was flexible. It was a rather simple but effective solution. Still it turned out to be very very time consuming and starting a task that requires a focused mind and a still hand after 12 hours of work is not the best idea. Yet we managed it and after 6 more hours everything was working just fine.
The Arduino gets its power from a 9V battery on the first train. From the Arduino emerge 5 cables: A Voltage cable with 5V and a Ground cable that serially connect to every servo. Three seperate Signal cables, so every servo can be controlled autonomosly.
Lesson learned: Do not sleep in the CIP-Pool. You risk freezing to death while asleep. Seriously.
Things that were left out – Ideas for the future
The whole “Trains falling apart just before the balls start jumping out”. We threw the idea aboard after realizing it would require one arduino and a battery per wagon. Plus a strong repellant like an electric stud or electromagnets. Two things that are highly energy consuming. And by adding those the space for the eggs would have been considerably minimzied.
Springs. As mentioned above it didn’t work out. Not only the mechanism was catastrophic, but also aquiring fitting springs… It seems that springs are usually only produced for companies that use them for their tools. The springs we found were all too big or had too much tensile force. Thinking around the corned helped here. A stroll through the lab and we really simply ran into the solution.
Buying a toy train. Looking for something extremly specific (exact measurments, size, material) is really hard. If you have any talent in “do it yourself” then do just that. No point in fearing failure. Just do it. At the very least you will learn a lesson.
Acoustics: At one point we intended the train to make some funny childisch train sounds, time killed the idea rather soon, but we still liked it
Light effects: Blue subfloor illumination. Again time was the killer but this would be the simplest of all to add as we have already designed the wagons with extra space for an additional battery and space left for some LEDs.
A stronger towing vehicle: Altough we tested the admissable total weight of the toy car to be 1,5 kg it still had trouble towing the wagons. Either the last wagon has to go, or the towing vehicle needs a stronger engine.
A remote controlled starter: We still have to start the arduino manually. Adding a remote would certainly improve the effect.
Things that were added
Easter Eggs instead of balls (spontanously)
Selfmade train + wheels
10 Eggs rather than two balls. The more eggs the more the fun
Final words by the author
Despite the batch of chaos in the final 24 hours I really really enjoyed the course. The project with all its ups and downs was really cool, the learning curve amazing and the people were not only helpful but especially the lunchtimes were real fun. For every stressful moment (including having to sleep on the CIP-Pool floor): it was worth it.