Software Remote Control – Python GTk Servo Control

comments Comments Off on Software Remote Control – Python GTk Servo Control
By , November 28, 2008 01:03

MirrorBotGUI Servo Control Software

ServoControl - Transparent window, no decorations in python GTK / KDE

ServoControl - Transparent window, no decorations

The software interface  is a gtk-python program, which controls the movements by keyboard and graphical user interface.

We use this during live visual performances on a Asus EEE netbook, which is also running as a preview screen for the video mixer output.

There are 9 automatic programs to move the projections in different patterns across the wall.

9 automatic, BPM syncronized mirror movent programs

Servo Control GUI live visuals action on eeePC 701

Servo Control GUI live visuals action on eeePC 701

Program Types:

  • Scanner – up down movements in 5° or 10° steps, crossover and following
  • Hotspots jumping: various pattern between the 2x 6 hotspots: crossover and following,..

The intervals of the movements can be changed to match to the beat of the music in BPM. In manual mode, the mirrors can be moved directly by knobs, – so it can be used just as a live instrument.

This program is focused all the time and receives keyboard inputs. Often we move the buttons out of the screen to see only the display with interesting values (current mirror positions, program,BPM) of the bots.

Video Mixers + eeePC: -preview -ServoControl

Video Mixers + eeePC: -preview -ServoControl

The keyboard inputs are sent to the Arduino practically directly over serial by the python GUI. Button click events in the interface also send one char over serial line.

The standard Arduino firmware is limited: it can only receive one char at a time, so for receiving a string of multiple letters you need to implement a loop and wait for a terminating string. For this reason the  first version of this software could sent only “+” and “-” to change the speed, but not a complete new value (like “180” BPM) 🙂

Keyboard Shortcuts:

Servo Control GUI on eeePC in live VJ bpx

Servo Control GUI on eeePC in live VJ bpx

  • 0-9 : select program
  • “s” : start / stop
  • + : faster (+1 BPM)
  • – : slower(-1 BPM)
  • x : manual mode on/off

The python GUI  also reveives strings over serial from the Arduino and extracts the interesting values to display and then refreshs the text fields.

The data format sent by the Arduino is very short and simple, because the serial line is just fast enough to transfer:

  • short program descriptions (20 chars) – on program change events
  • current speed – every 100-200ms
  • beat tick – on timeout

Sending longer strings blocks the Arduino and it will not respond to serial input or loose some commands.

Luckily sending and receiving contemporary works just fast enough  and also python/Gtk handles input and output easily without threading.

btw: do not use to many (long) strings in Arduino or the RAM and flash memory is full soon, but its not that bad (specially with the 328) – this software, uses less than half the flash memory and ca. 1/4 of the RAM. (must check..)

MirrorBot Hardware Interface — Version 2

comments Comments Off on MirrorBot Hardware Interface — Version 2
By , November 25, 2008 05:52
MirrorBot v2 + hardware control knobs

MirrorBot v2 + hardware control knobs

This version is enhanced by real hardware inputs:

2 potentiometer knobs control speed (movement interval) and current program.

Additionally Program 0 adds a special manual mode to control the servo positions directly with the knobs.

Now the system is really useful as Live instrument, because you can inter-act directly with the music and change the posistions or programs matching to breaks and changes  in the music.

An old PS/2 keyboard cable was used to connect the mirror “stations” to the controller box.

Arduino in a box + knobs + external power for servos

Arduino in a box + knobs + external power for servos

The cable length can be increased by plugging more PS/2 cables between – they are/were common for KVM monitor/keyboard switches.

Now the mirrors and beamers can be placed far away from the “remote” controller box, which can also run autonomously without computer connection and just an external powerplug.

For live visuals, we still use the software interface to display the current values like angles, speed and program settings,

but the knobs as a real hardware interface ‘feel’ much better than keyboard presses on a netbook 🙂

MirrotBot V2 - Speed + Prog Knobs

MirrotBot V2 - Speed + Prog Knobs

