Per a fer això, a més del sensor, es necessita una instrucció del llenguatge de programació que permet triar entre dos situacions, anomenada condicional.
En Python s'escriu així:
if condition:
one_statement
else:
another_statement
Aleshores, si la condició es verdadera, s'executa la primera ordre, i si no, la segona.
Vegem un exemple, però primer connectem el robot.
In [ ]:
from functions import connect, touch, forward, backward, stop, disconnect, next_notebook
from time import sleep
connect()
El codi següent comprova el sensor de tacte:
Proveu-lo amb Ctrl+Enter
mentre polseu (o no) el sensor de tacte.
In [ ]:
if touch():
backward()
sleep(0.2)
stop()
else:
forward()
sleep(0.2)
stop()
Imagineu que volem fer un programa per a que el robot avance mentre el sensor de tacte no detecte cap obstacle. Hauríem d'estar comprovant el sensor repetidament fins el moment en què es detectara el contacte.
Podríem utilitzar el bucle for
amb el condicional if
, però els llenguatges de programació defineixen una estructura equivalent, anomenada bucle condicional, o while loop.
En Python s'escriu així:
while condition:
statement
Aleshores, l'ordre s'executa repetidament, mentre la condició siga verdadera.
El programa quedaria així:
In [ ]:
while not touch():
forward()
stop()
Sembla complicat? Les ordres que li esteu donant al robot són molt semblants a les del llenguatge natural, només que en anglès. Si no vos convenç, mireu la traducció :-)
Ara podeu respirar una mica: acabeu de vore dos de les instruccions més importants dels llenguatges de programació:
if .. else
: permet executar dos ordres diferents segons una condició siga verdadera o falsawhile
: permet repetir una ordre mentre una condició siga verdaderaEn el següent exercici usarem eixes instruccions, i tot el que hem aprés abans, per a moure el robot de forma autònoma, el que en robòtica s'anomena navegació.
Abans de continuar, desconnecteu el robot:
In [ ]:
disconnect()
next_notebook('navigation')