<Flex>

Godfried-Willem RAES

Version 1:
2002

archive file

[Nederlandstalige versie]

 

Robot: 'Flex' (version 1.0)

This musical robot consists of an assembly of singing saw or flexatone like soundsources: blades of hardened stainless steel struck by solenoid 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 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. The circuitry used is very similar to that developed for our <Vibi> and <Rotomoton> automats, 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 Basic Stamps are used as controllers for the blade steppers. The firmware source code is available from this site. The firmware can be upgraded on this robot, without removing the microcontrollers from their boards. However, in order to do this, the instrument should be in a reset state: power switched on but no pincode sent (or high power supply switched off under software controll).

The stainless steel blades can also be bowed by two individually steerable bowing motors and two attack solenoids. Here again we decided to use stepping motors to drive a round nylon belt with rosin over two aluminium wheels 100mm in diameter. 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 bow assembly is pressed against the blades by the action of a couple of Lucas-Ledex solenoids. The solenoids used are: Ledex STA series push tubular solenoid type nr. 195207-228. They have a cold DC resistance of 19.1 Ohm. The nominal working voltage, at which the coils can be activated indefinitly long is 13.8V. At 10% duty cycle, a voltage of 44V may be applied. The release of the bow follows under gentle springload. Positioning of the bows against the blades is achieved with four softshift solenoids, PWM-controlled by four PIC controllers. The bows, 70cm in length, are mounted vertically, facing each other on the central tube of the robot.

To prevent the all-notes-on on startup bug in the very first versions of earlier automats, this instruments should receive a pincode (241) before the motor and solenoid power supply is switched on. The software does program the microcontrollers and timer chips on board, prior to switching on the high power supply. In total, this automat is equiped with 8 PIC microcontrollers: 4 for each of the stepping motors, 4 for each of the bow movement softshift solenoids.

The instrument is mounted in a TIG-welded triangular structure with three large and sturdy wheels, 40 cm in diameter each.

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

Midi implementation:

Note numbers

BEATERS

function velocity

GMT-function in g_n*h.dll

(programmers information)

72 beater on inside of front of Pi Saw 1-127 Flex_Beat 0, velo
73 beater on outside of front of Pi Saw 1-127 Flex_Beat 1, velo
74 beater on inside of backside of Pi Saw 1-127 Flex_Beat 6, velo
75 beater on outside of backside of Pi Saw 1-127 Flex_Beat 7, velo
76 beater on inside of front of e-Saw 1-127 Flex_Beat 2, velo
77 beater on outside of front of e-Saw 1-127 Flex_Beat 3, velo
78 beater on inside of back of e-Saw 1-127 Flex_Beat 4, velo
79 beater on outside of back of e-Saw 1-127 Flex_Beat 5, velo
BOW PUSHERS      
60 pulse and hold pushers moving frontbow to Pi-Saw 1-127

Flex_Beat 9, 255, internally called by

Flex_SoftshiftBow 1, 2, 15

  release pusher, holding bow in a central position 0

 

Flex_SoftshiftBow 1,3,15

61 pulse and hold pushers moving frontbow to e-Saw 1-127

Flex_Beat 8, 255, internally called by

Flex_Softshiftbow 1, 1,15

  release pusher, holding bow in a central position 0

Flex_SoftshiftBow 1, 3,15

62 pulse and hold pushers moving backbow to Pi-Saw 1-127

Flex_Beat 11,255, internally called by

Flex_Softshiftbow 2,2,15

  release pusher, holding bow in a central position 0 Flex_Softshiftbow 2,3,15
63 pulse and hold pushers moving backbow to e-Saw 1-127

Flex_Beat 10, 255, internally called by

Flex_SoftshiftBow 2,1,15

  release pusher, holding bow in a central position 0

Flex_SoftShiftbow 2, 3, 15

64 center frontbow such that it does not touch any saw blade 0 Flex_Softshiftbow 1, 3, 15
65 center backbow such that it does not touch any saw blade 0 Flex_Softshiftbow 2, 3, 15
66 release all power of pushers on the frontbow 0 Flex_SoftShiftBow 1,3,0
67 release all power of pushers on the backbow 0 Flex_SoftShiftBow, 2,3,0
BOWS      
48 frontbow motor, turn clockwize 1-127 Flex_Bow 2, 127 + velo
  frontbow motor, stop turning 0 Flex_Bow 2, %False
49 frontbow motor, turn counterclockwize 1-127 Flex_Bow 2, velo
  frontbow motor, stop turning 0 Flex_Bow 2, %False
50 backbow motor, turn clockwize 1-127 Flex_Bow 1, 127 + velo
  backbow, stop turning 0 Flex_Bow 1, %False
51 backbow motor, turn counterclockwize 1-127 Flex_Bow 1, velo
  backbow, stop turning 0 Flex_Bow 1, %False

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

starts task Flex_PiRot in the dll, requested position in the Task(%Flex_PiRotTask).level field. Actual position kept in Flex.PiPos. Positioning precision is 1% of full traject. Since the usefull length (length between the end sensors) of the threads are 70 cm long, this corresponds to 7mm of movement.

The procedure called to make the motor turn is:

Flex_Bend 1, velo

2

bending controller for position of e-Saw thread motor

0 = fully stretched (lowest pitch)

100 = fully bent (highest pitch)

