<Flex>

Godfried-Willem RAES

2002/2016

[Nederlandstalige versie]

 

Robot: 'Flex'

This musical robot consists of an assembly of singing saw or flexatone like soundsources: two blades of hardened stainless steel struck by solenoid and/or motor driven beaters and bend by a system of heavy duty stepping motors. In this respect it may be considered a realization of Russolo's fifth category in noise makers (intonarumori): sound of metals, stone etc. The lenghts of the singing blades relate to each other as Pi to e, the two most infamous irrational numbers both in physics and mathematics. With the bowing mechanism provided, it constitutes a double singing saw. With the beaters, it's rather a super large flexatone.
The building of this robot was started in 2002 and in its first version, was controlled through a printerport on a laptop computer. Details on the original design, which we had to abandon as printer ports on PC's became obsolete, can be found on the archival webpage for this robot. In 2016 we undertook a complete rebuild of the robot, preserving all possibilities of the first version and adding quite a bit more. All newly added mechanical parts are made off stainless steel now.

The circuitry used is very similar to that developed for our <Rotomoton> robot, although we used a different kind of stepping motor (4-phase, 0.45 Ohm coil resistance, 1.2mH inductance), requiring a much higher current of up to 4.5A per winding. Two stepping motors are use for bending the steel blades and two more steppers for the bow motion. The bows, 70cm in length, are mounted verticaly, facing each other on the central tube of the robot. Here we made use of V-belts with rosin on the flat outside. The belts run over 10 cm diameter aluminium wheels. Positioning of the bows against the blades is achieved with two bi-directional solenoids, PWM-controlled by the bowing PIC-microprocessors. A sensor mounted on the bow arm makes precise positioning possible. Thus bowing speed as well as bow pressure can be user controlled as separate parameters. Since motor speed can be controlled by the software in the range of 0.5 Hz to 5 Hz, the bowing speed ranges from 160cm/s to 1.57m/s.

The individual beaters for the steel blades are driven by strong solenoids. Musical dynamics are implemented by applying pulse width modulation techniques in the driver circuits. However, the dynamic range is different from blade to blade and also depends on the amount of bending applied by the stepping motors.

<Flex> uses five microprocessors, all of them Microchip PIC type 18F2525. Two processors are used for the bows, two for the trapezoidal threads and one for the beaters and lights.
The instrument is mounted in a TIG-welded triangular structure with three large and sturdy wheels, 40 cm in diameter each. The instrumental part is mounted on the wheel base with springs.

The pictures below are taken by Moniek Darge, during the first construction in our workshop, 2002. They are arranged in chronological order such that you can follow the process of the making visually.

These are some pictures taken by the author during the rebuild in 2016:

Midi implementation table (Version 2.0):

Flex listens to midi channel 12 (0-16) [13 if counting 1-16]

Note numbers

BEATERS

function velocity

remarks

72 beater on inside of front of Pi Saw 1-127
73 beater on outside of front of Pi Saw 1-127
74 beater on inside of backside of Pi Saw 1-127
75 beater on outside of backside of Pi Saw 1-127
76 beater on inside of front of e-Saw 1-127
77 beater on outside of front of e-Saw 1-127
78 beater on inside of back of e-Saw 1-127
79 beater on outside of back of e-Saw 1-127
BOWS BOW MOVEMENT (Motor)   ramping is implemented, to avoid stalling
48 frontbow motor, turn clockwize 1-127

velocity controls motor speed

Motor can be further modulated with the key pressure command

  frontbow motor, stop turning 0  
49 frontbow motor, turn counterclockwize 1-127

velocity controls motor speed

Motor can be further modulated with the key pressure command

  frontbow motor, stop turning 0  
50 backbow motor, turn clockwize 1-127

velocity controls motor speed

Motor can be further modulated with the key pressure command

  backbow, stop turning 0  
51 backbow motor, turn counterclockwize 1-127

velocity controls motor speed

Motor can be further modulated with the key pressure command

  backbow, stop turning 0  
BOWS BOW POSITION and PRESSURE    
60 pulse and hold frontbow to Pi-Saw 1-127 the bowing force is controlled with the velo byte. After the note on, the bow pressure can be further modulated using the key pressure command
  release pusher, return to center 0 sets bow pressure on the Pi-blade to 0
61 pulse and hold frontbow to e-Saw 1-127 the bowing force is controlled with the velo byte. After the note on, the bow pressure can be further modulated using the key pressure command
  release pusher, return to center 0 sets bow pressure on the e-blade to 0
