<xml xmlns="https://developers.google.com/blockly/xml">
  <variables>
    <variable id="qyFLfdCRCqwysF`;iRPX">_address</variable>
    <variable id="JnDPrcMN$d,m`6wd!iP:">_command</variable>
    <variable id="fImCfoE/{{NE-5*stS*-">newChar</variable>
  </variables>
  <block type="mpython_ir_remote_recv" id="#z$gZ1l;cI:5,Wi-yF!;" x="138" y="-162">
    <value name="pin">
      <shadow type="all_pin" id="jdMbmmo?FY7[#*4w3[=q">
        <field name="all_pin">15</field>
      </shadow>
    </value>
    <value name="address">
      <block type="variables_get" id="{lb9q/3gnH@Vx2x_}3]*">
        <field name="VAR" id="qyFLfdCRCqwysF`;iRPX">_address</field>
      </block>
    </value>
    <value name="command">
      <block type="variables_get" id="Rfpp3w66^u855C^bC[X8">
        <field name="VAR" id="JnDPrcMN$d,m`6wd!iP:">_command</field>
      </block>
    </value>
    <statement name="DO">
      <block type="controls_repeat_forever" id="7D!1K~]T~ySI+T;;s5#-">
        <statement name="DO">
          <block type="variables_set" id="A]P5e0%H*5O#q,KX7I2*">
            <field name="VAR" id="fImCfoE/{{NE-5*stS*-">newChar</field>
            <value name="VALUE">
              <block type="text_join" id="GAf?kHIQCQ+IBdVnO~mS">
                <mutation items="1"></mutation>
                <value name="ADD0">
                  <block type="variables_get" id="qW2UaeA!@o8-,^MC(Za]">
                    <field name="VAR" id="JnDPrcMN$d,m`6wd!iP:">_command</field>
                  </block>
                </value>
              </block>
            </value>
            <next>
              <block type="mpython_display_fill" id="OEt;9A#BC,P9S?9-Z|%*">
                <field name="display_fill">fill(0)</field>
                <next>
                  <block type="mpython_display_DispChar_5lines" id="zY)`]ZRP/SM4$$ZF-:}C">
                    <field name="TEXTMODE">1</field>
                    <value name="DispChar_5lines">
                      <shadow type="mpython_4_lines" id="QG.[+5J8iSDGUy3UAJ![">
                        <field name="mpython_4_lines">1</field>
                      </shadow>
                    </value>
                    <value name="message">
                      <shadow type="text" id="Ku}O:Fm*y7E[nkcH2tmq">
                        <field name="TEXT">Hello, world!</field>
                      </shadow>
                      <block type="variables_get" id="U@a0x6}:)DQfUhQ_#XNg">
                        <field name="VAR" id="fImCfoE/{{NE-5*stS*-">newChar</field>
                      </block>
                    </value>
                    <next>
                      <block type="mpython_display_Show" id="0zH%*lXnLiBqmCsJb.Ga">
                        <next>
                          <block type="procedures_callnoreturn" id="P/G|f7|3v,GlHyq1H$[O">
                            <mutation name="forward"></mutation>
                            <next>
                              <block type="procedures_callnoreturn" id="qV]AFpOp8aDc_p80f{vq">
                                <mutation name="back"></mutation>
                                <next>
                                  <block type="procedures_callnoreturn" id="zsdCP3mD54!{5q.oaQ]x">
                                    <mutation name="left"></mutation>
                                    <next>
                                      <block type="procedures_callnoreturn" id="R8#y5PMz*%pf7|m^#:{]">
                                        <mutation name="right"></mutation>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </statement>
      </block>
    </statement>
  </block>
  <block type="procedures_defnoreturn" id="6e^x4%u,wc]]{H))Ub{B" collapsed="true" x="188" y="238">
    <field name="NAME">back</field>
    <statement name="STACK">
      <block type="controls_whileUntil" id="a$TGw~613IwDYO3VaZ9A">
        <field name="MODE">UNTIL</field>
        <value name="BOOL">
          <block type="logic_compare" id="E9]=sPKr+H8C]+H}xtda">
            <field name="OP">EQ</field>
            <value name="A">
              <block type="variables_get" id="1D0!9?OUgA0L8Lf+YEq)">
                <field name="VAR" id="fImCfoE/{{NE-5*stS*-">newChar</field>
              </block>
            </value>
            <value name="B">
              <block type="text" id="iq{xL/`B}HIPYCgbw[Mr">
                <field name="TEXT">b'\x15'</field>
              </block>
            </value>
          </block>
        </value>
        <statement name="DO">
          <block type="mpython_display_fill" id="XM-,kgm}{N~Cez0[M.MP">
            <field name="display_fill">fill(0)</field>
            <next>
              <block type="mpython_display_DispChar_5lines" id="@}Wk?Ra(g(0vo/cEQUwZ">
                <field name="TEXTMODE">1</field>
                <value name="DispChar_5lines">
                  <shadow type="mpython_4_lines" id="G3Czc*83Qe8$CD;voKqd">
                    <field name="mpython_4_lines">1</field>
                  </shadow>
                </value>
                <value name="message">
                  <shadow type="text" id="MoE|(IwY%c$m=Ya@.c.o">
                    <field name="TEXT">后退</field>
                  </shadow>
                </value>
                <next>
                  <block type="mpython_display_Show" id=";5xrGz-#G%m_tha,6EL:">
                    <next>
                      <block type="mpython_bluebit_motor_on_i2c" id="8H|LUdrrKwNay},[D-q1">
                        <field name="left_right_interface">M1</field>
                        <field name="status">ANTICLOCKWISE</field>
                        <value name="speed">
                          <shadow type="math_number" id="|MP_Kz=jEF2orTjhRM-b">
                            <field name="NUM">100</field>
                          </shadow>
                        </value>
                        <next>
                          <block type="mpython_bluebit_motor_on_i2c" id="48_b9#8F`|$0vD=.V]xH">
                            <field name="left_right_interface">M2</field>
                            <field name="status">ANTICLOCKWISE</field>
                            <value name="speed">
                              <shadow type="math_number" id="F!mZhDpYPB6T:Vad5)g6">
                                <field name="NUM">100</field>
                              </shadow>
                            </value>
                            <next>
                              <block type="variables_set" id="ZYWUr=yKJBPRat4/GAOz">
                                <field name="VAR" id="fImCfoE/{{NE-5*stS*-">newChar</field>
                                <value name="VALUE">
                                  <block type="text_join" id="OmAa0{(C.EH,pL#q8bn:">
                                    <mutation items="1"></mutation>
                                    <value name="ADD0">
                                      <block type="variables_get" id="j?|$v%+SpicI_guajBEI">
                                        <field name="VAR" id="JnDPrcMN$d,m`6wd!iP:">_command</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <next>
                                  <block type="controls_if" id="P@CHp9{z0yVHo*ozKi_c">
                                    <value name="IF0">
                                      <block type="logic_compare" id="nB=#iY=GgZP^y,Ytwh$E">
                                        <field name="OP">NEQ</field>
                                        <value name="A">
                                          <block type="variables_get" id="2m};FO]5-KV@.4?CLjP`">
                                            <field name="VAR" id="fImCfoE/{{NE-5*stS*-">newChar</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <block type="text" id="eR0`ki@(Bxg!2?-{nI[O">
                                            <field name="TEXT">b'\x15'</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <statement name="DO0">
                                      <block type="controls_flow_statements" id="PuG|*Ut+,[bwLa2;)iVt">
                                        <field name="FLOW">BREAK</field>
                                      </block>
                                    </statement>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </statement>
      </block>
    </statement>
  </block>
  <block type="procedures_defnoreturn" id="X]Vax%y)*v)Uxmh3Z+T!" collapsed="true" x="187" y="288">
    <field name="NAME">forward</field>
    <statement name="STACK">
      <block type="controls_whileUntil" id=")ODOBCdS5/+^Xg3%xs[M">
        <field name="MODE">UNTIL</field>
        <value name="BOOL">
          <block type="logic_compare" id=")CfBJhT|kn.ZSd_rWj)`">
            <field name="OP">EQ</field>
            <value name="A">
              <block type="variables_get" id="/aZTl!8%HcVps^[x($y[">
                <field name="VAR" id="fImCfoE/{{NE-5*stS*-">newChar</field>
              </block>
            </value>
            <value name="B">
              <block type="text" id="WF,RtaAmPD/nBhJtyS#(">
                <field name="TEXT">b'F'</field>
              </block>
            </value>
          </block>
        </value>
        <statement name="DO">
          <block type="variables_set" id="ji~PJhPTo{szIB,-0jdU">
            <field name="VAR" id="fImCfoE/{{NE-5*stS*-">newChar</field>
            <value name="VALUE">
              <block type="text_join" id="I(AzX?=Z]:3{K{Pc~hbn">
                <mutation items="1"></mutation>
                <value name="ADD0">
                  <block type="variables_get" id="8$$lG#!#G%pzx13q(tTN">
                    <field name="VAR" id="JnDPrcMN$d,m`6wd!iP:">_command</field>
                  </block>
                </value>
              </block>
            </value>
            <next>
              <block type="mpython_display_fill" id="Z2h[AZcW=(tdPhqbI)7[">
                <field name="display_fill">fill(0)</field>
                <next>
                  <block type="mpython_display_DispChar_5lines" id="]60)k5mcuj`Az]%uS;)S">
                    <field name="TEXTMODE">1</field>
                    <value name="DispChar_5lines">
                      <shadow type="mpython_4_lines" id="oaV1m|#e4leiAOMOcyXR">
                        <field name="mpython_4_lines">1</field>
                      </shadow>
                    </value>
                    <value name="message">
                      <shadow type="text" id="+={$JuD/RyMv8PUw[%lV">
                        <field name="TEXT">前进</field>
                      </shadow>
                    </value>
                    <next>
                      <block type="mpython_display_Show" id="!FSID*T2v0kU3JBSn5Y6">
                        <next>
                          <block type="mpython_bluebit_motor_on_i2c" id="|DgSLNQPg1/TvJQpwq,4">
                            <field name="left_right_interface">M1</field>
                            <field name="status">CLOCKWISE</field>
                            <value name="speed">
                              <shadow type="math_number" id=".(n.fFVbNNzBurzZr48t">
                                <field name="NUM">100</field>
                              </shadow>
                            </value>
                            <next>
                              <block type="mpython_bluebit_motor_on_i2c" id=":bR`_58TG2COCT[yu+Y=">
                                <field name="left_right_interface">M2</field>
                                <field name="status">CLOCKWISE</field>
                                <value name="speed">
                                  <shadow type="math_number" id="5[Fqu_U2-DEqN-?`7y](">
                                    <field name="NUM">100</field>
                                  </shadow>
                                </value>
                                <next>
                                  <block type="controls_if" id="%|wf.x)kESiWJG2r#]|h">
                                    <value name="IF0">
                                      <block type="logic_compare" id="b;YL@XlRW0PR+e{DvATA">
                                        <field name="OP">NEQ</field>
                                        <value name="A">
                                          <block type="variables_get" id="]2F,`xo8`N(5ESeuP.G|">
                                            <field name="VAR" id="fImCfoE/{{NE-5*stS*-">newChar</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <block type="text" id="lE0@nBS/JU1nDzxu}%wL">
                                            <field name="TEXT">b'F'</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <statement name="DO0">
                                      <block type="controls_flow_statements" id="0L)KMNI3j`$8x:jP@r8F">
                                        <field name="FLOW">BREAK</field>
                                      </block>
                                    </statement>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </statement>
      </block>
    </statement>
  </block>
  <block type="procedures_defnoreturn" id="{4.NfdqnV|Qeo4Zdkxl_" x="187" y="387">
    <field name="NAME">left</field>
    <statement name="STACK">
      <block type="controls_whileUntil" id="e5zYP=hy_[T@a1[4_HRl">
        <field name="MODE">WHILE</field>
        <value name="BOOL">
          <block type="logic_compare" id="?1Q3ru=[l9Mu[,?JxqU-">
            <field name="OP">EQ</field>
            <value name="A">
              <block type="variables_get" id="g`TB^S]{{om4ks`j0$16">
                <field name="VAR" id="fImCfoE/{{NE-5*stS*-">newChar</field>
              </block>
            </value>
            <value name="B">
              <block type="text" id="OCu8Wb0@)+TLTqA!f.,6">
                <field name="TEXT">b'D'</field>
              </block>
            </value>
          </block>
        </value>
        <statement name="DO">
          <block type="mpython_display_fill" id="Ly$M$`t9aFm^;tie:n8f">
            <field name="display_fill">fill(0)</field>
            <next>
              <block type="mpython_display_DispChar_5lines" id="2-VxGNaLcauXlRvLW!+l">
                <field name="TEXTMODE">1</field>
                <value name="DispChar_5lines">
                  <shadow type="mpython_4_lines" id="G2rapMp#9cZfJe78#~1k">
                    <field name="mpython_4_lines">1</field>
                  </shadow>
                </value>
                <value name="message">
                  <shadow type="text" id="q4/sgfwy,W6ioE#QUS)P">
                    <field name="TEXT">原地左转</field>
                  </shadow>
                </value>
                <next>
                  <block type="mpython_display_Show" id="jWF{Su+a^ibY=a-(~p4r">
                    <next>
                      <block type="mpython_bluebit_motor_on_i2c" id="LmoX%3S[Li#664,Wb0`V">
                        <field name="left_right_interface">M1</field>
                        <field name="status">ANTICLOCKWISE</field>
                        <value name="speed">
                          <shadow type="math_number" id="bI!IptnTZVDoV;L5tK[a">
                            <field name="NUM">100</field>
                          </shadow>
                        </value>
                        <next>
                          <block type="mpython_bluebit_motor_on_i2c" id=".yt{sGu1{IREbb^BV*/E">
                            <field name="left_right_interface">M2</field>
                            <field name="status">CLOCKWISE</field>
                            <value name="speed">
                              <shadow type="math_number" id="tSYfU_BfI71?bPd+%M~q">
                                <field name="NUM">100</field>
                              </shadow>
                            </value>
                            <next>
                              <block type="variables_set" id="72:Ro?WvOpQ_`@$g+W=~">
                                <field name="VAR" id="fImCfoE/{{NE-5*stS*-">newChar</field>
                                <value name="VALUE">
                                  <block type="text_join" id="(ER^B:Y:-*b{IM[jbB[;">
                                    <mutation items="1"></mutation>
                                    <value name="ADD0">
                                      <block type="variables_get" id=":r$eD6FnGEwq6k@c-`~m">
                                        <field name="VAR" id="JnDPrcMN$d,m`6wd!iP:">_command</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <next>
                                  <block type="controls_if" id="0.zoauAiYBQq2R?(2c-C">
                                    <value name="IF0">
                                      <block type="logic_compare" id="=f25M@l!Amx;V@,F=V{I">
                                        <field name="OP">NEQ</field>
                                        <value name="A">
                                          <block type="variables_get" id="t::Hmptihi4#/6/H`a9w">
                                            <field name="VAR" id="fImCfoE/{{NE-5*stS*-">newChar</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <block type="text" id="rA3@YN:he(rPdW`;N:x[">
                                            <field name="TEXT">b'D'</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <statement name="DO0">
                                      <block type="controls_flow_statements" id="qoeR8Z6A[GlNM?SwFZiv">
                                        <field name="FLOW">BREAK</field>
                                      </block>
                                    </statement>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </statement>
      </block>
    </statement>
  </block>
  <block type="procedures_defnoreturn" id="7E(LwamUr8$i;mI}j)w$" x="763" y="362">
    <field name="NAME">right</field>
    <statement name="STACK">
      <block type="controls_whileUntil" id="nRv(sYIxWeE0SJ%$[0~w">
        <field name="MODE">UNTIL</field>
        <value name="BOOL">
          <block type="logic_compare" id="25JZ4KJl6Z1xFCwx;j/0">
            <field name="OP">EQ</field>
            <value name="A">
              <block type="variables_get" id="oUU=%7Qm34%B{O;U1^Sf">
                <field name="VAR" id="fImCfoE/{{NE-5*stS*-">newChar</field>
              </block>
            </value>
            <value name="B">
              <block type="text" id=":@HrG1tgC3^axubt7_3M">
                <field name="TEXT">b'C'</field>
              </block>
            </value>
          </block>
        </value>
        <statement name="DO">
          <block type="mpython_display_fill" id="?w5yTEUttwZU1AEsJtz2">
            <field name="display_fill">fill(0)</field>
            <next>
              <block type="mpython_display_DispChar_5lines" id="[WaX_EY*PI,4MA?QFdUt">
                <field name="TEXTMODE">1</field>
                <value name="DispChar_5lines">
                  <shadow type="mpython_4_lines" id="%+~HN[{n{}L]KGt5dzZh">
                    <field name="mpython_4_lines">1</field>
                  </shadow>
                </value>
                <value name="message">
                  <shadow type="text" id="B+;m$u}{G5(!]HtDegeQ">
                    <field name="TEXT">原地右转</field>
                  </shadow>
                </value>
                <next>
                  <block type="mpython_display_Show" id="3E2xnz}8uwN?kFh^mTsO">
                    <next>
                      <block type="mpython_bluebit_motor_on_i2c" id="5#qNi^gz^S;nw_{Du7]2">
                        <field name="left_right_interface">M1</field>
                        <field name="status">ANTICLOCKWISE</field>
                        <value name="speed">
                          <shadow type="math_number" id="O{GDiawcdW_3loj5WYgn">
                            <field name="NUM">100</field>
                          </shadow>
                        </value>
                        <next>
                          <block type="mpython_bluebit_motor_on_i2c" id="AUg+5{%RbL~PL?Y%*yxf">
                            <field name="left_right_interface">M2</field>
                            <field name="status">CLOCKWISE</field>
                            <value name="speed">
                              <shadow type="math_number" id="6)@NNR$(?YkC-Gj.+Giw">
                                <field name="NUM">100</field>
                              </shadow>
                            </value>
                            <next>
                              <block type="variables_set" id="X4HM.|KELn5,JTPksO?.">
                                <field name="VAR" id="fImCfoE/{{NE-5*stS*-">newChar</field>
                                <value name="VALUE">
                                  <block type="text_join" id="d*dn{C2,FnRv}z}6Uj!8">
                                    <mutation items="1"></mutation>
                                    <value name="ADD0">
                                      <block type="variables_get" id="z,s,/r1`eOw5K??p8H0_">
                                        <field name="VAR" id="JnDPrcMN$d,m`6wd!iP:">_command</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <next>
                                  <block type="controls_if" id="mpP?f~ZtMb_/mokb~AJ2">
                                    <value name="IF0">
                                      <block type="logic_compare" id="|f?lB7{9u*pC{d?R3*(s">
                                        <field name="OP">NEQ</field>
                                        <value name="A">
                                          <block type="variables_get" id="?Xc0xw74;fV#Z|L/.`if">
                                            <field name="VAR" id="fImCfoE/{{NE-5*stS*-">newChar</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <block type="text" id="Q9:)EQ%TGQE}:@zHO[R%">
                                            <field name="TEXT">b'C'</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <statement name="DO0">
                                      <block type="controls_flow_statements" id="nWqLrJGeAq:]8#f1l.7(">
                                        <field name="FLOW">BREAK</field>
                                      </block>
                                    </statement>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </statement>
      </block>
    </statement>
  </block>
</xml>