0-100

starts task Flex_eRot in the dll, requested position in the Task(%Flex_eRotTask).level field. Actual position kept in Flex.ePos. Positioning precision is 1% of full traject

The procedure called to make the motor turn is:

Flex_Bend 2, velo

  remark: using midi commands, it is not possible to controll the stepping speed of the thread motors.    

METACOMMANDS

midi controller nr

    the use of the following controllers by composers that are not a member of the M&M ensemble should be avoided.

3 =

%WSB_CTRL_VELO

0-127    
9 = %WSB_CTRL_SPEED 0-127    
14 = %WSB_CTRL_DENS 0-127    
Program change      
  0 = stop the running piece.    
  18 = %Flexing   = declared constant %Flexing - a demo piece by Godfried-Willem Raes
  19 = %Flexes   = declared constant %Flexes - part of Technofaustus by Godfried-Willem Raes
       

 

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 of aangeslagen 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 100mm. 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 vier elektromagneten. Twee vertikale duwers en twee horizontale 'softshift' elektromagneten. Hierdoor kan elke boog zowel tegen het Pi- als tegen het E-blad worden gedrukt en gestreken. Worden beide magneetkoppels geaktiveerd, dan keert de boog terug naar de middenstand en raakt hij geen van beide bladveren. 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.

De schakeling, gebruik makend van 2 BS2 Basic Stamps, waarmee de zware stappenmotoren die de zaagbladen bewegen wordt aangestuurd ziet eruit alsvolgt:

De firmware kode voor de BS2 stamps kan worden gedownload vanuit ons 'stamps'-directory op deze site. Download de file Flexstepper.bs2. Het bestukte en opgebouwde board waarop twee van de hierboven getoonde schakelingen gemonteerd zijn wordt getoond op deze foto:

De kode voor de besturing van de boogmotoren is op twee parameters na -vanwege de grotere omloopsnelheid van de motoren- identiek aan die voor de veerbuigmotoren. Ook bij deze motoren kan de draairichting worden gestuurd, zodat over en weer strijken mogelijk is. Uiteraard kan ook de rotatiesnelheid worden gestuurd. De schakeling is iets eenvoudiger omdat er geen sensoren nodig waren.

De software voor alle vier de PIC microcontrollers kan gedownload worden in de chips zonder deze uit de schakeling te verwijderen of welkdanig onderdeel ook te moeten demonteren. Voor dit doel is een speciale kabeltje beschikbaar dat met de seriele poort van een PC met het Stamp programma moet worden verbonden. Niettemin moet de 5V spanning op <Flex> aanwezig zijn om deze chips te kunnen programmeren.

De voedingen voor flex zijn erg uitgebreid, vooral vanwege de grote vermogens nodig voor de aansturing van de stappenmotoren. In totaal omvat de voeding 5 boards. Een eerste board verzorgt de voeding van de on-board logika: 3 afzonderlijk geregelde 5V spanningen. Een tweede, zorgt voor een negatieve, een derde voor een positieve spanning voor de kloppers en de pushers. Deze twee spanningen worden uit een enkele transformator betrokken. Het vierde en vijfde board, identiek van opbouw, zijn voor de voeding van de stappenmotoren.

De stappenmotoren en duwmagneten worden gevoed alsvolgt:

Voor de bipolaire spanning van de pushers en de beaters, bouwden we voor de positieve spanning volgende op zich weinig originele 10 Ampere voeding op:

De voeding voor de draadstang stappenmotoren kwam eruit te zien alsvolgt:

De interne logika van de <Flex> robot is opgebouwd uit 2 helften, die we resp. rechter en linkerhersenhelft hebben gedoopt. De rechterhersenhelft bevat volgende schakelingen en PC boards:

De linkerhersenhelft, die de mikrokontrollers voor de boogmotoren, de timers voor de kloppertjes en de boogduwmagneten omvat, kompleteert deze schakelingen alsvolgt:

Voor details van de timerchip schakeling verwijzen we naar onze webpagina over <Rotomoton>, aangezien voor die automaat eenzelfde PC board werd gebruikt.

Bouwdagboek:

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.

 

Afmetingen & andere technische specifikaties: (voorlopig)

Design en konstruktie: dr.Godfried-Willem Raes

Atelier medewerkers:


(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)

 

Last update: 2016-04-19 by Godfried-Willem Raes


Service manual:

1.- Overview:

2.- Wiring diagram for adressing of flex components:

2. Calculations for trapezoidal threads:

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

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

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

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

3. Solenoid data:

Vertical bow pushers: Ledex STA series push tubular solenoid type nr. 195207-228. They have a cold DC resistance of 19.1 Ohm. The nominal working voltage, at which the coils can be activated indefinitly long is 13.8V. At 10% duty cycle, a voltage of 44V may be applied. (At 19.6V , 50% duty cycle; at 28V 25% duty cycle). Price: ca. 14 US$ a piece.

Horizontal softshift solenoids: Ledex Softshift type 5EP, number 193015-026. Cold DC resistance 10.3 Ohm. Nominal working voltage at 100% duty cycle: 14V (force = 8 Newton), at 50% (force = 18 Newton) , 20V, at 25% (force= 30Newton) , 28V at 10%, 44V (force= 50 Newton) . Price (no joke): 144US $ a piece...