<snapdata remixID="10668179"><project name="MachineLearningSketchClassificationBrowser" app="Snap! 6, https://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><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="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAAIABJREFUeF7t3XuYJFV5x/H3VG8PF0NYJYIYjUaN5smNPNkQo8Fk0cC67G6dUxMmDxdXc8ELGC5RDCjI7ioIiEaIigqYGEHRNE6d6plluSRhvSQkmid5NprERDFK8BIf406CIm7v1Mlzxh5dYRd6uqv71OXb/7DsVJ33PZ9zHn70dHWVEl4IIIAAAgggMHEBNfGKFEQAAQQQQAABIYDZBAgggAACCAQQIIADoFMSAQQQQAABApg9gAACCCCAQAABAjgAOiURQAABBBAggNkDCCCAAAIIBBAggAOgUxIBBBBAAAECmD2AAAIIIIBAAAECOAA6JRFAAAEEECCA2QMIIIAAAggEECCAA6BTEgEEEEAAAQKYPYAAAggggEAAAQI4ADolEUAAAQQQIIDZAwgggAACCAQQIIADoFMSAQQQQAABApg9gAACCCCAQAABAjgAOiURQAABBBAggNkDCCCAAAIIBBAggAOgUxIBBBBAAAECmD2AAAIIIIBAAAECOAA6JRFAAAEEECCA2QMIIIAAAggEECCAA6BTEgEEEEAAAQKYPYAAAggggEAAAQI4ADolEUAAAQQQIIDZAwgggAACCAQQIIADoFMSAQQQQAABApg9gAACCCCAQAABAjgAOiURQAABBBAggNkDCCCAAAIIBBAggAOgUxIBBBBAAAECmD2AAAIIIIBAAAECOAA6JRFAAAEEECCA2QMIIIAAAggEECCAA6BTEgEEEEAAAQKYPYAAAggggEAAAQI4ADolEUAAAQQQIIDZAwgggAACCAQQIIADoFMSAQQQQAABApg9gAACCCCAQAABAjgAOiURQAABBBAggNkDCCCAAAIIBBAggAOgUxIBBBBAAAECmD2AAAIIIIBAAAECOAA6JRFAAAEEECCA2QMIIIAAAggEECCAA6BTEgEEEEAAAQKYPYAAAggggEAAAQI4ADolEUAAAQQQIIDZAwgggAACCAQQIIADoFMSAQQQQAABApg9gAACCCCAQAABAjgAOiURQAABBBAggNkDCCCAAAIIBBAggAOgUxIBBBBAAAECmD2AAAIIIIBAAAECOAA6JRFAYHICW7ZsiXbt2nWGr3jMMcfcsG3btnxy1amEwIEFCGB2BwII1FrAGHOu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</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts><script x="36.28571428571428" y="119.2857142857143"><block s="receiveInteraction"><l><option>pressed</option></l></block><block s="doBroadcast"><l>sketch</l></block></script><script x="237" y="124.00000000000003"><block s="receiveInteraction"><l><option>stopped</option></l></block><custom-block s="stop all"></custom-block></script><script x="152" y="13"><block s="receiveGo"></block><custom-block s="BirdBrain Setup"></custom-block></script></scripts><sprites><sprite name="Sprite" idx="1" x="119" y="-23" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="80,80,80,1" pen="tip" id="17"><wear><costume name="Costume" center-x="33" center-y="79" image="data:image/png;base64,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" id="18"/></wear><costumes><list struct="atomic" id="19"></list></costumes><sounds><list struct="atomic" id="20"></list></sounds><blocks></blocks><variables></variables><scripts><script x="45" y="27.095238095238102"><block s="receiveMessage"><l>sketch</l></block><custom-block s="Record Sketch"></custom-block></script><script x="402" y="129"><block s="doAddToList"><block s="reportNewList"><list><block var="sketch"/><l>up</l></list></block><block var="samples"/></block></script><script x="403" y="49"><block s="doSetVar"><l>samples</l><block s="reportNewList"><list></list></block></block></script></scripts></sprite><watcher var="sketch" style="normal" x="10" y="10" color="243,118,29" extX="134.123046875" extY="150"/><watcher var="samples" style="normal" x="10" y="187.000002" color="243,118,29" extX="80" extY="70"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="Animate %&apos;action&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%cs"></input></inputs><script><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>90</l></block><block s="doSwitchToCostume"><block s="reportPenTrailsAsCostume"></block></block><block s="clear"></block><block s="show"></block><block s="doRun"><block var="action"/><list></list></block><block s="hide"></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>90</l></block><block s="doStamp"></block></script></block-definition><block-definition s="render path %&apos;path&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="clear"></block><block s="setSize"><l>1</l></block><block s="doWarp"><script><block s="doForEach"><l>point</l><block var="path"/><script><block s="doGotoObject"><block var="point"/></block><block s="down"></block><block s="setSize"><l>3</l></block><block s="forward"><l>0</l></block><block s="setSize"><l>1</l></block></script></block></script></block><block s="up"></block></script></block-definition><block-definition s="distance from %&apos;p1&apos; to %&apos;p2&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportSum"><block s="reportPower"><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="p2"/></block><block s="reportListItem"><l>1</l><block var="p1"/></block></block><l>2</l></block><block s="reportPower"><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="p2"/></block><block s="reportListItem"><l>2</l><block var="p1"/></block></block><l>2</l></block></block></block></block></script></block-definition><block-definition s="length of %&apos;path&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>len</l><l>last</l></list></block><block s="doSetVar"><l>last</l><block s="reportListItem"><l>1</l><block var="path"/></block></block><block s="doWarp"><script><block s="doForEach"><l>point</l><block var="path"/><script><block s="doChangeVar"><l>len</l><custom-block s="distance from %s to %s"><block var="point"/><block var="last"/></custom-block></block><block s="doSetVar"><l>last</l><block var="point"/></block></script></block></script></block><block s="doReport"><block var="len"/></block></script></block-definition><block-definition s="resample %&apos;path&apos; to points %&apos;points&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>samples</l><l>step</l><l>last</l><l>dist</l><l>rest</l></list></block><block s="doSetVar"><l>last</l><block s="reportListItem"><l>1</l><block var="path"/></block></block><block s="doSetVar"><l>samples</l><block s="reportNewList"><list><block var="last"/></list></block></block><block s="doSetVar"><l>step</l><block s="reportQuotient"><custom-block s="length of %l"><block var="path"/></custom-block><block s="reportDifference"><block var="points"/><l>1</l></block></block></block><block s="doWarp"><script><block s="doForEach"><l>point</l><block var="path"/><script><block s="doSetVar"><l>dist</l><custom-block s="distance from %s to %s"><block var="point"/><block var="last"/></custom-block></block><block s="doChangeVar"><l>rest</l><block var="dist"/></block><block s="doUntil"><block s="reportLessThan"><block var="rest"/><block var="step"/></block><script><block s="doChangeVar"><l>rest</l><block s="reportProduct"><l>-1</l><block var="step"/></block></block><block s="doAddToList"><block s="reportDifference"><block var="point"/><block s="reportProduct"><block s="reportQuotient"><block var="rest"/><block var="dist"/></block><block s="reportDifference"><block var="point"/><block var="last"/></block></block></block><block var="samples"/></block></script></block><block s="doSetVar"><l>last</l><block var="point"/></block></script></block></script></block><block s="doAddToList"><block s="reportListItem"><l><option>last</option></l><block var="path"/></block><block var="samples"/></block><block s="doReport"><block s="reportListItem"><block s="reportNumbers"><l>1</l><block var="points"/></block><block var="samples"/></block></block></script></block-definition><block-definition s="Finch Distance (cm)" type="reporter" category="sensing"><header></header><code></code><translations>ca:Finch Distància (cm)&#xD;de:Finch Entfernung (cm)&#xD;es:Finch Distancia (cm)&#xD;fr:Finch Distance (cm)&#xD;he:Finch מרחק (cm)&#xD;ko:Finch 거리 센서 (cm)&#xD;nl:Finch Afstand (cm)&#xD;pt:Finch Distância (cm)&#xD;zh_CN:Finch 距离 (cm)&#xD;zh_TW:Finch 距離 (cm)&#xD;</translations><inputs></inputs><script><custom-block s="BirdBrain Setup"></custom-block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>&#xD;                          return window.birdbrain.getFinchDistance(&apos;A&apos;);&#xD;                        </l></block><list></list></block></block></script></block-definition><block-definition s="Finch %&apos;port&apos; Light" type="reporter" category="sensing"><header></header><code></code><translations>ca:Finch _ Llum&#xD;de:Finch _ Licht&#xD;es:Finch _ Luz&#xD;fr:Finch _ Lumière&#xD;he:Finch _ אור&#xD;ko:Finch _ 빛 센서&#xD;nl:Finch _ Licht&#xD;pt:Finch _ Luz&#xD;zh_CN:Finch _ 灯光&#xD;zh_TW:Finch _ 燈光&#xD;</translations><inputs><input type="%txt" readonly="true">Right<options>Left&#xD;Right</options></input></inputs><script><custom-block s="BirdBrain Setup"></custom-block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>port</l></list><l>&#xD;                        if (window.birdbrain.getFinchLight === undefined) {&#xD;                          window.birdbrain.getFinchLight = function (port, robot) {&#xD;                            const beak = window.birdbrain.currentBeak || [0,0,0];&#xD;                            const R = beak[0]*100/255;&#xD;                            const G = beak[1]*100/255;&#xD;                            const B = beak[2]*100/255;&#xD;                            var raw = 0;&#xD;                            var correction = 0;&#xD;                            switch (port) {&#xD;                              case &apos;Right&apos;:&#xD;                                raw = window.birdbrain.sensorData[robot][3];&#xD;                                correction = 6.40473070e-03*R + 1.41015162e-02*G + 5.05547817e-02*B + 3.98301391e-04*R*G + 4.41091223e-04*R*B + 6.40756862e-04*G*B + -4.76971242e-06*R*G*B;&#xD;                                break;&#xD;                              case &apos;Left&apos;:&#xD;                                raw = window.birdbrain.sensorData[robot][2];&#xD;                                correction = 1.06871493e-02*R + 1.94526614e-02*G + 6.12409825e-02*B + 4.01343475e-04*R*G + 4.25761981e-04*R*B + 6.46091068e-04*G*B + -4.41056971e-06*R*G*B;&#xD;                                break;&#xD;                              default:&#xD;                                console.log("unknown light port " + port);&#xD;                                return 0;&#xD;                            }&#xD;&#xD;                            return Math.round(Math.max(0, Math.min(100, (raw - correction))));&#xD;                          }&#xD;                        }&#xD;&#xD;                        return window.birdbrain.getFinchLight(port, &apos;A&apos;);&#xD;                      </l></block><list><block var="port"/></list></block></block></script></block-definition><block-definition s="Finch %&apos;port&apos; Line" type="reporter" category="sensing"><header></header><code></code><translations>ca:Finch _ Línia&#xD;de:Finch _ Linie&#xD;es:Finch _ Línea&#xD;fr:Finch _ Ligne&#xD;he:Finch _ קו&#xD;ko:Finch _ 선&#xD;nl:Finch _ Lijn&#xD;pt:Finch _ Linha&#xD;zh_CN:Finch _ 线&#xD;zh_TW:Finch _ 線&#xD;</translations><inputs><input type="%txt" readonly="true">Right<options>Left&#xD;Right</options></input></inputs><script><custom-block s="BirdBrain Setup"></custom-block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>port</l></list><l>&#xD;                          if (window.birdbrain.getFinchLine === undefined) {&#xD;                            window.birdbrain.getFinchLine = function (port, robot) {&#xD;                              var rawVal = 0;&#xD;                              switch (port) {&#xD;                                case &apos;Right&apos;:&#xD;                                  rawVal = window.birdbrain.sensorData[robot][5];&#xD;                                  break;&#xD;                                case &apos;Left&apos;:&#xD;                                  rawVal = window.birdbrain.sensorData[robot][4];&#xD;                                  //first bit is for position control&#xD;                                  rawVal = (0x7F &amp; rawVal)&#xD;                                  break;&#xD;                                default:&#xD;                                  console.log("unknown line port " + port);&#xD;                              }&#xD;                              var returnVal = 100 - ((rawVal - 6) * 100/121);&#xD;                              return Math.min(100, Math.max(0, Math.round(returnVal)));&#xD;                            }&#xD;                          }&#xD;&#xD;                          return window.birdbrain.getFinchLine(port, &apos;A&apos;);&#xD;                        </l></block><list><block var="port"/></list></block></block></script></block-definition><block-definition s="Finch %&apos;port&apos; Encoder (rotations)" type="reporter" category="sensing"><header></header><code></code><translations>ca:Finch Recompte de voltes _&#xD;de:Finch _ Kodierer&#xD;es:Finch Recuento de vueltas _&#xD;fr:Finch _ Encodeur&#xD;he:Finch _ קודאי&#xD;ko:Finch _ 인코더&#xD;nl:Finch _ Encoder&#xD;pt:Finch _ Código&#xD;zh_CN:Finch _ 编码器&#xD;zh_TW:Finch _ 編碼器&#xD;</translations><inputs><input type="%txt" readonly="true">Right<options>Left&#xD;Right</options></input></inputs><script><custom-block s="BirdBrain Setup"></custom-block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>port</l></list><l>&#xD;                        if (window.birdbrain.getFinchEncoder === undefined) {&#xD;                          window.birdbrain.getFinchEncoder = function (port, robot) {&#xD;                            let TICKS_PER_ROTATION = 792&#xD;                            var msb = 0;&#xD;                            var ssb = 0;&#xD;                            var lsb = 0;&#xD;                            switch (port) {&#xD;                              case &apos;Right&apos;:&#xD;                                msb = window.birdbrain.sensorData[robot][10];&#xD;                                ssb = window.birdbrain.sensorData[robot][11];&#xD;                                lsb = window.birdbrain.sensorData[robot][12];&#xD;                                break;&#xD;                              case &apos;Left&apos;:&#xD;                                msb = window.birdbrain.sensorData[robot][7];&#xD;                                ssb = window.birdbrain.sensorData[robot][8];&#xD;                                lsb = window.birdbrain.sensorData[robot][9];&#xD;                                break;&#xD;                              default:&#xD;                                console.log("unknown encoder port " + port);&#xD;                            }&#xD;                            var encoder = msb &lt;&lt; 16 | ssb &lt;&lt; 8 | lsb&#xD;                            if (encoder &gt;= 0x800000) {&#xD;                              encoder = encoder | 0xFF000000;&#xD;                            }&#xD;                            return Math.round( encoder * 10 / TICKS_PER_ROTATION ) / 10&#xD;                          }&#xD;                        }&#xD;&#xD;                        return window.birdbrain.getFinchEncoder(port, &apos;A&apos;);&#xD;                      </l></block><list><block var="port"/></list></block></block></script></block-definition><block-definition s="Finch Reset Encoders" type="command" category="sensing"><header></header><code></code><translations>ca:Finch Reinicialitza els comptadors de voltes&#xD;de:Finch Kodierer Zurücksetzen&#xD;es:Finch Reinicializar los contadores de vueltas&#xD;fr:Finch Réinitialiser les encodeurs&#xD;he:Finch לאפס קודאי&#xD;ko:Finch 인코더 리셋하기&#xD;nl:Finch Encoders Resetten&#xD;pt:Finch Redefinir Código&#xD;zh_CN:Finch 重置编码器&#xD;zh_TW:Finch 重置編碼器&#xD;</translations><inputs></inputs><script><custom-block s="BirdBrain Setup"></custom-block><block s="doRun"><block s="reportJSFunction"><list></list><l>&#xD;                        var thisCommand = {&#xD;                          robot: &apos;A&apos;,&#xD;                          cmd: "resetEncoders"&#xD;                        }&#xD;                        window.birdbrain.sendCommand(thisCommand)&#xD;                      </l></block><list></list></block><block s="doWait"><l>0.5</l><comment w="205" collapsed="false">block until reset happens</comment></block></script></block-definition><block-definition s="Finch Play Note %&apos;note&apos; for %&apos;beats&apos; beats" type="command" category="sound"><header></header><code></code><translations>ko:Finch _ 번 음을 _ 박자로 연주하기&#xD;de:Finch Spiele Note _ für _ Schläge&#xD;pt:Finch Toque Notas _ por _ Batidas&#xD;fr:Finch Jouer la note _ pour _ battement(s)&#xD;nl:Finch Speel Noot _ voor _ Beats&#xD;zh_CN:Finch 演奏 音阶 _ 于 _ 拍&#xD;zh_TW:Finch 演奏 音階 _ 於 _ 拍&#xD;ar:Finch تشغيل الموسيقى _ _&#xD;dk:Finch Spil tone _ i _ slag&#xD;he:Finch נגן תו _ במשך _ פעימות&#xD;es:Finch Emitir un sonido _ por _ pulsos&#xD;ca:Finch Toca nota _ durant _ temps&#xD;fi:Finch Soita sävel _ _ iskun ajan&#xD;sv:Finch Spela not _ _&#xD;</translations><inputs><input type="%n">60<options>§_pianoKeyboardMenu</options></input><input type="%n">0.5</input></inputs><script><custom-block s="BirdBrain Setup"></custom-block><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="reportProduct"><block s="reportQuotient"><l>60000</l><block s="getTempo"></block></block><block var="beats"/></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="reportJSFunction"><list><l>note</l><l>duration</l></list><l>&#xD;                        var thisCommand = {&#xD;                          robot: &apos;A&apos;,&#xD;                          cmd: "playNote",&#xD;                          note: note,&#xD;                          duration: duration&#xD;                        }&#xD;                        window.birdbrain.sendCommand(thisCommand)&#xD;                      </l></block><list><block var="note"/><block var="beats"/></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 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><custom-block s="BirdBrain Setup"></custom-block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>button</l></list><l>&#xD;                          if (window.birdbrain.getButton === undefined) {&#xD;                            window.birdbrain.getButton = function (button, robot) {&#xD;                              const type = window.birdbrain.robotType[robot];&#xD;                              const index = (type == window.birdbrain.robotType.FINCH) ? 16 : 7;&#xD;                              var buttonState = window.birdbrain.sensorData[robot][index] &amp; 0xF0; //Button Byte position = 7, clear LS Bits as it is for shake and calibrate&#xD;&#xD;                              switch (button) {&#xD;                                case &apos;A&apos;:&#xD;                                  return (buttonState == 0x00 || buttonState == 0x20)&#xD;                                case &apos;B&apos;:&#xD;                                  return (buttonState == 0x00 || buttonState == 0x10)&#xD;                                case &apos;Logo (V2)&apos;:&#xD;                                  if(window.birdbrain.microbitIsV2[robot]) {&#xD;                                    return (((window.birdbrain.sensorData[robot][index] &gt;&gt; 1) &amp; 0x1) == 0x0)&#xD;                                  } else {&#xD;                                    return "micro:bit V2 required";&#xD;                                  }&#xD;                                default:&#xD;                                  console.log("unknown button " + button);&#xD;                                  return false;&#xD;                              }&#xD;                            }&#xD;                          }&#xD;&#xD;                          return window.birdbrain.getButton(button, &apos;A&apos;);&#xD;                        </l></block><list><block var="button"/></list></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><custom-block s="BirdBrain Setup"></custom-block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>sensor</l></list><l>&#xD;                          if (window.birdbrain.getSoundOrTemp === undefined) {&#xD;                            window.birdbrain.getSoundOrTemp = function (sensor, robot) {&#xD;                              if (window.birdbrain.microbitIsV2[robot]) {&#xD;                                const type = window.birdbrain.robotType[robot];&#xD;                                switch(sensor) {&#xD;                                  case "Sound":&#xD;                                    if (type == window.birdbrain.robotType.FINCH) {&#xD;                                      return window.birdbrain.sensorData[robot][0];&#xD;                                    } else {&#xD;                                      return window.birdbrain.sensorData[robot][14];&#xD;                                    }&#xD;                                  case "Temperature (°C)":&#xD;                                    if (type == window.birdbrain.robotType.FINCH) {&#xD;                                      return (window.birdbrain.sensorData[robot][6] &gt;&gt; 2);&#xD;                                    } else {&#xD;                                      return window.birdbrain.sensorData[robot][15];&#xD;                                    }&#xD;                                }&#xD;                              } else {&#xD;                                return "micro:bit V2 required"&#xD;                              }&#xD;                            }&#xD;                          }&#xD;&#xD;                          return window.birdbrain.getSoundOrTemp(sensor, &apos;A&apos;);&#xD;                        </l></block><list><block var="sensor"/></list></block></block></script></block-definition><block-definition s="Finch %&apos;dim&apos;" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%txt" readonly="true">Beak Up<options>Beak Up&#xD;Beak Down&#xD;Tilt Left&#xD;Tilt Right&#xD;Level&#xD;Upside Down&#xD;Shake</options></input></inputs><script><custom-block s="BirdBrain Setup"></custom-block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>dim</l></list><l>&#xD;                          if (window.birdbrain.finchOrientation === undefined) {&#xD;                            window.birdbrain.finchOrientation = function (dim, robot) {&#xD;                              if (dim == "Shake") {&#xD;                                let shake = window.birdbrain.sensorData[robot][16];&#xD;                                return ((shake &amp; 0x01) &gt; 0);&#xD;                              }&#xD;                              const threshold = 7.848;&#xD;                              let acceleration = 0;&#xD;                              switch(dim) {&#xD;                                case "Tilt Left":&#xD;                                case "Tilt Right":&#xD;                                  acceleration = window.birdbrain.getFinchAcceleration(&apos;X&apos;, robot);&#xD;                                  break;&#xD;                                case "Beak Up":&#xD;                                case "Beak Down":&#xD;                                  acceleration = window.birdbrain.getFinchAcceleration(&apos;Y&apos;, robot);&#xD;                                  break;&#xD;                                case "Level":&#xD;                                case "Upside Down":&#xD;                                  acceleration = window.birdbrain.getFinchAcceleration(&apos;Z&apos;, robot);&#xD;                                  break;&#xD;                              }&#xD;                              switch(dim) {&#xD;                                case "Tilt Right":&#xD;                                case "Beak Up":&#xD;                                case "Upside Down":&#xD;                                  return (acceleration &gt; threshold);&#xD;                                case "Tilt Left":&#xD;                                case "Beak Down":&#xD;                                case "Level":&#xD;                                  return (acceleration &lt; -threshold);&#xD;                              }&#xD;                            }&#xD;                          }&#xD;&#xD;                          return window.birdbrain.finchOrientation(dim, &apos;A&apos;);&#xD;                        </l></block><list><block var="dim"/></list></block></block></script></block-definition><block-definition s="Finch %&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><custom-block s="BirdBrain Setup"></custom-block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>device</l><l>dim</l></list><l>&#xD;                          if (window.birdbrain.getFinchAorM === undefined) {&#xD;                            window.birdbrain.getFinchAorM = function (device, dim, robot) {&#xD;                              switch(device) {&#xD;                                case "Accelerometer (m/s²)":&#xD;                                  let acc = window.birdbrain.getFinchAcceleration(dim, robot);&#xD;                                  return Math.round(acc * 10) / 10;&#xD;                                case "Magnetometer (µT)":&#xD;                                  return window.birdbrain.getFinchMagnetometer(dim, robot);&#xD;                              }&#xD;                            }&#xD;                          }&#xD;&#xD;                          return window.birdbrain.getFinchAorM(device, dim, &apos;A&apos;);&#xD;                        </l></block><list><block var="device"/><block var="dim"/></list></block></block></script></block-definition><block-definition s="Finch Compass" type="reporter" category="sensing"><header></header><code></code><translations>ko:Finch 나침반 센서&#xD;de:Finch Kompass&#xD;pt:Finch Bússola&#xD;fr:Finch Compas&#xD;nl:Finch Kompas&#xD;zh_CN:Finch 指南针&#xD;zh_TW:Finch 指南針&#xD;ar:Finch بوصلة&#xD;dk:Finch Kompas&#xD;he:Finch מצפן&#xD;es:Finch Brujula&#xD;ca:Finch Brúixola&#xD;fi:Finch Kompassi&#xD;sv:Finch Kompass&#xD;</translations><inputs></inputs><script><custom-block s="BirdBrain Setup"></custom-block><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list></list><l>&#xD;                          if (window.birdbrain.getFinchCompass === undefined) {&#xD;                            window.birdbrain.getFinchCompass = function (robot) {&#xD;                              const ax = window.birdbrain.getFinchAcceleration(&apos;X&apos;, robot);&#xD;                              const ay = window.birdbrain.getFinchAcceleration(&apos;Y&apos;, robot);&#xD;                              const az = window.birdbrain.getFinchAcceleration(&apos;Z&apos;, robot);&#xD;                              const mx = window.birdbrain.getFinchMagnetometer(&apos;X&apos;, robot);&#xD;                              const my = window.birdbrain.getFinchMagnetometer(&apos;Y&apos;, robot);&#xD;                              const mz = window.birdbrain.getFinchMagnetometer(&apos;Z&apos;, robot);&#xD;&#xD;                              const phi = Math.atan(-ay / az)&#xD;                              const theta = Math.atan(ax / (ay * Math.sin(phi) + az * Math.cos(phi)))&#xD;&#xD;                              const xp = mx&#xD;                              const yp = my * Math.cos(phi) - mz * Math.sin(phi)&#xD;                              const zp = my * Math.sin(phi) + mz * Math.cos(phi)&#xD;&#xD;                              const xpp = xp * Math.cos(theta) + zp * Math.sin(theta)&#xD;                              const ypp = yp&#xD;&#xD;                              const angle = 180.0 + ((Math.atan2(xpp, ypp)) * (180 / Math.PI)) //convert result to degrees&#xD;&#xD;                              return ((Math.round(angle) + 180) % 360) //turn so that beak points north&#xD;                            }&#xD;                          }&#xD;&#xD;                          return window.birdbrain.getFinchCompass(&apos;A&apos;);&#xD;                        </l></block><list></list></block></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><custom-block s="BirdBrain Setup"></custom-block><block s="doRun"><block s="reportJSFunction"><list></list><l>&#xD;                        var thisCommand = {&#xD;                          robot: &apos;A&apos;,&#xD;                          cmd: "stopAll"&#xD;                        }&#xD;                        window.birdbrain.sendCommand(thisCommand)&#xD;                      </l></block><list></list></block></script></block-definition><block-definition s="Finch Move %&apos;direction&apos; %&apos;distance&apos; cm at %&apos;speed&apos; %" type="command" category="motion"><header></header><code></code><translations>ca:Finch Mou-te cap _ _ cm  a velocitat _ %&#xD;de:Finch Gehe _ _ cm mit _ %&#xD;es:Finch Mover hacia _ _ cm a velocidad _ %&#xD;fr:Finch Déplacer _ _ cm sur _ %&#xD;he:Finch זוז _ _ ס&apos;&apos;מ ב _ %&#xD;ko:Finch _ _ cm 로 움직이기 빠르기 _ %&#xD;nl:Finch Beweeg _ _ cm op _ %&#xD;pt:Finch Mova _ _ cm  a _ %&#xD;zh_CN:Finch 移动 _ _ cm 以 _ %&#xD;zh_TW:Finch 移動  _ _ 厘米在 _ %&#xD;</translations><inputs><input type="%txt" readonly="true">Forward<options>Forward&#xD;Backward</options></input><input type="%n">10</input><input type="%n">50</input></inputs><script><custom-block s="BirdBrain Setup"></custom-block><block s="doIf"><block s="reportLessThan"><block var="distance"/><l>-10000</l></block><script><block s="doSetVar"><l>distance</l><l>-10000</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="distance"/><l>10000</l></block><script><block s="doSetVar"><l>distance</l><l>10000</l></block></script></block><block s="doIf"><block s="reportLessThan"><block var="speed"/><l>0</l></block><script><block s="doSetVar"><l>speed</l><l>0</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="doDeclareVariables"><list><l>wasMoving</l><l>isMoving</l><l>commandSendTime</l></list></block><block s="doSetVar"><l>isMoving</l><block s="evaluate"><block s="reportJSFunction"><list></list><l> return window.birdbrain.finchIsMoving(&apos;A&apos;); </l></block><list></list></block></block><block s="doSetVar"><l>wasMoving</l><block var="isMoving"/></block><block s="doSetVar"><l>commandSendTime</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doRun"><block s="reportJSFunction"><list><l>direction</l><l>distance</l><l>speed</l></list><l>&#xD;                        var thisCommand = {&#xD;                          robot: &apos;A&apos;,&#xD;                          cmd: "move",&#xD;                          direction: direction,&#xD;                          distance: distance,&#xD;                          speed: speed&#xD;                        }&#xD;                        window.birdbrain.sendCommand(thisCommand)&#xD;                      </l></block><list><block var="direction"/><block var="distance"/><block var="speed"/></list></block><block s="doUntil"><block s="reportAnd"><block s="reportOr"><block var="wasMoving"/><block s="reportGreaterThan"><block s="reportDate"><l><option>time in milliseconds</option></l></block><block s="reportSum"><block var="commandSendTime"/><l>1000</l><comment w="350" collapsed="true">Timeout must be longer here to accommodate slower Chromebooks</comment></block></block></block><block s="reportNot"><block var="isMoving"/></block></block><script><block s="doSetVar"><l>wasMoving</l><block var="isMoving"/></block><block s="doWait"><l>0.01</l></block><block s="doSetVar"><l>isMoving</l><block s="evaluate"><block s="reportJSFunction"><list></list><l> return window.birdbrain.finchIsMoving(&apos;A&apos;); </l></block><list></list></block></block></script></block></script></block-definition><block-definition s="Finch Turn %&apos;direction&apos; %&apos;angle&apos; ° at %&apos;speed&apos; %" type="command" category="motion"><header></header><code></code><translations>ca:Finch Gira cap a la _ _ ° a velocitat _ %&#xD;de:Finch Drehe _ _ ° mit _ %&#xD;es:Finch Girar hacia la _ _ ° a velocidad _ %&#xD;fr:Finch Tournez _ _ ° à _ %&#xD;he:Finch הסתובב _ _ מעלות ב _ %&#xD;ko:Finch _ _ ° 로 회전하기 빠르기 _ %&#xD;nl:Finch Draai _ _ ° op _ %&#xD;pt:Finch Gire _ _ ° a _ %&#xD;zh_CN:Finch 转动 _ _ ° 以 _ %&#xD;zh_TW:Finch 轉動 _ _ °在 _ %&#xD;</translations><inputs><input type="%txt" readonly="true">Right<options>Right&#xD;Left</options></input><input type="%n">90</input><input type="%n">50</input></inputs><script><custom-block s="BirdBrain Setup"></custom-block><block s="doIf"><block s="reportLessThan"><block var="angle"/><l>-360000</l></block><script><block s="doSetVar"><l>angle</l><l>-360000</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="angle"/><l>360000</l></block><script><block s="doSetVar"><l>angle</l><l>360000</l></block></script></block><block s="doIf"><block s="reportLessThan"><block var="speed"/><l>0</l></block><script><block s="doSetVar"><l>speed</l><l>0</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="doDeclareVariables"><list><l>wasMoving</l><l>isMoving</l><l>commandSendTime</l></list></block><block s="doSetVar"><l>isMoving</l><block s="evaluate"><block s="reportJSFunction"><list></list><l> return window.birdbrain.finchIsMoving(&apos;A&apos;); </l></block><list></list></block></block><block s="doSetVar"><l>wasMoving</l><block var="isMoving"/></block><block s="doSetVar"><l>commandSendTime</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doRun"><block s="reportJSFunction"><list><l>direction</l><l>angle</l><l>speed</l></list><l>&#xD;                        var thisCommand = {&#xD;                          robot: &apos;A&apos;,&#xD;                          cmd: "turn",&#xD;                          direction: direction,&#xD;                          angle: angle,&#xD;                          speed: speed&#xD;                        }&#xD;                        window.birdbrain.sendCommand(thisCommand)&#xD;                      </l></block><list><block var="direction"/><block var="angle"/><block var="speed"/></list></block><block s="doUntil"><block s="reportAnd"><block s="reportOr"><block var="wasMoving"/><block s="reportGreaterThan"><block s="reportDate"><l><option>time in milliseconds</option></l></block><block s="reportSum"><block var="commandSendTime"/><l>1000</l><comment w="350" collapsed="true">Timeout must be longer here to accommodate slower Chromebooks</comment></block></block></block><block s="reportNot"><block var="isMoving"/></block></block><script><block s="doSetVar"><l>wasMoving</l><block var="isMoving"/></block><block s="doWait"><l>0.01</l></block><block s="doSetVar"><l>isMoving</l><block s="evaluate"><block s="reportJSFunction"><list></list><l> return window.birdbrain.finchIsMoving(&apos;A&apos;); </l></block><list></list></block></block></script></block></script></block-definition><block-definition s="Finch Wheels L %&apos;left&apos; % R %&apos;right&apos; %" type="command" category="motion"><header></header><code></code><translations>ca:Finch Posa les rodes a velocitat E _ % D _ %&#xD;de:Finch Räder L _ % R _ %&#xD;es:Finch Poner las ruedas a velocidad I _ % D _ %&#xD;fr:Finch Roues L _ % R _ %&#xD;he:Finch גלגלים שמאל _ % ימין _ %&#xD;ko:Finch 바퀴 왼쪽 _ % 오른쪽 _ %&#xD;nl:Finch Wielen L _ % R _ %&#xD;pt:Finch Rodas E _ % D _ %&#xD;zh_CN:Finch 左轮 _ % 右轮 _ %&#xD;zh_TW:Finch 車輪  左 _ % 右 _ %&#xD;</translations><inputs><input type="%n">0</input><input type="%n">0</input></inputs><script><custom-block s="BirdBrain Setup"></custom-block><block s="doIf"><block s="reportLessThan"><block var="left"/><l>-100</l></block><script><block s="doSetVar"><l>left</l><l>-100</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="left"/><l>100</l></block><script><block s="doSetVar"><l>left</l><l>100</l></block></script></block><block s="doIf"><block s="reportLessThan"><block var="right"/><l>-100</l></block><script><block s="doSetVar"><l>right</l><l>-100</l></block></script></block><block s="doIf"><block s="reportGreaterThan"><block var="right"/><l>100</l></block><script><block s="doSetVar"><l>right</l><l>100</l></block></script></block><block s="doRun"><block s="reportJSFunction"><list><l>left</l><l>right</l></list><l>&#xD;                          var thisCommand = {&#xD;                            robot: &apos;A&apos;,&#xD;                            cmd: "wheels",&#xD;                            speedL: left,&#xD;                            speedR: right&#xD;                          }&#xD;                          window.birdbrain.sendCommand(thisCommand)&#xD;                        </l></block><list><block var="left"/><block var="right"/></list></block><block s="doWait"><l>0.03</l></block></script></block-definition><block-definition s="Finch Stop" type="command" category="motion"><header></header><code></code><translations>ca:Finch Atura&#xD;de:Finch Stoppe&#xD;es:Finch Detener&#xD;fr:Finch Stop&#xD;he:Finch להפסיק&#xD;ko:Finch 멈추기&#xD;nl:Finch Stop&#xD;pt:Finch Pare&#xD;zh_CN:Finch 停止&#xD;zh_TW:Finch 停止&#xD;</translations><inputs></inputs><script><custom-block s="BirdBrain Setup"></custom-block><block s="doRun"><block s="reportJSFunction"><list></list><l>&#xD;                        var thisCommand = {&#xD;                          robot: &apos;A&apos;,&#xD;                          cmd: "stopFinch"&#xD;                        }&#xD;                        window.birdbrain.sendCommand(thisCommand)&#xD;                      </l></block><list></list></block></script></block-definition><block-definition s="Finch Beak R %&apos;redLED&apos; % G %&apos;greenLED&apos; % B %&apos;blueLED&apos; %" type="command" category="looks"><header></header><code></code><translations>ca:Finch Encén el bec de color R _ % G _ % B _ %&#xD;de:Finch Schnabel R _ % G _ % B _ %&#xD;es:Finch Encender el pico de color R _ % V _ % A _ %&#xD;fr:Finch Bec R _ % G _ % B _ %&#xD;he:Finch מקור אדום _ % ירוק _ % כחול _ %&#xD;ko:Finch 부리 빨강 _ % 초록 _ % 파랑 _ %&#xD;nl:Finch Bek R _ % G _ % B _ %&#xD;pt:Finch Bico R _ % G _ % B _ %&#xD;zh_CN:Finch 鸟喙 R _ % G _ % B _ %&#xD;zh_TW:Finch 鳥嘴 紅 _ % 綠 _ % 藍 _ %&#xD;</translations><inputs><input type="%n">0</input><input type="%n">0</input><input type="%n">0</input></inputs><script><custom-block s="BirdBrain Setup"></custom-block><block s="doRun"><block s="reportJSFunction"><list><l>rednum</l><l>greennum</l><l>bluenum</l></list><l>&#xD;                          var thisCommand = {&#xD;                            robot: &apos;A&apos;,&#xD;                            cmd: "triled",&#xD;                            port: 1,&#xD;                            red: Math.floor(Math.max(Math.min(rednum*2.55, 255), 0)),&#xD;                            green: Math.floor(Math.max(Math.min(greennum*2.55, 255), 0)),&#xD;                            blue: Math.floor(Math.max(Math.min(bluenum*2.55, 255), 0))&#xD;                          }&#xD;                          window.birdbrain.currentBeak = [thisCommand.red, thisCommand.green, thisCommand.blue];&#xD;&#xD;                          window.birdbrain.sendCommand(thisCommand);&#xD;                        </l></block><list><block var="redLED"/><block var="greenLED"/><block var="blueLED"/></list></block><block s="doWait"><l>0.03</l></block></script></block-definition><block-definition s="Finch Tail %&apos;port&apos; R %&apos;redLED&apos; % G %&apos;greenLED&apos; % B %&apos;blueLED&apos; %" type="command" category="looks"><header></header><code></code><translations>ca:Finch Encén la cua de color _ R _ % G _ % B _ %&#xD;de:Finch Schwanz _ R _ % G _ % B _ %&#xD;es:Finch Encender la cola de color _ R _ % V _ % A _ %&#xD;fr:Finch Queue _ R _ % G _ % B _ %&#xD;he:Finch זנב _ אדום _ % ירוק _ % כחול _ %&#xD;ko:Finch 꼬리 _ 빨강 _ % 초록 _ % 파랑 _ %&#xD;nl:Finch Staart _ R _ % G _ % B _ %&#xD;pt:Finch Cauda _ R _ % G _ % B _ %&#xD;zh_CN:Finch 鸟尾 _ R _ % G _ % B _ %&#xD;zh_TW:Finch 尾巴 _ 紅 _ % 綠 _ % 藍 _ %&#xD;</translations><inputs><input type="%txt" readonly="true">all<options>all&#xD;1&#xD;2&#xD;3&#xD;4</options></input><input type="%n">0</input><input type="%n">0</input><input type="%n">0</input></inputs><script><custom-block s="BirdBrain Setup"></custom-block><block s="doRun"><block s="reportJSFunction"><list><l>port</l><l>rednum</l><l>greennum</l><l>bluenum</l></list><l>&#xD;                          var actualPort = port;&#xD;                          if (actualPort != "all") { actualPort = parseInt(port) + 1;}&#xD;&#xD;                          var thisCommand = {&#xD;                            robot: &apos;A&apos;,&#xD;                            cmd: "triled",&#xD;                            port: actualPort,&#xD;                            red: Math.floor(Math.max(Math.min(rednum*2.55, 255), 0)),&#xD;                            green: Math.floor(Math.max(Math.min(greennum*2.55, 255), 0)),&#xD;                            blue: Math.floor(Math.max(Math.min(bluenum*2.55, 255), 0))&#xD;                          }&#xD;&#xD;                          window.birdbrain.sendCommand(thisCommand);&#xD;                        </l></block><list><block var="port"/><block var="redLED"/><block var="greenLED"/><block var="blueLED"/></list></block><block s="doWait"><l>0.03</l></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><custom-block s="BirdBrain Setup"></custom-block><block s="doRun"><block s="reportJSFunction"><list><l>string</l></list><l>&#xD;                            var thisCommand = {&#xD;                              robot: &apos;A&apos;,&#xD;                              cmd: "print",&#xD;                              printString: string&#xD;                            }&#xD;&#xD;                            window.birdbrain.sendCommand(thisCommand);&#xD;                        </l></block><list><block var="string"/></list></block><block s="doWait"><block s="reportProduct"><l>.6</l><block s="reportStringSize"><block var="string"/></block></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><custom-block s="BirdBrain Setup"></custom-block><block s="doRun"><block s="reportJSFunction"><list><l>r1c1, r1c2, r1c3, r1c4, r1c5, r2c1, r2c2, r2c3, r2c4, r2c5, r3c1, r3c2, r3c3, r3c4, r3c5,&#xD;                                r4c1, r4c2, r4c3, r4c4, r4c5, r5c1, r5c2, r5c3, r5c4, r5c5&#xD;                            </l></list><l>&#xD;                            // Create url representation from inputs&#xD;                            var symbolString = r1c1 + "\/"+ r1c2 + "\/"+ r1c3 + "\/"+ r1c4 + "\/"+ r1c5 + "\/" +&#xD;                             r2c1 + "\/"+ r2c2 + "\/"+ r2c3 + "\/"+ r2c4 + "\/"+ r2c5 + "\/" +&#xD;                             r3c1 + "\/"+ r3c2 + "\/"+ r3c3 + "\/"+ r3c4 + "\/"+ r3c5 + "\/" +&#xD;                             r4c1 + "\/"+ r4c2 + "\/"+ r4c3 + "\/"+ r4c4 + "\/"+ r4c5 + "\/" +&#xD;                             r5c1 + "\/"+ r5c2 + "\/"+ r5c3 + "\/"+ r5c4 + "\/"+ r5c5 ;&#xD;&#xD;                             var thisCommand = {&#xD;                               robot: &apos;A&apos;,&#xD;                               cmd: "symbol",&#xD;                               symbolString: symbolString&#xD;                             }&#xD;&#xD;                            window.birdbrain.sendCommand(thisCommand);&#xD;                        </l></block><list><block var="r1c1"/><block var="r1c2"/><block var="r1c3"/><block var="r1c4"/><block var="r1c5"/><block var="r2c1"/><block var="r2c2"/><block var="r2c3"/><block var="r2c4"/><block var="r2c5"/><block var="r3c1"/><block var="r3c2"/><block var="r3c3"/><block var="r3c4"/><block var="r3c5"/><block var="r4c1"/><block var="r4c2"/><block var="r4c3"/><block var="r4c4"/><block var="r4c5"/><block var="r5c1"/><block var="r5c2"/><block var="r5c3"/><block var="r5c4"/><block var="r5c5"/></list></block><block s="doWait"><l>0.03</l></block></script></block-definition><block-definition s="Record Sketch" type="command" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="clear"></block><block s="hide"></block><block s="doSetVar"><l>sketch</l><block s="reportNewList"><list></list></block></block><block s="setSize"><l>3</l></block><block s="doUntil"><block s="reportNot"><block s="reportMouseDown"></block></block><script><block s="doGotoObject"><l><option>mouse-pointer</option></l></block><block s="doAddToList"><block s="reportNewList"><list><block s="xPosition"></block><block s="yPosition"></block></list></block><block var="sketch"/></block><block s="down"></block></script></block><block s="up"></block><block s="doSetVar"><l>sketch</l><custom-block s="resample %l to points %n"><block var="sketch"/><l>64</l></custom-block></block><custom-block s="render path %l"><block var="sketch"/></custom-block></script></block-definition><block-definition s="BirdBrain Setup" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRun"><block s="reportJSFunction"><list></list><l>&#xD;                      function setupBirdbrain() {&#xD;                        window.birdbrain = {};&#xD;                        window.birdbrain.sensorData = {};&#xD;                        window.birdbrain.sensorData.A = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];&#xD;                        window.birdbrain.sensorData.B = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];&#xD;                        window.birdbrain.sensorData.C = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];&#xD;                        window.birdbrain.microbitIsV2 = {};&#xD;                        window.birdbrain.microbitIsV2.A = false;&#xD;                        window.birdbrain.microbitIsV2.B = false;&#xD;                        window.birdbrain.microbitIsV2.C = false;&#xD;                        window.birdbrain.robotType = {&#xD;                          FINCH: 1,&#xD;                          HUMMINGBIRDBIT: 2,&#xD;                          MICROBIT: 3,&#xD;                          //connected robots default to type MICROBIT&#xD;                          A: 3,&#xD;                          B: 3,&#xD;                          C: 3&#xD;                        };&#xD;&#xD;                        //console.log("setting up message channel")&#xD;                        window.birdbrain.messageChannel = new MessageChannel();&#xD;                        window.birdbrain.messageChannel.port1.onmessage = function (e) {&#xD;                            //console.log("Got a message: ");&#xD;                            //console.log(e.data);&#xD;                            let robot = e.data.robot;&#xD;                            if (e.data.sensorData != null &amp;&amp; robot != null) {&#xD;                              window.birdbrain.sensorData[robot] = e.data.sensorData;&#xD;                              window.birdbrain.robotType[robot] = e.data.robotType;&#xD;                              window.birdbrain.microbitIsV2[robot] = e.data.hasV2Microbit;&#xD;                            }&#xD;                        }&#xD;                        window.parent.postMessage("hello from snap", "*", [window.birdbrain.messageChannel.port2]);&#xD;&#xD;                        window.birdbrain.sendCommand = function(command) {&#xD;                          window.parent.postMessage(command, "*");&#xD;                        }&#xD;&#xD;                        window.birdbrain.finchIsMoving = function(finch) {&#xD;                          return (window.birdbrain.sensorData[finch][4] &gt; 127);&#xD;                        }&#xD;&#xD;                        //  Converts byte range 0 - 255 to -127 - 127 represented as a 32 bit signe int&#xD;                        function byteToSignedInt8 (byte) {&#xD;                          var sign = (byte &amp; (1 &lt;&lt; 7));&#xD;                          var value = byte &amp; 0x7F;&#xD;                          if (sign) { value  = byte | 0xFFFFFF00; }&#xD;                          return value;&#xD;                        }&#xD;&#xD;                        //  Converts byte range 0 - 255 to -127 - 127 represented as a 32 bit signe int&#xD;                        function byteToSignedInt16 (msb, lsb) {&#xD;                          var sign = msb &amp; (1 &lt;&lt; 7);&#xD;                          var value = (((msb &amp; 0xFF) &lt;&lt; 8) | (lsb &amp; 0xFF));&#xD;                          if (sign) {&#xD;                            value = 0xFFFF0000 | value;  // fill in most significant bits with 1&apos;s&#xD;                          }&#xD;                          return value;&#xD;                        }&#xD;&#xD;                        window.birdbrain.getMicrobitAcceleration = function(axis, robot) {&#xD;                          const rawToMperS = 196/1280; //convert to meters per second squared&#xD;                          let sensorData = window.birdbrain.sensorData[robot];&#xD;                          let accVal = 0;&#xD;                          switch (axis) {&#xD;                            case &apos;X&apos;:&#xD;                              accVal = byteToSignedInt8(sensorData[4]);&#xD;                              break;&#xD;                            case &apos;Y&apos;:&#xD;                              accVal = byteToSignedInt8(sensorData[5]);&#xD;                              break;&#xD;                            case &apos;Z&apos;:&#xD;                              accVal = byteToSignedInt8(sensorData[6]);&#xD;                              break;&#xD;                          }&#xD;                          return (accVal * rawToMperS);&#xD;                        }&#xD;&#xD;                        window.birdbrain.getMicrobitMagnetometer = function(axis, finch) {&#xD;                          const rawToUT = 1/10; //convert to uT&#xD;                          let sensorData = window.birdbrain.sensorData[finch];&#xD;                          let msb = 0;&#xD;                          let lsb = 0;&#xD;                          switch (axis) {&#xD;                            case &apos;X&apos;:&#xD;                              msb = sensorData[8];&#xD;                              lsb = sensorData[9];&#xD;                              break;&#xD;                            case &apos;Y&apos;:&#xD;                              msb = sensorData[10];&#xD;                              lsb = sensorData[11];&#xD;                              break;&#xD;                            case &apos;Z&apos;:&#xD;                              msb = sensorData[12];&#xD;                              lsb = sensorData[13];&#xD;                              break;&#xD;                          }&#xD;                          let magVal = byteToSignedInt16(msb, lsb);&#xD;                          return Math.round(magVal * rawToUT);&#xD;                        }&#xD;&#xD;                        window.birdbrain.getFinchAcceleration = function(axis, finch) {&#xD;                          let sensorData = window.birdbrain.sensorData[finch];&#xD;                          let accVal = 0;&#xD;                          switch (axis) {&#xD;                            case &apos;X&apos;:&#xD;                              accVal = byteToSignedInt8(sensorData[13]);&#xD;                              break;&#xD;                            case &apos;Y&apos;:&#xD;                            case &apos;Z&apos;:&#xD;                              const rawY = byteToSignedInt8(sensorData[14]);&#xD;                              const rawZ = byteToSignedInt8(sensorData[15]);&#xD;                              const rad = 40 * Math.PI / 180; //40° in radians&#xD;&#xD;                              switch(axis) {&#xD;                                case &apos;Y&apos;:&#xD;                                  accVal = (rawY*Math.cos(rad) - rawZ*Math.sin(rad));&#xD;                                  break;&#xD;                                case &apos;Z&apos;:&#xD;                                  accVal = (rawY*Math.sin(rad) + rawZ*Math.cos(rad));&#xD;                                  break;&#xD;                              }&#xD;                            }&#xD;                            return (accVal * 196/1280);&#xD;                        }&#xD;&#xD;                        window.birdbrain.getFinchMagnetometer = function(axis, finch) {&#xD;                          let sensorData = window.birdbrain.sensorData[finch];&#xD;                          switch (axis) {&#xD;                            case &apos;X&apos;:&#xD;                              return byteToSignedInt8(sensorData[17]);&#xD;                            case &apos;Y&apos;:&#xD;                            case &apos;Z&apos;:&#xD;                              const rawY = byteToSignedInt8(sensorData[18]);&#xD;                              const rawZ = byteToSignedInt8(sensorData[19]);&#xD;                              const rad = 40 * Math.PI / 180 //40° in radians&#xD;&#xD;                              let magVal = 0;&#xD;                              switch(axis) {&#xD;                                case &apos;Y&apos;:&#xD;                                  magVal = (rawY*Math.cos(rad) + rawZ*Math.sin(rad));&#xD;                                  break;&#xD;                                case &apos;Z&apos;:&#xD;                                  magVal = (rawZ*Math.cos(rad) - rawY*Math.sin(rad));&#xD;                                  break;&#xD;                              }&#xD;                              return Math.round(magVal);&#xD;                          }&#xD;                        }&#xD;&#xD;                        window.birdbrain.getFinchDistance = function (robot) {&#xD;                          if (window.birdbrain.microbitIsV2[robot]) {&#xD;                            return window.birdbrain.sensorData[robot][1];&#xD;                          } else {&#xD;                            const cmPerDistance = 0.0919;&#xD;                            const msb = window.birdbrain.sensorData[robot][0];&#xD;                            const lsb = window.birdbrain.sensorData[robot][1];&#xD;&#xD;                            const distance = msb &lt;&lt; 8 | lsb;&#xD;                            return Math.round(distance * cmPerDistance);&#xD;                          }&#xD;                        }&#xD;                      }&#xD;&#xD;                      let currentVersion = 1&#xD;                      if (window.birdbrain === undefined ||&#xD;                        window.birdbrain.version === undefined ||&#xD;                        window.birdbrain.version &lt; currentVersion) {&#xD;&#xD;                        setupBirdbrain()&#xD;                        window.birdbrain.version = currentVersion&#xD;                      } else {&#xD;                        //console.log("BirdBrain already set up");&#xD;                      }&#xD;                    </l></block><list></list></block></script></block-definition></blocks><variables><variable name="sketch"><list id="941"><item><list struct="atomic" id="942">75,121</list></item><item><list struct="atomic" id="943">75,115.16756898712707</list></item><item><list struct="atomic" id="944">75,109.33513797425414</list></item><item><list struct="atomic" id="945">75,103.5027069613812</list></item><item><list struct="atomic" id="946">75,97.67027594850826</list></item><item><list struct="atomic" id="947">75,91.83784493563533</list></item><item><list struct="atomic" id="948">75,86.0054139227624</list></item><item><list struct="atomic" id="949">75,80.17298290988947</list></item><item><list struct="atomic" id="950">75,74.34055189701652</list></item><item><list struct="atomic" id="951">74.80398642896593,68.51162001104605</list></item><item><list struct="atomic" id="952">74.59581803950843,62.68290510623618</list></item><item><list struct="atomic" id="953">74.38764965005095,56.85419020142631</list></item><item><list struct="atomic" id="954">74.17948126059345,51.02547529661645</list></item><item><list struct="atomic" id="955">73.95986255473312,45.19725109466246</list></item><item><list struct="atomic" id="956">73.6686048489606,39.37209697921194</list></item><item><list struct="atomic" id="957">73.37734714318808,33.54694286376142</list></item><item><list struct="atomic" id="958">73.08608943741555,27.7217887483109</list></item><item><list struct="atomic" id="959">73,21.89150862790471</list></item><item><list struct="atomic" id="960">73,16.059077615031775</list></item><item><list struct="atomic" id="961">73,10.22664660215884</list></item><item><list struct="atomic" id="962">73,4.394215589285908</list></item><item><list struct="atomic" id="963">73,-1.4382154235870281</list></item><item><list struct="atomic" id="964">73,-7.270646436459962</list></item><item><list struct="atomic" id="965">73,-13.103077449332897</list></item><item><list struct="atomic" id="966">73,-18.93550846220583</list></item><item><list struct="atomic" id="967">73,-24.767939475078766</list></item><item><list struct="atomic" id="968">73,-30.6003704879517</list></item><item><list struct="atomic" id="969">73,-36.43280150082464</list></item><item><list struct="atomic" id="970">73,-42.26523251369757</list></item><item><list struct="atomic" id="971">73,-48.0976635265705</list></item><item><list struct="atomic" id="972">73,-53.93009453944344</list></item><item><list struct="atomic" id="973">73,-59.76252555231637</list></item><item><list struct="atomic" id="974">73,-65.5949565651893</list></item><item><list struct="atomic" id="975">73,-71.42738757806224</list></item><item><list struct="atomic" id="976">73,-77.25981859093517</list></item><item><list struct="atomic" id="977">69.81344933602587,-78.81344933602587</list></item><item><list struct="atomic" id="978">65.6892978160207,-74.6892978160207</list></item><item><list struct="atomic" id="979">61.56514629601552,-70.56514629601553</list></item><item><list struct="atomic" id="980">57.10481608484019,-66.82861206363013</list></item><item><list struct="atomic" id="981">53.21922565187811,-62.52403206484764</list></item><item><list struct="atomic" id="982">49.57573488293355,-57.96966860366694</list></item><item><list struct="atomic" id="983">45.932244113989,-53.41530514248625</list></item><item><list struct="atomic" id="984">42.063000309128505,-49.063000309128505</list></item><item><list struct="atomic" id="985">39.063957982289466,-44.12791596457893</list></item><item><list struct="atomic" id="986">43.041309457418095,-47.36087297161206</list></item><item><list struct="atomic" id="987">48.013262723721446,-50.407957634232865</list></item><item><list struct="atomic" id="988">52.310467117039025,-54.310467117039025</list></item><item><list struct="atomic" id="989">56.16107869358669,-58.687925142517805</list></item><item><list struct="atomic" id="990">60.17613665093388,-62.88210248820041</list></item><item><list struct="atomic" id="991">64.38156109592417,-66.84208146123223</list></item><item><list struct="atomic" id="992">68.2168029799916,-71.2168029799916</list></item><item><list struct="atomic" id="993">72.48218247804758,-75</list></item><item><list struct="atomic" id="994">76.5263707829615,-71.03752327904951</list></item><item><list struct="atomic" id="995">80.10713705728816,-66.43368092634381</list></item><item><list struct="atomic" id="996">83.85776576206403,-61.973346441384685</list></item><item><list struct="atomic" id="997">87.79888304159066,-57.6739457728102</list></item><item><list struct="atomic" id="998">91.74000032111726,-53.374545104235715</list></item><item><list struct="atomic" id="999">95.63604063896052,-49.03445428116941</list></item><item><list struct="atomic" id="1000">99.51089689638346,-44.6752409915686</list></item><item><list struct="atomic" id="1001">103.36471245603202,-40.29747147882054</list></item><item><list struct="atomic" id="1002">107.2053951530841,-35.90811982504674</list></item><item><list struct="atomic" id="1003">111.01039835417482,-31.487868586796033</list></item><item><list struct="atomic" id="1004">114.87584847999497,-27.124151520005036</list></item><item><list struct="atomic" id="1005">119,-23</list></item></list></variable><variable name="samples"><list struct="atomic" id="1006"></list></variable></variables></project><media name="MachineLearningSketchClassificationBrowser" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>