Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
logiciels:serial:accueil [2014/05/18 11:33] resonance |
logiciels:serial:accueil [2018/01/22 11:19] (Version actuelle) resonance ancienne révision (2017/12/04 12:07) restaurée |
||
|---|---|---|---|
| Ligne 4: | Ligne 4: | ||
| Cependant il peut arriver que nous ayons besoin de plus de fonctionnalités comme l' | Cependant il peut arriver que nous ayons besoin de plus de fonctionnalités comme l' | ||
| + | |||
| + | **Téléchargement** de tous les codes de cette page : {{.: | ||
| + | ** | ||
| + | Un autre tutoriel (en anglais) détaillant la plupart des cas :** {{: | ||
| + | |||
| ===== Prérequis ===== | ===== Prérequis ===== | ||
| - | Si vous n' | + | Si vous n' |
| + | |||
| + | Une autre notion technique très utilisée ici est celle de **String**, littéralement " | ||
| + | |||
| - | Une autre notion technique très utilisée est celle de **String**, littéralement " | + | <WRAP center round important 60%> |
| + | Avec les Arduino Leonardo, il y a une petite différence, c'est pourquoi les exemples doivent être un peu modifiés. Il faudra peut-être ajouter ajouter un <code cpp> | ||
| + | </ | ||
| ===== Une valeur ===== | ===== Une valeur ===== | ||
| - | Pour l' | + | L' |
| - | Quand il s' | + | Quand il s' |
| Ligne 78: | Ligne 89: | ||
| La fonction **Serial.available()** est toujours utilisée pour connaître combien d' | La fonction **Serial.available()** est toujours utilisée pour connaître combien d' | ||
| - | Dans le code Pure Data, il y a un petit algorithme très pratique pour afficher dans Pure Data les données venant de la Arduino. Il consiste à stocker dans un objet **[list]** toutes les données les unes à la suite des autres ([list prepend]), puis de l' | + | Dans le code Pure Data, il y a un petit algorithme très pratique pour afficher dans Pure Data les données venant de la Arduino. Il consiste à stocker dans un objet **[list]** toutes les données les unes à la suite des autres ([list prepend]), puis de l' |
| {{.: | {{.: | ||
| Ligne 107: | Ligne 118: | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | Méthodes pour recevoir les caractères ASCII | ||
| + | {{: | ||
| ===== serialEvent() ===== | ===== serialEvent() ===== | ||
| Ligne 192: | Ligne 206: | ||
| {{.: | {{.: | ||
| - | Pour le code Arduino, | + | Pour le code Arduino, on découpe une nouvelle fois pour récupérer le second argument. On ajoute aussi nos fonctions. |
| <code cpp> | <code cpp> | ||
| Ligne 299: | Ligne 313: | ||
| * [[http:// | * [[http:// | ||
| * http:// | * http:// | ||
| + | * http:// | ||
| + | * http:// | ||
| + | |||
| + | <code cpp> | ||
| + | // Exemple avec strtok | ||
| + | // http:// | ||
| + | #include < | ||
| + | |||
| + | char sz[] = "Here; is some; sample; | ||
| + | |||
| + | void setup() | ||
| + | { | ||
| + | char *p = sz; | ||
| + | char *str; | ||
| + | Serial.begin(9600); | ||
| + | while ((str = strtok_r(p, ";", | ||
| + | Serial.println(str); | ||
| + | } | ||
| + | |||
| + | void loop(){} | ||
| + | </ | ||
| ===== SerialCommand ===== | ===== SerialCommand ===== | ||
| - | Télécharger la bibliothèque [[https:// | + | Télécharger la bibliothèque |
| + | |||
| + | {{.: | ||
| <code cpp> | <code cpp> | ||
| Ligne 384: | Ligne 421: | ||
| ===== CmdMessenger ===== | ===== CmdMessenger ===== | ||
| - | http:// | + | Plus compliqué mais à noter : http:// |
| + | |||
| + | |||
| + | |||
| + | ===== Réception de valeurs ===== | ||
| + | Même technique, l' | ||
| + | |||
| + | {{.: | ||
| + | |||
| + | <code cpp> | ||
| + | /* | ||
| + | * Serial messages (8) | ||
| + | * Envoie de données de trois capteurs | ||
| + | */ | ||
| + | |||
| + | void setup() { | ||
| + | Serial.begin(9600); | ||
| + | } | ||
| + | |||
| + | void loop() { | ||
| + | Serial.print(analogRead(0)); | ||
| + | Serial.print(" | ||
| + | Serial.print(analogRead(1)); | ||
| + | Serial.print(" | ||
| + | Serial.println(analogRead(2)); | ||
| + | delay(20); | ||
| + | } | ||
| + | </ | ||