<snapdata remixID="11507086"><project name="AI Tomato Sorter - Object Detection" app="Snap! 7, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="AI Tomato Sorter - Object Detection"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="Load Libraries" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRepeat"><l>2</l><script><block s="doRun"><block s="reportJSFunction"><list></list><l>   let script = document.createElement("script");&#xD;   script.type = "text/javascript"; &#xD;   script.src = "https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.3.1/dist/tf.min.js";  &#xD;   document.head.appendChild(script);&#xD;   let script2 = document.createElement("script");&#xD;   script2.type = "text/javascript";&#xD;   script2.src = "https://cdn.jsdelivr.net/npm/@teachablemachine/image@0.8/dist/teachablemachine-image.min.js";&#xD;   document.head.appendChild(script2);  </l></block><list></list></block><block s="doWait"><l>1</l></block></script></block></script></block-definition><block-definition s="Load Model %&apos;URL&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>URL</l></list><l>const when_loaded = (loaded_model) =&gt; {&#xD;  console.log("loading model")&#xD;  window.imageModel = loaded_model;&#xD;};&#xD;&#xD;const modelURL = URL + "model.json"; // model topology&#xD;const metadataURL = URL + "metadata.json"; // model metadata&#xD;&#xD;const recognizer = tmImage.load(modelURL, metadataURL).then(when_loaded);     </l></block><list><block var="URL"/></list></block></script></block-definition><block-definition s="Predict" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>predictionJS</l></list></block><block s="doDeclareVariables"><list><l>predictionList</l></list></block><block s="doDeclareVariables"><list><l>tempTable</l></list></block><block s="doUntil"><block s="reportKeyPressed"><l><option>x</option></l></block><script><block s="doRun"><block s="reportJSFunction"><list><l>videoCapture</l></list><l>const report_predictions = (prediction) =&gt; {&#xD;   let class_names = window.imageModel.getClassLabels();&#xD;   let names_and_scores = prediction.map((score, index) =&gt; [class_names[index], score.probability]);&#xD;   &#xD;   //console.log(class_names)&#xD;&#xD;   var predictionList = []&#xD;&#xD;   // This loop is for outer array&#xD;   for (var i = 0; i &lt; names_and_scores.length; i++) {&#xD;      if (names_and_scores[i].length &gt; 1) {&#xD;         predictionList.push([class_names[i],names_and_scores[i][1]]) &#xD;         //console.log([class_names[i], predictionList[i]])&#xD;      }&#xD;   }&#xD;&#xD;   window.prediction = predictionList&#xD;};&#xD;&#xD;const prediction = window.imageModel.predict(videoCapture.contents).then(report_predictions);   &#xD;//console.log(prediction)        </l></block><list><block s="reportVideo"><l><option>snap</option></l><l>Stage</l></block></list></block><block s="doSetVar"><l>predictionJS</l><block s="evaluate"><block s="reportJSFunction"><list></list><l>return window.prediction</l></block><list></list></block></block><block s="doSetVar"><l>predictionList</l><block s="reportTextSplit"><block s="reportJoinWords"><list><block var="predictionJS"/></list></block><l>,</l></block></block><block s="doSetVar"><l>tempTable</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><l>1</l><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="predictionList"/></block><l>2</l></block><script><block s="doAddToList"><block s="reportNewList"><list><block s="reportListItem"><block s="reportDifference"><block s="reportVariadicProduct"><list><l>2</l><block var="i"/></list></block><l>1</l></block><block var="predictionList"/></block><block s="reportListItem"><block s="reportVariadicProduct"><list><l>2</l><block var="i"/></list></block><block var="predictionList"/></block></list></block><block var="tempTable"/></block></script></block><block s="doSetVar"><l>PredictionTable</l><block var="tempTable"/></block><block s="doSetVar"><l>Prediction</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>2</l><l/></block></autolambda><list></list></block><block var="PredictionTable"/></block></block></script></block></script></block-definition><block-definition s="Hummingbird %&apos;sensor&apos; %&apos;port&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">Light<options>Distance (cm)&#xD;Dial&#xD;Light&#xD;Sound&#xD;Other (V)</options></input><input type="%n" readonly="true">1<options>1&#xD;2&#xD;3</options></input></inputs><script><block s="doDeclareVariables"><list><l>value</l></list></block><block s="doIf"><block s="reportEquals"><block var="sensor"/><l>Other (V)</l></block><script><block s="doSetVar"><l>sensor</l><l>Other</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="sensor"/><l>Distance (cm)</l></block><script><block s="doSetVar"><l>sensor</l><l>Distance</l></block></script></block><block s="doSetVar"><l>value</l><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/in/</l><block var="sensor"/><l>/</l><block var="port"/></list></block></block></block><block s="doIfElse"><block s="reportNot"><block s="reportEquals"><block var="value"/><l>Not Connected</l></block></block><script><block s="doIf"><block s="reportEquals"><block var="sensor"/><l>Distance</l></block><script><block s="doReport"><block s="reportRound"><block s="reportVariadicProduct"><list><l>1.17</l><block var="value"/></list></block></block><comment w="90" collapsed="false">117/100 Scaling factor</comment></block></script></block><block s="doIf"><block s="reportEquals"><block var="sensor"/><l>Other</l></block><script><block s="doReport"><block s="reportQuotient"><block s="reportRound"><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><l>0.01294</l><block var="value"/></list></block><l>100</l></list></block></block><l>100</l></block><comment w="102" collapsed="false">3.3/255 scale factor</comment></block></script></block><block s="doIf"><block s="reportEquals"><block var="sensor"/><l>Sound</l><comment w="155" collapsed="true">If connected, adjust sound level</comment></block><script><block s="doReport"><block s="reportRound"><block s="reportVariadicProduct"><list><l>0.784</l><block var="value"/></list><comment w="140" collapsed="false">200/255 Scaling factor</comment></block></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="sensor"/><l>Light</l></block><script><block s="doReport"><block s="reportRound"><block s="reportVariadicProduct"><list><l>0.392</l><block var="value"/></list><comment w="140" collapsed="false">100/255 Scaling factor</comment></block></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="sensor"/><l>Dial</l></block><script><block s="doReport"><block s="reportRound"><block s="reportVariadicProduct"><list><l>0.435</l><block var="value"/></list><comment w="140" collapsed="false">100/230 Scaling factor</comment></block></block></block></script></block></script><script><block s="doReport"><l>Not Connected</l></block></script></block></script></block-definition><block-definition s="Hummingbird Play Note %&apos;note&apos; for %&apos;beats&apos; beats" type="command" category="sound"><header></header><code></code><translations>ko:Hummingbird _ 번 음을 _ 박자로 연주하기&#xD;de:Hummingbird Spiele Note _ für _ Schläge&#xD;pt:Hummingbird Toque Notas _ por _ Batidas&#xD;fr:Hummingbird Jouer la note _ pour _ battement(s)&#xD;nl:Hummingbird Speel Noot _ voor _ Beats&#xD;zh_CN:Hummingbird 演奏 音阶 _ 于 _ 拍&#xD;zh_TW:Hummingbird 演奏 音階 _ 於 _ 拍&#xD;ar:Hummingbird تشغيل الموسيقى _ _&#xD;dk:Hummingbird Spil tone _ i _ slag&#xD;he:Hummingbird נגן תו _ במשך _ פעימות&#xD;es:Hummingbird Emitir un sonido _ por _ pulsos&#xD;ca:Hummingbird Toca nota _ durant _ temps&#xD;fi:Hummingbird Soita sävel _ _ iskun ajan&#xD;sv:Hummingbird Spela not _ _&#xD;</translations><inputs><input type="%n">60<options>§_pianoKeyboardMenu</options></input><input type="%n">0.5</input></inputs><script><block s="doIf"><block s="reportGreaterThan"><block var="note"/><l>135</l></block><script><block s="doSetVar"><l>note</l><l>135</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><l>32</l><block var="note"/></block><script><block s="doSetVar"><l>note</l><l>32</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="beats"/><l>16</l></block><script><block s="doSetVar"><l>beats</l><l>16</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><l>0</l><block var="beats"/></block><script><block s="doSetVar"><l>beats</l><l>0</l></block></script></block><block s="doSetVar"><l>beats</l><block s="reportRound"><block s="reportVariadicProduct"><list><block s="reportQuotient"><l>60000</l><block s="getTempo"></block></block><block var="beats"/></list></block><comment w="242" collapsed="false">BPM = tempo&#xD;60 * 1000/BPM = BPMS beats per millisecond&#xD;beats&#xD;                            = Duration in ms = BPMS * number of beats&#xD;                        </comment></block></block><block s="doSetVar"><l>note</l><block s="reportRound"><block var="note"/></block></block><block s="doRun"><block s="reifyReporter"><autolambda><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/out/playnote/</l><block var="note"/><l>/</l><block var="beats"/></list></block></block></autolambda><list></list></block><list></list></block><block s="doWait"><block s="reportQuotient"><block var="beats"/><l>1000</l></block><comment w="205" collapsed="false">block for number of seconds</comment></block></script></block-definition><block-definition s="micro:bit %&apos;device&apos; %&apos;dim&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">Accelerometer (m/s²)<options>Accelerometer (m/s²)&#xD;Magnetometer (µT)</options></input><input type="%txt" readonly="true">X<options>X&#xD;Y&#xD;Z</options></input></inputs><script><block s="doIf"><block s="reportEquals"><block var="device"/><l>Accelerometer (m/s²)</l></block><script><block s="doSetVar"><l>device</l><l>Accelerometer</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="device"/><l>Magnetometer (µT)</l></block><script><block s="doSetVar"><l>device</l><l>Magnetometer</l></block></script></block><block s="doReport"><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/in/</l><block var="device"/><l>/</l><block var="dim"/></list></block></block></block></script></block-definition><block-definition s="micro:bit Button %&apos;button&apos;" type="predicate" category="sensing"><header></header><code></code><translations>ko:micro:bit 버튼 _&#xD;de:micro:bit Knopf _&#xD;pt:micro:bit Tecla _&#xD;fr:micro:bit Bouton _&#xD;nl:micro:bit Knop _&#xD;zh_CN:micro:bit 按钮 _&#xD;zh_TW:micro:bit 按鈕 _&#xD;ar:micro:bit زر _&#xD;dk:micro:bit Knap _&#xD;he:micro:bit לחצן _&#xD;es:micro:bit Pulsador _&#xD;ca:micro:bit Botó _&#xD;fi:micro:bit Painike _&#xD;sv:micro:bit Knapp _&#xD;</translations><inputs><input type="%txt" readonly="true">A<options>A&#xD;B&#xD;Logo (V2)</options></input></inputs><script><block s="doIf"><block s="reportEquals"><block var="button"/><l>Logo (V2)</l></block><script><block s="doSetVar"><l>button</l><l>Logo</l></block></script></block><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/in/button/</l><block var="button"/></list></block></block></block><block s="doReport"><block s="reportIfElse"><block s="reportEquals"><block var="result"/><l>true</l></block><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportIfElse"><block s="reportEquals"><block var="result"/><l>false</l></block><block s="reportBoolean"><l><bool>false</bool></l></block><block var="result"/></block></block></block></script></block-definition><block-definition s="micro:bit V2 %&apos;sensor&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">Sound<options>Sound&#xD;Temperature (°C)</options></input></inputs><script><block s="doIf"><block s="reportEquals"><block var="sensor"/><l>Temperature (°C)</l></block><script><block s="doSetVar"><l>sensor</l><l>Temperature</l></block></script></block><block s="doReport"><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/in/V2sensor/</l><block var="sensor"/></list></block></block></block></script></block-definition><block-definition s="micro:bit Compass" type="reporter" category="sensing"><header></header><code></code><translations>ko:micro:bit 나침반 센서&#xD;de:micro:bit Kompass&#xD;pt:micro:bit Bússola&#xD;fr:micro:bit Compas&#xD;nl:micro:bit Kompas&#xD;zh_CN:micro:bit 指南针&#xD;zh_TW:micro:bit 指南針&#xD;ar:micro:bit بوصلة&#xD;dk:micro:bit Kompas&#xD;he:micro:bit מצפן&#xD;es:micro:bit Brujula&#xD;ca:micro:bit Brúixola&#xD;fi:micro:bit Kompassi&#xD;sv:micro:bit Kompass&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/in/</l><l>Compass</l></list></block></block></block></script></block-definition><block-definition s="micro:bit %&apos;dim&apos;" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">Screen Up<options>Screen Up&#xD;Screen Down&#xD;Tilt Left&#xD;Tilt Right&#xD;Logo Up&#xD;Logo Down&#xD;Shake</options></input></inputs><script><block s="doIfElse"><block s="reportEquals"><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/in/orientation/</l><block var="dim"/></list></block></block><l>true</l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="stop all" type="command" category="control"><header></header><code></code><translations>ko:모두 멈추기&#xD;de:stoppe alles&#xD;pt:pare todos&#xD;fr:stop tout&#xD;nl:stop alle&#xD;zh_CN:停止 全部&#xD;zh_TW:停止 全部&#xD;ar:توقف الكل&#xD;dk:stop alle&#xD;he:להפסיק הכל&#xD;es:detener todo&#xD;ca:atura tot&#xD;fi:pysäytä kaikki&#xD;sv:stop allt&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/out/stopall</l></list></block></block></block></script></block-definition><block-definition s="Hummingbird Position Servo %&apos;port&apos; %&apos;position&apos; °" type="command" category="motion"><header></header><code></code><translations>ko:Hummingbird 위치 제어 서보 _ _ °&#xD;de:Hummingbird Position Servo _ _ °&#xD;pt:Hummingbird Posição do Servo _ _ °&#xD;fr:Hummingbird Position Servo _ _ °&#xD;nl:Hummingbird Positie-Servo _ _ °&#xD;zh_CN:Hummingbird 位置伺服 _ _ °&#xD;zh_TW:Hummingbird 位置伺服 _ _ °&#xD;ar:Hummingbird موقف محرك سيرفو المؤازر _ _&#xD;dk:Hummingbird Positionsservo _ _ °&#xD;he:Hummingbird סרוו כיוון _ _&#xD;es:Hummingbird Servo de posicion _ _ °&#xD;ca:Hummingbird Servo posicional _ _ °&#xD;fi:Hummingbird Asentoservo _ _ °&#xD;sv:Hummingbird Positionsservo _ _ °&#xD;</translations><inputs><input type="%n" readonly="true">1<options>1&#xD;2&#xD;3&#xD;4</options></input><input type="%n">90</input></inputs><script><block s="doIf"><block s="reportLessThan"><block var="position"/><l>0</l></block><script><block s="doSetVar"><l>position</l><l>0</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="position"/><l>180</l></block><script><block s="doSetVar"><l>position</l><l>180</l></block></script></block><block s="doSetVar"><l>position</l><block s="reportRound"><block s="reportVariadicProduct"><list><block var="position"/><l>1.41</l></list></block></block><comment w="228" collapsed="false">254/180 Scaling Factor</comment></block><block s="doDeclareVariables"><list><l>response</l></list><comment w="228" collapsed="true">Storing the url response in a variable forces the block to wait for a response before returning.</comment></block><block s="doSetVar"><l>response</l><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/out/servo/</l><block var="port"/><l>/</l><block var="position"/></list></block></block></block></script></block-definition><block-definition s="Hummingbird Rotation Servo %&apos;port&apos; %&apos;speed&apos; %" type="command" category="motion"><header></header><code></code><translations>ko:Hummingbird 회전속도 제어 서보 _ _ %&#xD;de:Hummingbird Drehung Servo _ _ %&#xD;pt:Hummingbird Rotação do Servo _ _ %&#xD;fr:Hummingbird Rotation Servo _ _ %&#xD;nl:Hummingbird Draai-Servo _ _ %&#xD;zh_CN:Hummingbird 旋转伺服 _ _ %&#xD;zh_TW:Hummingbird 旋轉伺服 _ _ %&#xD;ar:Hummingbird فتحة دوران المحرك المؤازر _ _&#xD;dk:Hummingbird Rotationsservo _ _ %&#xD;he:Hummingbird סרוו סיבובים _ _ %&#xD;es:Hummingbird Servo de rotacion _ _ %&#xD;ca:Hummingbird Servo rotacional _ _ %&#xD;fi:Hummingbird Kiertoservo _ _ %&#xD;sv:Hummingbird Rotationsservo _ _ %&#xD;</translations><inputs><input type="%n" readonly="true">1<options>1&#xD;2&#xD;3&#xD;4</options></input><input type="%n">0</input></inputs><script><block s="doIf"><block s="reportLessThan"><block var="speed"/><l>-100</l></block><script><block s="doSetVar"><l>speed</l><l>-100</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="speed"/><l>100</l></block><script><block s="doSetVar"><l>speed</l><l>100</l></block></script></block><block s="doIfElse"><block s="reportAnd"><block s="reportGreaterThan"><block var="speed"/><l>-10</l></block><block s="reportLessThan"><block var="speed"/><l>10</l></block></block><script><block s="doSetVar"><l>speed</l><l>255</l></block></script><script><block s="doSetVar"><l>speed</l><block s="reportRound"><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="speed"/><l>23</l></list></block><l>100</l></block><l>122</l></list></block></block></block></script></block><block s="doDeclareVariables"><list><l>response</l></list><comment w="228" collapsed="true">Storing the url response in a variable forces the block to wait for a response before returning.</comment></block><block s="doSetVar"><l>response</l><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/out/rotation/</l><block var="port"/><l>/</l><block var="speed"/></list></block></block></block></script></block-definition><block-definition s="Hummingbird LED %&apos;port&apos; %&apos;intensity&apos; %" type="command" category="looks"><header></header><code></code><translations>ko:Hummingbird LED _ _ %&#xD;de:Hummingbird LED _ _ %&#xD;pt:Hummingbird LED _ _ %&#xD;fr:Hummingbird LED _ _ %&#xD;nl:Hummingbird LED _ _ %&#xD;zh_CN:Hummingbird LED _ _ %&#xD;zh_TW:Hummingbird LED _ _ %&#xD;ar:Hummingbird ضوء _ _&#xD;dk:Hummingbird LED _ _ %&#xD;he:Hummingbird לד % _ _&#xD;es:Hummingbird LED _ _ %&#xD;ca:Hummingbird LED _ _ %&#xD;fi:Hummingbird LED _ _ %&#xD;sv:Hummingbird LED _ _ %&#xD;</translations><inputs><input type="%n" readonly="true">1<options>1&#xD;2&#xD;3</options></input><input type="%n">0</input></inputs><script><block s="doIf"><block s="reportLessThan"><block var="intensity"/><l>0</l></block><script><block s="doSetVar"><l>intensity</l><l>0</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="intensity"/><l>100</l></block><script><block s="doSetVar"><l>intensity</l><l>100</l></block></script></block><block s="doSetVar"><l>intensity</l><block s="reportRound"><block s="reportVariadicProduct"><list><block var="intensity"/><l>2.55</l></list><comment w="90" collapsed="false">Scale factor 255/100</comment></block></block></block><block s="doDeclareVariables"><list><l>response</l></list><comment w="228" collapsed="true">Storing the url response in a variable forces the block to wait for a response before returning.</comment></block><block s="doSetVar"><l>response</l><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/out/led/</l><block var="port"/><l>/</l><block var="intensity"/></list></block></block></block></script></block-definition><block-definition s="Hummingbird Tri-LED %&apos;port&apos; R %&apos;redLED&apos; % G %&apos;greenLED&apos; % B %&apos;blueLED&apos; %" type="command" category="looks"><header></header><code></code><translations>ko:Hummingbird 삼색 LED _ 빨강 _ % 초록 _ % 파랑 _ %&#xD;de:Hummingbird Dreifarben-LED _ R _ % G _ % B _ %&#xD;pt:Hummingbird LED Tricolor _ R _ % G _ % B _ %&#xD;fr:Hummingbird Tri-LED _ R _ % G _ % B _ %&#xD;nl:Hummingbird Tri-LED _ R _ % G _ % B _ %&#xD;zh_CN:Hummingbird 三色LED _ 红 _ % 绿 _ % 蓝 _ %&#xD;zh_TW:Hummingbird 三色LED _ 紅 _ % 綠 _ % 藍 _ %&#xD;ar:Hummingbird ضوء الصمام الثلاثي _ _ _ _&#xD;dk:Hummingbird Tri-LED _ R _ % G _ % B _ %&#xD;he:Hummingbird לד שלושה צבעים % _ R _ % G _ % B _&#xD;es:Hummingbird Led tricolor _ R _ % G _ % B _ %&#xD;ca:Hummingbird Tri-LED _ vermell _ % verd _ % blau _ %&#xD;fi:Hummingbird Tri-LED _ R _ % G _ % B _ %&#xD;sv:Hummingbird Tri-LED _ R _ % G _ % B _ %&#xD;</translations><inputs><input type="%n" readonly="true">1<options>1&#xD;2</options></input><input type="%n">0</input><input type="%n">0</input><input type="%n">0</input></inputs><script><block s="doIf"><block s="reportLessThan"><block var="redLED"/><l>0</l></block><script><block s="doSetVar"><l>redLED</l><l>0</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="redLED"/><l>100</l></block><script><block s="doSetVar"><l>redLED</l><l>100</l></block></script></block><block s="doSetVar"><l>redLED</l><block s="reportRound"><block s="reportVariadicProduct"><list><block var="redLED"/><l>2.55</l></list><comment w="90" collapsed="false">Scale factor 255/100</comment></block></block></block><block s="doIf"><block s="reportLessThan"><block var="greenLED"/><l>0</l></block><script><block s="doSetVar"><l>greenLED</l><l>0</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="greenLED"/><l>100</l></block><script><block s="doSetVar"><l>greenLED</l><l>100</l></block></script></block><block s="doSetVar"><l>greenLED</l><block s="reportRound"><block s="reportVariadicProduct"><list><block var="greenLED"/><l>2.55</l></list><comment w="90" collapsed="false">Scale factor 255/100</comment></block></block></block><block s="doIf"><block s="reportLessThan"><block var="blueLED"/><l>0</l></block><script><block s="doSetVar"><l>blueLED</l><l>0</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="blueLED"/><l>100</l></block><script><block s="doSetVar"><l>blueLED</l><l>100</l></block></script></block><block s="doSetVar"><l>blueLED</l><block s="reportRound"><block s="reportVariadicProduct"><list><block var="blueLED"/><l>2.55</l></list><comment w="90" collapsed="false">Scale factor 255/100</comment></block></block></block><block s="doDeclareVariables"><list><l>response</l></list><comment w="228" collapsed="true">Storing the url response in a variable forces the block to wait for a response before returning.</comment></block><block s="doSetVar"><l>response</l><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/out/triled/</l><block var="port"/><l>/</l><block var="redLED"/><l>/</l><block var="greenLED"/><l>/</l><block var="blueLED"/></list></block></block></block></script></block-definition><block-definition s="micro:bit Print %&apos;string&apos;" type="command" category="looks"><header></header><code></code><translations>ko:micro:bit 출력 _&#xD;de:micro:bit Drucke _&#xD;pt:micro:bit Imprimir _&#xD;fr:micro:bit Imprimer _&#xD;nl:micro:bit Schrijf _&#xD;zh_CN:micro:bit 打印 _&#xD;zh_TW:micro:bit 打印 _&#xD;ar:micro:bit طباعة _&#xD;dk:micro:bit Vis _&#xD;he:micro:bit הדפס _&#xD;es:micro:bit Imprimir _&#xD;ca:micro:bit Escriu _&#xD;fi:micro:bit Näytä teksti _&#xD;sv:micro:bit Visa text _&#xD;</translations><inputs><input type="%txt">Hello</input></inputs><script><block s="doRun"><block s="reifyReporter"><autolambda><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/out/print/</l><block var="string"/></list></block></block></autolambda><list></list></block><list></list></block><block s="doWait"><block s="reportVariadicProduct"><list><block s="reportStringSize"><block var="string"/></block><l>0.6</l></list></block></block></script></block-definition><block-definition s="micro:bit Display $nl %&apos;r1c1&apos; %&apos;r1c2&apos; %&apos;r1c3&apos; %&apos;r1c4&apos; %&apos;r1c5&apos; $nl %&apos;r2c1&apos; %&apos;r2c2&apos; %&apos;r2c3&apos; %&apos;r2c4&apos; %&apos;r2c5&apos; $nl %&apos;r3c1&apos; %&apos;r3c2&apos; %&apos;r3c3&apos; %&apos;r3c4&apos; %&apos;r3c5&apos; $nl %&apos;r4c1&apos; %&apos;r4c2&apos; %&apos;r4c3&apos; %&apos;r4c4&apos; %&apos;r4c5&apos; $nl %&apos;r5c1&apos; %&apos;r5c2&apos; %&apos;r5c3&apos; %&apos;r5c4&apos; %&apos;r5c5&apos;" type="command" category="looks"><header></header><code></code><translations>ko:micro:bit 보이기 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;de:micro:bit LED Anzeige _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;pt:micro:bit Visor _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;fr:micro:bit Display _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;nl:micro:bit Scherm _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;zh_CN:micro:bit 显示 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;zh_TW:micro:bit 顯示 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;ar:micro:bit عرض _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;dk:micro:bit Display _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;he:micro:bit מסך _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;es:micro:bit Monitor _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;ca:micro:bit Pantalla _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;fi:micro:bit Näytä _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;sv:micro:bit Skärm _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&#xD;</translations><inputs><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input><input type="%b">false</input></inputs><script><block s="doDeclareVariables"><list><l>response</l></list><comment w="228" collapsed="true">Storing the url response in a variable forces the block to wait for a response before returning.</comment></block><block s="doSetVar"><l>response</l><block s="reportURL"><block s="reportJoinWords"><list><l>http://127.0.0.1:30061/hummingbird/out/symbol/A/</l><block var="r1c1"/><l>/</l><block var="r1c2"/><l>/</l><block var="r1c3"/><l>/</l><block var="r1c4"/><l>/</l><block var="r1c5"/><l>/</l><block var="r2c1"/><l>/</l><block var="r2c2"/><l>/</l><block var="r2c3"/><l>/</l><block var="r2c4"/><l>/</l><block var="r2c5"/><l>/</l><block var="r3c1"/><l>/</l><block var="r3c2"/><l>/</l><block var="r3c3"/><l>/</l><block var="r3c4"/><l>/</l><block var="r3c5"/><l>/</l><block var="r4c1"/><l>/</l><block var="r4c2"/><l>/</l><block var="r4c3"/><l>/</l><block var="r4c4"/><l>/</l><block var="r4c5"/><l>/</l><block var="r5c1"/><l>/</l><block var="r5c2"/><l>/</l><block var="r5c3"/><l>/</l><block var="r5c4"/><l>/</l><block var="r5c5"/></list></block></block></block></script></block-definition></blocks><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="true" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="892"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="893"></list></costumes><sounds><list struct="atomic" id="894"></list></sounds><variables></variables><blocks></blocks><scripts><script x="67" y="18.333333333333343"><block s="receiveInteraction"><l><option>stopped</option></l></block><custom-block s="stop all"></custom-block></script></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="0" y="2.842170943040401e-14" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="902"><costumes><list struct="atomic" id="903"></list></costumes><sounds><list struct="atomic" id="904"></list></sounds><blocks></blocks><variables></variables><scripts><script x="640" y="615"><block s="receiveKey"><l><option>s</option></l><list></list></block><block s="doSetVar"><l>URL</l><l>https://teachablemachine.withgoogle.com/models/-XfKA78rj/</l><comment w="90" collapsed="false">Insert the URL to your model, then run this code.</comment></block><custom-block s="Load Libraries"></custom-block><custom-block s="Load Model %txt"><block var="URL"/></custom-block></script><script x="394.28571428571433" y="620.0238095238094"><block s="receiveKey"><l><option>space</option></l><list></list></block><custom-block s="Predict"><comment w="178" collapsed="false">When you run this the first time, it will take a minute to start predicting. Press x to stop predicting. </comment></custom-block></script><script x="22.59523809523813" y="18.54761904761881"><block s="receiveKey"><l><option>space</option></l><list></list></block><block s="doUntil"><block s="reportKeyPressed"><l><option>x</option></l></block><script><block s="doIfElse"><block s="reportGreaterThan"><block s="reportListItem"><l>1</l><block var="Prediction"/></block><l>.9</l></block><script><custom-block s="Hummingbird Tri-LED %n R %n % G %n % B %n %"><l>1</l><l>100</l><l>0</l><l>0</l></custom-block><custom-block s="Hummingbird Position Servo %n %n °"><l>1</l><l>90</l></custom-block></script><script><custom-block s="Hummingbird Tri-LED %n R %n % G %n % B %n %"><l>1</l><l>0</l><l>50</l><l>0</l></custom-block><custom-block s="Hummingbird Position Servo %n %n °"><l>1</l><l>0</l></custom-block></script></block></script></block></script></scripts></sprite><watcher var="URL" style="normal" x="10" y="10" color="243,118,29"/><watcher var="PredictionTable" style="normal" x="6" y="36" color="243,118,29" extX="128.5615234375" extY="69"/><watcher var="Prediction" style="normal" x="3" y="142" color="243,118,29" extX="80" extY="70"/></sprites></stage><variables><variable name="URL"><l>https://teachablemachine.withgoogle.com/models/-XfKA78rj/</l></variable><variable name="PredictionTable"><list id="965"><item><list struct="atomic" id="966">ripe tomatoes,0.30166271328926086</list></item><item><list struct="atomic" id="967">unripe tomatoes,0.6189796328544617</list></item><item><list struct="atomic" id="968">background,0.07935763895511627</list></item></list></variable><variable name="Prediction"><list struct="atomic" id="969">0.30166271328926086,0.6189796328544617,0.07935763895511627</list></variable></variables></scene></scenes></project><media name="AI Tomato Sorter - Object Detection" app="Snap! 7, https://snap.berkeley.edu" version="2"></media></snapdata>