Différences entre versions de « Hack-micropython-Robot2Wheel-HC-SR04-Code »
Ligne 47 : | Ligne 47 : | ||
Il suffit de placer la main devant le senseur pour que le mobile entame une rotation. | Il suffit de placer la main devant le senseur pour que le mobile entame une rotation. | ||
+ | |||
+ | == Faire mieux == | ||
+ | L'idéal serait de rendre le robot totalement autonome en plaçant le code directement dans le fichier {{fname|main.py}} . | ||
+ | |||
+ | Mais il faut aussi qu'il soit plus pratique. En effet, le robot se mettrait en marche dès qu'il serait sous tension. | ||
+ | |||
+ | L'idéal serait de pouvoir le démarrer en pressant sur le bouton "User" (disponible sur la carte)... et de pouvoir l'arrêter en pressant une autre fois sur ce même bouton. | ||
+ | |||
+ | Nous allons également utiliser la LED bleue {{fname|LED(4)}} pour indiquer l'activation du Robot. | ||
+ | |||
+ | Voici un second code que vous pouvez placer dans votre fichier {{fname|main.py}} . | ||
+ | |||
+ | <nowiki></nowiki> | ||
{{Hack-micropython-Robot2Wheel-TRAILER}} | {{Hack-micropython-Robot2Wheel-TRAILER}} |
Version du 6 février 2016 à 18:12
Eviter les obstacles
Voila, maintenant que nous disposons d'un senseur HC-SR04 sur notre PyBoard-a-Roulette, nous allons pouvoir le faire balader avec un programme relativement simple.
Le programme:
- Fait avancer le robot
- Détecte les obstacle présent devant le senseur HC-SR04
- Si un obstacle est détecté à moins de 20cm:
- Arrêter la plateforme
- Faire tourner la plateforme (sur la droite pendant 2.5 seconde).
Le code
Voici un extrait du code que nous avons testé en REPL.
Vous pouvez le télécharger ici:
from pyb import delay from r2wheel import Robot2Wheel from ultrasonic import Ultrasonic # Broche pour déclencher le senseur TRIGGER_PIN = pyb.Pin.board.Y5 # Broche pour attendre le retour d'echo ECHO_PIN = pyb.Pin.board.Y6 r2 = Robot2Wheel( reverse_mot2 = True ) u = Ultrasonic( TRIGGER_PIN, ECHO_PIN ) MIN_DISTANCE = 20 # Minimum distance r2.forward() while True: if u.distance_in_cm() < MIN_DISTANCE: r2.halt() delay(100) r2.right() delay( 2500 ) r2.halt() delay(100) # If nothing in front then move if (r2.state == Robot2Wheel.HALTED) and (u.distance_in_cm() > MIN_DISTANCE): r2.forward()
Il suffit de placer la main devant le senseur pour que le mobile entame une rotation.
Faire mieux
L'idéal serait de rendre le robot totalement autonome en plaçant le code directement dans le fichier main.py .
Mais il faut aussi qu'il soit plus pratique. En effet, le robot se mettrait en marche dès qu'il serait sous tension.
L'idéal serait de pouvoir le démarrer en pressant sur le bouton "User" (disponible sur la carte)... et de pouvoir l'arrêter en pressant une autre fois sur ce même bouton.
Nous allons également utiliser la LED bleue LED(4) pour indiquer l'activation du Robot.
Voici un second code que vous pouvez placer dans votre fichier main.py .
Projet original réalisé par Meurisse D. pour MC Hobby SPRL
Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : « Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.
L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.