Etape 21 : OpenCV : temps de déplacement !
if cv2.waitKey(33)==27: # Clean up everything before leaving cap.release() cv2.destroyAllWindows() #Tell the robot to stop before quit. ser.write("5") ser.close() # Closes the serial connection.break | 285 286 287 288 289 290 291 292 293 294 295 296 297 |
C’est où j’ai besoin d’aide les gars. Mon code tournant a un bug, donc si vous trouvez et aboutir à une correction, je vais vous envoyer un prix. Je ne sais pas ? Une boule de peluche ? Il serait probablement un de ma gauche sur circuits imprimés ou quelque morceau de matériel que j’ai piraté ensemble.
Mais pour l’instant, nous allons jeter un coup d’oeil.
L’idée est comme :
Le code est censé pour aller comme suit :
si target1 = True then : MoveForward() elif target2 = True then : TurnRight() elif Cible3 = True then : TurnLeft()
Et la plupart du temps ce qui se passe, mais parfois il est stupide et tourne à gauche quand il doit droit. Ne sais pas ce que je fais mal. Hé, que « toi et moi mon pote, jusqu'à la fin » suppose une réciprocité. : P
Revenons à travers elle
195: Nous voulons vous assurer que nous sommes profondément dans le robot de suivi avant de commencer il progresser vers l’objectif.
198: Nous comparons intHeadingDeg, qui est l’angle de position du robot, avec targetDegs, qui est l’angle entre le robot et la cible. Mais nous faisons cela + ou - 30º. Cela signifie que le robot n’a pas d’avoir sa position angle exactement le même que l’angle de la cible il. Il suffit de pointer approximativement dans la bonne direction.
199 : Le code du mouvement du robot à aller de l’avant est 3, donc ici, étant donné le robot est approximativement dirigée dans la bonne direction, nous indiquent au robot d’aller de l’avant. Cela se produit en chargeant des 3 dans la variable tranx, qui est transmis au robot à la ligne 307. Lorsque ce code est transmis à mon robot, le code de l’Arduino sur ligne 137 indique à la fonction mémoire ; au feu.
202 : Si notre robot n’est pas dirigé dans la bonne direction, puis quoi qu’il fasse ?
203-232 : Débogage encore ici. Je suis désolé les gars. Je peux vous dire que ce code fonctionne « Ok ». Mais une fois que j’en ai fini avec ce tutoriel, je vais revenir en arrière et se concentrer sur faisant tourner parfait. Désolé, ce code m’a fallu deux jours à droite, mais ce tutoriel a pris trop de jours.
Cependant, au sein de chacun de la fi des déclarations que nous avons deux affectations de variables : tranx = X et motorDuration = 10. Le tranx raconte le robot quelle direction pour la déplacer et la motorDuration lui demande combien de temps pour se déplacer de cette façon (ce n’est ne pas encore utilisée dans mon code).
Mise à jour : Fixe le code tournant avec ce qui suit. Fonctionne très bien maintenant:)
defrxtx(): # Below 32 everything in ASCII is gibberish counter =32#So the data can be passed to the OpenCV thread.global rx global intRx global tranx global motorDuration global motorBusy | 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 |