Cours:ProcessingArduino : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
({{Rouge|Exercices}})
Ligne 7 : Ligne 7 :
 
[http://workshop.gui-aum.com/introduction-arduino/premier-sketch/ex-4-communiquer-avec-processing/ Arduino et Processing]
 
[http://workshop.gui-aum.com/introduction-arduino/premier-sketch/ex-4-communiquer-avec-processing/ Arduino et Processing]
  
={{Rouge|Exercices}}=
+
={{Rouge|Exercice 1}}=
  
 
Vous allez à l'aide des différentes étapes proposées, commander des sorties de la carte Arduino (des leds), à partir d'une interface Processing.
 
Vous allez à l'aide des différentes étapes proposées, commander des sorties de la carte Arduino (des leds), à partir d'une interface Processing.
Ligne 15 : Ligne 15 :
 
Commençons par créer une interaction avec l'utilisateur. Pour ce faire, on détermine une zone cliquable qui sera représentée par un rectangle à l'écran.
 
Commençons par créer une interaction avec l'utilisateur. Pour ce faire, on détermine une zone cliquable qui sera représentée par un rectangle à l'écran.
  
A chaque clic dans cette zone, on enverra le caractère 'T' sur la liaison série.
+
Vous vous servirez bien évidemment de la fonction [http://www.processing.org/reference/mousePressed_.html mousePressed()]
 +
 
 +
{{Question|Créer une fenêtre de taille 500x700}}
  
Vous vous servirez bien évidemment de la fonction [http://www.processing.org/reference/mousePressed_.html mousePressed()]
+
{{Question|Dessiner un disque de diamètre 300, au centre de l'écran  (en utilisant width et height) }}
  
{{Question|Écrire ce premier programme, la carte arduino se contentant de renvoyer ce même caractère que l'on affichera dans la console processing}}
+
{{Question|Afficher un message (printf) à chaque clic}}
  
'''Remarque''' :
+
{{Question|Modifier pour que ce message ne s'affiche que si la souris est dans le disque}}
*Vous regarderez judicieusement [http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.ArduinoExpertSerieDepuisPCReceptionStringProcessing ce lien !]
 
*Serial.write(Serial.read()) permettant de renvoyer directement la valeur reçue
 
*Le programme arduino ressemblera donc à :
 
  
<source lang=c>
+
{{Question|Modifier l'état d'un drapeau (bool isAllume} à chaque clic}
void setup()
 
{
 
  Serial.begin(...);
 
}
 
  
void loop()
+
{{Question|Changer la couleur du disque en fonction de l'état du drapeau (rouge ou noir)}}
{
 
  if (Serial.available())
 
  {
 
      Serial.write(Serial.read())
 
      Serial.write('\n');
 
  }
 
}
 
</source>
 
  
<source lang=c>
+
{{Question|Initialiser la liaison série (new Serial ....) à 115200 bauds/s}}
final int t=400;
 
int couleur=255;
 
  
void setup()
+
{{Question|Envoyer les caractères A ou E (allumer / éteindre), suivant l'état du flag, au clic}}
{
 
  size(t,t);
 
  background(0);
 
}
 
  
void draw()
 
{
 
  fill(couleur);
 
  rect(t/2-t/4,t/2-t/4,t/2,t/2);
 
}
 
  
void mouseMoved()
 
{
 
  if ((mouseX>t/4) && (mouseX<3*t/4)&&(mouseY>t/4) && (mouseY<3*t/4))
 
      couleur=100;
 
  else couleur = 255;
 
}
 
</source>
 
  
 
=={{Bleu|... une action}}==
 
=={{Bleu|... une action}}==
  
Vous disposez sur [[Cours:Shieldinfo|la carte d'extension arduino]] de leds.
+
On modifiera l'état de la led '13' sur une carte Arduino, suivant la valeur du caractère envoyé.
 +
 
 +
{{Question|Configurer la liaison arduino à la bonne vitesse}}
 +
 
 +
{{Question|Configurer les e/s de la carte arduino}}
 +
 
 +
{{Question|Lire l'état de la liaison série, et modifier en conséquence l'état de la led}}
 +
 
 +
 
 +
={{Rouge|Exercice 2}}=
 +
 
 +
=={{Bleu|Plusieurs boutons}}==
 +
 
 +
{{Question|Modifier le programme processing en disposant 2 boutons, l'un pour allumer et l'autre pour ... éteindre !}}
  
{{Question|Modifier le programme arduino pour que la led sur la patte arduino 13 change d'état à chaque appui sur le bouton}}
+
=={{Bleu|côté arduino}}==
  
=={{Bleu|Plusieurs leds}}==
+
{{Question|Quelles modifications devons nous apporter ?}}
 +
 
 +
 
 +
={{Rouge|Exercice 3}}=
 +
 
 +
{{Todo|En utilisant le shieldArduino, écrire le programme répondant au cahier des charges suivant :}}
  
 
Modifions l'interface en disposant désormais 2 boutons, appelés "+" et "-".
 
Modifions l'interface en disposant désormais 2 boutons, appelés "+" et "-".
Ligne 79 : Ligne 66 :
  
 
Le protocole utilisé ( message envoyé sur la liaison série) sera tout simplement le nombre de led à allumer.
 
Le protocole utilisé ( message envoyé sur la liaison série) sera tout simplement le nombre de led à allumer.
 
{{Question|Réaliser les programmes permettant de répondre à ce cahier des charges.}}
 

Version du 9 novembre 2015 à 10:26

Communication Arduino -- Processing

Prise en main

Commencez par consulter le lien suivant :

Arduino et Processing

Exercice 1

Vous allez à l'aide des différentes étapes proposées, commander des sorties de la carte Arduino (des leds), à partir d'une interface Processing.

Un bouton ...

Commençons par créer une interaction avec l'utilisateur. Pour ce faire, on détermine une zone cliquable qui sera représentée par un rectangle à l'écran.

Vous vous servirez bien évidemment de la fonction mousePressed()

Question.jpg Créer une fenêtre de taille 500x700

Question.jpg Dessiner un disque de diamètre 300, au centre de l'écran (en utilisant width et height)

Question.jpg Afficher un message (printf) à chaque clic

Question.jpg Modifier pour que ce message ne s'affiche que si la souris est dans le disque

{{Question|Modifier l'état d'un drapeau (bool isAllume} à chaque clic}

Question.jpg Changer la couleur du disque en fonction de l'état du drapeau (rouge ou noir)

Question.jpg Initialiser la liaison série (new Serial ....) à 115200 bauds/s

Question.jpg Envoyer les caractères A ou E (allumer / éteindre), suivant l'état du flag, au clic


... une action

On modifiera l'état de la led '13' sur une carte Arduino, suivant la valeur du caractère envoyé.

Question.jpg Configurer la liaison arduino à la bonne vitesse

Question.jpg Configurer les e/s de la carte arduino

Question.jpg Lire l'état de la liaison série, et modifier en conséquence l'état de la led


Exercice 2

Plusieurs boutons

Question.jpg Modifier le programme processing en disposant 2 boutons, l'un pour allumer et l'autre pour ... éteindre !

côté arduino

Question.jpg Quelles modifications devons nous apporter ?


Exercice 3

Todo.jpg En utilisant le shieldArduino, écrire le programme répondant au cahier des charges suivant :

Modifions l'interface en disposant désormais 2 boutons, appelés "+" et "-".

Lors de l'appui sur "+" ("-"), une led supplémentaire doit s'allumer (s'éteindre).

Le protocole utilisé ( message envoyé sur la liaison série) sera tout simplement le nombre de led à allumer.