Posts tagged: S65-shield

MirrorBot Video – Moving Projections Controller Interface

comments Comments Off on MirrorBot Video – Moving Projections Controller Interface
By , January 5, 2011 17:58

YouTube Preview Image

Part #02 of the MirrorBot Demo Video


** Video Installation Audio Visual Special Event n8 @Tacheles 17.12.2010

** Details of the Controller device:

  • Programs and Live Mode LCD screen interface

Part #01 of the Video, Installation in MIKZ, Berlin 03.2010: /2011/01/03/mirrorbot-video-moving-projections-in-action

Technical details: lab.synoptx.net/mirrorbot

Video: PONGuino – Arduino & S65 Shield – 2 Player MiniGame

comments Comments Off on Video: PONGuino – Arduino & S65 Shield – 2 Player MiniGame
By , December 27, 2010 04:55
YouTube Preview Image

Here is a video about the PONGuino game for 2 players on a minicomputer with mobile-phone display and joysticks.
The box contains an Arduino 2009, a S65-LCD Shield and a gamepad from an old playstation 1. It runs autonomous on 9V battery.

The device is originally built for the “Mirrorbot” moving projection system [ lab.synoptx.net/mirrorbot ], but the pong-game-code from www.codetorment.com was perfect to test the LCD and – really – it’s fun to play!

The system is just fast enough to play a game, but you have to take care, how many pixels and how fast you draw. There is no double buffering and just a serial line between arduino and screen……

more info in this post from 02.2010

Sorry for the low quality photo-cam recording.
The LCD is not bad in reality: You don’t see the pixels and the scratches are only on a transparent folie..





MirrorBot v3 – moving projections @ Suchtfaktor Party

By , March 13, 2010 18:41
Flash! People on the dancefloor - Mirror Station besides the DJ and the controller box in front

Flash! People on the dancefloor - Mirror Station besides the DJ and the controller box in front

Headsquatter VJ crew used the new version of the moving-projections-robot in MIKZ club in Berlin Friedrichshain @

Suchtfaktor Party 6.3.2010

Mirror Station in front of a beamer  and projection on the wall

Mirror Station directing the beamer projection on wall and roof

to create a visuals show with a moving projection.

The  2D (X+Y axis)  mirror-station was mounted in front of a 2500 ANSI lumen beamer – this was strong enough to produce very clear and big projections everywhere in the dancehall.

Two servo motors are driving one mirror in X- *and* Y- axis. The projection can be moved across the walls by a joystick or with automatic pattern programs, synced on beat of the music.

VJ desk: 2 video notebooks, 1 video-mixer, eeePC 701 preview screen, midi controller and mirrorbot controller

VJ desk: 2 video notebooks, 1 video-mixer, eeePC 701 preview screen, midi controller and mirrorbot controller

30° in vertical Y axis are enough to reach almost any point on the ceiling. Combined with more than 120° on the horizontal axis, it can project on any point on 3 of the walls.

Many guests on the dancefloor were surprised by the projections suddenly appearing and disappearing and when they discovered the mirror-station, they showed it to others. Some people came on stage to the VJ desk to ask how the moving projection works and some more came up to say that they liked the visuals show 🙂

It was fun to “play” the robot just like an instrument with the joysticks. When the positioning button is pressed on beat – matching to the rhythm – the projection is “dancing” across the room!

MirrorBot V3.0 : Robot Autonomie!

By , February 13, 2010 01:23

MirrorBot GUI 3.0 on s65 shield

Finally there is no need for a computer control screen anymore: the S65-Shield rocks!  🙂

Display Code

This display is fast enough, graphical!!, colorful, just big enough and easy to program,for many tasks, where you normally would need a big (pc) screen and ‘real’ software.

Hotspots Setup Screen

Hotspots Setup Screen

