Démonstration en ligne de UCUq avec Blockly #
Un aperçu de l’utilisation de Blockly pour programmer avec UCUq.
Si ce n’est pas déjà fait, lancer les deux application ci-dessous pour utiliser la simulation Wokwi (plus de détails ici) :
- Simulation Wokwi ;
- configuration :
Cliquer sur les encarts ci-dessous, puis sur le bouton rouge pour lancer l’application. Observer le résultat dans le simulateur.
Le code présent dans l’onglet Python peut être copié et exécuté dans les encarts dédié (avec ou sans modifications).
Les programmes peuvent être sauvegardés/rechargés en copiant/collant le contenu des onglets XML ou JSON.
Anneau RGB #
<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>
Afficheur LCD #
<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">Ravi de vous rencontrer</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">Comment va ?</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 #
Programme très simple pour piloter une broche GPIO. Par défaut, il s’agit de la broche sur laquelle est branchée l’afficheur 7 segments.
<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>
Pour d’autres exemples d’utilisation de UCUq, voir ici.