Dr.Godfried-Willem RAES

Kursus Experimentele Muziek: Boekdeel 2: Live Electronics

Hogeschool Gent : Departement Muziek & Drama


<Terug naar inhoudstafel kursus>

 

Afbeelding BS2-module

 

2502:

BS2 stamp

 

Enkele jaren na de introduktie van de BS1 Basic Stamp, verscheen (1995) een in vele opzichten verbeterde en versnelde versie van deze module. De BS2 module is verpakt in een brede 24pins DIL behuizing. Het aantal vrije I/O pinnen werd uitgebreid tot 16 en het interface met de host-komputer maakt nu gebruik van een echte seriele poort. Voor het programmeren dient van de STAMP2 editor en downloader gebruik te worden gemaakt. De EEPROM die hier werd toegepast is iets ruimer bemeten: 2kBytes terwijl het RAM gebied nu 32 bytes beslaat!. Ook het Basic werd wat uitgebreid met volgende instrukties:

SHIFTIN

SHIFTOUT

COUNT erg bruikbaar voor frekwentiemetingen!

XOUT

RCTIME

FREQOUT

DTMFOUT bruikbaar voor remote controlls

 

De resolutie kon -mede door de hogere kloksnelheid- voor tijdmetingen opgedreven worden tot 2 microsekonden. Bovendien, en dit zal ons als musici bijzonder interesseren, kan dit systeempje Baudrates tot en met 50000kBaud aan! Dit wil zeggen: het is zelfs snel genoeg voor eenvoudige MIDI-toepassingen. We zeggen eenvoudige, omdat uit praktische ervaring bleek dat de Stamp2 de midi-snelheid niet kan bijbenen wanneer de bytes al te vlug na elkaar worden doorgestuurd. We moeten in de software van het midi-zendende toestel 'pacing' toepassen: dwz. kleine wachttijden tussen de door het systeempje te herkennen midi-bytes.

We hopen in de loop van het akademiejaar met zowel BS1 als BS2 in de vorm van een live-elektronika werkgroepje aan de slag te kunnen gaan!

 

Enkele projektsuggesties:

Pitch to Midi converters

Draadloos kode-overdrachtsysteem

Midi naar Analoog konversie

Theremin met Sonar-input

Mini-synthesizer

Fuzzy-logic system

Parallel processing network

 

Alvorens aan de slag te gaan is het absoluut onontbeerlijk dat de studenten de manuals van de betreffende controllers grondig doorlezen en zich vertrouwd maken met de -overigens erg eenvoudige- besturingssoftware.

Uiteraard dienen de studenten over een of meer BS1 of BS2 systeempjes te beschikken. Het aanschaffen van een volledig ontwikkelsysteem is wel leuk maar niet noodzakelijk. De hardware ervoor is op een stuk gaatjesprint met een handvol onderdelen in enkele uurtjes ineen te zetten. De software is ook op het Amerikaanse BBS van Parallax beschikbaar evenals via internet:

ftp://ftp.parallaxinc.com/pub/acrobat/stamp2_manual_V1.8.pdf

 

Een door mezelf uitgewerkte toepassing is de besturingskomputer voor het pedaal van de player-piano. De Stamp kode daarvoor ziet eruit alsvolgt:

'* R_PEDAL1.BS2 *

'* source code by *

'* Dr.Godfried-Willem RAES *

'* Stamp2 Hardware version 1.0 *

'*******************************

' Midi-code receiver/controller for player piano right pedal

' De hardware maakt gebruik van een 12Volt ruitenwissermotor (Ford) met

' tandwielkast voor de vertraging. De polariteit wordt omgewisseld voor de sturing van de draairichting.

' 25.10.1995: First version

' 27.01.1996: first attempt to download.

' Needs specific Stamp-cable + female-female adapter (Lesbian)

' O.K. hardware - midi info reaches pin 0

' Reliabibity depends on speed of optocoupler...

' lets get faster types. 4N27..

' Timing for 10 bits now is max. 300microsec. instead of 320ms. lots of jitter!

' 28.01.1996: Code logic: Tested with 4N27 optocoupler: this seems to work...

' 29.01.1996: Midi in must be paced, not only for the pedal-electronics, but even more so , for the slowness of the motor mechanics.

 

