RS232

La communication vers un ordinateur en RS232

0
(0)

Pour envoyer une variable 8 bits entre un ordinateur et un microcontrôleur Basic Stamp, on utilise le protocole RS232 (souvent appelé RS-323 par erreur) via un port série COM ou un convertisseur USB-série. Le RS232 est un protocole asynchrone, comparable à MIDI, RS485 ou TCP/IP : chaque appareil possède sa propre horloge interne pour synchroniser la lecture des 1 et des 0 sans signal d’horloge séparé.

Pour assurer une communication fiable entre le PC et la Basic Stamp, il est indispensable de définir un débit de communication approprié (appelé baud rate en anglais). Le standard couramment utilisé est 9600 bits/seconde, format 8 bits, sans parité, inversion de signal. En langage PBasic, cette configuration correspond à la valeur 16468 (voir page 279 du guide Basic Stamp). À ce débit, on transfère environ une octet – ou la lettre “A” – par milliseconde, ce qui est suffisant pour la plupart des applications de commande et de mesure.

Ce paramétrage RS232 garantit une liaison série stable entre l’ordinateur et la Basic Stamp pour transmettre des variables, des commandes ou des données capteurs dans vos projets électroniques.

DB9LE PBASIC:

‘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

Cet article a-t-il été utile ?

Cliquez sur une étoile pour l’évaluer !

Note moyenne 0 / 5. Nombre de votes: 0

Aucun vote pour l'instant ! Soyez le premier à évaluer cet article.

Visité 1 fois, 1 visite(s) aujourd’hui

Publications similaires