Aller au contenu


Photo

Robot et récupération


  • Veuillez vous connecter pour répondre
14 réponses à ce sujet

#1 Geeks

Geeks

    Membre

  • Membres
  • 26 messages

Posté 06 septembre 2012 - 08:30

Bonjour,

Cela fait quelques temps que j'ai mes cartes Arduino qui dorment ! J'ai un peu de temps devant moi ces jours-ci donc je pense refaire un peu de robotique.

Au niveau électronique, je recherche un schéma fiable pour récupérer des signaux de type PWM utilisé sur des équipements RC. 1 à 2ms avec un neutre réglable sur 1.5ms. Le type de moteurs employés seront de 3V à 12V et la tension d'entrée sera elle variable aussi. Soit 6, 9 ou 12V. Voila, ça c'est pour la petite recherche subsidiaire en robotique.

Je vais devoir commencer par un châssis. J'en possède déjà un qui serais à rénové, ou bien je le laisse en l'état et je m'attaque à un nouveau système. Le mieux serais pour moi qu'il soit suffisamment grand et porteur pour resté dehors même pendant un sale temps (pluie, neige, vent).

J'aimerais, au final, que sa commande passe par du wifi (j'ai récupéré un point wifi qui semble fonctionné et que je peux bricolé afin de récupérer des infos vers une carte Arduino). A voir si c'est utilisable ! Un retour de caméra type webcam serais un plus. A ce niveau là, je recherche le principe du retour d'image et de paramètres vers un PC. De l'autre je recherche aussi le principe pour passé du PC vers le robot.

Pour le moment je suis bloqué là. Je vais essayer de me basé le plus possible vers la récupération, sauf s'il faut que je crée certains composants.

J'espère que ce sujet vaste sera réalisable. Je ne suis pas pressé à la minute. Je dirais que c'est un projet qui doit s’étaler sur minimum 6 mois voir 1 ans.

Merci d'avoir pris le temps de me lire.

#2 Astondb8

Astondb8

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 111 messages
  • Gender:Male
  • Location:Paris

Posté 06 septembre 2012 - 06:17

Au niveau électronique, je recherche un schéma fiable pour récupérer des signaux de type PWM utilisé sur des équipements RC. 1 à 2ms avec un neutre réglable sur 1.5ms. Le type de moteurs employés seront de 3V à 12V et la tension d'entrée sera elle variable aussi. Soit 6, 9 ou 12V. Voila, ça c'est pour la petite recherche subsidiaire en robotique.


Aucun probleme
Une simple carte Arduino un pont en H et te RC
Les RC fournissent des PWM donc a toi de regler la longueur d'impullsion désirée. Il faudrait tester, mais peut etre que même sans Arduino cela pourait fonctionner en adaptant les niveaux de ton recepteur au niveaux PWM de ton pont en H

Je vais devoir commencer par un châssis. J'en possède déjà un qui serais à rénové, ou bien je le laisse en l'état et je m'attaque à un nouveau système. Le mieux serais pour moi qu'il soit suffisamment grand et porteur pour resté dehors même pendant un sale temps (pluie, neige, vent).


Là, je dirais qu'il suffit de choisir ton matériau de construction.
Mais tout va bien
Le bois si il est peint ou verni
le métal aussi pour les même raisons mais trop lourd
L'alu pas de probleme le plastique, la fibre de verre ou de carbone est parfait etc...

Tu n'as que l'embara du choix

J'aimerais, au final, que sa commande passe par du wifi (j'ai récupéré un point wifi qui semble fonctionné et que je peux bricolé afin de récupérer des infos vers une carte Arduino). A voir si c'est utilisable ! Un retour de caméra type webcam serais un plus. A ce niveau là, je recherche le principe du retour d'image et de paramètres vers un PC. De l'autre je recherche aussi le principe pour passé du PC vers le robot.


Là je ne comprend plus car tu parlais de RC mais bon, va pour la WiFi.
Il existe des carte WiFi pour Arduino.
Mais il te faudra aussi faire la commande WiFi donc deux Arduino Une dans la télécommande et l'autre dans le robot.

Pour le moment je suis bloqué là. Je vais essayer de me basé le plus possible vers la récupération, sauf s'il faut que je crée certains composants.


La récupe pourquoi pas, mais créer des composants ??? ;)

J'espère que ce sujet vaste sera réalisable. Je ne suis pas pressé à la minute. Je dirais que c'est un projet qui doit s’étaler sur minimum 6 mois voir 1 ans.


