Bonjour,
pour satisfaire mes 2 fans (je rigole
) voici l'etat d'avancement :
en plus cela fera office de journal de bord.
J'ai soudé l'ardumoto, mal mais c'est fait. pas touché un fer depuis des années mais j'ai réussi
par contre je n'avais pas commandé les bons borniers et j'ai du me rabattre sur des fils plus des sucres
c'est pas beau mais j'ai pu tester et ... et ... ca marche
2 choses avec ARDUMOTO
- Attention il existe plusieurs versions 1 avec les pins 10,11,12,13 l'autre avec les pins 3,11,12,13
donc si un des 2 moteurs ne tournent pas avec le test fourni par Sparkfun ... vérifier les pins
- Attention a vos soudures, le VIN MAX 18V +/- qui permet d'alimenter les moteurs, faites attention si la soudure ou
la cable sont trop long cela touche le jack d'alim de l'arduino... j'ose pas imaginer ce qu'il pourrait se passer
voila la motorisation est prête je vais me mettre au code (j'en ai trouvé pil poil ce que je voulais)
en attendant la suite
- attente de livraison du module blue tooth
- attente de livraison du Magician Chassis pour 12 € (attention 10€ de port) un chassis + les moteurs + les roues + le truc a piles
http://www.sparkfun.com/products/10825qui a dit que la robotique c'était pas du lego
Bon sinon voici le bout de code que j'ai copié depuis
http://mechomaniac.com/ArduinoMotorControlWithTheArdumotoShield
// Test program for SparkFun Ardumoto board
// Copyright (c) 2009 mechomaniac.com
// To use, connect the Arduino to a computer and send commands using a serial terminal.
// eg AR40# motor A forwards with a speed of 40
// qq modif par chris Juin 2012
// Attention ICI pour certain c'est la pin 10
#define PwmPinMotorA 3
#define PwmPinMotorB 11
#define DirectionPinMotorA 12
#define DirectionPinMotorB 13
#define SerialSpeed 9600
#define BufferLength 16
#define LineEnd '#'
char inputBuffer[BufferLength];
void setup()
{
// motor pins must be outputs
pinMode(PwmPinMotorA, OUTPUT);
pinMode(PwmPinMotorB, OUTPUT);
pinMode(DirectionPinMotorA, OUTPUT);
pinMode(DirectionPinMotorB, OUTPUT);
Serial.begin(SerialSpeed);
}
// process a command string
void HandleCommand(char* input, int length)
{
Serial.println(input);
if (length < 2) { // not a valid command
Serial.println("ERROR");
return;
}
int value = 0;
// calculate number following command
if (length > 2) {
value = atoi(&input[2]);
}
int* command = (int*)input;
// check commands
// note that the two bytes are swapped, ie 'RA' means command AR
switch(*command) {
case 'FA':
// motor A forwards
analogWrite(PwmPinMotorA, value);
digitalWrite(DirectionPinMotorA, HIGH);
break;
case 'RA':
// motor A reverse
analogWrite(PwmPinMotorA, value);
digitalWrite(DirectionPinMotorA, LOW);
break;
case 'FB':
// motor B forwards
analogWrite(PwmPinMotorB, value);
digitalWrite(DirectionPinMotorB, LOW);
break;
case 'RB':
// motor B reverse
analogWrite(PwmPinMotorB, value);
digitalWrite(DirectionPinMotorB, HIGH);
break;
default:
Serial.println("CMD ERR");
break;
}
}
void loop()
{
// get a command string form the serial port
int inputLength = 0;
do {
while (!Serial.available()); // wait for input
inputBuffer[inputLength] = Serial.read(); // read it in
} while (inputBuffer[inputLength] != LineEnd && ++inputLength < BufferLength);
inputBuffer[inputLength] = 0; // add null terminator
HandleCommand(inputBuffer, inputLength);
}
c'est tout simple les commandes sont du style AF50# ou BF60# ce qui signifie
AF50# : A=Moteur A / F=Forward sens de rotation/ 50 la valeur sur 255 0=Stop/ #=Fin de ligne
Enfichez l'ardumoto sur l'arduino
Connectez les moteurs
Connectez l'alimentation des moteurs
Connectez l'arduino sur l'USB
Lancez le sketch IDE
Upload le script
Puis dans le sketch IDE lancer Serial Monitor, mettez la vitesse a 9600
et tapez vos commandes cela doit faire réagir les moteur
voila c'est ce que je voulais
bientot le code en python pour piloter tout ca (j'ai vu que bcp avais fait la meme chose)
A+