"""
Interface: microbit
Nom du projet: Nouveau projet
Description: %25253Cspan%252520class=%252522tooltip-title%252522%25253ENouveau%252520projet%25253C/span%25253E%25253Cspan%252520class=%252522tooltip-author%252522%25253EAnonyme%25253C/span%25253E%25253Cspan%252520class=%252522tooltip-description%252522%25253E%25253C/span%25253E
Toolbox: vittascience
Mode: blocks

Blocks: <xml xmlns="https://developers.google.com/blockly/xml"><variables><variable id="`WvB$,7XbOV%tI+(K9-R">numberData</variable><variable id="vYA7QN$;tC8s|^SS=?j)">Temps-de-parcours</variable><variable id="[]=A9)!!6/e-bp,ZW$za">i</variable></variables><block type="on_start" id="G[=T#8yqB70`NFgYq}GP" deletable="false" x="187" y="12"><comment pinned="true" h="50" w="168">Carte VEHICULE</comment><statement name="DO"><block type="communication_radioConfig" id="/5N[$d!~PxzMVL_=j49p"><value name="CANAL"><shadow type="math_number" id="yORs_;dnXGZ#xuxOE6,O"><field name="NUM">63</field></shadow></value><value name="POWER"><shadow type="math_number" id="$QinoL1^u;#udE:OxW[J"><field name="NUM">6</field></shadow></value><value name="LEN"><shadow type="math_number" id="8.{j}`9Og=riB=$U=e2]"><field name="NUM">32</field></shadow></value><value name="GROUP"><shadow type="math_number" id="UO=`w9_a=!6;#2TYPfDI"><field name="NUM">0</field></shadow></value><next><block type="variables_set" id="PPpVtMLHmdJHUyHo_pRL"><field name="VAR" id="vYA7QN$;tC8s|^SS=?j)">Temps-de-parcours</field><comment pinned="false" h="80" w="160">valeur maxi : 1023</comment><value name="VALUE"><shadow type="math_number" id="^ra6sdt+gd8:Dlk}8@jk"><field name="NUM">10</field></shadow></value></block></next></block></statement></block><block type="procedures_defnoreturn" id="61*m3T;1){qbEC=cz-04" x="1062" y="13"><mutation name="Avancer"></mutation><field name="NAME">Avancer</field><statement name="STACK"><block type="io_writeAnalogPin" id="yBb5_$imw5PQV5OFkP2)"><field name="PIN">pin8</field><comment pinned="false" h="80" w="160">Réglage de la vitesse</comment><value name="VALUE"><shadow type="math_number" id="[v[+);}zCi[B!-;+GT%4"><field name="NUM">800</field></shadow></value><next><block type="io_writeDigitalPin" id="N2S((3[*WV)-!r:ezLl:"><field name="PIN">pin12</field><value name="STATE"><shadow type="io_digital_signal" id="-+^evJ}sSJDasJ7cOV[F"><field name="BOOL">LOW</field></shadow></value><next><block type="io_writeDigitalPin" id="6itH8{B0cfN3tGh*`N%!"><field name="PIN">pin13</field><value name="STATE"><shadow type="io_digital_signal" id="|5kS_wD4g`JLY+R6UBcQ"><field name="BOOL">HIGH</field></shadow></value></block></next></block></next></block></statement></block><block type="forever" id="o[WN]+eeF.OUxGch67@8" x="188" y="263"><statement name="DO"><block type="communication_onRadioNumberReceived" id="]9:y}rFg/A0J_j{+:L-e"><field name="VAR" id="`WvB$,7XbOV%tI+(K9-R">numberData</field><statement name="DO"><block type="variables_set" id="jL1eX~+h@}:P@rPqcwLr"><field name="VAR" id="vYA7QN$;tC8s|^SS=?j)">Temps-de-parcours</field><value name="VALUE"><shadow type="math_number" id="g;2VQq`9^V3:q?.UQC+K"><field name="NUM">0</field></shadow><block type="variables_get" id="l|$5xHAG5i`Tb`jc@V@#"><field name="VAR" id="`WvB$,7XbOV%tI+(K9-R">numberData</field></block></value></block></statement><next><block type="controls_if" id="1NQ@=kJ.aTt{+wS3_ck?"><value name="IF0"><block type="logic_compare" id="+fD*L)Qb,eC|[OLl[ztC"><field name="OP">GT</field><value name="A"><block type="sensors_getGroveLight" id=";gobux*c(l%=~#SI:hdK"><field name="PIN">pin0</field></block></value><value name="B"><shadow type="math_number" id="Z]Pc*,?Cc3VYDyj=02o;"><field name="NUM">500</field></shadow></value></block></value><statement name="DO0"><block type="procedures_callnoreturn" id="$ju(tfB6Ywm-0}Y0S|~N"><mutation name="Avancer"></mutation><next><block type="controls_for" id="9{?:BZ3SLVN0n+Hn8Arw"><field name="VAR" id="[]=A9)!!6/e-bp,ZW$za">i</field><value name="FROM"><shadow type="math_number" id="XH123%s1wXb7fS5-%I,+"><field name="NUM">1</field></shadow></value><value name="TO"><shadow type="math_number" id="xy8Fy,A~(wk]6U`==T]u"><field name="NUM">10</field></shadow><block type="variables_get" id="33CN$~ne^dPmI74(sGdS"><field name="VAR" id="vYA7QN$;tC8s|^SS=?j)">Temps-de-parcours</field></block></value><value name="BY"><shadow type="math_number" id="Ek*L;79]%DKl]4(~8R,-"><field name="NUM">1</field></shadow></value><statement name="DO"><block type="display_setGroveSocketLed" id="3209:q$9@804Q7f81go|"><field name="PIN">pin1</field><value name="STATE"><shadow type="io_digital_signal" id="=B+Vw+rz+[=E+Np8snvd"><field name="BOOL">HIGH</field></shadow></value><next><block type="io_pause" id="CakfQv@}LZxX[0dZ.?n]"><field name="UNIT">MILLI</field><value name="TIME"><shadow type="math_number" id="?H8!KvUglp@7Qj(Z{_WG"><field name="NUM">50</field></shadow></value><next><block type="display_setGroveSocketLed" id="g*vc(+f,V-%rE3@UCyF}"><field name="PIN">pin1</field><value name="STATE"><shadow type="io_digital_signal" id="LfSWAN2@J^er=8ha0KNE"><field name="BOOL">LOW</field></shadow></value><next><block type="io_pause" id="0vJWJI^c:{n-7#}f2TA_"><field name="UNIT">MILLI</field><value name="TIME"><shadow type="math_number" id=".-~{3d|`b-a$|yoe0(),"><field name="NUM">100</field></shadow></value></block></next></block></next></block></next></block></statement><next><block type="procedures_callnoreturn" id="j*0MND+~M|:(f.Y1.cQW"><mutation name="Freiner"></mutation><next><block type="io_pause" id="_~zS.{@abI13):Nj$Y~P"><field name="UNIT">SEC</field><value name="TIME"><shadow type="math_number" id="0dP)QU4?%7[ERjDWD)}?"><field name="NUM">2</field></shadow></value><next><block type="procedures_callnoreturn" id="%xXU7pBY@Bs5@08b]+A6"><mutation name="Roue libre"></mutation></block></next></block></next></block></next></block></next></block></statement></block></next></block></statement></block><block type="procedures_defnoreturn" id="kmWpv54Lx)1/-ICy||=P" x="1062" y="288"><mutation name="Reculer"></mutation><field name="NAME">Reculer</field><statement name="STACK"><block type="io_writeAnalogPin" id="r:;rphkf#_p[|pD*eM%b"><field name="PIN">pin8</field><comment pinned="false" h="80" w="160">Réglage de la vitesse</comment><value name="VALUE"><shadow type="math_number" id="st1xmZ?@$2ff.|DlX-A}"><field name="NUM">800</field></shadow></value><next><block type="io_writeDigitalPin" id="6[`/noCncbpjtUj=})uA"><field name="PIN">pin12</field><value name="STATE"><shadow type="io_digital_signal" id="(,7p!:%A(uGV@V$.B_wm"><field name="BOOL">HIGH</field></shadow></value><next><block type="io_writeDigitalPin" id="NjMP@7R)}:(y~e9!!q]P"><field name="PIN">pin13</field><value name="STATE"><shadow type="io_digital_signal" id="[L)_B{j|EKUz(T_I*CV|"><field name="BOOL">LOW</field></shadow></value></block></next></block></next></block></statement></block><block type="procedures_defnoreturn" id="bZwF_C^p$Zi`sA]*!+h]" x="1062" y="563"><mutation name="Freiner"></mutation><field name="NAME">Freiner</field><statement name="STACK"><block type="show_icon" id="Kgk_2,^}PLGRNGiYDo8M"><field name="ICON">NO</field><next><block type="io_writeDigitalPin" id="58j+EF#MZ.^_7V3xe,J)"><field name="PIN">pin12</field><value name="STATE"><shadow type="io_digital_signal" id="5N8gipRDtp@`JD_N)Uyf"><field name="BOOL">HIGH</field></shadow></value><next><block type="io_writeDigitalPin" id="+v#[55i$DMUbFvR_qNE|"><field name="PIN">pin13</field><value name="STATE"><shadow type="io_digital_signal" id="Cu.3)NfqQcuy-t#I@4/Y"><field name="BOOL">HIGH</field></shadow></value></block></next></block></next></block></statement></block><block type="procedures_defnoreturn" id=".E~SQOOrA~]1|aWVC^(s" x="1062" y="862"><mutation name="Roue libre"></mutation><field name="NAME">Roue libre</field><statement name="STACK"><block type="clear" id="uGju@saNzQ(BN;ejQ8(B"><next><block type="io_writeDigitalPin" id="jk-?]de|2Ov{3-BX6UR2"><field name="PIN">pin12</field><value name="STATE"><shadow type="io_digital_signal" id="$peF}cfE#3)rFa)+IgBk"><field name="BOOL">LOW</field></shadow></value><next><block type="io_writeDigitalPin" id="#3VT9k^sl3P|n(h.h[9`"><field name="PIN">pin13</field><value name="STATE"><shadow type="io_digital_signal" id="r7GV6]MXBGOusSy)H^n?"><field name="BOOL">LOW</field></shadow></value></block></next></block></next></block></statement></block></xml>

Projet généré par Vittascience.
Ce fichier contient le code textuel ainsi que le code blocs. Il peut être importé de nouveau
sur l'interface http://vittascience.com/microbit

"""

