Changement de trajectoire voiture Robot avec Arduino

Salut a Tous

j'ai une voiture qui possède quatre roues avec quatre moteurs réducteurs . Mon objectif est d esquiver les obstacles avec la voiture . Pour la détection des obstacles j utilise un capteur Ultrashall . J'aimerais faire tourner la voiture a un angle souhaitée pour esquiver l obstacle mais je ne sais pas comment y procéder car je n ai pas assez d'expérience avec Arduino.

Pour lire l angle je souhaite utiliser un gyroscope

Toute aide ou suggestions sera vraiment la bienvenue

Merci d'avance

ça parait être un projet bien complexe pour débuter avec votre arduino...

Pour bien débuter avec l'arduino, un bon point de départ c'est de lire les tutos d'eskimon

Ensuite Pour bien comprendre les moteurs lire Le mouvement grâce aux moteurs - toujours dans les tutos d'eskimon (commencez par la partie Le moteur à courant continu)

Merci de ta reponse ,

le Fonctionnement d'un moteur a courant continu sur ainsi que le Pwm m'est déja connu .

je veux vraiment m'améliorer dans le controle de moteur.

La question est de comment procéder pour faire tourner ma voiture en un angle voulu avec arduino . Pour cela ai je seulement besoin juste de modifier le rapport cyclique de mon PWM ?

Tout dépend de votre construction mécanique. Si les roues sont fixes il faut en ralentir une par rapport à l’autre ce qui crée un déséquilibre qui fait tourner le véhicule. si les roues sont directionnelles, c’est sur cette partie là qu’il faut jouer en faisant comme quand vous conduisez - vous tournez petit à petit le volant / guidon pour vous aligner sur la nouvelle direction et redressez ensuite.

Tout cela est à compenser en permanence, les differences de surface, frottements et autres perturbations externes génèrent souvent des erreurs par rapport au mouvement théorique et donc il faut utiliser un PID qui en permanence évalue la nouvelle trajectoire par rapport à l’objectif.

Merci de votre réponse

je vais essayer de programmer un PID qui pourra le faire .

Je suppose que le Input de mon PID sera la valeur mesurée de mon gyroscope ?

Quand je serai avancé avec mon projet je pourrai le mettre ici

Merci encore

Ludo12:
Je suppose que le Input de mon PID sera la valeur mesurée de mon gyroscope ?

Est-ce que votre composant fait aussi "boussole" ? (parce que le gyroscope va vous donner une accélération sur les 3 composantes seulement)

je compte utilise un capteur MPU6050 . Il donne également les angles sur les 3 composants.

Est-ce suffisant pour mon projet ?

Le MPU6050 est un gyroscope à trois axes + accéléromètre trois axes. idéalement ce qu'il vous faudrait c'est une boussole qui vous donne directement l'angle vers lequel vous êtes orienté

donc il faut intégrer Un Magnétomètre 3 axes ou capteur d'orientation

vous avez des composants qui font boussole sur cette page (et on les trouve un peu partout, y compris en chine à pas cher)

Merci pour votre réponse,

Donc si j ai bien compris , le gyroscope a trois axes du MPU 6050 ne me donne pas directement l angle d'orientation ?

Cela signifie-t -il que juste un magnétomètre me suffit pour avoir l 'angle d 'orientation ou bien ai je besoin d'avoir un module qui possède le gyroscope , accéléromètre et magnétomètre?

Merci d avance pour le Feedback .

Si vous teniez une boussole dans la main vous savez où se trouve le nord et vers où vous êtes en train de regarder par rapport au nord. Donc si je vous dis "marchez vers l'est pendant 100 pas", vous savez que si vous regardez vers le nord, il vous faut d'abord tourner à droite de 90° pour être face à l'est et ensuite vous pourrez avancer de 100 pas.

--> c'est ce qu'il vous faut, un Magnétomètre / Boussole mesure les angles par rapport au Champ magnétique environnant (donc le champ magnétique terrestre plus toutes les autres perturbations que vous pourriez avoir si par exemple vous avez un aimant proche du composant).

=> c'est celui ci qui peut vous donner l'orientation "absolue" de votre appareil, même au repos.

ensuite d'autres composants ajoutent d'autres fonctions:

  • un Accéléromètre Mesure l'accélération de votre objets sur 3 axes dans l'espace (X,Y,Z).

=> si l'objet est immobile sur terre, vous n'aurez que l'accélération due à la gravité terrestre qui sera mesurée.

en intégrant une fois on obtient la vitesse de déplacement de l'objet sur les 3 axes, et en intégrant encore une fois, sa position dans l'espace. Le soucis c'est qu'intégrer un truc qui est bruité amplifie le bruit et donc votre vitesse ne va pas être super précise et encore moins la position (sur des déplacements de plus de quelques dizaines de cm) ==> donc un GPS c'est cool pour savoir où on est.

  • un Gyroscope mesure une vitesse angulaire, c'est à dire à quelle vitesse en degrés par seconde votre objet tourne autour de ses 3 axes (X,Y,Z).

=> Si votre objet ne bouge pas, les 3 vitesses angulaires sont nulles. On ne connait donc pas l'orientation initiale de l'objet.

=> Si on connait son orientation initiale, disons que vous le posez toujours "face au nord", alors quand l'objet tourne votre Gyroscope vous donne la vitesse angulaire --> en calculant son intégrale (- par exemple si vous avez tourné à une vitesse angulaire de 3°par seconde pendant 30 secondes, vous savez que vous avez tourné de 90° - ) on trouve la position angulaire et donc on peut savoir à peu près comment on est orienté (avec les même soucis de bruit lors de l'intégration ce qui fait qu'on ne peut pas trop compter sur cette approche sur de long trajets).

Merci de votre réponse

Avez vous par exemple des tutos ou source code ou un magnétomètre est utilise afin que je puisse avoir plus d'informations par rapport a cela ?

Merci d 'avance pour le Feedback