PyBoard-à-Roulette - Utilisation d'un senseur Ultrason HC-SR04

Nous revenons sur notre série de tutoriels PyBoard-a-roulette qui nous amuse beaucoup.

Pyboard-a-roulette avec senseur ultrason HC-SR04

Dans cette suite du tutoriel, nous allons brancher le senseur ultrason exactement comme nous l'avons fait dans le tutoriel HC-SR04 pour MicroPython. Notez que senseur Utrason n'est pas directement branché sur le bloc pile.
Plan de montage du PyBoard à roulette + HC-SR04 - Source: Tutoriel de MCHobby
Le régulateur S7V7F5
Dans ce montage, nous avons utilisé un régulateur 5V Pololu S7V7F5 (visible sur la droite du breadboard).

Ce régulateur est utilisé pour produire une tension régulée de 5Volts. Cette tension est nécessaire pour alimenter le senseur Ultrason HC-SR04 depuis le bloc pile (6 Volts).

Le régulateur S7V7F5 est particulier, il s'agit d'un régulateur DC-DC Step-Up/Step-Down.

Cela signifie:
  1. Qu'il a un excellent rendement (donc peu de perte et une faible dissipation de chaleur).
  2. Capable de diminuer la tension pour offrir du 5 Volts (step-down).
  3. Capable d'augmenter la tension pour offrir du 5 Volts. Cela signifie que lorsque les piles s'épuisent, que leur tensions diminuent alors même que l'on tombe sous la tension cumulée de 5 Volts, le régulateur -LUI- sera capable de produire, malgré tout, une tension de 5 volts (step-up)
Le code
Le code de contrôle utilise les classes que nous avons découvert dans notre précédent tutoriel.
Rien de vraiment compliqué dans ce code de base, le Robot tourne lorsqu'il est face à un obstacle.

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()

Tutoriel
Venez découvrir nos tutoriels PyBoard-à-roulette sur le wiki de MCHobby.
Où acheter


Prochaine étape sera d'ajouter des détecteurs bumper :-)