Category: Arduino

Joypads –> Arduino

comments Comments Off on Joypads –> Arduino
By , January 2, 2010 18:25

New Thumbstick

Do you have an old analog PS1 / 2 controller or a PC joypad? Or an used joystick with the old soundcard connector?

They work great as inputs for an Arduino! In fact, they are just two potentiometers, mounted on two axis.

When you open the case, you probably will find the potis mounted on a board, which includes all necessary connections. If you are lucky, you can use the existing cables on that board:

  • 2 outer pins of each poti are connected to + and – 5V
  • center pin changes voltage, depending on poti- resistance / position

Simply connect the power circuit to Arduino +/- voltage pins and the center pin to one analog input and analogRead() will read the values almost like a poti:

  • center position:  ~ 500
  • full down:  ~0
  • full up:  ~1023

The potis are often not so accurat, but you can easily implement some tolerance in software,

if the values are too much shaking

Code:

int potPinX = 1;
int potPinY = 2;

int valueX = 0;
int valueY = 0;

void setup() {
  Serial.begin(9600);          //  setup serial
}

void loop() {

  valueX = analogRead(potPinX);
  valueY = analogRead(potPinY);
  Serial.println(valueX);
  Serial.println(valueY);
}

.. and you have the X /Y axis values stored in variables.
+ output to serial console via USB for debugging.

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

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

WordPress Open Source Blog System
SynOptX Lab Theme