Sensor ultrasònic

Aquest sensor també té dos parts:

  • un emissor d'ultrasons
  • un receptor d'ultrasons

El sensor emet un senyal, i compta el temps fins que detecta l'eco del senyal emés. Com la velocitat del so és coneguda, es pot calcular la distància a la que està l'objecte on ha rebotat l'eco.

En primer lloc, connectem el robot.


In [ ]:
from functions import connect, ultrasonic, forward, stop

connect()

Gràfica del sensor

Per a analitzar els valors del sensor, farem també una gràfica: col·locareu el robot a una certa distància d'un obstacle, i el fareu avançar mentre recolleix dades.


In [ ]:
forward(speed_B=60,speed_C=70)
data = []
for i in range(30):
    data.append(ultrasonic())
stop()

A continuació representeu la gràfica. Hauríeu d'obtindre una línia descendent, perquè la distància a l'obstacle disminueix a mesura que el robot avança. No obstant aixó, és normal que hi haja valors que pugen, per interferències, o perquè l'eco no siga prou estable.


In [ ]:
from functions import plot
plot(data)

Evitar obstacles

Per a evitar obstacles, podeu reutilitzar el codi que vau fer amb el sensor de contacte.

Ara llegireu valors del sensor ultrasònic, i si són menors que un llindar, fareu la mateixa maniobra de anar cap enrere i girar.


In [ ]:
from functions import ___

In [ ]:
try:
    while True:
        ___
except KeyboardInterrupt:
    stop()

Recapitulem

Hem vist ja tots els sensors, al mateix temps que apreníem tècniques de programació.

Esteu preparats per al repte final?

Abans de continuar, desconnecteu el robot:


In [ ]:
from functions import disconnect, next_notebook
disconnect()
next_notebook('sumo')