Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
robots:tondobot:tondobot [09/2018] – [HW] fred | robots:tondobot:tondobot [02/2019] (Version actuelle) – [a vide] fred | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== meca ====== | ||
+ | {{: | ||
+ | {{: | ||
+ | {{: | ||
+ | {{: | ||
+ | |||
+ | ===== moteur d" | ||
+ | ==== a vide ==== | ||
+ | * 13v 0,9 amp 58t/mn | ||
+ | * 6v 0,6 amp 16t/ | ||
+ | |||
+ | test sur table a vide avec moteur de laguna: | ||
+ | * petite vitesse 17 tours pour 30s | ||
+ | * grande vitesse 32 tours pour 30s | ||
====== HW ====== | ====== HW ====== | ||
* https:// | * https:// | ||
Ligne 6: | Ligne 20: | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
+ | |||
+ | ===== Pinout Arduino Nano-V3 ===== | ||
+ | |||
+ | ^** **^ **PCINT** | ||
+ | | | PCINT2 | ||
+ | | | PCINT2 | ||
+ | | | | ||
+ | | | | ||
+ | |servo_GD | ||
+ | |servo_AVAR | ||
+ | |ENC_G_B| | ||
+ | |ENC_D_A| | ||
+ | |ENC_D_B| | ||
+ | |Mot_D_L_EN| | ||
+ | |Mot_D_R_EN| | ||
+ | |Mot_D_PWM| | ||
+ | |Mot_G_PWM| | ||
+ | |Mot_G_L_EN| | ||
+ | |Mot_G_R_EN| | ||
+ | |||
+ | |||
+ | ==== Module BTS7960B ==== | ||
+ | ^ A. Nano ^ FNC ^ n ^ n ^ FNC ^ A. Nano | | ||
+ | | Mot_X_R_EN | ||
+ | | Mot_X_PWM | ||
+ | | Mot_X_IS_R | ||
+ | | VCC | VCC ^ 7 ^ 8 | GND | GND | | ||
+ | |||
+ | |||
====== SW ====== | ====== SW ====== | ||
Ligne 124: | Ligne 167: | ||
===== RC link ===== | ===== RC link ===== | ||
+ | * https:// | ||
+ | * https:// | ||
<code C> | <code C> | ||
/* | /* | ||
+ | Version avec 1 PWM et 2 enable par moteur | ||
*/ | */ | ||
- | # | + | # |
- | # | + | # |
- | # | + | |
- | # | + | # |
- | # | + | # |
- | # | + | # |
- | # | + | |
- | #define PIN_MOT_D_L_IS A6 | + | # |
- | # | + | # |
- | # | + | #define PIN_MOT_G_R_EN 12 //sens avant |
+ | |||
+ | #define PIN_MOT_D_L_IS | ||
+ | #define PIN_MOT_G_L_IS | ||
+ | # | ||
+ | # | ||
- | volatile boolean | + | volatile boolean |
- | volatile unsigned long SERVO_D_Pulse_micros_IT=0,SERVO_G_Pulse_micros_IT=0; | + | volatile unsigned long SERVO_GD_Pulse_micros_IT=0,SERVO_AVAR_Pulse_micros_IT=0; |
- | unsigned long SERVO_D_Pulse_micros=0,SERVO_G_Pulse_micros=0; | + | unsigned long SERVO_GD_Pulse_micros=0,SERVO_AVAR_Pulse_micros=0; |
unsigned long currentMillis; | unsigned long currentMillis; | ||
unsigned long previousMillis = 0; | unsigned long previousMillis = 0; | ||
- | byte LED_cnt_u8; | + | unsigned int LED_cnt_u16; |
- | int MOT_D_CMD_s16, | + | int MOT_D_CMD_s16, |
void update_MOT_D_PWMs(int cmd) | void update_MOT_D_PWMs(int cmd) | ||
{ | { | ||
- | if (cmd>0) | + | if (cmd==0) |
{ | { | ||
- | | + | analogWrite(PIN_MOT_D_PWM, 0); |
- | | + | digitalWrite(PIN_MOT_D_L_EN, LOW); |
+ | | ||
+ | } | ||
+ | else if (cmd>0) | ||
+ | { | ||
+ | | ||
+ | | ||
+ | | ||
} | } | ||
else | else | ||
{ | { | ||
- | cmd = abs(cmd); | + | |
- | | + | digitalWrite(PIN_MOT_D_R_EN, LOW); |
- | | + | digitalWrite(PIN_MOT_D_L_EN, HIGH); |
} | } | ||
} | } | ||
void update_MOT_G_PWMs(int cmd) | void update_MOT_G_PWMs(int cmd) | ||
- | { | + | { |
- | if (cmd>0) | + | if (cmd==0) |
{ | { | ||
- | | + | analogWrite(PIN_MOT_G_PWM, 0); |
- | | + | digitalWrite(PIN_MOT_G_L_EN, LOW); |
+ | | ||
+ | } | ||
+ | else if (cmd>0) | ||
+ | { | ||
+ | | ||
+ | | ||
+ | | ||
} | } | ||
else | else | ||
{ | { | ||
- | cmd = abs(cmd); | + | |
- | | + | digitalWrite(PIN_MOT_G_R_EN, LOW); |
- | | + | digitalWrite(PIN_MOT_G_L_EN, HIGH); |
} | } | ||
} | } | ||
Ligne 182: | Ligne 246: | ||
pinMode(LED_BUILTIN, | pinMode(LED_BUILTIN, | ||
| | ||
- | pinMode(PIN_SERVO_D, INPUT_PULLUP); | + | pinMode(PIN_SERVO_GD, INPUT_PULLUP); |
- | attachInterrupt(digitalPinToInterrupt(PIN_SERVO_D), SERVO_D_change_CB, CHANGE); | + | attachInterrupt(digitalPinToInterrupt(PIN_SERVO_GD), SERVO_GD_change_CB, CHANGE); |
| | ||
- | pinMode(PIN_SERVO_G, INPUT_PULLUP); | + | pinMode(PIN_SERVO_AVAR, INPUT_PULLUP); |
- | attachInterrupt(digitalPinToInterrupt(PIN_SERVO_G), SERVO_G_change_CB, CHANGE); | + | attachInterrupt(digitalPinToInterrupt(PIN_SERVO_AVAR), SERVO_AVAR_change_CB, CHANGE); |
- | + | ||
- | pinMode(PIN_MOT_D_R_PWM, OUTPUT); | + | |
- | pinMode(PIN_MOT_D_L_PWM, OUTPUT); | + | pinMode(PIN_MOT_D_L_EN, |
- | pinMode(PIN_MOT_G_R_PWM, OUTPUT); | + | pinMode(PIN_MOT_D_R_EN, OUTPUT); |
- | pinMode(PIN_MOT_G_L_PWM, OUTPUT); | + | pinMode(PIN_MOT_G_PWM, OUTPUT); |
+ | pinMode(PIN_MOT_G_L_EN, OUTPUT); | ||
+ | pinMode(PIN_MOT_G_R_EN, OUTPUT); | ||
update_MOT_D_PWMs(0); | update_MOT_D_PWMs(0); | ||
update_MOT_G_PWMs(0); | update_MOT_G_PWMs(0); | ||
Ligne 203: | Ligne 269: | ||
} | } | ||
- | void SERVO_D_change_CB() { | + | void SERVO_GD_change_CB() { |
- | static volatile unsigned long D_rise_micros_IT | + | static volatile unsigned long GD_rise_micros_IT |
- | if (digitalRead(PIN_SERVO_D) == HIGH) { | + | if (digitalRead(PIN_SERVO_GD) == HIGH) { |
- | | + | |
} | } | ||
else { | else { | ||
- | | + | |
- | if (SERVO_D_Pulse_micros_IT | + | if (SERVO_GD_Pulse_micros_IT |
- | else SERVO_D_Pulse_micros_IT | + | else SERVO_GD_Pulse_micros_IT |
- | | + | |
} | } | ||
} | } | ||
- | void SERVO_G_change_CB() { | + | void SERVO_AVAR_change_CB() { |
- | static volatile unsigned long G_rise_micros_IT | + | static volatile unsigned long AVAR_rise_micros_IT |
- | if (digitalRead(PIN_SERVO_G) == HIGH) { | + | if (digitalRead(PIN_SERVO_AVAR) == HIGH) { |
- | | + | |
} | } | ||
else { | else { | ||
- | | + | |
- | if (SERVO_G_Pulse_micros_IT | + | if (SERVO_AVAR_Pulse_micros_IT |
- | else SERVO_G_Pulse_micros_IT | + | else SERVO_AVAR_Pulse_micros_IT |
- | | + | |
} | } | ||
} | } | ||
Ligne 233: | Ligne 299: | ||
currentMillis = millis(); | currentMillis = millis(); | ||
| | ||
- | if (currentMillis - previousMillis >= 100) | + | if (currentMillis - previousMillis >= 20) |
- | { // 100ms task | + | { // 20ms task |
previousMillis = currentMillis; | previousMillis = currentMillis; | ||
| | ||
- | | + | |
- | if (LED_cnt_u8 | + | if (LED_cnt_u16 |
else digitalWrite(LED_BUILTIN, | else digitalWrite(LED_BUILTIN, | ||
| | ||
// | // | ||
noInterrupts(); | noInterrupts(); | ||
- | | + | |
- | | + | |
interrupts(); | interrupts(); | ||
//mise en borne et conversion des commande versos | //mise en borne et conversion des commande versos | ||
- | if (SERVO_D_Pulse_micros | + | if (SERVO_GD_Pulse_micros |
- | | + | |
- | | + | if ((SERVO_GD_Pulse_micros > 1480) && |
- | | + | SERVO_GD_Pulse_micros=constrain(SERVO_GD_Pulse_micros, 1000, 2000); |
+ | | ||
| | ||
- | if (SERVO_G_Pulse_micros | + | if (SERVO_AVAR_Pulse_micros |
- | | + | |
- | | + | if ((SERVO_AVAR_Pulse_micros > 1480) && |
+ | SERVO_AVAR_Pulse_micros=constrain(SERVO_AVAR_Pulse_micros, 1000, 2000); | ||
+ | | ||
+ | |||
+ | MOT_D_CMD_s16 = constrain(CMD_AVAR - CMD_GD, | ||
+ | MOT_G_CMD_s16 = constrain(CMD_AVAR + CMD_GD, | ||
+ | |||
+ | update_MOT_D_PWMs(MOT_D_CMD_s16); | ||
update_MOT_G_PWMs(MOT_G_CMD_s16); | update_MOT_G_PWMs(MOT_G_CMD_s16); | ||
| | ||
- | Serial.print(" | + | Serial.print(" |
- | Serial.print(SERVO_G_Pulse_micros,DEC); | + | Serial.print(SERVO_AVAR_Pulse_micros,DEC); |
- | Serial.print(" | + | Serial.print(" |
+ | Serial.print(SERVO_GD_Pulse_micros, | ||
+ | Serial.print(" | ||
Serial.print(MOT_G_CMD_s16, | Serial.print(MOT_G_CMD_s16, | ||
Serial.print(" | Serial.print(" | ||
Ligne 265: | Ligne 342: | ||
Serial.print(" | Serial.print(" | ||
Serial.print(analogRead(PIN_MOT_G_R_IS)); | Serial.print(analogRead(PIN_MOT_G_R_IS)); | ||
- | Serial.print(" | + | Serial.print(" |
- | Serial.print(SERVO_D_Pulse_micros, | + | |
- | Serial.print(" | + | |
Serial.print(MOT_D_CMD_s16, | Serial.print(MOT_D_CMD_s16, | ||
Serial.print(" | Serial.print(" | ||
Serial.print(analogRead(PIN_MOT_D_L_IS)); | Serial.print(analogRead(PIN_MOT_D_L_IS)); | ||
Serial.print(" | Serial.print(" | ||
- | | + | Serial.println(analogRead(PIN_MOT_D_R_IS)); |
- | Serial.print(analogRead(PIN_MOT_D_R_IS)); | + | |
- | Serial.print(" | + | |
+ | |||
+ | | ||
} // end of task | } // end of task | ||
| | ||
} | } | ||
- | } | + | </ |
+ | ====== idées ====== | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
- | |||
- | </ |