|
Bienvenue dans le monde de la programmation...
Pour te simplifier la vie la prochaine fois je te conseille de faire comme suit : 1°/ rédige un cahier des charges clair et exhaustif de toute les situations que ton robots va rencontrer 2°/ tu écris un algorithme avec des mots français. Et tu le testes ! Comme ça tu verras si ton algorithme fonctionne. 3°/ tu traduis ton algorithme avec le langage de ton choix (python, Java, c++, code iso de machine outil, etc) l'avantage de cette méthode c'est que tu pourras programmer tous les langages du monde. Par exemple un robot qui avance, dès qu'il est devant un mur il regarde à droite à gauche et va la où il y a le plus de distance avant un nouveau mur, si les deux murs sont trop éloigné pour le capteur, choisir alternativement à droite puis à gauche. Cela donnerait comme algorithme : - Avancer jusqu'à être à moins de 10cm d'un mur. - Tourner à droite, mesurer la distance du prochain mur, la stocker dans A - Tourner à gauche, mesurer la distance du prochain mur, la stocker dans B - Comparer A et B, si A>B, tourner à droite, si B>A, tourner à gauche. Si A = B = infini, C = C+1, si C impaire, tourner à gauche, si C paire tourner à droite. - retourner au début du programme Maintenant que tu as ton algorithme en français, tu prends tes petites jambes et tu le testes dans ta maison/appartement. En respectant scrupuleusement l'algorithme tu vois si tu arrives à évoluer dans ton environnement. Si tu y arrives, l'algorithme est bon, sinon il faut le revoir. (Je l'ai testé ça passe). A partir du moment où l'algorithme est validé, tout défaut de fonctionnement du robot viendras de la traduction dans le langage et/ou dans la définitions des actions. A partir de cet algorithme en français tu peux maintenant passer à la traduction dans le langage que tu veux |
|
Petit up:
Si le truc s'incline de trop, il fait une marche arrière puis il choisit une direction en fonction des capteurs. Le problème est que quand l'inclinaison est trop forte, les capteurs ont une information erronés car ils ont la tête vers les étoiles, et du coup, le truc avance, recul, avance... Reloud. Ce que j'ai fait, c'est que maintenant, une fois la tête dans les étoiles, il choisit d'aller du côté où la pente est la plus douce. C'est génial !!!! Sans transition, j'ai testé les capteurs de couleurs... Comment dire, daltonien ? Le jaune pour du rose ???? Pis la détection à moins de 3 cm.... Mon rêve de faire un canon autonome en fonction des couleurs s'évapore... Entre temps, he suis tombé sur un mec qui a construit exactement ce que j'avais en tête. Une tourelle autonome, et un robot. Tout à déjà été fait en lego j'ai l'impression. En lien, une vidéo souvenir. https://m.youtube.com/watch?v=zrkvxEaOw8Y Mon bricksafe: https://bricksafe.com/pages/Sifflotte/
|
|
Salut,
Quelques évolutions : > le char est maintenant suspendu. C'est une première, je ne sais pas si c'est réussi ou pas. Cela évoluera dans le temps je pense. Et je pense poser sur les chenilles des patins en caoutchouc. > parce que la finalité est s'adjoindre une tourelle autonome, je me suis amusé à ce que la dite tourelle reste de niveau malgré les obstacles. Niveau fluidité, c'est pas génial... Mais c'est marrant à regarder, C'est le mini vérin qui fait pivoter l'ensemble hub/moteur oscillateur des capteurs. Comme pour l'ocillation des capteurs, le programme est indépendant. Tant mieux, c'est plus facile de gérer 2 programmes annexes plutôt que tout intégrer dans le soft principal. C'est suffisamment le basar. > pour mieux élargir sont champ de vision, les capteurs oscillent de façon à capter un peu mieux les côtés et surtout le centre. Ça fonctionne dans 80% des cas. Je le teste sous une table avec 28 pieds de chaises. (Les capteurs sont clairement à la ramasse sur le noir, gris, marron.) Les capteurs verrouillent la cible sur l'osbstacle ( ils ne sont pas figés, ils oscillent quand même un peu) . Ça évite qu'il perde trop la boule. > la programmation est une misère sur portable. Je vais bientôt lancer un SOS pour pouvoir installé l'appli sur un pc. Il faut que je me procure un ordi recent avant tout. Et avant avant tout, me renseigner sur l'Ev4. Tchuss Dernière édition par Sifflotte le Dim Aoû 30, 2020 10:53 pm, édité 2 fois au total.
Mon bricksafe: https://bricksafe.com/pages/Sifflotte/
|
|
@grizzly
Ouais alors j'ai bien regardé comment était fichu une ligne de code sous "C" et "Python". Dans l'absolu, j'ai compris le fonctionnement. Mais ce sont les premières lignes de code avec les adresses qui me perde. Je m'y intéresse petit à petit, dans l'idée de pouvoir programmer dans le futur (si jamais un futur optimiste existerait) des chose un peu plus sérieuse qu'un char autonome. J'ai vu que des formations existaient, je vais me renseigner pour connaître les modalitées/finalités. Mon bricksafe: https://bricksafe.com/pages/Sifflotte/
|
|
Mon bricksafe: https://bricksafe.com/pages/Sifflotte/
|
|
Tank sympa. Et dire qu’a la base, c’était pour piloter un 4x4...
Joli mécanisme de tir. Sommaire, mais efficace. Si tu mets deux ressorts, tu augment la puissance de tir. Mais pour ça, il faut doubler la puissance pour les tendre Essayer n’est pas réussir. Mais bon... si on réussit, c’est mieux, non?
(\_/) (O.o) (> <) Bunny est de retour dans sa domination du monde (killalot) Copiez bunny et insérez le dans votre signature pour l’aider dans sa domination du monde! |
|
Ah mais j'ai trouvé (en théorie) comment faire pour le 4x4.
Mon soucis est que la direction perd sa référence quand une roue prend un obstacle un peu raide. A force de tester l'appli P. U,, j'ai trouvé un bloc "stop" qui verrouille le moteur. Et force est de constater que ce Block est super efficace. Une fois le char opérationnel, je monte la détection sur le 4x4.. (avec la tourelle dans la benne ? ) Mon bricksafe: https://bricksafe.com/pages/Sifflotte/
|
|
Salut.
Alors voilà où j'en suis: Char: Deplacement autonome: ok Détection d'inclinaison : ok Détection dénivelé : ok Déplacement dans l'espace : y'a peut être moyen de lui faire comprendre que si les moteurs sont alimentés mais qu'il ne détecte pas de mouvement, il puisse y avoir une séquence de marche arrière ou un truc du genre. Oscillation des capteurs: ok (à améliorer si possible) Détections des couleurs: ok. Dans la limite des possibilités des capteurs. Tourelle: Detection cible entre 4 et 9 cm: ok Déclenchement du tir: ok Rotation à 360°: ok Rotation infinie: à éviter pour le bien être des câbles. Retour au point 0: ok C'est plutôt pas mal, mais p#&%&@, je bloque pour la programmation des couleurs. C'est quoi la combine pour dire: Si vert = vert je stoppe le char (À et B hub1), puis la tourelle cherche la cible, tir, revient à 0, puis retour au programme principal. Là où j'en suis, la détection du vert arrête le char, déclenche la séquence de la tourelle, mais reboucle aussitôt. Pas moyen de revenir au programme principal. Jai remarqué que les capteurs, une fois la couleur détectée se fige dessus. En passant plusieurs fois devant, il reste soit sur le "x" ou le "v". Mais pas de retour systématique à la valeur de défaut. J'espère avoir été clair.... Ce message est un appel à l'aide. Sending out an sos... Sending out an sos... Ce sont les 2 boucles indépendantes qui gèrent les variables de couleurs pour le déclenchement de la séquence de tourelle. Bon là, y'en à qu'une qui pilote la séquence. À force de tester je perd un peu la boule.... Mon bricksafe: https://bricksafe.com/pages/Sifflotte/
|
|
Bon bah ça va être compliqué avec les couleurs...
Différents essais me contraignent à penser que c'est pas génial comme capteur (de couleur,s). Ou c'est dû à l'application P. U ou des Hubs. J'ai un peu les boules sur ce coup là... C'était le dernier paramètre pour qu'il puisse être entièrement autonome. Je vais demander à lego si des fois il y aurait une solution. Mon bricksafe: https://bricksafe.com/pages/Sifflotte/
|
|
Après invistagation plus poussée, les capteurs (même si perfectible) sont à priori hors de cause.
Ça vient de l'application on dirait. Le capteur reconnaît bien la couleur, car la boucle reçoit bien le signal. Cependant, linfo transmise bug. Le plus souvent, il faut passer un objet de couleur plusieurs fois pour que l'ordre soit donné. Je vous épargne les autres bug, je garde ma tentative d'explication à tlc... J'espère qu'une solution sera trouvée, ce serait dommage que le projet en reste là. Mon bricksafe: https://bricksafe.com/pages/Sifflotte/
|
|
Enfin Toutes les fonctions fonctionnent. En image , les blocs couleurs qui pilotent la séquence de la tourelle. Maintenant, y'a plus cas fignoler le programme et le char. Mon bricksafe: https://bricksafe.com/pages/Sifflotte/
|
|
Salut Voici ma solution anti-pied de chaise (et accessoirement contre le fait que les capteurs ont des ratés sur les surfaces grise/argent, noir, et que le champs des capteurs ne se croisent pas. N'ayant pas de capteur de pression, pis de toute façon mes Hubs sont blindés, et que rien n'est compatible aux dernières nouvelles, j'ai trouvé ce système ultra basique pour que lorsque le char rencontre un obstacle, le capteur ne détecte plus la plaque noire et ça enclenche une séquence de marche arrière. Je suis content de ma trouvaille ! Mon bricksafe: https://bricksafe.com/pages/Sifflotte/
|
|
Work in progress II
Bonjour à tous. Voilà où j'en suis Une grosse modification par rapport à la photo du WIP précédent est la position du Hub du devant. C'était une galère pour retirer les piles. Et pour que la trappe soit accessible, j'ai du tout simplement démonter l'ensemble et revoir l'intégralité de la construction Le "pare-choc" qui permet une marche arrière d'urgence à été retravaillé. Il était moche et presque inefficace, là, il est beau et fiable. Il est maintenant caréné aussi... Je suis pas riche en panel noir, j'ai pas vraiment de quoi finir la tourelle. Le programme évolue sans arrêt, il y a des réglages qui fonctionne un jour, et quand le lendemain je le relance, ça bug. Cepandant, j'ai l'impression que le programme actuel est stable J'expliquerai au moment de la vidéo comment je l'ai pensé. Vidéo que je présenterai une fois que tout fonctionnera parfaitement. C'est pas encore pour demain, je bute sur la détection des obstacles qui lance la séquence de la tourelle. C'est fastidieux sur mon portable. Le côté tactile est pénible, surtout avec un programme avec autant de ligne. Je fais parfois des glissés d'objet sans m'en apercevoir... Les nerfs sont mis à rude épreuve. (à propos de l'appli, hier soir l'icône télécommande est apparue l'air de rien. Je ne comprenais pas pourquoi je la voyais sur la tablette de RacingBrick et pas sur mon tél. Et je ne comprends pas pourquoi cette fonction est soudainement disponible) Mon bricksafe: https://bricksafe.com/pages/Sifflotte/
|
|
Ci-dessus la programmation du char avec la manette virtuel P. U. AB= propulsion A= rotation tourelle D= tir. Je n'ai pas la "valise" +/- pour inverser les commandes sur l'app. C'est un peu reloud pour la direction.... Je vais coupler le mode manuel/autonome pour que la séquence de tir se déclenche quand le char est conduit sur une cible. A+ Mon bricksafe: https://bricksafe.com/pages/Sifflotte/
|
|
WIP III
Dans l'incapacité de programmer mon char afin qu'il puisse, face un obstacle frontal, pivoter de 90°, dans un sens ou dans l'autre pour continuer sa route, il m'a fallu trouver une solution. Adieu l'ocillation des capteurs (fausse bonne idée au passage), et bonjour aux capteurs qui pivotent à 90°. Ça fonctionne du tonnerre. En plus d'être sympa à regarder, ça économise de la pile ce système. La manœuvre est super fluide. A+ Ps: j'ai voulu mixer manette virtuelle /programmation, mais à première vue, si un moteur est affecté à une commande virtuelle, il n'est pas possible d'affecter ce même moteur a un programme. Jai voulu faire en sorte que si avec la manette virtuelle le char rencontrait un obstacle, le char recule tout seul et pivote. Ça marche pas. Le Block est comme ignoré. Mon bricksafe: https://bricksafe.com/pages/Sifflotte/
|
Retourner vers Les Lego sur le PC
Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 2 invités