Là, cela depend de toi.
De tes capacités, de ton energie, de ton travail etc...

Cdlt
Yves

 


#3 Geeks

Geeks

    Membre

  • Membres
  • 26 messages

Posté 07 septembre 2012 - 02:57

Bon, je pense que dans un premier temps, je vais commencer par prendre un châssis tout fait que je modifierais ensuite.
Je pense d'ailleurs me prendre un rover5. Pour ceux qui connaissent http://www.gotronic.fr/art-chassis-rover5-2wd-12394.htm.

Ensuite, je pense que la seconde étape va être le pilotage Arduino / moteurs. Je pense partir d'un L293E mais j'ai des doutes quand à son fonctionnement.
Pour moi, j'ai besoin de 4 sorties au niveau arduino. 2 sorties pwm et 2 sorties sens de rotations. Hélas, le peu de schéma que j'ai trouvé mentionne plus de sorties Image IPB
A confirmé bien sûr.

Pour l'alimentation, déjà je ne partirais pas d'une tension de 7.2V. trop faible pour l'exercice. Une batterie au plomb de 12V viendra alimenté le tout. A savoir: Arduino, L293D (donc moteurs) et je ferais des alimentations à base de régulateur et de condensateur afin de limité le risque de parasite due à l'oscillation des régulateurs.

Pour le moment j'en suis là, tant que je n'aurais pas réussi cette portion, je n'avancerais pas sur les autres. Par conte je me suis permis d'en parlé à titre indicatif.

Maintenant, j'aimerais avoir plus de détails, des exemples de schéma pour la partie puissance. Comment est piloter le L293E ? Si nous ne trouvons pas de solution adéquat, j'ai déjà dans ma ligne de mir une solution 100% arduino mais moins malléable que la solution L293E et quelques composants autour.

En espérant que j'arriverais à trouver une solution fiable.

#4 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 07 septembre 2012 - 03:27

Une recherche L293E te donne la datasheet du composant, il y a un exemple de schéma avec moteurs et entrées qui confirme qu'il faut 6 pin d'entrées. J'ai une carte avec l298 qui utilise un pin vitesse et deux pin direction par moteur (donc 6 pin puisqu'elle gère deux moteurs). Ca ne me semble pas incohérent que ça soit aussi le cas pour le l293e.
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#5 Geeks

Geeks

    Membre

  • Membres
  • 26 messages

Posté 07 septembre 2012 - 03:47

Ah wai, en effet, ça ne le fera pas ! S'il faut 6 pins, je vais droit au mur !

Pour le datasheet, t'inquiète pas, je l'ai. Et c'est aussi ce qui rentrais en contradiction avec les infos que j'avais.

Ou encore mieux, plus simple : http://www.gotronic.fr/art-kit-motor-shield-arduino-12432.htm . Par contre faudra-t-il autant de sorties ?

Sinon, j'ai aussi la solution bis. Utiliser une autre technique ancestrale ne nécessitant plus que 2 pins en PWM :)

Reprenons le fonctionnement d'un servomoteur. 1ms = sens 1. 1.5ms = neutre. 2ms = sens 2. C'est simple, je l'ai déjà mis en oeuvre facilement. A ce moment là, je pense prendre un NE544 qui lui sortira sur un pont en H. Le tout multiplié par deux.

Mais par contre si t'a un exemple de code pour piloter les 6 pins, je veux bien jeter un oeil.

#6 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 07 septembre 2012 - 04:12

Je n'ai jamais utilisé de shield, donc je ne peux pas te dire ce que ça vaut ...
Personnellement, j'utilise ça : http://www.evola.fr/product_info.php/controleur-moteur-l298-double-pont-p-131 . Il y a un exemple de code dans la fiche technique. Après, c'est mâââl, c'est du tout fait. ^_^

La solution servo doit marcher aussi, je n'ai jamais testé par contre.
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#7 Geeks

Geeks

    Membre

  • Membres
  • 26 messages

Posté 07 septembre 2012 - 07:03

Ben, c'est simple, il faut voir le bon côté des choses.

Ton système à l'air pas mal ! Mais je pense à juste titre que si c'est la solution, il me manque des infos.

A ce que j'ai regardé de la platine, t'a 4 entrées de pilotage. Il en faut 6 ! Il en manque 2. Ou alors je suis miro Image IPB