' DECLARATIONS:

Controller CON 176

Pedalbyte VAR byte :' recognition byte

Waarde VAR byte :' uitstuurwaarde

Oldwaarde VAR byte

MinWaarde VAR byte

Stijgend VAR bit

 

' INITIALISATION:

DIR0 = 0 :' midi input

DIR1 = 0 :' sensor switch

DIR2 = 0 :' sensor switch

DIR3 = 0 :' not used

DIR4 = 0 :' dip switch channel select INB D0

DIR5 = 0 :' dip switch channel select INB D1

DIR6 = 0 :' dip switch channel select INB D2

DIR7 = 0 :' dip switch channel select INB D3

DIR8 = 0 :' used as PWM output!

DIR9 = 0 :' nc

DIR10 = 0 :' nc

DIR11 = 0 :' nc

DIR12 = 0 :' nc

DIR13 = 0 :' nc

DIR14 = 0 :' nc

DIR15 = 1 :' motor rotation direction

Pedalbyte = Controller + INB :' high nibble - dip switches

:' ON-ON-ON-ON = 0000

Waarde = $0

PWM 8,0,10

Stijgend = 1

 

' START OF RUN-CODE:

Begin:

Oldwaarde = Waarde :' save previous value for comparison

SERIN 0, $C, [WAIT (Pedalbyte)] :' wait for arrival of status byte

SERIN 0, $C, [Waarde] :' get value

 

IF Waarde = 0 THEN NoP:

IF Waarde = Oldwaarde THEN Begin: :' geval doe niks

IF Waarde > Oldwaarde THEN MoP:

IF Waarde < Oldwaarde THEN LeP:

 

MoP: :' geval meer pedaal (>)

GOSUB Morepedaal:

GOSUB Freezemotor: :' put in hold-mode

GOTO Begin:

:' geval waarde 0

NoP:

GOSUB Lospedaal:

GOSUB Freezemotor: :' put in hold mode

GOTO Begin: :' sluit lus voor geval 0

 

LeP:

GOSUB Lesspedaal:

GOSUB Freezemotor:GOTO Begin:

:' losprocedure voor wegnemen motorbekrachtiging

Freezemotor:

OUTPUT 8

LOW 8

PAUSE 3 :' 3ms = RC-tijd

INPUT 8

RETURN

 

Lospedaal:

LOW 15 :' draairichting omkeren

PWM 8, 255, 4 :' lossen

PAUSE 3 :' 3ms = RC-time

PWM 8, 0, 20 :' set to 0 Volt

HIGH 15 :' draairichting weer vooruit

OUTPUT 8 :' make pin 8 output

LOW 8 :' let it sink current from cap

PAUSE 3 :' 3ms RC time

INPUT 8 :' back to input for PWM

RETURN

 

Morepedaal:

HIGH 15 :' draairichting vooruit

Stijgend = 1

IF IN2= 0 THEN ExMorepedaal

PWM 8, Waarde << 1, 20 ' << = Rotate left

' equivalent met *2, maar veel sneller

ExMorepedaal:

RETURN

 

Lesspedaal:

LOW 15 :' draairichting achteruit

MinWaarde = Waarde

IF Stijgend = 0 THEN Uitsturen: :' 1e keer omkering draairichting

MinWaarde = Oldwaarde - Waarde

Uitsturen:

Stijgend = 0

IF IN1= 0 THEN ExLesspedaal

PWM 8, MinWaarde << 1, 20

ExLesspedaal:

RETURN


 De handleiding met de volledige beschrijving van de programmeertaal en vele voorbeelden kan zoals gezegd eenvoudig worden gedownload van het internet, via de site van Parallax. De manual is gekodeerd voor Acrobat Reader V3.0. Ook dit programma kan eenvoudig van het internet worden gehaald.

Meer kode- en toepassinsvoorbeelden geschreven door mezelf kan je vinden op de stamp afdeling van de logos site.

Een leuke toepassing is mijn klankautomaat en robot 'Wolkenrijder'


Filedate: 970928

Terug naar inhoudstafel kursus: <Index Kursus>

Naar homepage dr.Godfried-Willem RAES

Cloudrider