Online demonstrations of UCUq with Blockly #
An overview of the use of Blockly to program with UCUq.
If you haven’t already done so, launch below two applications for the use of the Wokwi simulation (more details here):
- Wokwi simulation;
- configuration:
Click on the inserts below, then on the red button to launch the application. Observe the result in the simulator.
The code in the Python tab can be copied and executed in one of the dedicated inserts (with or without modifications).
Programs can be saved/loaded by copy/paste the content of the XML or JSON tabs.
RGB ring #
<xml xmlns="https://developers.google.com/blockly/xml">
<variables>
<variable id="ZhH#$aQ{V3bH=u^+vmYH">Pin</variable>
<variable id="H;XLhOXO([9QU_+D#cj~">Count</variable>
<variable id="qakBcuvE)(5VIJ~MxT%U">i</variable>
<variable id="OH%+33!xv~H_VE2I*IFg">Max</variable>
</variables>
<block type="variables_set" id="JWa-wpdKf(57*K8q^a5d" x="13" y="13">
<field name="VAR" id="ZhH#$aQ{V3bH=u^+vmYH">Pin</field>
<value name="VALUE">
<block type="math_number" id="(4BqFl94/CETI-E2?KC(">
<field name="NUM">20</field>
</block>
</value>
<next>
<block type="variables_set" id="ib?f-E?]iL~US}1nqOc8">
<field name="VAR" id="H;XLhOXO([9QU_+D#cj~">Count</field>
<value name="VALUE">
<block type="math_number" id="$M6T{zD@esZNu6l~hLL[">
<field name="NUM">16</field>
</block>
</value>
<next>
<block type="variables_set" id="wYKNY@1dvvS;Wkqb@#2`">
<field name="VAR" id="OH%+33!xv~H_VE2I*IFg">Max</field>
<value name="VALUE">
<block type="math_number" id="vO=IC=!O`@|snA=vg]ev">
<field name="NUM">255</field>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
<block type="ws2812_init" id="#kN609JE^2{s8zukVcwo" x="13" y="138">
<field name="LABEL">RGBs</field>
<value name="PIN">
<shadow type="ws2812_init_pin" id="pu=qxRNhL!mb7F9KMNUU">
<field name="PIN">15</field>
</shadow>
<block type="variables_get" id="C9SL0=~PGFC@3%_#jspY">
<field name="VAR" id="ZhH#$aQ{V3bH=u^+vmYH">Pin</field>
</block>
</value>
<value name="COUNT">
<shadow type="ws2812_init_count" id="/h^5![tKd/}/1)sdH{U@">
<field name="COUNT">1</field>
</shadow>
<block type="variables_get" id="2uG6kS:3o#LX4AzmwfA-">
<field name="VAR" id="H;XLhOXO([9QU_+D#cj~">Count</field>
</block>
</value>
<next>
<block type="ws2812_fill" id="w]34B!vqH!VuX(jiWL/h">
<field name="LABEL">RGBs</field>
<value name="R">
<shadow type="ws2812_fill_r" id="H`wZb}3NZ|dT+-5CN$L_">
<field name="R">0</field>
</shadow>
<block type="variables_get" id="a-u9J*^ig]Fp)dBmI4R5">
<field name="VAR" id="OH%+33!xv~H_VE2I*IFg">Max</field>
</block>
</value>
<value name="G">
<shadow type="ws2812_fill_g" id="/+.!N}*A_:$#~M4[f,A~">
<field name="G">0</field>
</shadow>
</value>
<value name="B">
<shadow type="ws2812_fill_b" id="3`X^Ybl004qjddwY.iw_">
<field name="B">0</field>
</shadow>
</value>
<next>
<block type="ws2812_write" id="mH|n4Lu6S9v.;W9VGL-4">
<field name="LABEL">RGBs</field>
<next>
<block type="ucuq_sleep" id="4D{8zV_#Pj,kr0Bao1,p">
<value name="SECONDS">
<shadow type="ucuq_sleep_seconds" id="%aVhfAVRp1CDsmmy4g(d">
<field name="SECONDS">1</field>
</shadow>
</value>
<next>
<block type="ws2812_fill" id="93bMWWET=7R|v1{TwTnF">
<field name="LABEL">RGBs</field>
<value name="R">
<shadow type="ws2812_fill_r" id="H`wZb}3NZ|dT+-5CN$L_">
<field name="R">0</field>
</shadow>
</value>
<value name="G">
<shadow type="ws2812_fill_g" id="0y-_3Z2iA=OLuTO~7lH1">
<field name="G">0</field>
</shadow>
<block type="variables_get" id="_wc!_;FJ=NDBnzyJNlal">
<field name="VAR" id="OH%+33!xv~H_VE2I*IFg">Max</field>
</block>
</value>
<value name="B">
<shadow type="ws2812_fill_b" id="D}S.k*q/h?Ts5QY{Y0e_">
<field name="B">0</field>
</shadow>
</value>
<next>
<block type="ws2812_write" id="xibEkJ-%Idq0s%^AWtbK">
<field name="LABEL">RGBs</field>
<next>
<block type="ucuq_sleep" id="+t4o,U-@Ab.:+/C~|JF8">
<value name="SECONDS">
<shadow type="ucuq_sleep_seconds" id="g(G_f)Z7c~StVt#?L,G1">
<field name="SECONDS">1</field>
</shadow>
</value>
<next>
<block type="ws2812_fill" id="3fe,.%@Lp[~+%O([/ur-">
<field name="LABEL">RGBs</field>
<value name="R">
<shadow type="ws2812_fill_r" id="M.DS.6M;b5A}u/b+p!Wp">
<field name="R">0</field>
</shadow>
</value>
<value name="G">
<shadow type="ws2812_fill_g" id=",0-0f3^xEcov-.;pd*|[">
<field name="G">0</field>
</shadow>
</value>
<value name="B">
<shadow type="ws2812_fill_b" id="E8AJzY%{eH]s`%Dlh!-f">
<field name="B">0</field>
</shadow>
<block type="variables_get" id="a.)tNW5z?,S~(Nj#FI--">
<field name="VAR" id="OH%+33!xv~H_VE2I*IFg">Max</field>
</block>
</value>
<next>
<block type="ws2812_write" id="G3A/{PK$+aGEHT$ew$=1">
<field name="LABEL">RGBs</field>
<next>
<block type="ucuq_sleep" id="zS!/rxg1z#BOuBpQG@OC">
<value name="SECONDS">
<shadow type="ucuq_sleep_seconds" id="m`^SmU%.wEJn8mqCDo[m">
<field name="SECONDS">1</field>
</shadow>
</value>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
<block type="controls_repeat_ext" id="Yc2wo%8ixGJ!u2b9JPAQ" x="13" y="1138">
<value name="TIMES">
<shadow type="math_number" id="mWZO2)L:M`Wa@j/nk@,V">
<field name="NUM">7</field>
</shadow>
</value>
<statement name="DO">
<block type="controls_for" id="nOw51?F7z-[V*PQlFV51">
<field name="VAR" id="qakBcuvE)(5VIJ~MxT%U">i</field>
<value name="FROM">
<shadow type="math_number" id="u$cn99-J7Fto?Kos+O}m">
<field name="NUM">0</field>
</shadow>
</value>
<value name="TO">
<shadow type="math_number" id=".aR{y=n[.C`z.HDqZNth">
<field name="NUM">10</field>
</shadow>
<block type="math_arithmetic" id="rE3o.XE?KkTygK+FfLt^">
<field name="OP">MINUS</field>
<value name="A">
<shadow type="math_number" id="g(=D.Uz*m%A,hZTC5sQz">
<field name="NUM">1</field>
</shadow>
<block type="variables_get" id="I]+ZI?L]ex[,,|18/qpg">
<field name="VAR" id="H;XLhOXO([9QU_+D#cj~">Count</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id="?d^zJ)Gw3=3,KmKJXJaY">
<field name="NUM">1</field>
</shadow>
</value>
</block>
</value>
<value name="BY">
<shadow type="math_number" id="uCOH?2c#[N5~Ll5r%nl#">
<field name="NUM">1</field>
</shadow>
</value>
<statement name="DO">
<block type="ws2812_setValue" id="Bwt,{q){Eyme2OTg|$b%">
<field name="LABEL">RGBs</field>
<value name="INDEX">
<shadow type="ws2812_setValue_index" id="3Iqj+ExM=18)eGl@)bl.">
<field name="INDEX">0</field>
</shadow>
<block type="variables_get" id=";Krqo!8:XI45;:8*-mI%">
<field name="VAR" id="qakBcuvE)(5VIJ~MxT%U">i</field>
</block>
</value>
<value name="R">
<shadow type="ws2812_setValue_r" id="5px,c{G%]}HvAjt}Hx?T">
<field name="R">0</field>
</shadow>
<block type="math_random_int" id="(GjJS_HfHS`iFjAL7fa}">
<value name="FROM">
<shadow type="math_number" id="Ok/o7L~WX#Spul3=gX#u">
<field name="NUM">1</field>
</shadow>
</value>
<value name="TO">
<shadow type="math_number" id="/:CQ=-bF[4)e)95PMmCh">
<field name="NUM">0</field>
</shadow>
<block type="variables_get" id="#!i{-pXZpYGu=@_C1kVt">
<field name="VAR" id="OH%+33!xv~H_VE2I*IFg">Max</field>
</block>
</value>
</block>
</value>
<value name="G">
<shadow type="ws2812_setValue_g" id="jP//{PerUi*QGYvwSHdx">
<field name="G">0</field>
</shadow>
<block type="math_random_int" id="/L=f-PHB3c~*Fr/D@Fp^">
<value name="FROM">
<shadow type="math_number" id=".@KJz*0}CtRF9HKiF4Z;">
<field name="NUM">0</field>
</shadow>
</value>
<value name="TO">
<shadow type="math_number" id="NJ$m*UN6)jJi|$5D~MKW">
<field name="NUM">0</field>
</shadow>
<block type="variables_get" id="@^u:@VGnm4h(GPMf/Bly">
<field name="VAR" id="OH%+33!xv~H_VE2I*IFg">Max</field>
</block>
</value>
</block>
</value>
<value name="B">
<shadow type="ws2812_setValue_b" id="A,Y4_Q;hYdKJ1{=u%0f9">
<field name="B">0</field>
</shadow>
<block type="math_random_int" id="C@7_5K-qe+j[:l?)DdJV">
<value name="FROM">
<shadow type="math_number" id="rv#dcl}~#a#!Bm})=71u">
<field name="NUM">0</field>
</shadow>
</value>
<value name="TO">
<shadow type="math_number" id="([$H:Y5`UynRyY=LDXxM">
<field name="NUM">0</field>
</shadow>
<block type="variables_get" id="1IH1X/T$;a8{As)yCUN0">
<field name="VAR" id="OH%+33!xv~H_VE2I*IFg">Max</field>
</block>
</value>
</block>
</value>
<next>
<block type="ws2812_write" id="]Ivl_VI0oVzLr=A%G*)/">
<field name="LABEL">RGBs</field>
</block>
</next>
</block>
</statement>
</block>
</statement>
</block>
<block type="ucuq_sleep" id="$YT$}g@?Vc:|.:t-a0Fh" x="13" y="1563">
<value name="SECONDS">
<shadow type="ucuq_sleep_seconds" id="U8OolWf%;2SAx:r4cu6T">
<field name="SECONDS">1</field>
</shadow>
</value>
<next>
<block type="ws2812_fill" id="soxToT!qy#gm=;5f%;U]">
<field name="LABEL">RGBs</field>
<value name="R">
<shadow type="ws2812_fill_r" id="t{R@+TOyT$TR~svV^Yn6">
<field name="R">0</field>
</shadow>
</value>
<value name="G">
<shadow type="ws2812_fill_g" id="uzGPZ.xK:lj.H~{C}?z(">
<field name="G">0</field>
</shadow>
</value>
<value name="B">
<shadow type="ws2812_fill_b" id="f,AHH`-Qqz=fpf7Ne%QT">
<field name="B">0</field>
</shadow>
</value>
<next>
<block type="ws2812_write" id="AiE8|S_]`#*`{)D|,Tll">
<field name="LABEL">RGBs</field>
</block>
</next>
</block>
</next>
</block>
</xml>
LCD display #
<xml xmlns="https://developers.google.com/blockly/xml">
<variables>
<variable id="qQ9%Yg*VhY6?7}iqprBV">Name</variable>
<variable id="ms/6($YO*/BKvA:[N7LH">Line1</variable>
<variable id="ZhH#$aQ{V3bH=u^+vmYH">SDA</variable>
<variable id="C2.i$o:.CGmHAK~=6@Hp">Line2</variable>
<variable id="H;XLhOXO([9QU_+D#cj~">SCL</variable>
<variable id="HOaXZA:Qn4+rp4WvXUls">Delay</variable>
<variable id="Y)Mc:KXD3,mxdyRX.xNV">Message</variable>
<variable id="8!0pa[Oc~za|8TKPF|{n">j</variable>
</variables>
<block type="variables_set" id="xIXhrO@|]?[oax%Ng=-$" x="13" y="13">
<field name="VAR" id="qQ9%Yg*VhY6?7}iqprBV">Name</field>
<value name="VALUE">
<block type="text" id="X0_fT4u][vKW0ofbv_t#">
<field name="TEXT"></field>
</block>
</value>
</block>
<block type="variables_set" id="Gh-S_%L57-///qxB(lj8" x="13" y="88">
<field name="VAR" id="ms/6($YO*/BKvA:[N7LH">Line1</field>
<value name="VALUE">
<block type="text" id="Dv0k~b;T_7rnP;|G%EVG">
<field name="TEXT">Nice to meet you</field>
</block>
</value>
<next>
<block type="variables_set" id="$49UN|U9Ub}Zf]b[6Yi3">
<field name="VAR" id="C2.i$o:.CGmHAK~=6@Hp">Line2</field>
<value name="VALUE">
<block type="text" id="qt|*I5%J)i@t{!xC|xbt">
<field name="TEXT">How are you?</field>
</block>
</value>
</block>
</next>
</block>
<block type="variables_set" id="JWa-wpdKf(57*K8q^a5d" x="13" y="188">
<field name="VAR" id="ZhH#$aQ{V3bH=u^+vmYH">SDA</field>
<value name="VALUE">
<block type="math_number" id="(4BqFl94/CETI-E2?KC(">
<field name="NUM">6</field>
</block>
</value>
<next>
<block type="variables_set" id="ib?f-E?]iL~US}1nqOc8">
<field name="VAR" id="H;XLhOXO([9QU_+D#cj~">SCL</field>
<value name="VALUE">
<block type="math_number" id="$M6T{zD@esZNu6l~hLL[">
<field name="NUM">7</field>
</block>
</value>
<next>
<block type="variables_set" id="YzX3U|{C23aeRJM^E_C,">
<field name="VAR" id="HOaXZA:Qn4+rp4WvXUls">Delay</field>
<value name="VALUE">
<block type="math_number" id="xdp.@4`[[}(ZO9$c9%6B">
<field name="NUM">0.1</field>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
<block type="hd44780_init" id="k#cza4OZ0eC%p,h))L.O" x="13" y="313">
<field name="LABEL">LCD</field>
<value name="SOFT">
<shadow type="hd44780_init_soft" id="XQ7?9Twq!Lml-04U|)t@">
<field name="SOFT">TRUE</field>
</shadow>
</value>
<value name="SDA">
<shadow type="hd44780_init_sda" id="+Uc8PgyLwinT!fCk!3~j">
<field name="SDA">0</field>
</shadow>
<block type="variables_get" id="X^6;LOwu[S#[5OHrJ~]M">
<field name="VAR" id="ZhH#$aQ{V3bH=u^+vmYH">SDA</field>
</block>
</value>
<value name="SCL">
<shadow type="hd44780_init_scl" id="?Uff`/94gd@.yn;cUi=5">
<field name="SCL">0</field>
</shadow>
<block type="variables_get" id="P.]b8+ht-.]xmI}:M=5a">
<field name="VAR" id="H;XLhOXO([9QU_+D#cj~">SCL</field>
</block>
</value>
<value name="COLS">
<shadow type="hd44780_init_cols" id="9AHF6y=HqXwA/-@^QBwI">
<field name="COLS">16</field>
</shadow>
</value>
<value name="ROWS">
<shadow type="hd44780_init_rows" id="irT{93sg{m_,wj*x#xgW">
<field name="ROWS">2</field>
</shadow>
</value>
<next>
<block type="controls_if" id="NAsS?t1KPgBr(.Dzn~)-">
<value name="IF0">
<block type="text_isEmpty" id="+f-`H-M#L3s:(*D]c(8w">
<value name="VALUE">
<shadow type="text" id="xM6Wb;K3bhZhE#[Dv?6U">
<field name="TEXT"></field>
</shadow>
<block type="variables_get" id="tilRHHPF?Qx+$7HN^sZ3">
<field name="VAR" id="qQ9%Yg*VhY6?7}iqprBV">Name</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="variables_set" id="dLkbAlPdcd(U7(rtLru0">
<field name="VAR" id="qQ9%Yg*VhY6?7}iqprBV">Name</field>
<value name="VALUE">
<block type="text_prompt_ext" id="MUenVO6d9B=/bo1^;}=y">
<mutation type="TEXT"></mutation>
<field name="TYPE">TEXT</field>
<value name="TEXT">
<shadow type="text" id="Y^@~+G9#rkcQo)o+q{/o">
<field name="TEXT">Name?</field>
</shadow>
</value>
</block>
</value>
</block>
</statement>
<next>
<block type="variables_set" id="5e/wM_c97{t_yE0VS):-">
<field name="VAR" id="qQ9%Yg*VhY6?7}iqprBV">Name</field>
<value name="VALUE">
<block type="text_trim" id="bT%qj`Kf;6e!0(mMrdHx">
<field name="MODE">BOTH</field>
<value name="TEXT">
<shadow type="text" id="#gd]Z}|_Tl8eE}Ozgo$o">
<field name="TEXT">abc</field>
</shadow>
<block type="variables_get" id="^=LLUVH_ni!*^E1e}FkV">
<field name="VAR" id="qQ9%Yg*VhY6?7}iqprBV">Name</field>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="Ht~EBKw,Jio*!Ggnxv?=">
<field name="VAR" id="Y)Mc:KXD3,mxdyRX.xNV">Message</field>
<value name="VALUE">
<block type="text_join" id="W^HeO{]g2]w^BHFRp@QD">
<mutation items="6"></mutation>
<value name="ADD0">
<block type="text" id="booA}fV}3X!T~l|,U#qu">
<field name="TEXT"> </field>
</block>
</value>
<value name="ADD1">
<block type="variables_get" id=".*ykE~B!c$U-2I}~}2+]">
<field name="VAR" id="ms/6($YO*/BKvA:[N7LH">Line1</field>
</block>
</value>
<value name="ADD2">
<block type="text" id="KdajUCv=3!~_N0fkksik">
<field name="TEXT">, </field>
</block>
</value>
<value name="ADD3">
<block type="variables_get" id="1pUd0ZtYd+ITd8:Niun;">
<field name="VAR" id="qQ9%Yg*VhY6?7}iqprBV">Name</field>
</block>
</value>
<value name="ADD4">
<block type="text" id="y1bao)N13OzZ+u{.0+QG">
<field name="TEXT">,</field>
</block>
</value>
<value name="ADD5">
<block type="text_getSubstring" id=".}g-GxSo|mugLfa174N~">
<mutation at1="true" at2="true"></mutation>
<field name="WHERE1">FROM_START</field>
<field name="WHERE2">FROM_START</field>
<value name="STRING">
<block type="text" id="SjG}3WySF0kAjZ(pYt=X">
<field name="TEXT"> </field>
</block>
</value>
<value name="AT1">
<block type="math_number" id="h$Wpc8eB-l%S2AvN_ax!">
<field name="NUM">1</field>
</block>
</value>
<value name="AT2">
<block type="math_arithmetic" id="=fiu?E+BS/I{G]P:ixdS">
<field name="OP">MINUS</field>
<value name="A">
<shadow type="math_number" id="]I;E42XqcdSdgca1trc%">
<field name="NUM">15</field>
</shadow>
</value>
<value name="B">
<shadow type="math_number" id="*X0ziV@vt.]%m6w`by=~">
<field name="NUM">1</field>
</shadow>
<block type="text_length" id="/@@OE_A}.RiSmOwS6W{~">
<value name="VALUE">
<shadow type="text" id="/BW]kC8A03h;I(}D`-*k">
<field name="TEXT">abc</field>
</shadow>
<block type="variables_get" id="yrXC38Om)FPX(~!*RPU;">
<field name="VAR" id="qQ9%Yg*VhY6?7}iqprBV">Name</field>
</block>
</value>
</block>
</value>
</block>
</value>
</block>
</value>
</block>
</value>
<next>
<block type="hd44780_clear" id="Sl_D74f7T:oBB4teQgbY">
<field name="LABEL">LCD</field>
<next>
<block type="controls_for" id="X2l-N9a.o@}cx5y]-kR|">
<field name="VAR" id="8!0pa[Oc~za|8TKPF|{n">j</field>
<value name="FROM">
<shadow type="math_number" id="XadbJp!{rg=e5*sb)N~}">
<field name="NUM">0</field>
</shadow>
</value>
<value name="TO">
<shadow type="math_number" id="}T4KwbBZ]uP;+r|C!A_E">
<field name="NUM">10</field>
</shadow>
<block type="math_arithmetic" id="au.`tIb^GjTTZ]A8o#+0">
<field name="OP">MINUS</field>
<value name="A">
<shadow type="math_number" id="2^d{O]cR^gn8C1X!vPjB">
<field name="NUM">1</field>
</shadow>
<block type="text_length" id="^]f%uGrP2IZOUmiHmPKX">
<value name="VALUE">
<shadow type="text" id="dn3(EOo/vTI,u^$b,WPX">
<field name="TEXT">abc</field>
</shadow>
<block type="variables_get" id="HL@_aD!?iD3M;zbW}`vQ">
<field name="VAR" id="Y)Mc:KXD3,mxdyRX.xNV">Message</field>
</block>
</value>
</block>
</value>
<value name="B">
<shadow type="math_number" id="NP|pcNt|km59?qqEK-_Q">
<field name="NUM">16</field>
</shadow>
</value>
</block>
</value>
<value name="BY">
<shadow type="math_number" id="RTJiDx1w8{jJtHc8@^i:">
<field name="NUM">1</field>
</shadow>
</value>
<statement name="DO">
<block type="hd44780_moveTo" id="}^ffxY9*Cjav`p!dWl.y">
<field name="LABEL">LCD</field>
<value name="X">
<shadow type="hd44780_moveTo_x" id="4)OKFp{$;gZvDKq7c}Qt">
<field name="X">0</field>
</shadow>
</value>
<value name="Y">
<shadow type="hd44780_moveTo_y" id="1]Y)=c9bbU9A1SZyi67!">
<field name="Y">0</field>
</shadow>
</value>
<next>
<block type="hd44780_putString" id=".A8!4Z?Q|0B2Lct95||?">
<field name="LABEL">LCD</field>
<value name="STRING">
<shadow type="hd44780_putString_string" id="5[Bu#jdmg/|_(OLYy2:|">
<field name="STRING"></field>
</shadow>
<block type="text_getSubstring" id="aW:}IW{51{/OmMT`CZGp">
<mutation at1="true" at2="true"></mutation>
<field name="WHERE1">FROM_START</field>
<field name="WHERE2">FROM_START</field>
<value name="STRING">
<block type="variables_get" id="xXjPm%)%vsXQag@bll%;">
<field name="VAR" id="Y)Mc:KXD3,mxdyRX.xNV">Message</field>
</block>
</value>
<value name="AT1">
<block type="math_arithmetic" id="O4gRw_}L.kfw2NZnpsDH">
<field name="OP">ADD</field>
<value name="A">
<shadow type="math_number" id="/bf_ap0204!TRmep+LVS">
<field name="NUM">1</field>
</shadow>
<block type="variables_get" id="P4q!L8qo!J|]jx*UcBy.">
<field name="VAR" id="8!0pa[Oc~za|8TKPF|{n">j</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id="Zp_rxq^mVBUu0ZP?([k=">
<field name="NUM">1</field>
</shadow>
</value>
</block>
</value>
<value name="AT2">
<block type="math_arithmetic" id="KY{P:po/=LJdhJgpQ=4-">
<field name="OP">ADD</field>
<value name="A">
<shadow type="math_number" id="/bf_ap0204!TRmep+LVS">
<field name="NUM">1</field>
</shadow>
<block type="variables_get" id="7~/URbe?;|y6$mVLXq-G">
<field name="VAR" id="8!0pa[Oc~za|8TKPF|{n">j</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id="a2GyK=(W`1i^qAU9+*R[">
<field name="NUM">16</field>
</shadow>
</value>
</block>
</value>
</block>
</value>
<next>
<block type="ucuq_sleep" id="SP`?4}@ygZez3b#%@Djm">
<value name="SECONDS">
<shadow type="ucuq_sleep_seconds" id="keoza!{:s]%y99o6EF!q">
<field name="SECONDS">0.1</field>
</shadow>
<block type="variables_get" id="=ueSpP(k$7B@F9X~`1_W">
<field name="VAR" id="HOaXZA:Qn4+rp4WvXUls">Delay</field>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</statement>
<next>
<block type="hd44780_moveTo" id="tx#_%esC]nZ?xNh{).XW">
<field name="LABEL">LCD</field>
<value name="X">
<shadow type="hd44780_moveTo_x" id="@qpmS5fyU`7kXr(20@Mn">
<field name="X">0</field>
</shadow>
</value>
<value name="Y">
<shadow type="hd44780_moveTo_y" id="LMfFY+6v=(eLb~9kfMy^">
<field name="Y">1</field>
</shadow>
</value>
<next>
<block type="hd44780_putString" id="%#prT)_aPBApP)d*Y@pQ">
<field name="LABEL">LCD</field>
<value name="STRING">
<shadow type="hd44780_putString_string" id="5[Bu#jdmg/|_(OLYy2:|">
<field name="STRING"></field>
</shadow>
<block type="variables_get" id="LnS5e-[pM$i:y_jN|M3E">
<field name="VAR" id="C2.i$o:.CGmHAK~=6@Hp">Line2</field>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</xml>
GPIO #
Very simple program to a GPIO pin. By default, it’s the one on which the 7-segment display is connected..
<xml xmlns="https://developers.google.com/blockly/xml">
<block type="gpio_init" id="hpW2#=~{o`.ci/NA1M:0" x="13" y="38">
<field name="LABEL">GPIO</field>
<value name="PIN">
<shadow type="gpio_init_pin" id="NT;QTTae7qPPUjriQ7R[">
<field name="PIN">2</field>
</shadow>
</value>
<next>
<block type="gpio_high" id="Ef662f0?={hKG;TP2dS-">
<field name="LABEL">GPIO</field>
<value name="STATE">
<shadow type="gpio_high_state" id="h#y;xFsB0jR$0^@1]JO-">
<field name="STATE">TRUE</field>
</shadow>
</value>
</block>
</next>
</block>
</xml>
For other examples of UCUq use, see here.