<snapdata remixID="11493366"><project name="MachineLearningAudioHummingbird1" 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="MachineLearningAudioHummingbird1"><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/@tensorflow-models/speech-commands@0.4.0/dist/speech-commands.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 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;// check that model and metadata are loaded via HTTPS requests.&#xD;while (!recognizer.ensureModelLoaded()){}&#xD;&#xD;// Set a global variable for the recognizer&#xD;window.recognizer = recognizer&#xD;     </l></block><list><block var="URL"/></list></block></script></block-definition><block-definition s="Stop Listening" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>window.recognizer.stopListening()</l></block><list></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="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;// 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});&#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>window.recognizer.stopListening()</l></block><list></list></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="868"><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="869"></list></costumes><sounds><list struct="atomic" id="870"></list></sounds><variables></variables><blocks></blocks><scripts><script x="107" y="119.33333333333334"><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="878"><costumes><list struct="atomic" id="879"></list></costumes><sounds><list struct="atomic" id="880"></list></sounds><blocks></blocks><variables></variables><scripts><script x="31.123046875" y="10"><block s="receiveKey"><l><option>s</option></l><list></list><comment w="90" collapsed="false">Run this when you open the project.</comment></block><block s="doSetVar"><l>URL</l><l>https://teachablemachine.withgoogle.com/models/Ty0ApBG63/</l></block><custom-block s="Load Libraries"></custom-block><custom-block s="Load Model %txt"><block var="URL"/></custom-block></script><script x="30.408761160714278" y="125.02380952380943"><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="doIf"><block s="reportGreaterThan"><block s="reportListItem"><l>1</l><block var="Prediction"/></block><l>.80</l></block><script><custom-block s="Hummingbird Rotation Servo %n %n %"><l>1</l><l>0</l></custom-block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="reportListItem"><l>2</l><block var="Prediction"/></block><l>0.7</l></block><script><custom-block s="Hummingbird LED %n %n %"><l>1</l><l>0</l></custom-block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="reportListItem"><l>3</l><block var="Prediction"/></block><l>.70</l></block><script><custom-block s="Hummingbird LED %n %n %"><l>1</l><l>100</l></custom-block></script></block></script></block></script><script x="318" y="210"><custom-block s="Hummingbird LED %n %n %"><l>1</l><l>0</l></custom-block></script><script x="354" y="93"><custom-block s="Hummingbird LED %n %n %"><l>1</l><l>0</l></custom-block><custom-block s="Hummingbird Rotation Servo %n %n %"><l>1</l><l>0</l></custom-block></script></scripts></sprite><watcher var="URL" style="normal" x="10" y="10" color="243,118,29"/><watcher var="PredictionTable" style="normal" x="9" y="43" color="243,118,29" extX="128.5615234375" extY="69"/><watcher var="Prediction" style="normal" x="9" y="148.00000000000003" color="243,118,29" extX="80" extY="69.99999999999997"/></sprites></stage><variables><variable name="URL"><l>https://teachablemachine.withgoogle.com/models/Ty0ApBG63/</l></variable><variable name="PredictionTable"><list id="961"><item><list struct="atomic" id="962">Background Noise,0.2339390069246292</list></item><item><list struct="atomic" id="963">lights off,0.35960420966148376</list></item><item><list struct="atomic" id="964">lights on,0.40645676851272583</list></item></list></variable><variable name="Prediction"><list struct="atomic" id="965">0.2339390069246292,0.35960420966148376,0.40645676851272583</list></variable></variables></scene></scenes></project><media name="MachineLearningAudioHummingbird1" app="Snap! 7, https://snap.berkeley.edu" version="2"></media></snapdata>