J'ai finalement reçu le paquet cadeau hier midi et j'ai commencé les premiers tests hier soir.
Après quelques soudures sur la carte Arduino pour lui ajouter des pinoches et l'installation des drivers sur le PC... voici quelques remarques pour ne pas perdre trop de temps avec cet Arduino mini pro ATmega 328 3.3V
http://www.arduino.cc/en/Main/ArduinoBoardProMiniCette page
http://www.arduino.cc/en/Guide/ArduinoProMini montre comment brancher la carte USB/TTL et précise que l'Arduino est "powered" par la carte... bin, en fait la carte USB/TTL (Sparkfun FTDI) doit être montée dans l'autre sens !! et il faut brancher le pack de batteries pour que ça fonctionne (par exemple 4 NiMh de 1.2V branchées entre GND (ground/la masse) et RAW (+4.8V dans mon cas)
Après, ça roule tout seul. Le premier test a été de faire clignoter une led (pas la peine d'en chercher une, il y en a une verte sur la carte, branchée sur la sortie 13). On lance le prog Arduino sur le PC, on charge File, exemples, digital, blink, on clique sur le bouton Upload, ça compile, ça transfert, ça clignote !
Bon, même chose pour tester un servo... fastoche aussi !
Après, on s'essaye à faire quelque chose soi-même, et comme il faut bien commencer par quelque chose d'aussi utile que possible pour la suite, voici un bout de programme qui permet de déterminer la durée de l'impulsion à envoyer au servo de PAN modifié 360° pour qu'il s'arrete... et d'afficher la valeur sur le PC:
Pour l'utiliser, il faut lancer le serial monitor du prog Arduino puis taper 1 ou 2 (et entrée) pour changer la vitesse et le sens de rotation... quand le servo est arreté, on relève la valeur affichée dans la fenêtre du serial monitor.
On peut faire mieux en utilisant l'hyperterminal de Windows à la place du serial monitor (PS: l'hyperterminal n'existe plus sur Vista, faut le récupérer sur le web)... plus de reset de la carte Arduino et pas besoin de taper entrée après avoir tapé 1 ou 2:
- Code: Tout sélectionner
// réglage arrêt du servo Panoramique
#include <Servo.h>
#define PAN_PIN 9
#define PAN_IDLE 1500 //us
Servo pan_servo;
int inByte = 0; // incoming serial byte
int idle_value;
void setup() {
idle_value = PAN_IDLE;
pan_servo.attach(PAN_PIN);
Serial.begin(9600);
}
void loop() {
//réglage
if (Serial.available() > 0) {
inByte = Serial.read()-48; // get incoming byte:
switch (inByte){
case 1:
idle_value++;
break;
case 2:
idle_value--;
break;
}
pan_servo.write(idle_value);
Serial.println(idle_value);
}
}
Cette valeur peut remplacer le 1500 sur la ligne "#define PAN_IDLE 1500 //us". Le servo ne devrait pas tourner après le prochain Upload ou reset.
Ah, une dernière remarque: mon servo partait en butée pendant les uploads de sketches sur la carte
En fait, pendant cette phase les pinoches ne sont pas définies en sortie et l'entrée du servo doit se retrouver plus ou moins en l'air. J'ai juste ajouté une résistance de 22k entre l'entrée de commande du servo et la masse et le servo ne bouge plus.