KnowTheKeyboard – Javascript RIA Game

comments Comments Off on KnowTheKeyboard – Javascript RIA Game
By , July 29, 2008 17:06
KnowTheKeyboard Screenshot

KnowTheKeyboard Screenshot

This is an educational Browser Game for Children and Computer Beginners
to learn how to use Keyboard Shortcuts.

The Game is integrated into the TabStarter Easy Launcher
like a RIA Application by using Python gtkmozembed Widget.

It uses Dojo Javascript Library and our synoptx javascript libraries and offline toolkit

Version 0.1 :: (proof of concept)

Level 1 – more Levels coming soon

Level 1: Copy and Paste
Learn to use ctrl + c and ctrl + v

licenced under GPL

Debian Packages

Play online: KnowTheKeyboard Level 1

keys

Play Game!

Wiimote Control – Python Cwii Frontend

comments Comments Off on Wiimote Control – Python Cwii Frontend
By , July 12, 2008 17:10

Wiimote Control Frontend

This is a frontend to simplify the connection and configuration of a Wiimote and its bluetooth connection.

It is based on Cwii Library and can map axis and buttons of the wiimote to keyboard, mouse and joystick events

It has got different preconfigured modes for web-browsing, various games, TV remote control and presentations.

The config files define events like keyboard presses and map them to wiimote events, like button presses and controller values.

debian package coming soon..

MirrorBot Moving Projections System

comments Comments Off on MirrorBot Moving Projections System
By , June 8, 2008 05:23

Mirror Bots .: moving visuals projections – standalone & Linux GUI controller

This is a robotic system to move VJmix projections all over the walls.

Video: MirrotBot in Action Köpi, Berlin 11.2008YouTube Preview Image

Beamer projection reflection on mirror

Beamer projection reflection on mirror

Mirrors are mounted on servo motors to rotate them in front of dia projectors or beamers. This way, the projections are moved across the walls and the ceiling of the room.

A microcontroller system, connected to a netbook, is used to control the mirror-servo-unit movements.

“Hotspots” are defined to project on the best spots on the walls of the location and create an impressive light show of moving rays and projections on all walls and screens.

1.prototype live action with diaprojector & beamer

1.prototype live action with diaprojector & beamer

This system can be installed in rooms of any size.

It is required to use projection glass or there are double projections and very unsharpened results. The beamers must be powerful to show bright images also on the must distant walls. In big rooms, the projections are really big, so the 2 video mixes can work together as moving textures or moving characters.

The proof-of-concept system was first used by Headsquatter Live Visuals in Berlin @MIKZ – Suchtfaktor – 27.09.2008 with great success and continuously enhanced and tested live.

Hardware

We use a common, programmable input/output hardware controller to trigger motors: Arduino Dicemilia.

1.prototype live action - only left dia visible

1.prototype live action -- only left dia is mirrored

Two Mirrors are mounted on  servos to move them in front of two video beamers. This first version can move 2 projections with 2 mirrors on one horizontal axis between 40° and 130° – ca.  It  creates distorted projections depending on the current angle, but works very well with various kinds of video mixes. High contrast images and vectorial animations work specially good. By positioning two projections besides each other there appear many interesting possibilities.

Combined with fog machines the rays become visible and the moving beams look like a laser show with real videos.

The servo-mirror movements are synchronized to the beat of the music and many programs can be selected, to move the projections in various patterns.

VJ Live Mix Box: Wiimote - VJ mixer - Arduino Servo Control - Mirror (+ eeePC :) ) - Linux Netbook

VJ Live Mix Box: Wiimote - VJ mixer - Arduino Servo Control - Mirror (+ eeePC 🙂 ) - Linux Netbook

Software

This MirrorBot is controlled by a linux netbook over serial console via USB cable. The prototype is remote-controlled  by a simple software command line. Various keyboard key presses change program, speed, play/pause mode of the attached servo control box. This works quite good during live visuals mixes, with a mini terminal window in front of a TVtime preview screen of the video mixer.

