# pybricks blocks file:{"blocks":{"languageVersion":0,"blocks":[{"type":"blockGlobalSetup","id":"bjK,wS1MYO7aiYkFSwd{","x":0,"y":0,"deletable":false,"next":{"block":{"type":"variables_set_prime_hub","id":"@XB0Jz6=+6UJ#6aBH(?T","extraState":{"optionLevel":0},"fields":{"VAR":{"id":"@6M^LWsM/5gn3tAM-[L1"}},"next":{"block":{"type":"variables_setup_imported_function","id":"tqyQvL`n3!)iK2O5qEEA","fields":{"FROM_MODULE":"MBC_exp6_obj_Lib","VAR":{"id":"Dk?k{=_F{CeAn_RR;zhP"}},"next":{"block":{"type":"variables_setup_imported_function","id":"-}`z^ua9p3s{$)?7iE9c","fields":{"FROM_MODULE":"MBC_exp6_obj_Lib","VAR":{"id":"m9!X7k^xF6qq)-]jz=F3"}},"next":{"block":{"type":"variables_setup_object_instance","id":"#*b(_q~F`RH1u2U?vv5,","extraState":{"optionLevel":2},"fields":{"VAR":{"id":"N6mg)ZCzd[/6MbS0Z`o7"},"CLASS_NAME":"MBC_EXP6"},"inputs":{"ARG0":{"shadow":{"type":"blockMathNumber","id":"*FOYS[Sz2GxKar6UB8,5","fields":{"NUM":3}}},"ARG1":{"shadow":{"type":"blockMathNumber","id":"G4t,*_)~9qIlw#bq5+eB","fields":{"NUM":0}},"block":{"type":"blockLogicTrueFalse","id":"L?/#54U8K0Mh6H[.+=L^","fields":{"BOOL":"TRUE"}}}},"next":{"block":{"type":"variables_setup_any","id":"(KeZG[a=V=A~;%vM+~ys","fields":{"VAR":{"id":"%kgLF%-|qNUnqV@:WuU@"}},"inputs":{"VALUE0":{"shadow":{"type":"blockMathNumber","id":"+fhBd{$0wVI:f!_8Ks0~","fields":{"NUM":0}}}}}}}}}}}}}}},{"type":"blockGlobalStart","id":"3tJe|AWl0baN(wH9a$@.","x":0,"y":323,"deletable":false,"next":{"block":{"type":"blockComment","id":"qyP*}gMZ7u17^K*Sj^a|","fields":{"FIELDNAME":"EXP6 範例 3：光控開關。馬達接擴充孔 1，顏色感應器接擴充孔 4；左右鍵一起按結束"},"next":{"block":{"type":"blockWaitUntil","id":"@?MvJ4((7r?E0Y((+Gq@","inputs":{"BOOL":{"shadow":{"type":"blockLogicTrue","id":"i/1QkP*/Af#V4FtqfAFS"},"block":{"type":"blockLogicCompare","id":"vM)-?Kx+MUxAqMv+Vj,|","fields":{"OP1":"EQ"},"inputs":{"A":{"shadow":{"type":"blockMathNumber","id":"Nz@TqBq;+r4dDEhGgw4{","fields":{"NUM":0}},"block":{"type":"blockObjectInstanceCallValue","id":"(xiSenxW{j5v=tIq!n4;","extraState":{"optionLevel":1},"fields":{"CALL_TYPE":"CLASS_CALL_METHOD_ASYNC","METHOD":"get_device_id"},"inputs":{"VAR":{"shadow":{"type":"variables_get_object_instance","id":"}Epflqzh7r4nTj[ln|xs","fields":{"VAR":{"id":"N6mg)ZCzd[/6MbS0Z`o7","name":"exp6","type":"ObjectInstance"}}}},"ARG0":{"shadow":{"type":"blockMathNumber","id":"o8ST=fj(i5QVev1-[Rtm","fields":{"NUM":1}}}}}},"B":{"shadow":{"type":"blockMathNumber","id":"R5TnHDu?Oi!#WM__SH%9","fields":{"NUM":5}}}}}}},"next":{"block":{"type":"blockFlowWhile","id":"]xsy|d@]^D1yoe*7iS@+","fields":{"MODE":"UNTIL"},"inputs":{"BOOL":{"shadow":{"type":"blockLogicTrue","id":"my$1gCma0rP}emP}sm*,"},"block":{"type":"blockLogicOperation","id":"*%@/-wnEiu#YUIupoYPT","fields":{"OP":"AND"},"inputs":{"A":{"shadow":{"type":"blockLogicTrue","id":"q+wU.mWXO1JD8v@GNTV3"},"block":{"type":"blockButtonIsPressed","id":"AvVhL1~aCBIPukNjM@La","inputs":{"VAR":{"shadow":{"type":"variables_get_keypad","id":"dciLRJw2@;j+^:p8(9zC","fields":{"VAR":{"id":"@6M^LWsM/5gn3tAM-[L1","name":"hub","type":"PrimeHub"}}}},"VALUE0":{"shadow":{"type":"blockParametersButton","id":"jpI;4H~FqJ,d-%8rEGbs","fields":{"VALUE":"LEFT"}}}}}},"B":{"shadow":{"type":"blockLogicTrue","id":"=r}$Rgi`uhrhh6D*l@nV"},"block":{"type":"blockButtonIsPressed","id":"x$))ER^T|7DsIak0-=p:","inputs":{"VAR":{"shadow":{"type":"variables_get_keypad","id":"DPNQ64u%G)FJ9LyYeCTy","fields":{"VAR":{"id":"@6M^LWsM/5gn3tAM-[L1","name":"hub","type":"PrimeHub"}}}},"VALUE0":{"shadow":{"type":"blockParametersButton","id":"Y/zm_e2#11%BzwP.Vl*%","fields":{"VALUE":"RIGHT"}}}}}}}}},"DO":{"block":{"type":"blockVariableSetValue","id":"!Ya(lPK4yQGPu{mY(uiy","inputs":{"VAR":{"shadow":{"type":"variables_get_any","id":"GcbpzYe#?3m:;dVB0(;~","fields":{"VAR":{"id":"%kgLF%-|qNUnqV@:WuU@","name":"bright","type":"Any"}}}},"VALUE0":{"shadow":{"type":"blockMathNumber","id":"O~U8F48-t@%v%LVZ|1.w","fields":{"NUM":0}},"block":{"type":"blockObjectInstanceCallValue","id":"6H/wPGCM.mGE%Gst0+.b","extraState":{"optionLevel":1},"fields":{"CALL_TYPE":"CLASS_CALL_METHOD_ASYNC","METHOD":"get_color_reflection"},"inputs":{"VAR":{"shadow":{"type":"variables_get_object_instance","id":"q`[WE%WFYk:3CcdQ|i/u","fields":{"VAR":{"id":"N6mg)ZCzd[/6MbS0Z`o7","name":"exp6","type":"ObjectInstance"}}}},"ARG0":{"shadow":{"type":"blockMathNumber","id":"ynCd$hu~GN4(CdkRHdXT","fields":{"NUM":4}}}}}}},"next":{"block":{"type":"blockPrint","id":"#!,]BUF{)#bs0)L|JV)v","extraState":{"optionLevel":0},"inputs":{"TEXT0":{"shadow":{"type":"text","id":"[EY3Q9ej#f;HZho3_1-}","fields":{"TEXT":"abc"}},"block":{"type":"blockVariableGetValue","id":"$o=H-WXUMm*NEsF=MzNa","inputs":{"VAR":{"shadow":{"type":"variables_get_any","id":"AeUmki~g2,Pbn5O=|gKl","fields":{"VAR":{"id":"%kgLF%-|qNUnqV@:WuU@","name":"bright","type":"Any"}}}}}}}},"next":{"block":{"type":"blockIfElse","id":";%QxLV=ImT|.,L]PQ_:]","extraState":{"optionLevel":1},"inputs":{"IF0":{"shadow":{"type":"blockLogicTrue","id":"^1^+a|j~v]o8[R!3S~nY"},"block":{"type":"blockLogicCompare","id":"5z].G1^z(CgFF[u[lYVd","fields":{"OP1":"GT"},"inputs":{"A":{"shadow":{"type":"blockMathNumber","id":"Y*tAcBVhEJb_y.eSlhjY","fields":{"NUM":0}},"block":{"type":"blockVariableGetValue","id":"EJ6muQ-pTfT~xj0?V/cR","inputs":{"VAR":{"shadow":{"type":"variables_get_any","id":"eZl-nKHOT8Dbl4g!/OFx","fields":{"VAR":{"id":"%kgLF%-|qNUnqV@:WuU@","name":"bright","type":"Any"}}}}}}},"B":{"shadow":{"type":"blockMathNumber","id":"A0_bK$Ehftg[2d`P7Y)?","fields":{"NUM":50}}}}}},"DO0":{"block":{"type":"blockObjectInstanceCallStatement","id":";.~{m:!@T_Fa)m!(Ln_f","extraState":{"optionLevel":2},"fields":{"CALL_TYPE":"CLASS_CALL_METHOD_ASYNC","METHOD":"motor_run"},"inputs":{"VAR":{"shadow":{"type":"variables_get_object_instance","id":"GT`@knBtsS;wlNvt(8Qi","fields":{"VAR":{"id":"N6mg)ZCzd[/6MbS0Z`o7","name":"exp6","type":"ObjectInstance"}}}},"ARG0":{"shadow":{"type":"blockMathNumber","id":"UB[rRCkwuOv7u.Jmx`ee","fields":{"NUM":1}}},"ARG1":{"shadow":{"type":"blockMathNumber","id":"?L0P^?%aEP%{n#K9*uu#","fields":{"NUM":50}}}},"next":{"block":{"type":"blockLightOnColor","id":"79^N=37(R02}jEU?uJ;_","extraState":{"optionLevel":1},"fields":{"METHOD":"LIGHT_ON"},"inputs":{"VAR":{"shadow":{"type":"variables_get_color_light_device","id":"PVu2BKU(Py}IS?ZFKRA;","fields":{"VAR":{"id":"@6M^LWsM/5gn3tAM-[L1","name":"hub","type":"PrimeHub"}}}},"COLOR":{"shadow":{"type":"variables_get_color","id":"ddm%@KJnx}i/UM~*/iwO","fields":{"COLOUR":"#ff0000","VAR":{"id":"d]A$aR6)x2}jQXA=8FLO","name":"green","type":"ColorDef"}}}}}}}}},"ELSE":{"block":{"type":"blockObjectInstanceCallStatement","id":"D6BTSF~(KH+IkCK1#.fH","extraState":{"optionLevel":2},"fields":{"CALL_TYPE":"CLASS_CALL_METHOD_ASYNC","METHOD":"motor_stop"},"inputs":{"VAR":{"shadow":{"type":"variables_get_object_instance","id":"=0:t#%)pvp]`9c](dzT#","fields":{"VAR":{"id":"N6mg)ZCzd[/6MbS0Z`o7","name":"exp6","type":"ObjectInstance"}}}},"ARG0":{"shadow":{"type":"blockMathNumber","id":"z0cN|/5*}HfWZ1?=j?a_","fields":{"NUM":1}}},"ARG1":{"shadow":{"type":"blockMathNumber","id":"$w[4V+iu_o[=rQ,#5GM#","fields":{"NUM":2}}}},"next":{"block":{"type":"blockLightOnColor","id":",c+e@YY0SypA}U.d_(XN","extraState":{"optionLevel":1},"fields":{"METHOD":"LIGHT_ON"},"inputs":{"VAR":{"shadow":{"type":"variables_get_color_light_device","id":"(]LD:aoh%%AjEzH|vqb,","fields":{"VAR":{"id":"@6M^LWsM/5gn3tAM-[L1","name":"hub","type":"PrimeHub"}}}},"COLOR":{"shadow":{"type":"variables_get_color","id":"{WqMJwpGVtn_el@ijdc(","fields":{"COLOUR":"#ff0000","VAR":{"id":",5SxWV)mi2KfI~/sJD3!","name":"red","type":"ColorDef"}}}}}}}}}},"next":{"block":{"type":"blockWaitTime","id":"ijLHpBeZEOBx,/lGL+(m","inputs":{"VALUE0":{"shadow":{"type":"unit_time","id":"7VwvqIDNa.D2jZ~WsbX*","fields":{"VALUE0":100}}}}}}}}}}}}},"next":{"block":{"type":"blockObjectInstanceCallStatement","id":"Ve7+Sc6%Ap`.~478O7D9","extraState":{"optionLevel":1},"fields":{"CALL_TYPE":"CLASS_CALL_METHOD_ASYNC","METHOD":"stop_all"},"inputs":{"VAR":{"shadow":{"type":"variables_get_object_instance","id":"/jvI!|tAdu-PD?m~1m=g","fields":{"VAR":{"id":"N6mg)ZCzd[/6MbS0Z`o7","name":"exp6","type":"ObjectInstance"}}}},"ARG0":{"shadow":{"type":"blockMathNumber","id":"1r0?wsh.qzamvFcnQCLr","fields":{"NUM":1}}}}}}}}}}}}}]},"variables":[{"name":"red","id":",5SxWV)mi2KfI~/sJD3!","type":"ColorDef"},{"name":"orange","id":"!!L.acSW7n,0Z;A5qc}F","type":"ColorDef"},{"name":"yellow","id":"vX|Gv/!$[`+N{/?R@+AQ","type":"ColorDef"},{"name":"green","id":"d]A$aR6)x2}jQXA=8FLO","type":"ColorDef"},{"name":"cyan","id":"A`Nqu!8JGRiEIGr)*bQd","type":"ColorDef"},{"name":"blue","id":",!,6puQE|UnEsc4gMAPb","type":"ColorDef"},{"name":"violet","id":"9:`v,JoPUt|2@$V6=8:4","type":"ColorDef"},{"name":"magenta","id":"fc/!5HHg$x:[(1rq?/d,","type":"ColorDef"},{"name":"white","id":"4^oHR_P9C;NlGv4H6h/Q","type":"ColorDef"},{"name":"none","id":"/pj.t$+QWdAjCaXVEI:C","type":"ColorDef"},{"name":"hub","id":"@6M^LWsM/5gn3tAM-[L1","type":"PrimeHub"},{"name":"MBC_EXP6","id":"Dk?k{=_F{CeAn_RR;zhP","type":"FunctionImported"},{"name":"run_task","id":"m9!X7k^xF6qq)-]jz=F3","type":"FunctionImported"},{"name":"exp6","id":"N6mg)ZCzd[/6MbS0Z`o7","type":"ObjectInstance"},{"name":"bright","id":"%kgLF%-|qNUnqV@:WuU@","type":"Any"}],"info":{"type":"pybricks","version":"2.1.1"},"workspaceOptions":{"scrollX":120,"scrollY":2.842170943040401e-14,"scale":1}}
from pybricks.hubs import PrimeHub
from pybricks.parameters import Button, Color
from pybricks.tools import multitask, run_task, wait

from MBC_exp6_obj_Lib import MBC_EXP6, run_task

# Set up.
hub = PrimeHub()
exp6 = MBC_EXP6(3, True)
bright = 0

async def main():
    global bright
    # EXP6 範例 3：光控開關。馬達接擴充孔 1，顏色感應器接擴充孔 4；左右鍵一起按結束
    while not await exp6.get_device_id(1) == 5:
        await wait(0)
    while not (Button.LEFT in hub.buttons.pressed() and Button.RIGHT in hub.buttons.pressed()):
        await wait(0)
        bright = await exp6.get_color_reflection(4)
        print(bright)
        if bright > 50:
            await exp6.motor_run(1, 50)
            hub.light.on(Color.GREEN)
        else:
            await exp6.motor_stop(1, 2)
            hub.light.on(Color.RED)
        await wait(100)
    await exp6.stop_all(1)


run_task(main())