62 pulse and hold backbow to Pi-Saw 1-127 the bowing force is controlled with the velo byte
  release pusher, return to center 0 sets bow pressure on the Pi-blade to 0
63 pulse and hold backbow to e-Saw 1-127 the bowing force is controlled with the velo byte
  release pusher, return to center 0 sets bow pressure on the e-blade to 0
64 center frontbow such that it does not touch any saw blade 1-127

velobyte is irrelevant.

this command will also stop the bow motor

    0

release the holding magnet (clutch)

also stops the bow motor

65 center backbow such that it does not touch any saw blade 0

velocity byte is irrelevant.

this command will also stop the bow motor

    0

release the holding magnet

also stops the bow motor

KEY PRESSURE      
48 frontbow motor speed CW 0-127 note must be on prior to sending the command
49 frontbow motor speed CCW 0-127 note must be on prior to sending the command
50 backbow motor speed CW 0-127 note must be on prior to sending the command
51 backbow motor speed CCW 0-127 note must be on prior to sending the command
60 key pressure frontbow on the Pi-blade 0-127

controls the bow pressure for the front bow

note must be on prior to sending the command

61 key pressure frontbow on the e-blade 0-127

controls the bow pressure for the front bow

note must be on prior to sending the command

62 key pressure backbow on the Pi-blade 0-127

controls the bow pressure for the back bow

note must be on prior to sending the command

63 key pressure backbow on the e-blade 0-127

controls the bow pressure for the back bow

note must be on prior to sending the command

BENDING MOTORS

midi controller nr

  parameter  
1

bending controller for position of Pi-Saw thread motor

0= fully stretched (lowest pitch)

100 = fully bent (highest pitch)

0-100

will be changed to use msb, lsb
2

bending controller for position of e-Saw thread motor

0 = fully stretched (lowest pitch)

100 = fully bent (highest pitch)

0-100
3 speed of rotation for the Pi motor 0-127
4 speed of rotation for the e motor 0-127
20 msb Pi-saw position 0-127
21 msb e-saw position 0-127
40 Minimum bow force 0-127

Implemented for firmware development

default = 75

41 Attack bow force on direction changes 0-127

Implemented for firmware development

default = 112

42 Hysteresis control 0-127

for bow centering PID regulation

Implemented for firmware development only

default = 56

43 Attack pulse duration for the bow movement 1-127 default = 127
44 Ramping speed for the bow motors 1-127 default = 64
45 sets the destination for the pitch bend command  

0-63 = pitchbend applies to Pi-blade

64-127 = pitchbend applies to e-blade

46 Ramping speed for the stretching motors 1-127 default = 64
       
       
52 lsb Pi-saw position 0-127
53 lsb e-saw position 0-127
66 Power on/off switch 0 or >0 Power off resets all controllers
123 All notes off anything stops all activity, does not reset controllers
Program change not implemented    
Pitch bend sets the bending position of either the Pi or the e blade, depending on ctrl #45 0-32639 0 = fully strechched. (lowest pitch)

remarks:

Back to Logos-Projects page : projects.html Back to Main Logos page:index.html To Godfried-Willem Raes personal homepage... To Instrument catalogue Pictures from M&M performances using Flex

Nederlands:

Robot: <FLEX>

<Flex> behoort tot de kategorie robots met niet precies bepaalbare, of -preciezer gesteld- voorspelbare, toonhoogte. Het klankopwekkingsprincipe is hetzelfde als dat wat ten grondslag ligt aan zowel de zingende zaag als aan de flexatone: gebogen veerstalen platen die gestreken (zingende zaag) of aangeslagen (flexatone) worden, waarbij de toonhoogte afhangt van de mate van buiging van de platen. Roestvast staal of veerstaal is hiervoor, vanwege de grote hardheid, het meest geschikte materiaal. Net zoals <ThunderWood> kan ook deze robot gezien worden als een realisatie van een geluidskategorie in de reeks intonarumori van Luigi Russolo, met name in dit geval de 5e groep (metaalgeluiden).

