mardi 26 février 2013

[Arduino] Uploader un programme après avoir séparé les pins d'auto-reset

Dans le précédent post, nous avons supprimer la connexion de 2 points sur la carte pour éviter le reboot au lancement du Serial.
Si vous avez fait cette manipulation sur une de vos carte ou si vous possédez une carte n'ayant pas d'auto-reset, vous vous rendrez compte rapidement que vous ne pourrez plus Uploader de sketch et que vous obtiendrez l'erreur suivante :
Téléchargement terminée 
avrdude: stk500_getsync(): not in sync: resp=0x00
Lorsque vous appuyer sur le bouton reset de la carte arduino, le Bootloader se lance et permet pendant un cours instant d'uploader un sketch sur la carte. En supprimant le point de soudure entre les 2 points nous avons enlevé la possibilité à la carte Arduino de faire un reset de manière automatique.
Il faut donc le faire manuellement.
Pour cela :
1) Appuyer sur le bouton reset de la carte Arduino
2) Cliquer sur le bouton Uploader du logiciel Arduino
3) Attendre que la Led RX clignote une fois
4) Relâcher immédiatement votre doigt du bouton reset (Si une autre Led clignote le temps de lacher le bouton il faudra recommencer)
5) Laisser le logiciel Uploader le sketch sur la carte Arduino

Si le message Téléchargement terminé s'affiche sans message d'erreur, votre sketch a été envoyé correctement sur la carte

[Arduino] Eviter le reset à l'ouverture du Serial

Pour éviter que la carte Arduino reboot à chaque ouverture du Serial, on peut supprimer le petit point de soudure entre 2 connexions sur la carte (voir ci-dessous).



lundi 25 février 2013

[Arduino] Lire une ligne Serial

On peut avoir besoin d'interagir via une carte Arduino par Serial (USB ou RXTX) en envoyant un ou plusieurs caractères.
Pour lire une ligne entrée dans le Serial, il suffit d'écrire le code suivant :


String msg;
int ledPin = 13;

void setup(){
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
}

void loop(){
  if(Serial.available() > 0){
    msg="";
    while (Serial.available()){
      delay(2);//Pour laisser le temps au buffer
      char c =Serial.read();
      msg += c;
    }
    Serial.println(msg);
  }
}


Ce code attend une entrée dans le Serial, lit les caractères entrés et les ré-écrit dans le Serial.

Cela permet par exemple d'allumer/éteindre une Led branchée sur l'arduino en fonction de l'entrée dans le Serial.

String msg;
int ledPin = 13;

void setup(){
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
}

void loop(){
  if(Serial.available() > 0){
    msg="";
    while (Serial.available()){
      delay(2);//Pour laisser le temps au buffer
      char c =Serial.read();
      msg += c;
    }
    if(msg.equals("on")){
      digitalWrite(ledPin, HIGH);
    }else if(msg.equals("off")){
      digitalWrite(ledPin, LOW);
    }
  }
}

Avec le code suivant : 
- en écrivant "on", vous allumerez la led sur la pin 13
- en écrivant "off", vous éteindrez la led sur la pin 13


vendredi 22 février 2013

[Windows] Installation de node.js + premier exemple

1) Aller sur http://nodejs.org/
2) Cliquer sur INSTALL
3) Créer un dossier dédier nodejs dans votre espace perso (C:/Users/[NOM_UTILISATEUR])
4) Copier l'exemple présent en bas de page et le coller dans un fichier example.js :
var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
5) Ouvrir un prompt (Attention si vous venez d'installer node.js et que vous aviez déjà un prompt d'ouvert il faudra en ouvrir un autre pour prendre en compte le PATH)
6) Aller dans le répertoire créé et taper la commande :
node example.js
7) Ouvrer un navigateur et taper http://127.0.0.1:1337/