Non, la raspberry n'est pas encore alimenté par mon montage. Oui, je dis shield mais en vérité c'est juste une carte avec un l293d
- Oracid aime ceci
fralaric n'a pas encore ajouté d'ami.
Posté par fralaric
- 28 août 2023 - 07:35
Pourrais-tu nous donner les liens de ces tutos ?
http://wiki.ros.org/fr/ROS/Tutorials
Posté par fralaric
- 26 août 2023 - 06:42
Bonjour,
dans le but de me former à ROS et la technologie du LIDAR, je souhaite faire un robot roulant très simple (4 roues, 2 moteurs droite/gauche, LIDAR) téléopéré dans un premier temps. La structure que j'aimerai réaliser dans un premier temps ressemble à ça :
Du coup, deux parties compliqués pour moi :
- la partie ros
- la partie méca/elec avec les alim/commande moteur
C'est à dire tout ^^
J'aimerai ensuite récupérer les données du LIDAR et les visualiser sur un des outils de ROS (rviz?)
Avant que je m'attaque à ça, j'ai quand même des doutes sur mon schéma. De ce que je sais des LIDAR, c'est à dire pas grand chose, ils produisent une grosse quantité de données. Or, j'aimerai que la raspebrry communique en wifi avec mon PC, vous pensez que c'est envisageable ? J'ai pas fais les calculs mais j'imagine que ça dépend de la connexion aux internets de mon logis.
Posté par fralaric
- 24 août 2023 - 03:35
Merci pour ta réponse, ne te prend pas la tête, j'ai déjà compris l'idée du volatile et c'est déjà bien.
Je pense arrêter ce projet, j'ai fais ce que je voulais déjà (aller d'un point à A à un point B en calculant l'angle roue et la distance à effectuer).
J'ai une autre idée, plus complexe, je vais faire un nouveau sujet pour ça.
Posté par fralaric
- 14 juin 2023 - 07:56
Bonjour, j'ai un peu avancé sur mon projet, du moins sur la partie "mécanique". Je suis en train de vouloir faire marcher le moteur mais celui ci ne veux pas tourner, ou alors de manière très aléatoire (j'ai l'impression).
Voilà le montage (à la place de la pile, j'ai une alim qui délivre un courant continu de 5v, la carte arduino est elle aussi alimenté)
Et le code :
#define moteur1_PWM 4 #define Moteur_sens1 3 #define Moteur_sens2 2 int PWM=0; // Variable PWM image de la vitesse void setup() { Serial.begin(9600); // Ouverture du port série et debit de communication fixé à 9600 bauds pinMode(moteur1_PWM, OUTPUT); // Pin 10 Arduino en sortie PWM pinMode(Moteur_sens1, OUTPUT); // Pin 4 Arduino en sortie digitale pinMode(Moteur_sens2, OUTPUT); // Pin 5 Arduino en sortie digitale } void loop() { digitalWrite(Moteur_sens1,HIGH); // Activation de la broche A+ du L293D digitalWrite(Moteur_sens2,LOW); // Désactivation de la broche A- du L293 digitalWrite(moteur1_PWM,HIGH); // Envoi du signal PWM sur la sortie analogique 10 delay( 10000 ); // Attendre 1 secode avant le lancement de la fonction accélération Acceleration(); // Lance la fonction Acceleration() } // Le temps d'accélération est réglage avec le changement du delay void Acceleration(){ for (PWM = 40; PWM <= 255; PWM++){ // Boucle pour augmenter PWM de 0 jusqu'à 255 delay( 10 ); // Attendre 10ms avant la prochaine incrémentation du PWM digitalWrite(Moteur_sens1,HIGH); // Activation de la broche A+ du L293D digitalWrite(Moteur_sens2,LOW); // Désactivation de la broche A- du L293 analogWrite(moteur1_PWM,PWM); // Envoi du signal PWM sur la sortie analogique 10 Serial.print("Valeur PWM : "); // Affichage sur le moninteur série du texte Serial.println(PWM); // Affichage sur le moninteur série de la valeur PWM } delay( 3000 ); // Attente de 3 secondes Deceleration(); } // Le temps de décélération est réglage avec le changement du delay void Deceleration(){ for (PWM = 255; PWM >= 0; --PWM){// Boucle pour dminuer PWM de 255 jusqu'à 0 delay( 10 ); // Attendre 10ms avant la prochaine décrémentation du PWM digitalWrite(Moteur_sens1,HIGH); // Activation de la broche A+ du L293D digitalWrite(Moteur_sens2,LOW); // Désactivation de la broche A- du L293D analogWrite(moteur1_PWM,PWM); // Envoi du signal PWM sur la sortie analogique 10 Serial.print("Valeur PWM : "); // Affichage sur le moninteur série du texte Serial.println(PWM); // Affichage sur le moninteur série de la valeur PWM } // Arrêt du moteur digitalWrite(Moteur_sens1,LOW); // Désactivation de la broche A+ du L293D digitalWrite(Moteur_sens2,LOW); // Désactivation de la broche A- du L293D delay( 3000 ); // Attente de 3 secondes Acceleration(); // On relance l'accélération du moteur }
Mon problème, j'ai réussi à le faire tourner au début, les 3 premières lignes de la loop, mais ensuite la partie accélération, en jouant avec analogwrite, ne marche pas. Il y a un bruit provenant du moteur mais rien d'autre.... le moteur est un petit moteur 3-6V donc normalement il devrait tourner. Vous voyez quelque chose de choquant niveau montage ou code ? Sinon, peut-être que mon L293D ne marche plus trop, j'ai rien pour le tester (oscillo)