from microbit import *
import radio
import utime

# Light Sensor on pin0
# LED Module on pin1

def radio_receiveData():
  data = radio.receive()
  if data:
    if data.find('&&&int:') != -1:
      return int(data[7:-3])
    elif data.find('&&&float:') != -1:
      return float(data[9:-3])
    elif data.find('&&&bool:') != -1:
      value = data[8:-3]
      if len(value) == 1: return bool(int(value))
      if value is 'False': return bool(0)
      else: return bool(1)
    elif data.find('&&&list:') != -1:
      return data[8:-3].strip('][').split(', ')
    else:
      return data
  else:
    return None

radio.on()

def Avancer():
  # Réglage de la vitesse
  pin8.write_analog(800)
  pin12.write_digital(0)
  pin13.write_digital(1)

def Reculer():
  # Réglage de la vitesse
  pin8.write_analog(800)
  pin12.write_digital(1)
  pin13.write_digital(0)

def Freiner():
  display.show(Image.NO)
  pin12.write_digital(1)
  pin13.write_digital(1)

def Roue_libre():
  display.clear()
  pin12.write_digital(0)
  pin13.write_digital(0)

radio.config(channel = 63, power = 6, length = 32, group=0)
# valeur maxi : 1023
Temps_de_parcours = 10

# Carte VEHICULE

while True:
  numberData = radio_receiveData()
  if numberData is not None:
    Temps_de_parcours = numberData
  if pin0.read_analog() > 500:
    Avancer()
    for i in range(1, Temps_de_parcours, 1):
      pin1.write_digital(1)
      utime.sleep_ms(50)
      pin1.write_digital(0)
      utime.sleep_ms(100)
    Freiner()
    utime.sleep(2)
    Roue_libre()
