Pages: [1] 2 3   Go Down
Author Topic: commander arduino avec pc  (Read 4422 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 86
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à tous, je cherche depuis un moment sur google mais je ne trouve pas ce que je veux.
je voudrais une approche simple pour pouvoir envoyer des données, de mon PC vers l'arduino.
Exemple, je rentre dans un terminal : var = 5 et dans l'arduino var prend la valeur 5.

Et si vous aviez le tuto pour faire une interface graphique, meme ultra moche, ça serait le pied!!
merci smiley
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 24
Posts: 2055
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Il y plein de tuto sur le site Arduino avec qui utilise Processing coté PC.

Sinon, tu peux faire des programmes en C# en utilisant la version gratuite de Visual C#
Après il faut que tu utilises la liaison série pour échanger des messages (voir mon tuto sur les protocoles de communication dans la section Tutoriaux du forum) avec l'Arduino.
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
Jr. Member
**
Karma: 0
Posts: 86
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, je vais chercher sur les tutos du site et regarder les tiens, même si je suis pas certain d'avoir une "prise" pour les liaisons series sur mon arduino  smiley-lol
( précision : je suis un gros noob, et je n'ai même pas la prétention d'un jour ne plus l’être, alors je fais de la "....." mais ça me plait donc soyez indulgents :p )
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 86
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bon je dois etre une grosse tanche, le seul de tes tutos que je trouve concerne les afficheurs 7segments..
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 24
Posts: 2055
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

"Barbudor" avec un B comme "barbe" smiley

J'ai qu'un seul tuto qui s'appelle "Implementer un protocole de communication"
Désole, je suis sur mon téléphone je ne peut pas chercher et te donner le lien direct.

La liaison série c'est le lien de communication que tu utilises avec ton Arduino quand tu la relie au PC.
Sur ton Arduino il y a un composant qui fait l'interface en USB et la liaison série du chip Arduino. Quand tu fait un Serial.println(), tu utilise la liaison série pour envoyer le message au PC.

Sur le PC, Windows (ou Linux) détecte l'interface USB comme une interface série et crée un port COMx qui est celui que choisit dans les menu de l'IDE Arduino.

En c#, pour utiliser la liaison série, il existe une classe SerialPort. Il suffit de créer un objet de cette classe genre :
SerialPort serial("COM1", 9600)
pour en suite pouvoir faire comme sur l'Arduino des serial.write() ou serial.read()
Bien sur les fonctions C# sur l'utilisation du port série sont sensiblement différentes dans leur syntaxe que celle de l'Arduino mais c'est en gros le même principe.

A+
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut,

Si tu débute et que tu veut faire un interface graphique je te conseille (au choix) :
- le C# (langage ~ C/C++) -> plein de truc tout prêt pour faire des interfaces graphiques
- le VB.net (langage type basic) -> comme le C# mais en langage basic

C'est nettement plus simple que d'utiliser processing (dans le cadre d'un gui).
Si tu veut vraiment faire tes gui avec processing -> menu -> examples -> *ouvre les rubriques* -> gui

Pour le protocole tu peut prendre exemple sur le tutoriel de barbudor (voir dans la section tuto du forum).

J'ai aussi fait un systéme avec des commandes reprenant la mise en forme d'une trame nmea :
http://skyduino.wordpress.com/2012/03/22/arduino-parser-une-chaine-de-caracteres/
ça peut te servir de base pour ton code smiley-wink
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 24
Posts: 2055
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ce soir, en 2eme position juste en dessous du tuto sur le 7-segment qui est d'ailleurs de JLB et non pas de moi.

 http://arduino.cc/forum/index.php/topic,102540.0.html
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
Jr. Member
**
Karma: 0
Posts: 86
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

héhé sympa pour tous ces tuyaux !! smiley
je vais essayer de me débrouiller avec tout ça !
enfait je pensais qu'il y aurait une petite interface toute faite existante sur le logiciel d'arduino.
mais ça aurait été sans doutes trop simple ! :p
Je vous dis ce qu'il en suit ! et merci !
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 24
Posts: 2055
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ben puisqu'on parlait de JLB et de ses 7-segments, ils a aussi pondu cette petite chose qui pourrait t'interresser :

http://arduino.cc/forum/index.php/topic,108199.0.html
http://arduino.cc/forum/index.php/topic,107824.0.html
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
Jr. Member
**
Karma: 0
Posts: 86
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai bien lu ce que Barbudor m'a expliqué et j'ai visité le SiteduZero et j'ai compris que je n'avait pas besoin d'aller si loin que ce dont vous me parler pour le moment smiley

Enfait je peux modifier la valeur d'une variable sur mon arduino depuis mon PC et ce grace au "serial monitor" d'après ce que j'ai compris.
cependant lors de mes essais.. devinez quoi ? Ca marche pas :p


const int ledPin=2;
int valPc = 0;
void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
}

void loop() {
valPc = Serial.read();
Serial.println(valPc, DEC);

if (valPc = 1)
{
  Serial.println(valPc,DEC);
  digitalWrite (ledPin, HIGH);
  delay(5000);
 
}
}


Bon, normalement si j'entre la valeur 1 dans le serial monitor, la led devrait s'allumer pendant 5sec, jusqu'a que j'entre une valeur différente, comme "4" par exemple.
Mais le serial moniteur m'envoit du :
-1
1
-1
ET lorsque je rentre un chiffre :
s4

Qu'est-ce que je fais mal ?
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si tu veux que ta led s'éteigne, il faut envoyer un LOW juste après le DELAY
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 86
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

En effet, une erreur de ma part !
Mais ça ne fonctionne toujours pas..
Le serial monitor continu de m'envoyer des series de -1 et 1 sans que j'entre de valeur.
On dirait qu'il m'envoit la valeur du nombre de données contenues dans le buffer de l'arduino.
et que cette valeur oscillerait de -1 à 1.
Je ne comprend pas bien ce qu'il se passe.
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 86
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ahhh, je crois avoir compris mon erreur, il faut lui parler en octets ?
j'essaie et je vois :p


Edit : bon j'ai essayé.. c'est la misère.
J'ai honteusement plagié un programme qui me renvoi juste l'octet reçut. rien de bien compliqué.
Je remarque que si je tape un caractère et que je l'envois depuis le serial monitor, l'arduino me renvoi la valeur décimal ascii du caractère, jusque là, normal c'est ce qu'on lui demande.
Mais lorsque je veux taper un caractère comme le 0, le caractère correspondant c'est "NUL".
Du coup.. ça marche pas.
Je ne sais pas si je suis bien clair, alors un exemple.

Le code de arduino.cc :
int incomingByte = 0;   // variable pour lecture de l'octet entrant

void setup() {
   Serial.begin(9600);   // ouvre le port série et fixe le débit à 9600 bauds
}

void loop() {

   // envoie une donnée sur le port série seulement quand reçoit une donnée
   if (Serial.available() > 0) { // si données disponibles sur le port série
      // lit l'octet entrant
      incomingByte = Serial.read();

      // renvoie l'octet reçu
      Serial.print("Octet recu: ");
      Serial.println(incomingByte, DEC);
   }
}


Maintenant admettons que j'entre dans le serial monitor le caractère "a", il me retourne : 97, et c'est bien normal !
Mais si je veux qu'il me retourne 0 par exemple, je devrais entrer "NUL" en suivant cette logique, mais là.. il me retourne : 78 puis 85 puis 76, soit la valeur décimal des caractères N puis U puis L ..

Ahlalaa tout ça parceque je veux changer une variable sur l'arduino,pendant qu'il tourne depuis mon PC... :p  
« Last Edit: July 05, 2012, 06:05:27 pm by kira » Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 106
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

WhiteCat est un logiciel de contrôle lumière pour le théâtre et le live( http://www.le-chat-noir-numerique.fr ); il contient un module pour communiquer avec arduino ( http://www.le-chat-noir-numerique.fr/whitecat/dokuwiki/doku.php?id=configuration_arduino&DokuWiki=bc9a0aad4fddcc187453b38ac260aae6 ).
Tu aura besoin de demander une licence (gratuite) pour pouvoir sauvegarder ( http://www.le-chat-noir-numerique.fr/whitecat/dokuwiki/doku.php?id=register ).
Je te conseille de télécharger la dernière pre-realase qui te permet de reconfigurer ton arduino depuis le logiciel (WhiteKitten).
Que veux tu faire exactement ?
A+,
Jacques
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 24
Posts: 2055
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Comme je le dis dans mon tuto, il y a 2 type de protocoles :
- ASCII
- Binaires

Quand tu tapes "4" dans ton Serial monitor, tu tape en ASCII et le Serial monitor envoie sur la liaison série les octets 0x34 ("4") puis 0x0D (touche return).

Quand tu écris dans ton code
Code:
val = Serial.read();
tu lis un octet. C'est à dire que tu considère que le protocole est binaire.

Si tu exécutes le code posté par Kira juste au dessus, tu verras s'afficher le code ASCII correspondant à l avaleur des octets envoyés par le Serial monitor.
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Pages: [1] 2 3   Go Up
Jump to: