Dr.Godfried-Willem RAES
Kursus Experimentele Muziek
: Boekdeel 2: Live ElectronicsHogeschool Gent : Departement Muziek & Drama
< Terug naar inhoudstafel kursus> |
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
'* 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 |