Pictures by Rue23 in MIKZ 27.09.2008 – Suchtfaktor Party ::


more Pix @ 10247.net Logo

Multi projections

Multi projections

Multi projections

Multi projections

Multi projections

Multi projections

Debian and Tabstarter on the OLPC X0

comments Comments Off on Debian and Tabstarter on the OLPC X0
By , April 19, 2008 17:32

YouTube Preview Image
wow, the X0 OLPC looks really nice: a ruggedized mini-notebook.

the sugar desktop looks also very interesting, but at first glance it is too different from typical western computers interfaces to be intuitive for a european.
the home desktop screen is very inspiring, but we wonder: why is it all gray?
does that safe energy? 😉

it does not offer many programs and those which are installed take long to start.
they are mostly educational software and no games, except a memory.

we have a lot of ideas for this machine.. our tabstarter is already running on a Debian System.

there is a debian project that works on OLPC support and they released an installer.
its relativly easy to get X up and running, but it is slooow.
our tabstarter interface in Python GTK is working and we are testing out some programs now..

KidsLinux @Pinguincafe @LinuxTag, Berlin

comments Comments Off on KidsLinux @Pinguincafe @LinuxTag, Berlin
By , April 13, 2008 12:52

TabStarter – Easy Program Starter Intro Screen:

LinuxTag 2008 : Pinguincafe & Synoptx Action

We prepared 10 Asus eeePCs for the Childcorner on Linuxtag fair in Berlin.
The resonance on the fair was very good and people of all ages were interested in the hard- and software.

We installed and configured 2 different linux operating on 10 eeePC 701 netbooks

  • Debian Lenny Live from SD card
  • Geeentoo live from SD card

Both with a lot of modifications to support all of the hardware and include Wiimote, Joystick support and many more modules…

The grown-up nerds on linuxtag specially liked the 3D Desktop Effects as the rotating Desktop Cube and the wobbling windows.

Also geeentoo — live on SD card [ hacked by nerdpunk ]- impressed people, who know how much work it is to compile the wholes ystem with all extra-software included. The speed of application starts and running games on gEEEntoo was impressive.

Children liked Planet Pinguin Racer most: We had a wireless Joystick and 2 Wiimotes to control the Games. Smaller Childs started tuxpaint, that was hacked by Bognetti to include graphics and Sounds of a social project: plantanmptree.org in combination with motives of our City Game ‘Meta Friedrichshain’ – 10247.net

There were also many educational games such as gcompriss, knowthekeyboard and our 10247.net city game, including a memory and a trash-sorting game,specially created for children.

If we were Asus Premium Partners- and if the Linuxtag was not the _Linux_Tag, but a commercial fair 😉 we could have sold many of them, including our installer package:

A few machines ran on the original Asus, enhanced by our TabStarter v0.1to include the extra installed games, that had no icon in the original easy mode.

2 machines booted geentoo from SD card and the other 5 were running our preferred, optimized debian lenny system ::

We started by installing more games and educational software into the original Asus Xandros, Debian ‘etch’ , stable system, but the repositories of that system are limited and old, so there was not much to install. We found many distributions on the net, but all were just starting (march 2008) and did not support all of the hardware. So we followed all Howtos on eeeuser and later debian-eee-wiki, but there was no easy icon starter interface and no easy configuration interfaces.

Because we liked the EasyMode of Asus a lot, we started with something similar: Coded in Python GTK, we hacked a first version within a day and Bognetti included her graphics and created some icons then.

TabStarter Gtk v1:

The buttons start programs or websites. The big icons are easy to remember for children and easy to hit with the mouse. The big Category -Tabs have color codes and icons, so children can recognize the categories by the color and explore the system themselves.

Beginner Games Panel
Wiimote Control Panel

fresh bits from Sama32 floor 4 lab

comments Comments Off on fresh bits from Sama32 floor 4 lab
By , February 8, 2008 00:38

we are planning to publish some tips & tricks for web developers in this category…

WordPress Open Source Blog System
SynOptX Lab Theme