De beide uit roestvast staal gemaakte klankbladen waarmee <Flex> is opgebouwd, kunnen zowel worden aangeslagen als gestreken. Daartoe wordt elk zaagblad uitgerust met niet minder dan 4 elektromagnetische kloppers en van een motorgestuurd aanstrijkmechanisme. De strijksnelheid zowel als de ritmiek kunnen perfekt worden gestuurd. Voor de strijkstokken gebruikten we stappenmotoren voorzien van een loopwiel met een diameter van 100 mm. De motorsnelheid kan gestuurd worden tussen 0.5 en 5 omwentelingen per sekonde. Dat brengt een regelbare boogsnelheid met zich van 0.16m/s tot 1.57m/s. De beweging van de boog wordt gestuurd met per boog een enkele zware bidirektionele elektromagneet. Hierdoor kan elke boog zowel tegen het Pi- als tegen het E-blad worden gedrukt en gestreken. Worden beide magneethelften geaktiveerd, dan keert de boog terug naar de middenstand en raakt hij geen van beide bladveren. Sensoren gemonteerd op de armen van de boog maken een nauwkeurige regeling mogelijk. Aangezien we twee strijkstokmechanismen voorzagen, is het perfekt mogelijk beide bladen tegelijkertijd aan te strijken, maar ook, om eenzelfde zaagblad met twee bogen tegelijkertijd te strijken, wat vaak de produktie van multiphonics voor gevolg heeft, ook al is het resultaat in dit geval niet helemaal voorspelbaar noch betrouwbaar.

De voedingen voor flex zijn erg uitgebreid, vooral vanwege de grote vermogens nodig voor de aansturing van de stappenmotoren.


Bouwdagboek (vanaf 2016 in het engels):

Omdat ons vaak wordt gevraagd hoeveel werk en tijd kruipt in, en nodig is voor, het bouwen van een muzikale robot, hebben we -zoals we het eerder deden voor <Belly>, ook voor <Flex> een beknopt bouwdagboek bijgehouden. De ervaring met Belly leerde ons bovendien dat het bijhouden van zo'n dagboek ook erg nuttig is wanneer naderhand bepaalde details moeten worden bijgesteld of onderdelen vervangen.

TODO:

Afmetingen & andere technische specifikaties:

Design en konstruktie: dr.Godfried-Willem Raes

Atelier medewerkers:

Music Composed for <Flex>:


(Terug) Naar logos-projekten:

projects.html

(Terug) Naar Logos' index-pagina:

index.html

Naar Godfried-Willem Raes official web page... Naar katalogus instrumenten

gebouwd door

Godfried-Willem Raes

Pictures from M&M performances using Flex

Robody Picture with <Flex>:

Emilie De Vlam en Godfried-Willem Raes (foto Bart Gabriel), Flex version 1.0, 2002.

Some pictures from performances with Flex version 1.0.

 

Last update: 2016-06-22 by Godfried-Willem Raes


Service manual:

Flex can be taken apart for servicing into following modules:

1.- Overview:

2.- Wiring diagram for adressing of flex components:

Source code for the front bow PIC controller

Source code for the back bow PIC controller

Source code for the Pi-blade PIC controller

Source code for the e-blade PIC controller

Circuit diagram for the motor control boards: (<Flex> uses four of these boards)

These are the boards for the movement of the Pi and e blades:

These are the boards for the two bow motors:

3. Calculations for trapezoidal threads:

Thread length: 100 cm, diameter 12 mm. Material: Stainless Steel.

Total number of revolutions: 335 (thread speed), or 67000 stepping motor full steps.

Usefull length in <Flex> = 70 cm or 234 revolutions. (= 46800 stepping motor steps)

So, at 5 Hz rotation speed (= 5x60=300 rpm), we have a linear displacement velocity of 1.5 cm/s. In order to get a speed of 1 second for the full 70 cm traject, we would need a rotational speed of 234 Hz (= 14000 rpm). However, the maximum motor-speed will be ca. 1500 rpm, so the linear movement will be limited to 7.5 cm /s.

4. Solenoid data:

Bidirectional solenoids: August Laukhuff, trakturmagnet 24V, Force 24N.

5. Bow belts: GATES QPIII XPZ 1800

6. Stepping motors: MAE HY200 3424 470 A8. Current: 4,7 A/phase, 8-wires. Holding force: 193 Ncm. In full-step mode the motor does 200-steps/rotation Hence, for 60 rpm we need a clock frequency of 200 Hz. For 1500 rpm we need a clock frequency of 5000 Hz

7. Power supply modules:

8. Tilt sensors: Penny & Giles, STT280/60/P2. Datasheet or Murata SCA121T-D07 [Datasheet].

9. Power-on relay: PCF-112D1M (12V coil voltage, 25 A switching current).