Pour envoyer une variable (8bits) entre un ordinateur et une Basic Stamp, via RS323, utilisant COM – porte série ou USB convertisseur. RS232 est un protocole asynchrone (comme MIDI RS485 et TCP-IP). Chaque côté à son propre horloge pour compter les un et les zéros.
Du côté PC et Basic Stamp, il faut délimiter la vitesse de la communication (en anglais dit ‘baud rate’). On utilise le standard: 9600 bits /second 8-bit no-parity inverted. (en langage PBasic 9600 bits/sec = 16468). Page 279 du guide. C’est une vitesse d’environ 8 bits (ou la lettre « A ») par milliseconde.
‘POUR TRANSMET UNE VALEUR AU PC: dans ce code PIN 1 est connecté au TX ‘du connecteur DB9
………OUTPUT 1
………main: ‘label
………SEROUT 1, 16468, [« salut »] ‘envoyer une byte
………goto main
‘POUR LIRE UNE VALEUR VENANT DU PC: dans ce code PIN 0 est connecté au RX du connecteur DB9
………INPUT 0
………switch var byte
………switch = 255
………main:
………SERIN 0,16468, [switch]
………goto main
Le PC peut lire la donnée depuis Macromedia Director et le Serial Xtra de Geoff Smith, MAX MSP ou Pure Data.
LINGO EXEMPLE CODE:
__moviescript__
global theXtra, theXtraName, theXtraFilename
on startmovie
–SEE SAMPLE MOVIE AT PHYSCIAL BITS TO GET A LICENSE OR DEMO VERSION
end
on LoadXtraFileIfNecessary
if scanXtraList() = false then
if the platform contains « Macintosh » then
if ( getProp(the environment, #osVersion) contains « 10. » ) then
set theXtraFilename to theXtraName& ».osx »
else
set theXtraFilename to theXtraName& ».os9″
end if
else
set theXtraFilename to theXtraName& ».x32″
end if
— So it is not open
openxlib the pathname&theXtraFilename
end if
end
on openThePort
global theports, keyspan
theports = string(FindPorts())
keyspanstart = offset(« /dev/cu.USA19Q », theports) –USA19
keyspanend = offset(« 1.1 », theports)
keyspan = chars(theports, keyspanstart, keyspanend +2)
theXtra.OpenPort(keyspan)
theXtra.setProtocol(9600, « n », 8, 1)
end
on stopMovie
if objectP( theXtra ) then
theXtra.ClosePort()
set theXtra to 0
end if
closexlib
clearglobals
end
__passthroughframescript__
global theXtra
on exitFrame me
if theXtra.IsPortOpen() = 0 then openThePort
if theXtra.IsPortOpen() = 1 then go the frame + 1
end
__exitframescript__
global theXtra, prox
on exitframe
readStamp
go the frame
end
on ReadStamp
if theXtra.CharsAvailable( ) > 0 then
prox = theXtra.ReadNumber()
end if
end
Source: hehe.org.free.fr | CC