<snapdata remixID="11329137"><project name="MachineLearningAudioHummingbird" app="Snap! 8.2, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="MachineLearningAudioHummingbird"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><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="doRun"><block s="reportJSFunction"><list></list><l>const report_predictions = (prediction) =&gt; {&#xD;   let class_names = recognizer.wordLabels()&#xD;   let names_and_scores = Array.prototype.slice.call(prediction.scores).map((score, index) =&gt; [class_names[index], score]);&#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;   //console.log(predictionList)&#xD;};&#xD;&#xD;const halt_execution = () =&gt; {&#xD;    alert("There was a problem making predictions. Check your URL and load your model again.")&#xD;    //Trick snap into thinking that the x key has been pressed&#xD;    world.keyboardFocus.fireKeyEvent(&apos;x&apos;)&#xD;    setTimeout(() =&gt; { world.keyboardFocus.removePressedKey(&apos;x&apos;) }, 1000)&#xD;}&#xD;&#xD;if (typeof window.recognizer == &apos;undefined&apos; || window.recognizer == null) {&#xD;    console.log("The audio model was not loaded.")&#xD;    halt_execution()&#xD;    return&#xD;}&#xD;&#xD;// listen() takes two arguments:&#xD;// 1. A callback function that is invoked anytime a word is recognized.&#xD;// 2. A configuration object with adjustable fields&#xD;window.recognizer.listen(report_predictions, {invokeCallbackOnNoiseAndUnknown: true}).then(() =&gt; {&#xD;    console.log("listening...")&#xD;}).catch(error =&gt; {&#xD;    console.log("listen error:")&#xD;    console.log(error)&#xD;    halt_execution()&#xD;})&#xD;           </l></block><list></list></block><block s="doUntil"><block s="reportKeyPressed"><l><option>x</option></l></block><script><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>PredictionTable</l><block s="reportReshape"><block var="predictionList"/><list><block s="reportQuotient"><block s="reportListAttribute"><l><option>length</option></l><block var="predictionList"/></block><l>2</l></block><l>2</l></list></block></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><block s="doRun"><block s="reportJSFunction"><list></list><l>if (window.recognizer) { window.recognizer.stopListening() }</l></block><list></list></block></script></block-definition><block-definition s="Load Model %&apos;URL&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>console.log("Loading scripts...")&#xD;window.scriptsHaveLoaded = false&#xD;delete window.tf&#xD;delete window.speechCommands&#xD;delete window._tfengine&#xD;&#xD;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;script.onload = () =&gt; {&#xD;    console.log("tfjs has loaded")&#xD;    let script2 = document.createElement("script");&#xD;    script2.type = "text/javascript";&#xD;    script2.src = "https://cdn.jsdelivr.net/npm/@tensorflow-models/speech-commands@0.4.0/dist/speech-commands.min.js";&#xD;    script2.onload = () =&gt; {&#xD;        console.log("speech-commands has loaded")&#xD;        window.scriptsHaveLoaded = true&#xD;    }&#xD;    document.head.appendChild(script2);  &#xD;}&#xD;document.head.appendChild(script);</l></block><list></list></block><block s="doWaitUntil"><block s="evaluate"><block s="reportJSFunction"><list><l></l></list><l>console.log("Checking if scripts have loaded...")&#xD;return window.scriptsHaveLoaded</l></block><list></list></block></block><block s="doRun"><block s="reportJSFunction"><list><l>URL</l></list><l>URL = URL.trim()&#xD;const checkpointURL = URL + "model.json"; // model topology&#xD;const metadataURL = URL + "metadata.json"; // model metadata&#xD;&#xD;const recognizer = speechCommands.create("BROWSER_FFT", undefined, checkpointURL, metadataURL);&#xD;&#xD;window.ensureModelLoadedResult = null&#xD;&#xD;recognizer.ensureModelLoaded().then(() =&gt; {&#xD;    console.log("ensureModelLoaded success")&#xD;    window.ensureModelLoadedResult = "Model loaded successfully"&#xD;}).catch(error =&gt; {&#xD;    console.log("ensureModelLoaded error")&#xD;    console.log(error)&#xD;    if (error.message.startsWith("Failed to fetch")) {&#xD;        window.ensureModelLoadedResult = "The URL could not be reached"&#xD;    } else {&#xD;        window.ensureModelLoadedResult = error.message&#xD;    }&#xD;})&#xD;&#xD;// Set a global variable for the recognizer&#xD;window.recognizer = recognizer&#xD;&#xD;console.log("recognizer registered")     </l></block><list><block var="URL"/></list></block><block s="doWaitUntil"><block s="evaluate"><block s="reportJSFunction"><list><l></l></list><l>console.log("Checking if the model has loaded...")&#xD;return (window.ensureModelLoadedResult != null)</l></block><list></list></block></block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l></l></list><l>return window.ensureModelLoadedResult</l></block><list></list></block></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="reportVariadicEquals"><list><block var="sensor"/><l>Other (V)</l></list></block><script><block s="doSetVar"><l>sensor</l><l>Other</l></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="sensor"/><l>Distance (cm)</l></list></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="reportVariadicEquals"><list><block var="value"/><l>Not Connected</l></list></block></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="sensor"/><l>Distance</l></list></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="reportVariadicEquals"><list><block var="sensor"/><l>Other</l></list></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="reportVariadicEquals"><list><block var="sensor"/><l>Sound</l></list><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="reportVariadicEquals"><list><block var="sensor"/><l>Light</l></list></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="reportVariadicEquals"><list><block var="sensor"/><l>Dial</l></list></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="reportVariadicGreaterThan"><list><block var="note"/><l>135</l></list></block><script><block s="doSetVar"><l>note</l><l>135</l></block></script></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><l>32</l><block var="note"/></list></block><script><block s="doSetVar"><l>note</l><l>32</l></block></script></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="beats"/><l>16</l></list></block><script><block s="doSetVar"><l>beats</l><l>16</l></block></script></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><l>0</l><block var="beats"/></list></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="reportVariadicEquals"><list><block var="device"/><l>Accelerometer (m/s²)</l></list></block><script><block s="doSetVar"><l>device</l><l>Accelerometer</l></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="device"/><l>Magnetometer (µT)</l></list></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="reportVariadicEquals"><list><block var="button"/><l>Logo (V2)</l></list></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="reportVariadicEquals"><list><block var="result"/><l>true</l></list></block><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="result"/><l>false</l></list></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="reportVariadicEquals"><list><block var="sensor"/><l>Temperature (°C)</l></list></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="reportVariadicEquals"><list><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></list></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="reportVariadicLessThan"><list><block var="position"/><l>0</l></list></block><script><block s="doSetVar"><l>position</l><l>0</l></block></script></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="position"/><l>180</l></list></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="reportVariadicLessThan"><list><block var="speed"/><l>-100</l></list></block><script><block s="doSetVar"><l>speed</l><l>-100</l></block></script></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="speed"/><l>100</l></list></block><script><block s="doSetVar"><l>speed</l><l>100</l></block></script></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThan"><list><block var="speed"/><l>-10</l></list></block><block s="reportVariadicLessThan"><list><block var="speed"/><l>10</l></list></block></list></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="reportVariadicLessThan"><list><block var="intensity"/><l>0</l></list></block><script><block s="doSetVar"><l>intensity</l><l>0</l></block></script></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="intensity"/><l>100</l></list></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="reportVariadicLessThan"><list><block var="redLED"/><l>0</l></list></block><script><block s="doSetVar"><l>redLED</l><l>0</l></block></script></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="redLED"/><l>100</l></list></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="reportVariadicLessThan"><list><block var="greenLED"/><l>0</l></list></block><script><block s="doSetVar"><l>greenLED</l><l>0</l></block></script></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="greenLED"/><l>100</l></list></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="reportVariadicLessThan"><list><block var="blueLED"/><l>0</l></list></block><script><block s="doSetVar"><l>blueLED</l><l>0</l></block></script></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="blueLED"/><l>100</l></list></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="951"><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="952"></list></costumes><sounds><list struct="atomic" id="953"></list></sounds><variables></variables><blocks></blocks><scripts><script x="74" y="47.33333333333334"><block s="receiveInteraction"><l><option>stopped</option></l></block><custom-block s="stop all"></custom-block></script><script x="257" y="41.33333333333334"><block s="receiveGo"></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/bbtSnapExtension.js</l></list></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="967"><costumes><list struct="atomic" id="968"></list></costumes><sounds><list struct="atomic" id="969"></list></sounds><blocks></blocks><variables></variables><scripts><script x="30.408761160714278" y="125.02380952380945"><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="33" y="259.2857142857142"><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="reportVariadicGreaterThan"><list><block s="reportListItem"><l>2</l><block var="Prediction"/></block><l>.95</l></list></block><script><custom-block s="Hummingbird Rotation Servo %n %n %"><l>1</l><l>30</l></custom-block><custom-block s="Hummingbird Rotation Servo %n %n %"><l>2</l><l>-30</l></custom-block></script><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListItem"><l>3</l><block var="Prediction"/></block><l>.95</l></list></block><script><custom-block s="Hummingbird Rotation Servo %n %n %"><l>1</l><l>0</l></custom-block><custom-block s="Hummingbird Rotation Servo %n %n %"><l>2</l><l>0</l></custom-block></script></block></script></block></script></block></script><script x="34.123046875" y="39"><block s="doSetVar"><l>URL</l><l>UPDATE WITH YOUR URL</l><comment w="90" collapsed="false">Insert the URL to your model, then run this code.</comment></block><block s="doReport"><custom-block s="Load Model %txt"><block var="URL"/></custom-block></block></script></scripts></sprite><watcher var="URL" style="normal" x="10" y="10" color="243,118,29"/><watcher var="PredictionTable" style="normal" x="17" y="41" color="243,118,29" extX="190.5615234375" extY="119"/><watcher var="Prediction" style="normal" x="12" y="182.00000000000003" color="243,118,29" extX="101" extY="110.99999999999997"/></sprites></stage><variables><variable name="URL"><l>UPDATE WITH YOUR URL</l></variable><variable name="PredictionTable"><list id="1037"><item><list struct="atomic" id="1038">Background Noise,1</list></item><item><list struct="atomic" id="1039">Class 1,0</list></item><item><list struct="atomic" id="1040">Class 2,0</list></item></list></variable><variable name="Prediction"><list struct="atomic" id="1041">1,0,0</list></variable></variables></scene></scenes></project><media name="MachineLearningAudioHummingbird" app="Snap! 8.2, https://snap.berkeley.edu" version="2"></media></snapdata>