Ma solution de partir sur des signaux PWM est compatible avec un pic. Les NE544 ont l'air obsolètes Image IPB

Donc à moins de prendre des variateurs tout fait, ou un sheld ou bien de bricoler des L293, L298, voir de prendre ton système, je voie pas beaucoup de solution "simple" et "fiable".

P.S. Indique moi ton raccordement avec ton module. J'avoue, j'ai beau savoir pas mal de chose, il y a là un mystère que je ne veux pas laisser impuni Image IPB

#8 Geeks

Geeks

    Membre

  • Membres
  • 26 messages

Posté 07 septembre 2012 - 09:20

Et bien ! J'en ai mis du temps Image IPB

Bon alors, l'idée est de prendre un L298. Il permet une plage intéressante de fonctionnement et intègre donc deux pont en H.

Si j'ai bien compris, on génère un signal PWM qui va sur la patte EnA. Ensuite si In1 et In2 = 0, il ne se passe rien. Si nous avons In1 = 1 et in2 = 0 alors on a le sens 1. En revanche si on a in1 = 0 et in2 = 1 alors ona le sens 2. Comme il y a deux moteurs en général à piloter et que l'on a les deux ponts en H, on a bien deux fois 3 sorties à utilisé.

Solution pour allégé la carte principale. Prendre une arduino nano et l'utiliser au travers d'une liaison I2C via le L298. Avantage, on gagne en nombre e sorties. Inconvénient, il se trouve que ça ne simplifie pas toujours le soft. Solution bis basé sur deux cartes et une communication entre carte, c'est de faire une liaison série Tx/Rx. Sauf que c'est moins simple à gérer niveau code.

Solution bis des deux autres solution. Utiliser de l'I2C avec un pic genre 12F lui-même chargé de piloter le L298.

Comme j'ai pas envie de me cassé la tête avec un soft qui soit éloigné du soft principal pour la commande des chenilles, je n'utiliserais pas cette solution à base d'I2C.

En revanche, je pense dédié un port su'une arduino méga genre 8 (pwm EnA), 9 (in1), 10 (in2) puis 11 (pwm EnB), 12 (in4), 13 (in3). Le reste étant dédié au reste du projet.

Bon, j'attends votre confirmation concernant mon interprétation du plan du datasheet.

Merci.

#9 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 07 septembre 2012 - 09:47

C'st bien ça : un pin EnA (ou EnB) pour la vitesse, les pin (I1, I2) et (I3, I4) contrôlent le sens.

Le code que j'utilise pour Froggy (voir les liens dans ma signature pour une petite vidéo du robot bouge plus ou moins). Il s'agit simplement d'avancer / reculer (c'est plus ou moins le code de la doc adapté à mon exemple).

int pinI1=8; //define I1 port
int pinI2=9; //define I2 port
int pinI3=7; // I3
int pinI4=10; // I4

int speedpinA=11; //define EA(PWM speed regulation) port
int speedpinB=5; // EB

void setup()
{
  pinMode(pinI1,OUTPUT); //define this port as output
  pinMode(pinI2,OUTPUT);
  pinMode(speedpinA,OUTPUT);
  
  pinMode(pinI3,OUTPUT); //define this port as output
  pinMode(pinI4,OUTPUT);
  pinMode(speedpinB,OUTPUT);
}

void loop()
{
  analogWrite(speedpinA,100); //input a value to set the speed
  analogWrite(speedpinB,100); //input a value to set the speed
  delay(2000);
  
  digitalWrite(pinI1,LOW);  // DC motor rotates clockwise
  digitalWrite(pinI2,HIGH);
  digitalWrite(pinI3,LOW);  // DC motor rotates clockwise
  digitalWrite(pinI4,HIGH);
  analogWrite(speedpinA,100);  
  analogWrite(speedpinB,100);
  delay(2000);
  
  digitalWrite(pinI1,HIGH); // DC motor rotates anticlockwise
  digitalWrite(pinI2,LOW);
  digitalWrite(pinI3,HIGH); // DC motor rotates anticlockwise
  digitalWrite(pinI4,LOW);
  analogWrite(speedpinA,100);
  analogWrite(speedpinB,100);
  delay(2000);
  
  digitalWrite(pinI1,HIGH); // DC motor stop rotating
  digitalWrite(pinI2,HIGH);
  digitalWrite(pinI3,HIGH); // DC motor stop rotating
  digitalWrite(pinI4,HIGH);

  delay(2000);
}

