Pour l'interface igepv2-hardware, j'ai décidé d'utiliser un Arduino Duemilanove, qui permet de prototyper rapidement.
La communication se fera via le port USB de l'Igepv2. En effet, les concepteurs de l'Arduino ont eu l'excellente idée d'intégrer à la carte un chipset qui est reconnu comme un port serie.
Le montage des différents modules Tamiya a été très simple et ne m'a pas pris plus de 1h30. Un point positif est que les chenilles sont trouées à intervalle régulier. Je pense m'en servir pour faire de l'odométrie.
Maintenant que tout est branché, il est temps de s'attaquer à la programmation de l'Arduino. Le pont en H du L298 fonctionne ainsi :
IN1 et IN2 permettent de régler le sens de rotation du moteur (cad. la tension est positive ou négative) tandis que ENA permet d'activer d'allumer ou non le moteur (cad. la tension est respectivement non nulle et nulle).
J'ai trouvé sur le site dealextreme.com de la gaine termorétractable. C'est un must-have lorsque l'on soude des fils sur des moteurs ! Le résultat est tout bonnement "professionnel" !
EnA | IN 1 | IN 2 | Status | |
1 | 1 | 0 | Forward | |
1 | 0 | 1 | Reverse | |
1 | 0 | 0 | Brake | |
0 | X | X | Stop |
Pour faire varier la vitesse, on peut faire une PWM sur ENA (qui correspond au principe du hacheur).
Enfin, voici le code Arduino d'une simplicité presque énervante lorsque l'on a fait du micro-controlleur PIC ou 68000
Enfin, voici le code Arduino d'une simplicité presque énervante lorsque l'on a fait du micro-controlleur PIC ou 68000
int EN = 11; int IN1 = 10; int IN2 = 9; int inByte = 0; boolean reverse = false; int speedValue = 0; int MAX_SPEED = 170; void setup() { Serial.begin(9600); pinMode(EN, OUTPUT); pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); establishContact(); } void establishContact() { while (Serial.available() <= 0) { Serial.print('A', BYTE); // send a capital A delay(300); } } void loop() { if (Serial.available() > 0) { // get incoming byte: inByte = Serial.read(); if(inByte == '+'){ speedValue = (speedValue +1) % MAX_SPEED; } else { speedValue = (speedValue - 1) ; if(speedValue < 0) { speedValue = MAX_SPEED; } } if(inByte == 'R') { reverse = !reverse; } forward(speedValue, reverse); Serial.print("new speed : "); Serial.print(speedValue, DEC); Serial.println(reverse ? "forward" : "backward"); } } void forward(int speedValue, boolean reverse){ analogWrite(EN, speedValue); digitalWrite(IN1, reverse); digitalWrite(IN2, !reverse); }
In the final stage, the half is punched free from the "internet". Photochemical machining, identified as|also called|also Cat Toys referred to as} photo etching, is a tightly managed corrosion process which is used to provide complex metallic components from sheet metallic with very fantastic element. The photo etching process involves photo sensitive polymer being applied to a uncooked metallic sheet. Using CAD designed photo-tools as stencils, the metallic is exposed to UV light to go away a design pattern, which is developed and etched from the metallic sheet. Ironing is a sheet metallic working or sheet metallic forming process. It is used to provide a uniform wall thickness half with a excessive height-to-diameter ratio.
ReplyDelete