serialRead
Prev | Opcodes et opérateurs de l'orchestre | Next

## serialRead

serialRead — Lit des donnée depuis un port série.

## Description

Lit des donnée depuis un port série pour arduino.

## Syntaxe

    kByte serialRead iPort

## Exécution

iPort -- numéro du port obtenu d'un opcode serialBegin.

kByte -- octet de donnée lu.

## Exemples

Voici un exemple de l'opcode serialRead. Il utilise le fichier serialRead.csd.

Example 799. Exemple de l'opcode serialRead.

Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.

    <CsoundSynthesizer>
    <CsOptions>
    ; Select audio/midi flags here according to platform
    -n  ;;;no output
    ;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
    ; For Non-realtime ouput leave only the line below:
    ; -o serialRead.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    sr  = 44100
    ksmps = 500 ; the default krate can be too fast for the arduino to handle
    nchnls = 2
    0dbfs  = 1

    instr 1

    iPort serialBegin "/dev/cu.usbmodemfa131", 9600			;connect to the arduino with baudrate = 9600

    kGain init 16							;read our knob value
    kVal serialRead iPort
    if (kVal != -1) then
        kGain = kVal/128
    endif

    aSig in								;get our audio input and get its rms
    kRms rms aSig*kGain

    kRms = kRms*kRms*255						;scale the rms to a good value for the LED and send it out
    serialWrite iPort, (kRms < 255 ? kRms : 255)			;must be in range: 0-255

    endin
    </CsInstruments>
    <CsScore>
    f 1 0 1024 10 1 1 1 1 1 1

    i 1 0 200
    e
    </CsScore>
    </CsoundSynthesizer>

Le code Arduino correspondant est :

    void setup() {
      // active la communication serie
      Serial.begin(9600);

      // declare la pin 9 comme sortie :
      pinMode(9, OUTPUT);
    }

    void loop() {
      // n'agir que si l'on recoit quelque chose (doit être au taux-k de csound)
      if (Serial.available()) {
        // fixe la brillance de la LED (connectée à la pin 9) a notre valeur d'entree
        int brightness = Serial.read();
        analogWrite(9, brightness);

        // recupere la valeur du bouton rotatif et l'envoyer à csound
        int sensorValue = analogRead(A0);
        Serial.write(sensorValue/4); // ramene dans l'intervalle d'un octet (0-255)
      }
    }
    .....

## Voir aussi

serialBegin, serialEnd, serialWrite_i, serialWrite, serialPrint, serialFlush.

## Crédits

Auteur : Matt Ingalls
2011

Nouveau dans la version 5.14

Prev | Up | Next
serialPrint | Home | serialWrite_i