R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#10 Geeks

Geeks

    Membre

  • Membres
  • 26 messages

Posté 07 septembre 2012 - 10:19

Ok !

Je viens de me rendre compte qu'on pouvait gagner une cortie avec un 4077. Regarde dans le schéma du sheld arduino ici : http://arduino.cc/en/uploads/Main/arduino_MotorShield_Rev3-schematic.pdf

Et la petite explication code là : http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.ArduinoExpertMoteurCCDFRduinoMotorDriver1ATestSimple

Comme tu remarquera on simplifie gravement le code que tu m'a donné. Mais j'avoue, j'ai bien eu du mal au départ à extraire la logique ! Mais j'y suis arrivé. Bon une étape de moins, dès que je peux je prendrais ce qui me faut. Et là, c'est pas pour demain Image IPB

En attendant, je vais poursuivre mes investigations.

#11 Geeks

Geeks

    Membre

  • Membres
  • 26 messages

Posté 11 septembre 2012 - 07:29

Bonsoir,
Changement de cap pour le pilotage !!!

Je pense faire une télécommande dans une valise. Une carte arduino méga <==>xbee<=ONDE RADIO=>xbee<==>arduino méga==>Interface moteur.

Avez-vous déjà tenter cela ? Quelle protocole avez-vous utilisé. Existe-t-il d'autres solutions ?

merci pour vos informations.

#12 Astondb8

Astondb8

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 111 messages
  • Gender:Male
  • Location:Paris

Posté 11 septembre 2012 - 08:33

Je
E vois pas ce que cela change.
Tes commandes passent en émission plutôt que sur un câble. Mais elles restnt les mêmes.

 


#13 hugobiwan

hugobiwan

    Membre

  • Membres
  • 38 messages

Posté 11 septembre 2012 - 10:19

Kikoo.

Module Wireless APC 220 : il relaie signal serial RX TX entre deux arduinos, portee 800 m. Se branche direct. Alimenté par les cartes arduino.
Cout environ 35 euros(ebay).

Ou alors led infrarouge et capteur IR avec IR library de Ken Shiriff (encore moins couteux). Tu pourrais aussi le piloter avec une telecommande de TV (une seule carte necessaire).

Cordialement,

@hugobiwan

#14 Geeks

Geeks

    Membre

  • Membres
  • 26 messages

Posté 25 septembre 2012 - 04:36

Kikoo.

Module Wireless APC 220 : il relaie signal serial RX TX entre deux arduinos, portee 800 m. Se branche direct. Alimenté par les cartes arduino.
Cout environ 35 euros(ebay).

Ou alors led infrarouge et capteur IR avec IR library de Ken Shiriff (encore moins couteux). Tu pourrais aussi le piloter avec une telecommande de TV (une seule carte necessaire).

Cordialement,

@hugobiwan



#15 Geeks

Geeks

    Membre

  • Membres
  • 26 messages

Posté 25 septembre 2012 - 04:45

Et re !

Bon alors voila que je vais compliquer un peu les solutions. Je ne peux pas utiliser de wifi car c'est du 2.4 Ghz et ça ne passe pas dans l'eau. J'expliquerais pourquoi plus tard ! Idem pour les xbee !

Si je part sur l'idée de l'infra-rouge, j'aurais alors:
Arduino 1 -> TX -> Infra émission -> Infra réception -> RX -> Arduino 2
Arduino 1 <- RX <- Infra réception <- Infra émission <- TX -> Arduino 2

A ce moment là, je vais me renseigner pour faire mon propre module de transmission bi-directionnel sous 35Mhz voir moins ! A 35 Mhz, on descend facile à 3 mètres de profondeur. A 41 Mhz on descends à 2 mètres. Donc à 17 Mhz, je devrais être peinard !

Petite question au passage, pour essayer ! Si je fais une connexion de type infra-rouge, on passe bien par une communication UART ? Non ? A ce moment là, quelle type de code serais susceptible de convenir ?

J'avance à petit pas, je préfère afin de bien faire le bon choix et la bonne technologie.

Une autre question de type mécanique cette-fois ! J'ai la possibilité de prendre un châssis tout fait! Mais je préférerais partir sur une conception perso. A ce moment là, quelle kit de chenilles et surtout de moto-réducteur pourrait convenir ? Idem, faut-il que le prenne des moyeux exprès ?

Merci pour vos réponses.




0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users