Hardware components | ||||||
![]() |
| × | 1 |
I used a Kniwwelino to create a binary clock using the build in LED matrix to show the current time.
I began with a rather easy program which you can see above to get an idea of how this clock could look like. The red blocks contain the main program while the long functions on the right are used to create the actual matrix.
Afterwards I thought about how to keep this long program short and came up with this one:
Here I didn`t define the pixels for every single possibility by hand. Instead I used calculations creating a color code which you can see in the actual code that can be read by the Kniwwelino.
The calculations separating the current time in single numbers stays the same as before and I think the function get time is therefore self explaining but in order to transcribe those single figures of the time to binary a little more mathematics was needed:
1. Devide the number you want to transcribe by 2. The solution of one of those calculations is the dividend for the next one until it is 0.
2. But you not only need the next dividend but also the remainder of the division by 2 (modulo 2) because in this case it can only be 1 or 0. Those 1s and 0s are part of the binary figure.
3. Now all the successive modulos are appended to previous ones. The result is the number in binary
The problem is that the Kniwwelino has 5 LEDs in a row instead of the maximally 4 needed which is why at least one 0 has to be added. The variable I is used to count how long our binary figure is in order to add more than just one 0 if it`s needed to fill the row.
first solution
XMLplease open the file on https://code.kniwwelino.lu
<xml xmlns="http://www.w3.org/1999/xhtml">
<block type="arduino_functions_setup" id="JPzk:wvE:g|PER40GEu1" x="40" y="40">
<statement name="SETUP_FUNC">
<block type="variables_set" id="vPJoXxH80*eP2~Ne6{,J">
<field name="VAR">date</field>
<value name="VALUE">
<block type="kniwwelino_getTime" id="~nt%byBR6*4NQQWeb?|k">
<field name="FORMAT">DATE</field>
</block>
</value>
<next>
<block type="kniwwelino_MATRIXwrite" id="R.9{-Nl#e@M4Eg6/F=gV">
<field name="TYPE">SCROLL</field>
<value name="TEXT">
<shadow type="text" id="cTUP~;C%(R~b07?i`9u#">
<field name="TEXT">Hello Kniwwelino</field>
</shadow>
<block type="variables_get" id="dd%U^v;,sAfcJkF6x?;G">
<field name="VAR">date</field>
</block>
</value>
<next>
<block type="kniwwelino_sleepsec" id="er6dr]#I,N`,};QMZz{A">
<value name="DELAY_TIME_SEC">
<shadow type="math_number" id="V[BEvR{6N6}dUI6E%0j!">
<field name="NUM">5</field>
</shadow>
</value>
<next>
<block type="kniwwelino_MATRIXclear" id="1-c`3rz-}yunf^GgcC1%"></block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
<block type="procedures_defnoreturn" id="cxVO0MEk8T?NTEsD?W;0" x="622" y="40">
<field name="NAME">Minuten</field>
<comment pinned="false" h="80" w="160">Describe the function...</comment>
<statement name="STACK">
<block type="variables_set" id="%t/]E3BNFY[O~%xqCXk)">
<field name="VAR">i</field>
<value name="VALUE">
<block type="kniwwelino_getTimeInt" id="C~YXlZP}5BDCQ6hwJ1v|">
<field name="FORMAT">MINUTE</field>
</block>
</value>
<next>
<block type="variables_set" id="1_[j#:9rIz|#{PLaJD+f">
<field name="VAR">minuten</field>
<value name="VALUE">
<block type="math_modulo" id="rCYryc6[}ennAl(3hvaJ">
<value name="DIVIDEND">
<block type="variables_get" id="VJNY!rQ*u1:w*%YAI|Wa">
<field name="VAR">i</field>
</block>
</value>
<value name="DIVISOR">
<block type="math_number" id="sQVdh:ET~LEL8Gj+w@Og">
<field name="NUM">10</field>
</block>
</value>
</block>
</value>
<next>
<block type="procedures_callnoreturn" id="RWXP#sU~1/40O)ya/T9p">
<mutation name="clear line4"></mutation>
<next>
<block type="controls_if" id="@I1C+6^:xGUw4h8hm@_(">
<mutation elseif="1"></mutation>
<value name="IF0">
<block type="math_number_property" id="rH#XETHzKOKT}.@!q^Y.">
<mutation divisor_input="false"></mutation>
<field name="PROPERTY">ODD</field>
<value name="NUMBER_TO_CHECK">
<block type="variables_get" id="1G.zjo}1%Yi_DnK6W}MP">
<field name="VAR">minuten</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="kniwwelino_MATRIXdrawPixel" id=":g*BsM2T{?;fd)uB8{M{">
<value name="X">
<block type="math_number" id="#,8B?5.G:6K/cqv[knK[">
<field name="NUM">4</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="0%tuCB=:i06SMsl*UTan">
<field name="NUM">4</field>
</block>
</value>
<value name="STATE">
<block type="math_number" id="KLP#maM`zSIn2SFN4-.!">
<field name="NUM">1</field>
</block>
</value>
<next>
<block type="controls_if" id="0Rw[V}M{p0/DoiTFehzI">
<mutation elseif="2"></mutation>
<value name="IF0">
<block type="logic_operation" id="/zYkqQ+}Ti`7B@]=#oiR">
<field name="OP">OR</field>
<value name="A">
<block type="logic_compare" id="W9k%5RPomOe~)Lgdjnkv">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="5@aVqIefX?UvkreL]NBb">
<field name="VAR">minuten</field>
</block>
</value>
<value name="B">
<block type="math_number" id="WAh:F.f)=:(U6A|1R#oR">
<field name="NUM">3</field>
</block>
</value>
</block>
</value>
<value name="B">
<block type="logic_compare" id="#5yh,|`!:Bt.{~IU~Dg_">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="}V194Qq#rCr_5WHiPM1z">
<field name="VAR">minuten</field>
</block>
</value>
<value name="B">
<block type="math_number" id="6Ig6N@P0aa^iR(;9.K05">
<field name="NUM">7</field>
</block>
</value>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="kniwwelino_MATRIXdrawPixel" id="tWtaZpEwuM/q2/4)[Dtz">
<value name="X">
<block type="math_number" id="Eu~o~(_}0h]ZVwtQec9^">
<field name="NUM">4</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="T8*:dYPn)_4h}BQJ^Hdu">
<field name="NUM">3</field>
</block>
</value>
<value name="STATE">
<block type="math_number" id="qi~5@)+`,pSgNky}0GpD">
<field name="NUM">1</field>
</block>
</value>
<next>
<block type="controls_if" id="AaXg/fzhq?~kH0x#t@NC">
<value name="IF0">
<block type="logic_compare" id="W1AG;lJQ1.A7a*0_gm~:">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="7wZ=_cLRBZI(1hQB2([o">
<field name="VAR">minuten</field>
</block>
</value>
<value name="B">
<block type="math_number" id="8e4Aw(x2~|el|8TdmcC}">
<field name="NUM">7</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="kniwwelino_MATRIXdrawPixel" id="e.D)r+6ub`T5za~.E=RH">
<value name="X">
<block type="math_number" id="%/^So:|:wyh-CW;CyxGe">
<field name="NUM">4</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="rVunQP5f(L~+y|8~(9@L">
<field name="NUM">2</field>
</block>
</value>
<value name="STATE">
<block type="math_number" id="3Y?[PPDm/FQ#hdMFZQQk">
<field name="NUM">1</field>
</block>
</value>
</block>
</statement>
</block>
</next>
</block>
</statement>
<value name="IF1">
<block type="logic_compare" id="}#uY{^r=p?l^:n=T^lRg">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="IbMvsev1]1Ec,!URH]n7">
<field name="VAR">minuten</field>
</block>
</value>
<value name="B">
<block type="math_number" id="b/-tS@NYPIa1^TbO9v)S">
<field name="NUM">5</field>
</block>
</value>
</block>
</value>
<statement name="DO1">
<block type="kniwwelino_MATRIXdrawPixel" id=",Y6Z@/@0nOVFCQ(OLDC/">
<value name="X">
<block type="math_number" id="R@UH!}j=Sef3_VYZsjEk">
<field name="NUM">4</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="qX)H,bN#BUH*C@%nwk(|">
<field name="NUM">2</field>
</block>
</value>
<value name="STATE">
<block type="math_number" id="#Bz%MUO0NUiz1xP]H}]0">
<field name="NUM">1</field>
</block>
</value>
</block>
</statement>
<value name="IF2">
<block type="logic_compare" id="ADM~k3S6A3ImHG@zE{@T">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="6,L0OX66~T:3`H_]WAbV">
<field name="VAR">minuten</field>
</block>
</value>
<value name="B">
<block type="math_number" id="yF@W:GtMmLG[xYYf?4L{">
<field name="NUM">9</field>
</block>
</value>
</block>
</value>
<statement name="DO2">
<block type="kniwwelino_MATRIXdrawPixel" id="eEFT5B6gf.idwIVW3Pp7">
<value name="X">
<block type="math_number" id="QXq@U}_mS7x/QTFNTt)W">
<field name="NUM">4</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="iAWB,E-d%9y)E_}zG~nu">
<field name="NUM">1</field>
</block>
</value>
<value name="STATE">
<block type="math_number" id="Z_N1XaRzpnvwe[7P0C}x">
<field name="NUM">1</field>
</block>
</value>
</block>
</statement>
</block>
</next>
</block>
</statement>
<value name="IF1">
<block type="math_number_property" id="*whg7(Xzd4=,pHU5F-dT">
<mutation divisor_input="false"></mutation>
<field name="PROPERTY">EVEN</field>
<value name="NUMBER_TO_CHECK">
<block type="variables_get" id="`#nT`{Uru:1NC7R]l]2x">
<field name="VAR">minuten</field>
</block>
</value>
</block>
</value>
<statement name="DO1">
<block type="controls_if" id="Afo]pM9p(/Glu)cE26-9">
<mutation elseif="2"></mutation>
<value name="IF0">
<block type="logic_operation" id="9]Gbwa:9^L|UeRlafTh#">
<field name="OP">OR</field>
<value name="A">
<block type="logic_compare" id="-*t4Fa0g[%,re~?i-N82">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="=YhJb4pGAtf;MQ7Sq_Q0">
<field name="VAR">minuten</field>
</block>
</value>
<value name="B">
<block type="math_number" id="K+-zBvlJ2H6*Wcq8n@?r">
<field name="NUM">2</field>
</block>
</value>
</block>
</value>
<value name="B">
<block type="logic_compare" id="fk}o;MaEK8-GOm8fqlSS">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="~f/!d%ABaaf/#vxPD}xH">
<field name="VAR">minuten</field>
</block>
</value>
<value name="B">
<block type="math_number" id="USIw|]6nS%g(mr9/yB6}">
<field name="NUM">6</field>
</block>
</value>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="kniwwelino_MATRIXdrawPixel" id="i[qnQ)!AUE|v6S]?S3Aw">
<value name="X">
<block type="math_number" id="Ql^tL+Km[0X*UtId@%Np">
<field name="NUM">4</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="t2+juK9HDS3|8H12;?MB">
<field name="NUM">3</field>
</block>
</value>
<value name="STATE">
<block type="math_number" id="bO`@g3vZ-{b#;X*Rd(]f">
<field name="NUM">1</field>
</block>
</value>
<next>
<block type="controls_if" id="-NEuVO6u~yzajyz!eAsF">
<value name="IF0">
<block type="logic_compare" id="d@N_Pgw*LnY4)iS9fF*P">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="*G(s91:umhudP(N_xolz">
<field name="VAR">minuten</field>
</block>
</value>
<value name="B">
<block type="math_number" id="AYz#MbW56ocnn!%1{jdS">
<field name="NUM">6</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="kniwwelino_MATRIXdrawPixel" id="V6hkt!vO4*a;hLx.lb^5">
<value name="X">
<block type="math_number" id="pB`FG]!OCCUC.qcG48A?">
<field name="NUM">4</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="_C%Y`:U%.gJNXAhIqz?i">
<field name="NUM">2</field>
</block>
</value>
<value name="STATE">
<block type="math_number" id="e-SKbZCpqbKccaX}(eoR">
<field name="NUM">1</field>
</block>
</value>
</block>
</statement>
</block>
</next>
</block>
</statement>
<value name="IF1">
<block type="logic_compare" id="IdPNu9GYb%s^^Vp%:ANg">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="smEPR@NJwNh(X;m.i:|q">
<field name="VAR">minuten</field>
</block>
</value>
<value name="B">
<block type="math_number" id="_.*5+q%ya3*2{28rK|5B">
<field name="NUM">4</field>
</block>
</value>
</block>
</value>
<statement name="DO1">
<block type="kniwwelino_MATRIXdrawPixel" id="41+vJI*KB7,K.K`4XJXj">
<value name="X">
<block type="math_number" id="Pe{0;T`HDLja/d/NOuQe">
<field name="NUM">4</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="2R5K,}wk2w;TV:Zan//,">
<field name="NUM">2</field>
</block>
</value>
<value name="STATE">
<block type="math_number" id="Gj2.iP2k[rRG`RtznRrV">
<field name="NUM">1</field>
</block>
</value>
</block>
</statement>
<value name="IF2">
<block type="logic_compare" id="`m,v@@g9D4CSl6A;Qw{_">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="m|Mb](0,{:CE``aIBZ/I">
<field name="VAR">minuten</field>
</block>
</value>
<value name="B">
<block type="math_number" id="%he=:C;[!SfrI3SfSOy2">
<field name="NUM">8</field>
</block>
</value>
</block>
</value>
<statement name="DO2">
<block type="kniwwelino_MATRIXdrawPixel" id=",ThKIbGmJ=t,@A6TEXT9">
<value name="X">
<block type="math_number" id="0WL/n[6z?F,Dj_Dqf]zB">
<field name="NUM">4</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="c19wUNMsX#Tk|sbE59Z3">
<field name="NUM">1</field>
</block>
</value>
<value name="STATE">
<block type="math_number" id="iBn--#Dc`JA3}:^8hl|M">
<field name="NUM">1</field>
</block>
</value>
</block>
</statement>
</block>
</statement>
<next>
<block type="variables_set" id="%p5NfLT/T0/`T/mx~L?1">
<field name="VAR">j</field>
<value name="VALUE">
<block type="math_arithmetic" id="Ay)V@dm!(bE]n#i3)(P6">
<field name="OP">MINUS</field>
<value name="A">
<block type="variables_get" id="/c./a66|^;3MJ%q)s6=1">
<field name="VAR">i</field>
</block>
</value>
<value name="B">
<block type="variables_get" id="n+2VCXoCm55,4sTvq|:(">
<field name="VAR">minuten</field>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="7e^6h-Y`VDD=jcV+/n:u">
<field name="VAR">zehnermin</field>
<value name="VALUE">
<block type="math_arithmetic" id="6Cn@_ZrlmY1{lx@RtKgH">
<field name="OP">DIVIDE</field>
<value name="A">
<block type="variables_get" id="p?{1lXG;.Z7C-Bbc?cY}">
<field name="VAR">j</field>
</block>
</value>
<value name="B">
<block type="math_number" id="jAxJ*61Dy~wu]iOJ?!RD">
<field name="NUM">10</field>
</block>
</value>
</block>
</value>
<next>
<block type="procedures_callnoreturn" id="N=~H.#._[Wb.)4MR2p?v">
<mutation name="clear line3"></mutation>
<next>
<block type="controls_if" id="6@#*qveLL5uIx-7,/7}v">
<mutation elseif="1"></mutation>
<value name="IF0">
<block type="math_number_property" id="@KaakWS66%#`u!MYdAz/">
<mutation divisor_input="false"></mutation>
<field name="PROPERTY">ODD</field>
<value name="NUMBER_TO_CHECK">
<block type="variables_get" id="]_p+@;j[pWGdq]ca;EIU">
<field name="VAR">zehnermin</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="kniwwelino_MATRIXdrawPixel" id="Dx`WI4G!.{UPH6[bIEe/">
<value name="X">
<block type="math_number" id=",9Q_1r6_Rlvs}VM:BCsT">
<field name="NUM">3</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="~[[TnPP!_Pb7+;LFTeNX">
<field name="NUM">4</field>
</block>
</value>
<value name="STATE">
<block type="math_number" id="jw]Hux^#6X5aJ%kv+.!p">
<field name="NUM">1</field>
</block>
</value>
<next>
<block type="controls_if" id="N3aYrZ4U5+uTBhS!#/NA">
<mutation elseif="1"></mutation>
<value name="IF0">
<block type="logic_compare" id="qiw1~1o;ihtPMz0%Ke;M">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="0jShItZ.*Y##7,(ofh9/">
<field name="VAR">zehnermin</field>
</block>
</value>
<value name="B">
<block type="math_number" id="SGWYtzz=-}Sv]TfwxOn|">
<field name="NUM">3</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="kniwwelino_MATRIXdrawPixel" id="iK_~YhGzw+{|eh*lV}-1">
<value name="X">
<block type="math_number" id="lEO?,P1{2|}nu`QrgyFA">
<field name="NUM">3</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="f,VSV(;l#-!6dECXIclc">
<field name="NUM">3</field>
</block>
</value>
<value name="STATE">
<block type="math_number" id="bbOs1ogA%Vnmk!00c=8X">
<field name="NUM">1</field>
</block>
</value>
</block>
</statement>
<value name="IF1">
<block type="logic_compare" id="(hgY@Fr1W*c`UGbPJC?o">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="QDG8y*W,S{=%7g=X(ooK">
<field name="VAR">zehnermin</field>
</block>
</value>
<value name="B">
<block type="math_number" id="D7|vlPdg9H=x!}09BpRt">
<field name="NUM">5</field>
</block>
</value>
</block>
</value>
<statement name="DO1">
<block type="kniwwelino_MATRIXdrawPixel" id="FFb}@Q*Y@^QpthvlR5/_">
<value name="X">
<block type="math_number" id="w-j6Etr+Z?Rf!U,|Q?1Y">
<field name="NUM">3</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="y-,DFuD(hE@72R%%lI-P">
<field name="NUM">2</field>
</block>
</value>
<value name="STATE">
<block type="math_number" id="yHRF_ruO2Xav106@DB.L">
<field name="NUM">1</field>
</block>
</value>
</block>
</statement>
</block>
</next>
</block>
</statement>
<value name="IF1">
<block type="math_number_property" id="QuF;W%:x)[?2,?FSgAxu">
<mutation divisor_input="false"></mutation>
<field name="PROPERTY">EVEN</field>
<value name="NUMBER_TO_CHECK">
<block type="variables_get" id="zEX:(eV=Mk{yPiXXf3NJ">
<field name="VAR">zehnermin</field>
</block>
</value>
</block>
</value>
<statement name="DO1">
<block type="controls_if" id="+_?|wm@%Dgs;YNvvaUTF">
<mutation elseif="1"></mutation>
<value name="IF0">
<block type="logic_operation" id="idj[U5u/I5bW7N(FCWCZ">
<field name="OP">OR</field>
<value name="A">
<block type="logic_compare" id="-;GYXR+Kw+jIisz7MCrU">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="jBMwQ}vfG}]P??#c9fOv">
<field name="VAR">zehnermin</field>
</block>
</value>
<value name="B">
<block type="math_number" id="R`7GLL%fN~a@,Y3(?1|)">
<field name="NUM">2</field>
</block>
</value>
</block>
</value>
<value name="B">
<block type="logic_compare" id="DL_m0.}L2eHeXb;q*@}r">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="ae|;#f.(c[5ymAzjOdm?">
<field name="VAR">zehnermin</field>
</block>
</value>
<value name="B">
<block type="math_number" id="IvjM0N)p3E^(/B6oDc6%">
<field name="NUM">6</field>
</block>
</value>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="kniwwelino_MATRIXdrawPixel" id="AEskZk%^LE|]T3Fy/zT-">
<value name="X">
<block type="math_number" id="C@ciYzB1}cAh@[Zl3_(-">
<field name="NUM">3</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="oJlzR|Fe!jeu-(t*qv/t">
<field name="NUM">3</field>
</block>
</value>
<value name="STATE">
<block type="math_number" id=")WGu{?N-^pzNSx1[;Gl@">
<field name="NUM">1</field>
</block>
</value>
<next>
<block type="controls_if" id="I=mXGInx!y/`-ZGsQ3[7">
<value name="IF0">
<block type="logic_compare" id="sZKttCR#T%|5*jchsr6i">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="(B|g4llOa}oU~y/Y]Rgu">
<field name="VAR">zehnermin</field>
</block>
</value>
<value name="B">
<block type="math_number" id="E7q4-9r{Kc|-RC_{9uHZ">
<field name="NUM">6</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="kniwwelino_MATRIXdrawPixel" id="Ahe9@N*mspMkt=HLcDX6">
<value name="X">
<block type="math_number" id="os^i^PG+){#8Fb4m56w0">
<field name="NUM">3</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="EpY4~ME)gu:DR=.0|Tkq">
<field name="NUM">2</field>
</block>
</value>
<value name="STATE">
<block type="math_number" id="e`]oLbf3o2ta59a(:P8^">
<field name="NUM">1</field>
</block>
</value>
</block>
</statement>
</block>
</next>
</block>
</statement>
<value name="IF1">
<block type="logic_compare" id="GanBPY.Lr=nVJ]6j%#l^">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="@cYBz`ec1yfE!Ez|vShH">
<field name="VAR">zehnermin</field>
</block>
</value>
<value name="B">
<block type="math_number" id="`ji{Nj+m}I9?[Fox*k7:">
<field name="NUM">4</field>
</block>
</value>
</block>
</value>
<statement name="DO1">
<block type="kniwwelino_MATRIXdrawPixel" id=",y#AxiQv)Dmk*9ks=~`V">
<value name="X">
<block type="math_number" id=":(!eUr1-oADj=Aejl=])">
<field name="NUM">3</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="ajrT8_aiNJQLo!6UckRy">
<field name="NUM">2</field>
</block>
</value>
<value name="STATE">
<block type="math_number" id="ePwqj/1pLD4_SiWfx#7H">
<field name="NUM">1</field>
</block>
</value>
</block>
</statement>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
<block type="procedures_defnoreturn" id="r5F-zgt,?)n|w]QvAD7O" x="1348" y="48">
<field name="NAME">Stunden</field>
<comment pinned="false" h="80" w="160">Describe the function...</comment>
<statement name="STACK">
<block type="variables_set" id=")%*COG4%sG]}D.Gf@W5E">
<field name="VAR">k</field>
<value name="VALUE">
<block type="kniwwelino_getTimeInt" id=":KfpsX)_dx`pCVchmwuC">
<field name="FORMAT">HOUR</field>
</block>
</value>
<next>
<block type="variables_set" id="v{|.Itji%Dytn(08A;h@">
<field name="VAR">stunde</field>
<value name="VALUE">
<block type="math_modulo" id="|,l=!:A~@X=2kAf^8;ho">
<value name="DIVIDEND">
<block type="variables_get" id="UCwoF}|U9i+0JpD7h[TL">
<field name="VAR">k</field>
</block>
</value>
<value name="DIVISOR">
<block type="math_number" id="NQ`,S0SB)ADr2;mT#js)">
<field name="NUM">10</field>
</block>
</value>
</block>
</value>
<next>
<block type="procedures_callnoreturn" id="MJUZ!:5xS1Bm1PU!_(cg">
<mutation name="clear line1"></mutation>
<next>
<block type="controls_if" id="We,~5J*((E(EVR^Y;Mf#">
<mutation elseif="1"></mutation>
<value name="IF0">
<block type="math_number_property" id="@y4X,s`,vo0AS{n+~-(s">
<mutation divisor_input="false"></mutation>
<field name="PROPERTY">ODD</field>
<value name="NUMBER_TO_CHECK">
<block type="variables_get" id="VoO)g;D~a@uNnsY%w~PB">
<field name="VAR">stunde</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="kniwwelino_MATRIXdrawPixel" id="=!2#%sDzuwxioi,Gq_jk">
<value name="X">
<block type="math_number" id="%lA768ZYR)Sw;/M~KJ3(">
<field name="NUM">1</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="t`a5_Y{!)p`A)3tV-.B6">
<field name="NUM">4</field>
</block>
</value>
<value name="STATE">
<block type="math_number" id=",N5YM5m;*Bmi+f)D#]SN">
<field name="NUM">1</field>
</block>
</value>
<next>
<block type="controls_if" id="h)W^ik;7([nSDbT2tr]V">
<mutation elseif="2"></mutation>
<value name="IF0">
<block type="logic_operation" id="heyNT.w3jx(i`JPW{S:O">
<field name="OP">OR</field>
<value name="A">
<block type="logic_compare" id="E2/S.o1Qv%}YszgFtPy(">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="L/@=Mi:*pGY2DJB@Fo{#">
<field name="VAR">stunde</field>
</block>
</value>
<value name="B">
<block type="math_number" id="8:O|.KWAPtTOWmJ^*tbo">
<field name="NUM">3</field>
</block>
</value>
</block>
</value>
<value name="B">
<block type="logic_compare" id="ZydKm/8W,k?Qp][R1dvH">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="]/tbo5wEbz^|U13xEamc">
<field name="VAR">stunde</field>
</block>
</value>
<value name="B">
<block type="math_number" id="naD@}i)z;K.ubpg-3eEu">
<field name="NUM">7</field>
</block>
</value>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="kniwwelino_MATRIXdrawPixel" id="-yeO92^IkO4UPkUs-]tk">
<value name="X">
<block type="math_number" id=")s/g59eQ+cp97GwZMvIl">
<field name="NUM">1</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="h,ZU6s?81o6H;+*QUuH%">
<field name="NUM">3</field>
</block>
</value>
<value name="STATE">
<block type="math_number" id="wwFz2C*0h?p-l.~Y~Lk2">
<field name="NUM">1</field>
</block>
</value>
<next>
<block type="controls_if" id="xS!8OHCg2L`%smbjdZ?f">
<value name="IF0">
<block type="logic_compare" id="03i}pS?-JSRSueKIFwE;">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="tU(9Dn~x)V=sn661N_:M">
<field name="VAR">stunde</field>
</block>
</value>
<value name="B">
<block type="math_number" id="5v*=KR!I`Qtr8{Sr[UPx">
<field name="NUM">7</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="kniwwelino_MATRIXdrawPixel" id="sq]%mg|j}#9F*;o|}%rR">
<value name="X">
<block type="math_number" id=")X]T+XG=c9lWl{%nN0*i">
<field name="NUM">1</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="2bs7vuzB21b1EDco2NDh">
<field name="NUM">2</field>
</block>
</value>
<value name="STATE">
<block type="math_number" id="lD[i7#4d{W8ne1DNScPq">
<field name="NUM">1</field>
</block>
</value>
</block>
</statement>
</block>
</next>
</block>
</statement>
<value name="IF1">
<block type="logic_compare" id="*0]@J4R{+afBU]urpf5J">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="|Ns2l{#=Vnox.V.*u2pg">
<field name="VAR">stunde</field>
</block>
</value>
<value name="B">
<block type="math_number" id="1YO4tKV^`s[-`R;y+H`t">
<field name="NUM">5</field>
</block>
</value>
</block>
</value>
<statement name="DO1">
<block type="kniwwelino_MATRIXdrawPixel" id="o3E([j6Dsimzsfdl/zF.">
<value name="X">
<block type="math_number" id="Fv0N3aCdLlva1+EO0%`%">
<field name="NUM">1</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="eb/?zcJ9k~;2KCDkYjS]">
<field name="NUM">2</field>
</block>
</value>
<value name="STATE">
<block type="math_number" id="OVzSptbNIZWZl?2}A8`S">
<field name="NUM">1</field>
</block>
</value>
</block>
</statement>
<value name="IF2">
<block type="logic_compare" id="QS(,Sqx)z)y3Tt?Z|fLG">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="^1BmPw`O!/.d/KCV[}Zj">
<field name="VAR">stunde</field>
</block>
</value>
<value name="B">
<block type="math_number" id="aGR83Ra|W+wV*=vr*]Fd">
<field name="NUM">9</field>
</block>
</value>
</block>
</value>
<statement name="DO2">
<block type="kniwwelino_MATRIXdrawPixel" id="*m{#?B~/nwW]sL|=?DpU">
<value name="X">
<block type="math_number" id="10;y2gPuLJfE#0vZrsPR">
<field name="NUM">1</field>
</block>
</value>
<value name="Y">
<block type="math_number" id="M-I]RjC[cF3y]@~N_!vC">
<field name="NUM">1</field>
</block>
</value>
<value name="STATE">
<block type="math_number" id="PmywCWuw`P`r^{WIh=xx">
<field name="NUM">1</field>
</block>
</value>
</block>
</statement>
</block>
</next>
</block>
</statement>
<value name="IF1">
<block type="math_number_property" id="r+Uvt0XwP%tTiiTC_u`I">
<mutation divisor_input="false"></mutation>
<field name="PROPERTY">EVEN</field>
<value name="NUMBER_TO_CHECK">
<block type="variables_get" id="iMm:W)X;!#C[-P]C{dXk">
<field name="VAR">stunde</field>
</block>
</value>
</block>
</value>
<statement name="DO1">
<block type="controls_if" id="1*#(`M/BELEd?(zNI;5V">
<mutation elseif="2"></mutation>
<value name="IF0">
<block type="logic_operation" id="u:KZ%{)ER%XQ]pEr=AN`">
<field name="OP">OR</field>
<value name="A">
<block type="logic_compare" id="y)^QcSw=e)#W;KIrR-E5">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="|fe@`lqDW[*:=s0{!5DX">
<field name="VAR">stunde</field>
</block>
...
This file has been truncated, please download it to see its full contents.
<xml xmlns="http://www.w3.org/1999/xhtml">
<block type="arduino_functions_setup" id="DDtcZNak{t!S{nczqmR(" x="40" y="40">
<statement name="SETUP_FUNC">
<block type="kniwwelino_MATRIXdrawIcon" id="=.RR[`ypeMF_(mecsoBd">
<value name="ICON">
<block type="kniwwelino_MATRIXdrawIconCreator" id="x1ogMV,t/kD1I@9L4bS7">
<field name="1_1">FALSE</field>
<field name="1_2">TRUE</field>
<field name="1_3">FALSE</field>
<field name="1_4">TRUE</field>
<field name="1_5">FALSE</field>
<field name="2_1">TRUE</field>
<field name="2_2">TRUE</field>
<field name="2_3">TRUE</field>
<field name="2_4">TRUE</field>
<field name="2_5">TRUE</field>
<field name="3_1">FALSE</field>
<field name="3_2">TRUE</field>
<field name="3_3">TRUE</field>
<field name="3_4">TRUE</field>
<field name="3_5">FALSE</field>
<field name="4_1">TRUE</field>
<field name="4_2">TRUE</field>
<field name="4_3">TRUE</field>
<field name="4_4">TRUE</field>
<field name="4_5">TRUE</field>
<field name="5_1">FALSE</field>
<field name="5_2">TRUE</field>
<field name="5_3">FALSE</field>
<field name="5_4">TRUE</field>
<field name="5_5">FALSE</field>
</block>
</value>
<next>
<block type="kniwwelino_sleepsec" id="C0w/e1*m7@H,Pw?KK~n^">
<value name="DELAY_TIME_SEC">
<shadow type="math_number" id="7!c2#uX6}x*S9!4Ddo7z">
<field name="NUM">3</field>
</shadow>
</value>
</block>
</next>
</block>
</statement>
</block>
<block type="procedures_defnoreturn" id="8-rTIZdeD*XA4LACsm!n" x="473" y="57">
<field name="NAME">get time</field>
<comment pinned="false" h="80" w="160">Describe the function...</comment>
<statement name="STACK">
<block type="variables_set" id="SL,5rLxfhZY:^sn#oH_v">
<field name="VAR">fulltime</field>
<value name="VALUE">
<block type="kniwwelino_getTimeInt" id="-A3gyq%okPw9J`{NwW.%">
<field name="FORMAT">HOUR</field>
</block>
</value>
<next>
<block type="variables_set" id="{}R)dOYR|`K+u.kr4LOL">
<field name="VAR">hours</field>
<value name="VALUE">
<block type="math_modulo" id="azVW}FPl!_g*2[.IbCZ*">
<value name="DIVIDEND">
<block type="variables_get" id="uLd+~C6+pIykyY4eP*Sh">
<field name="VAR">fulltime</field>
</block>
</value>
<value name="DIVISOR">
<block type="math_number" id="H9y7XRVY?fg^^Y?`egY{">
<field name="NUM">10</field>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="ni7#_bua^Hon3^a]Zi^+">
<field name="VAR">tenhours</field>
<value name="VALUE">
<block type="math_arithmetic" id="P^@M;h:C|[|HG|lU7K(G">
<field name="OP">DIVIDE</field>
<value name="A">
<block type="math_arithmetic" id="{XbmkQmIYPPoS:u6jvVH">
<field name="OP">MINUS</field>
<value name="A">
<block type="variables_get" id="6,yj=k]e3=o.=8Bl}i98">
<field name="VAR">fulltime</field>
</block>
</value>
<value name="B">
<block type="variables_get" id="]{/[/?)YbX4Hw_f%1mh.">
<field name="VAR">hours</field>
</block>
</value>
</block>
</value>
<value name="B">
<block type="math_number" id="|]*(]x1n3be?M0*Kz%Dj">
<field name="NUM">10</field>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="+y#Iif;}9dw6@1v6nE3F">
<field name="VAR">fullminutes</field>
<value name="VALUE">
<block type="kniwwelino_getTimeInt" id="KM;20(hl_FWy.,xMQJRG">
<field name="FORMAT">MINUTE</field>
</block>
</value>
<next>
<block type="variables_set" id="#|HlGU~3uJ?8/q~s^FW9">
<field name="VAR">minutes</field>
<value name="VALUE">
<block type="math_modulo" id="C7YL%-fv{xD%Q^ki{l~W">
<value name="DIVIDEND">
<block type="variables_get" id="Z,{IrsE@5+(`+rFc/n}6">
<field name="VAR">fullminutes</field>
</block>
</value>
<value name="DIVISOR">
<block type="math_number" id="Y2dXl}KF}oq5FAD(lhTl">
<field name="NUM">10</field>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="bT*qAgTykHbi6e*a2h4X">
<field name="VAR">tenminutes</field>
<value name="VALUE">
<block type="math_arithmetic" id="1~cGemVU);qG*0WuBc^J">
<field name="OP">DIVIDE</field>
<value name="A">
<block type="math_arithmetic" id="[gU++I-N2sU0D)0ORu@s">
<field name="OP">MINUS</field>
<value name="A">
<block type="variables_get" id="~07G4ZnG4js1A`56GgLs">
<field name="VAR">fullminutes</field>
</block>
</value>
<value name="B">
<block type="variables_get" id="-ea[M~DTt%_@.1vK~H~5">
<field name="VAR">minutes</field>
</block>
</value>
</block>
</value>
<value name="B">
<block type="math_number" id="y3`yXVrh!zA`jHJppD1g">
<field name="NUM">10</field>
</block>
</value>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
<block type="arduino_functions_loop" id="V*pfkkG8`?W.rRPEE!FG" x="41" y="288">
<statement name="LOOP_FUNC">
<block type="variables_set" id="]FK.VeKSUf+q8~z|flZT">
<field name="VAR">buffer</field>
<value name="VALUE">
<block type="text" id="i8:*aKkM8#cV37Y,bS/b">
<field name="TEXT">B</field>
</block>
</value>
<next>
<block type="procedures_callnoreturn" id="ovfLMcXKh.Y/+E%sXYQb">
<mutation name="get time"></mutation>
<next>
<block type="variables_set" id="qBhBKo~7NVG`@5`~O070">
<field name="VAR">solution</field>
<value name="VALUE">
<block type="variables_get" id="Z^b@0rrGKbLw1GNGx[g`">
<field name="VAR">tenhours</field>
</block>
</value>
<next>
<block type="procedures_callnoreturn" id="w)a+40ZT;484o/c|m-/?">
<mutation name="to binary"></mutation>
<next>
<block type="variables_set" id="%=E{2`]*UKll2?Y0K:{a">
<field name="VAR">solution</field>
<value name="VALUE">
<block type="variables_get" id="r#@Lh0EFr8jZ^R1,+q(/">
<field name="VAR">hours</field>
</block>
</value>
<next>
<block type="procedures_callnoreturn" id="SHhqm,3C@@3@HUQGf;oV">
<mutation name="to binary"></mutation>
<next>
<block type="text_append" id="G)MZV.pH4U4`5ZHOnS8@">
<field name="VAR">buffer</field>
<value name="TEXT">
<block type="text" id="2[,GaMb3q9;VFhH:?}[/">
<field name="TEXT">00000</field>
</block>
</value>
<next>
<block type="variables_set" id="H1Hb:IVRbrt!Q.2s!/G4">
<field name="VAR">solution</field>
<value name="VALUE">
<block type="variables_get" id="Aysr6mT_A:68HxfDWWft">
<field name="VAR">tenminutes</field>
</block>
</value>
<next>
<block type="procedures_callnoreturn" id="nU`m^hSAKj3}~/W,??c;">
<mutation name="to binary"></mutation>
<next>
<block type="variables_set" id="mQQ1|_}ScJLi?4ad6GRS">
<field name="VAR">solution</field>
<value name="VALUE">
<block type="variables_get" id="H7LUMek8!X6H|[/5.(]i">
<field name="VAR">minutes</field>
</block>
</value>
<next>
<block type="procedures_callnoreturn" id="TS[~mXNF/qU~]A=%Z7|8">
<mutation name="to binary"></mutation>
<next>
<block type="kniwwelino_MATRIXdrawIcon" id="=IIor8Wg=(0*t.aO#nIe">
<value name="ICON">
<block type="variables_get" id="uZOq_~fU.vQCrfB`r^})">
<field name="VAR">buffer</field>
</block>
</value>
<next>
<block type="kniwwelino_sleep" id="USI.bsv{_HjXI3|u6mee">
<value name="DELAY_TIME_MILI">
<shadow type="math_number" id="NHg_mbw|jS72WHo0P*i5">
<field name="NUM">200</field>
</shadow>
</value>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
<block type="procedures_defnoreturn" id="ltqfT]vU=,]j))#XD@`h" x="478" y="401">
<field name="NAME">to binary</field>
<comment pinned="false" h="80" w="160">Describe the function...</comment>
<statement name="STACK">
<block type="variables_set" id="V_;UXlwbX{vqAK}M%HmN">
<field name="VAR">old</field>
<value name="VALUE">
<block type="text" id="Q~Jk;1Onuu%wE,~[,z[3">
<field name="TEXT"></field>
</block>
</value>
<next>
<block type="controls_whileUntil" id=":Fe=wGg)M@4z1r[L=Up9">
<field name="MODE">UNTIL</field>
<value name="BOOL">
<block type="logic_compare" id="eMuT9XkbHXqn_)^8gyne">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="31=lcU=APP?PE?)9Zr+A">
<field name="VAR">solution</field>
</block>
</value>
<value name="B">
<block type="math_number" id=")uY-jqbF^Nja}vH)Yrkj">
<field name="NUM">0</field>
</block>
</value>
</block>
</value>
<statement name="DO">
<block type="variables_set" id="CCR5S]DnrBOVU`b%ziUo">
<field name="VAR">nextDigit</field>
<value name="VALUE">
<block type="variables_set_type" id="y!(MUbA0|r-_}1L_~XAS">
<field name="VARIABLE_SETTYPE_TYPE">TEXT</field>
<value name="VARIABLE_SETTYPE_INPUT">
<block type="math_modulo" id="0gd%mldr[!1qgMRbOl~w">
<value name="DIVIDEND">
<block type="variables_get" id="xq3Y2eTL-IT}bA#:RZca">
<field name="VAR">solution</field>
</block>
</value>
<value name="DIVISOR">
<block type="math_number" id="Oqf?Wmv@sk4K=8({s#~0">
<field name="NUM">2</field>
</block>
</value>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="WAKt!qhJ3;U-`U8mVb(B">
<field name="VAR">solution</field>
<value name="VALUE">
<block type="math_arithmetic" id="Vsl)[_OxuO?_~8Auj-KQ">
<field name="OP">DIVIDE</field>
<value name="A">
<block type="variables_get" id="T{3^rs?/L!|,{_4N])o@">
<field name="VAR">solution</field>
</block>
</value>
<value name="B">
<block type="math_number" id="3.AM/)iJ~{UX.)~fix.!">
<field name="NUM">2</field>
</block>
</value>
</block>
</value>
<next>
<block type="text_append" id="Jo;ZB@[;RRTZ[nSf].KX">
<field name="VAR">old</field>
<value name="TEXT">
<block type="variables_get" id="w9]raNMRf9c8NsqAazxU">
<field name="VAR">nextDigit</field>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</statement>
<next>
<block type="variables_set" id="r,g/bPN*Z9M.mj5i6GQ!">
<field name="VAR">i</field>
<value name="VALUE">
<block type="text_length" id="*_2;bvqRo2[M,d!:GDLR">
<value name="VALUE">
<block type="variables_get" id="z*3JtjNHk9WgGSK*!h{l">
<field name="VAR">old</field>
</block>
</value>
</block>
</value>
<next>
<block type="controls_if" id=")!ovm79whx(US-i#1e!D">
<value name="IF0">
<block type="logic_compare" id="lj8Ul]{BpcCXe;^@Bd5F">
<field name="OP">NEQ</field>
<value name="A">
<block type="variables_get" id="VX2guOizDV%EHV22{~o(">
<field name="VAR">i</field>
</block>
</value>
<value name="B">
<block type="math_number" id="S*O3`T4n+x^@f~G*Eco%">
<field name="NUM">5</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="controls_for" id="7Bca9g9vYgyL#Yt5J*{J">
<field name="VAR">j</field>
<value name="FROM">
<block type="variables_get" id=")+9eRWM6zKix9PuJG?.m">
<field name="VAR">i</field>
</block>
</value>
<value name="TO">
<block type="math_number" id=",E_JH@xCeEID[:N5Zc_v">
<field name="NUM">4</field>
</block>
</value>
<value name="BY">
<block type="math_number" id="z}*,e?#y{hxrqom=QQf5">
<field name="NUM">1</field>
</block>
</value>
<statement name="DO">
<block type="text_append" id=";AQYr3cb9EG{x@.j-/Db">
<field name="VAR">old</field>
<value name="TEXT">
<block type="text" id="4YX]T0{bjxx9[a#T)aQ1">
<field name="TEXT">0</field>
</block>
</value>
</block>
</statement>
</block>
</statement>
<next>
<block type="text_append" id="SK).iNoX:IRn6Ip4!92S">
<field name="VAR">buffer</field>
<value name="TEXT">
<block type="variables_get" id="%(+sKKLlL%Kr2_+T`W3|">
<field name="VAR">old</field>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
<block type="kniwwelino_MATRIXwrite" id="T}|^-B)rNXYQ49[O(Et7" x="620" y="875">
<field name="TYPE">WAIT</field>
<value name="TEXT">
<shadow type="text" id="-6-2om+1n^zi8r~4hAPG">
<field name="TEXT">Hello Kniwwelino</field>
</shadow>
<block type="variables_get" id="!jF]LQnItr{:(!xzNxG5">
<field name="VAR">buffer</field>
</block>
</value>
</block>
</xml>
Comments
Please log in or sign up to comment.