So I started to code an Arduino patch for a mirror bot interface. After some nightly sessions it includes:

  • “projection display” – showing the current angle of 2 mirrors and the resulting projection (just some lines and rectangles
  • animated BPM  “beat-bar” showing current step
  • current BPM
  • current program name and description

At first, it was difficult to overwrite the previous drawings: if too many lines are drawn at once, it does not work. After some timing tests, I found a working code to redraw all elements without flickering.

Autonomous MirrorControl Box

Autonomous MirrorControl Box

One trick is to redraw as few pixels as necessary and another is to reduce the updates to only draw something (over) when its really necessary (something changed).

Servo Control Integration

Then I integrated this LCD animation code into the servo control loops and programs. One control loop runs every 200ms to check the input potis. The display animation update is also triggered in that loop.

Another loop runs according to the current BPM and triggers the selected servo move program which moves the servos on beat.

Open Case - Arduino + s65 shield + joystick board

Open Case - Arduino + s65 shield and joystick board

In manual mode the servos are directly moved in the control loop. Servos do not position soo fast and accurate, so it needs some ms to ‘drive’ there, but it is fast enough for most effects. 50-100ms refresh works good and gives a direct response feeling. Next I’m looking for joysticks, which keep the position, because these jump back to the middle and that’s  disturbing in manual mode…

Connections on the shields pins

Connections on the shields pins

Unfortunately the 4 Arduino analog input pins, which are left free by the S65 shield, are already used up by the four joystick axis.:

S65 Shield Pins Schematics Image

Hotspots Setup

The Duemillanove still had a lot of RAM -1500byte- and 1/2 code memory free, so I started to hack a setup screen for the hotspot variables of two ServoMirrors into it.

Now the box can be configured for each location live ‘on the fly’ without re-programming by a computer. With the joysticks you can select nice spots in the room and press the encoder to save the value. Currently the values are simply stored into global varaibles. Next step is to save these values to SD card or EEProm..

PS2 to servos and some work todo..

PS2 to servos and some work todo..

It was easy to write this interface with the S65 library. Simply loop over the variables and draw the text. Draw a box around the selected row and change the selected on encoder turn. Now the box needs some more buttons…

Case

This case was a -fast & furious- test to create at alu-front at home office. Not only that many tools are required, you also need a stand for a drill and equimpment for fixiation to get the metal works really exact. Its not that bad, but it takes long to calculate, drill and saw all holes. You will not get it done without some scratches and unstraight edges, if you dont have a professional workplace.. We are looking for some CNC guys next .. 😉

PONGuino – Arduino & S65 Shield – 2 Player MiniGame

By , February 12, 2010 19:36
PONGuino game on the MirrorBot v3 Hardware

PONGuino game on the MirrorBot v3 Hardware

I wanted a playable game to show the possibilities of the Arduino plattform in  workshops. Since I already have a S65-Shield built in a box with two joysticks, I wanted to use that MirrorBot hardware for presentation.

The most funny code I could find for the S65 Shield was a Pong game by

www.codetorment.com

This mod uses one axis of two joysticks – or two potis connected to input pins to move the two bats of the two players up and down.

The AI and encoder codes were removed and replaced by a similar check:

PONGuino 2 players in action

PONGuino 2 players in action

If the joystick potis are moved up or down, they decrease or increase the y position value of the matching bat.

If you have a s65 shield and would like to run this code, you could connect two potis to input pins (e.g. 0,1) and try those. Thes bats ‘should’ move, if you move the pots out of the center position.

I included a veeery simple level system:

PONGuino someone got a point +

PONGuino someone got a point +

After each round a level int variable gets increased. This level var decreases a delay() (starting at 10 ms)  in the main loop  -that way, so the game gets faster, the more rounds you play ( 5 times).

🙂

….

PONGuino mini-game intro screen

PONGuino game intro screen

Continue reading 'PONGuino – Arduino & S65 Shield – 2 Player MiniGame'»

Shields up! Grafix & Color LCD Fun .: S65-Shield

By , January 8, 2010 22:41
S65 Shield italian nosespray pappcarton prototype

S65 Shield italian nosespray pappcarton prototype

We ordered a S65 Arduino shield from Watterott.com.

Simply plug it on a Arduino and play with  a 176 x 132 pixels color display from a Siemens S65 handy, micro SD card slot and rotary encoder.

There is a library on the Watterott website, which contains some graphic functions to paint on the screen, just like in many other languages. This is enough to create small games, animations and GUIs  in full color.

The refresh rate is not soo high, but its fast enough to paint moving objects and interactive animations. The painted pixels stay as they are until something else is drawn over – they do not need to be refreshed.

Testing to paint circles + lines and text on the s65 shield

Testing to paint circles + lines and text

Instead, the screen must be completely cleared before redraw, which is veeeery slow or parts of the screen must be painted over with the background color.

After some experiments, I call the painting functions two times: 1. with the background-color – to overwrite exactly the previously painted lines with the background color, before re-painting moved objects. This approach works fast and the refresh is invisible.

WordPress Open Source Blog System
SynOptX Lab Theme