chao 7 kuukautta sitten
vanhempi
commit
d1974eb088

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 319 - 234
blockly/blocks/python/ai.js


+ 1 - 1
blockly/blocks/python/esp32.js

@@ -3161,7 +3161,7 @@ def wifi_is_content():
     except:
         pass
 `
-    let language = localStorage.getItem('language')
+    let language = localStorage.getItem('handPyLanguage')
     let str = ""
     if(language == "zh-hant"){
         str = "請掃描平臺Wi-Fi二維碼聯網"

+ 3 - 11
blockly/blocks/python/extension_module.js

@@ -1945,7 +1945,7 @@ sys.path.append("/root/")`
     if LEDCOLOR != setLedColorInit${value_io} or brightness != brightness${value_io}:
         for i in range(num1-1,num2):
             STRIP${value_io}.setBrightness(brightness)
-            STRIP${value_io}.setPixelColor(i ,LEDCOLOR[0],LEDCOLOR[1],LEDCOLOR[2])
+            STRIP${value_io}.setPixelColor(i-1 ,LEDCOLOR[0],LEDCOLOR[1],LEDCOLOR[2])
             STRIP${value_io}.pixelShow()
             #time.sleep(0.01)
         setLedColorInit${value_io} = LEDCOLOR
@@ -2009,8 +2009,8 @@ sys.path.append("/root/")`
     if LEDCOLOR != setLedColorInit${value_io} or brightness != brightness${value_io}:
         for i in range(num1-1,num2):
             STRIP${value_io}.setBrightness(brightness)
-            STRIP${value_io}.setPixelColor(i ,LEDCOLOR[0],LEDCOLOR[1],LEDCOLOR[2])
-            STRIP${value_io}.pixelShow()
+            STRIP${value_io}.setPixelColor(i-1 ,LEDCOLOR[0],LEDCOLOR[1],LEDCOLOR[2])
+            
             #time.sleep(0.01)
         setLedColorInit${value_io} = LEDCOLOR
         brightness${value_io} = brightness
@@ -2120,10 +2120,6 @@ Blockly.Python['led_strip_color_rgb'] = function (block) {
 };
 
 
-
-
-
-
 /*
    ____                      ____           _ 
   / ___| __ _ _ __ ___   ___|  _ \ __ _  __| |
@@ -2134,10 +2130,6 @@ Blockly.Python['led_strip_color_rgb'] = function (block) {
 */
 
 
-
-
-
-
 var GAMEPAD_COLOR = "#183895";
 
 

+ 5 - 5
blockly/blocks/text.js

@@ -320,7 +320,7 @@ Blockly.Blocks['text_indexOf'] = {
         .setCheck('String')
         .appendField(new Blockly.FieldDropdown(OPERATORS), 'END');
     if (Blockly.Msg.TEXT_INDEXOF_TAIL) {
-      this.appendDummyInput().appendField(Blockly.Msg.TEXT_INDEXOF_TAIL);
+      this.appendDummyInput().appendField(Blockly.Msg.LED_POSITION);
     }
     this.setInputsInline(true);
     // Assign 'this' to a variable for use in the tooltip closure below.
@@ -403,10 +403,10 @@ Blockly.Blocks['text_charAt'] = {
     // Create either a value 'AT' input or a dummy input.
     if (isAt) {
       this.appendValueInput('AT').setCheck('Number');
-      if (Blockly.Msg.ORDINAL_NUMBER_SUFFIX) {
-        this.appendDummyInput('ORDINAL')
-            .appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX);
-      }
+      // if (Blockly.Msg.ORDINAL_NUMBER_SUFFIX) {
+      //   this.appendDummyInput('ORDINAL')
+      //       .appendField(Blockly.Msg.ARD_SERIAL_RECEIVE_DATASET_TYPE_STRING);
+      // }
     } else {
       this.appendDummyInput('AT');
     }

+ 1 - 1
blockly/msg/en/blocks_messages.js

@@ -3588,7 +3588,7 @@ Blockly.Msg.ai_model_index_mnist_TOOLTIP = "Get the detection result of handwrit
 Blockly.Msg.ai_model_get_TOOLTIP = "Gets %1 of the tested objects detected from the variable";
 Blockly.Msg.ai_model_look_TOOLTIP = "Any tested objects detected";
 Blockly.Msg.ai_model_look_attribute_TOOLTIP = "Tested Objects attribute";
-Blockly.Msg.ai_model_xy_TOOLTIP = "Gets %1 of the detected face from the variable";
+Blockly.Msg.ai_model_xy_TOOLTIP = "Get %1 of detected faces";
 Blockly.Msg.ai_model_human_xy_TOOLTIP = "Gets %1 of the detected human body from the variable";
 Blockly.Msg.ai_model_face_TOOLTIP = "Recognized Any Human Face";
 Blockly.Msg.ai_model_face_attribute_TOOLTIP = "Face attribute";

+ 3 - 0
blockly/msg/js/en.js

@@ -4714,6 +4714,7 @@ Blockly.Msg.ai_video_set_play_init = "Video initialization";
 
 Blockly.Msg.ai_models_from = "From";
 
+Blockly.Msg.ai_models_face_model_get_all_result = "of the test results"
 Blockly.Msg.ai_models_init_title = "Initialize Preset A.I. Model:";
 Blockly.Msg.ai_model_allinit_language = "Set language as:";
 Blockly.Msg.ai_models_load_title = "Load Preset A.I. Model:";
@@ -4748,6 +4749,8 @@ Blockly.Msg.ai_models_face_model_if_new = "Display the recognized face informati
 Blockly.Msg.ai_model_face_attribute_new = "For every face we recognize";
 Blockly.Msg.ai_models_face_model_if = "Display the detected face results in the screen";
 Blockly.Msg.ai_model_face_attribute = "Face attribute";
+Blockly.Msg.ai_models_face_model_get_all = "Get the detected";
+Blockly.Msg.ai_models_face_model_get_all_face = "A human face.";
 Blockly.Msg.ai_models_face_model_get = "Get the recognized Humand Face";
 Blockly.Msg.ai_models_face_model_x = "X-axis coordinates of the starting point of the detection box";
 Blockly.Msg.ai_models_face_model_y = "Y axis coordinates of the starting point of the detection box";

+ 3 - 1
blockly/msg/js/zh-hans.js

@@ -4667,7 +4667,7 @@ Blockly.Msg.ai_video_set_play_init = "视频初始化";
 
 
 Blockly.Msg.ai_models_from = "从";
-
+Blockly.Msg.ai_models_face_model_get_all_result = "检测结果的"
 Blockly.Msg.ai_models_init_title = "初始化预设模型:";
 Blockly.Msg.ai_model_allinit_language = "设置语言为:";
 Blockly.Msg.ai_models_load_title = "加载预设模型:";
@@ -4703,6 +4703,8 @@ Blockly.Msg.ai_models_face_model_if_new = "在屏幕中显示識別到的人脸
 Blockly.Msg.ai_model_face_attribute_new = "对识别的每一个人脸";
 Blockly.Msg.ai_models_face_model_if = "在屏幕中显示检测到的人脸结果";
 Blockly.Msg.ai_model_face_attribute = "人脸属性";
+Blockly.Msg.ai_models_face_model_get_all = "获取检测到";
+Blockly.Msg.ai_models_face_model_get_all_face = "张人脸的";
 Blockly.Msg.ai_models_face_model_get = "获取检测到的人脸的";
 Blockly.Msg.ai_models_face_model_x = "检测框起点 X轴坐标";
 Blockly.Msg.ai_models_face_model_y = "检测框起点 Y轴坐标";

+ 3 - 0
blockly/msg/js/zh-hant.js

@@ -5133,6 +5133,7 @@ Blockly.Msg.ai_video_set_play_init = "視頻初始化";
 
 
 Blockly.Msg.ai_models_from = "從";
+Blockly.Msg.ai_models_face_model_get_all_result = "檢測結果的"
 
 Blockly.Msg.ai_models_init_title = "初始化預設模型:";
 Blockly.Msg.ai_model_allinit_language = "設定語言爲:";
@@ -5169,6 +5170,8 @@ Blockly.Msg.ai_models_face_model_if_new = "在屏幕中顯示識別到的人臉
 Blockly.Msg.ai_model_face_attribute_new = "對識別到的每一個人臉";
 Blockly.Msg.ai_models_face_model_if = "在屏幕中顯示檢測到的人臉結果";
 Blockly.Msg.ai_model_face_attribute = "人臉屬性";
+Blockly.Msg.ai_models_face_model_get_all = "獲取檢測到的";
+Blockly.Msg.ai_models_face_model_get_all_face = "張人臉的";
 Blockly.Msg.ai_models_face_model_get = "獲取檢測到的人臉的";
 Blockly.Msg.ai_models_face_model_x = "檢測框起點 X 軸座標";
 Blockly.Msg.ai_models_face_model_y = "檢測框起點 Y 軸座標";

+ 1 - 1
blockly/msg/zh-hans/blocks_messages.js

@@ -4716,7 +4716,7 @@ Blockly.Msg.ai_model_index_mnist_TOOLTIP = "获取手写数字检测模型的检
 Blockly.Msg.ai_model_get_TOOLTIP = "从变量中获取检测到的待测物体的%1";
 Blockly.Msg.ai_model_look_TOOLTIP = "检测到待测物体";
 Blockly.Msg.ai_model_look_attribute_TOOLTIP = "待测物体属性";
-Blockly.Msg.ai_model_xy_TOOLTIP = "从变量中获取检测到的人脸的%1";
+Blockly.Msg.ai_model_xy_TOOLTIP = "获取检测到的人脸的%1";
 Blockly.Msg.ai_model_human_xy_TOOLTIP = "从变量中获取检测到的人体的%1";
 Blockly.Msg.ai_model_face_TOOLTIP = "检测到人脸";
 Blockly.Msg.ai_model_face_attribute_TOOLTIP = "人脸属性";

+ 1 - 2
blockly/msg/zh-hant/blocks_messages.js

@@ -4407,8 +4407,7 @@ Blockly.Msg.ai_model_index_mnist_TOOLTIP = "獲取手寫數字檢測模型的檢
 Blockly.Msg.ai_model_get_TOOLTIP = "從變量中獲取檢測到的待測物體的%1";
 Blockly.Msg.ai_model_look_TOOLTIP = "檢測到待測物體";
 Blockly.Msg.ai_model_look_attribute_TOOLTIP = "待測物體屬性";
-Blockly.Msg.ai_model_xy_TOOLTIP = "從變量中獲取檢測到的人臉的%1";
-Blockly.Msg.ai_model_xy_TOOLTIP = "從變量中獲取檢測到的人體的%1";
+Blockly.Msg.ai_model_xy_TOOLTIP = "獲取檢測到的人臉的%1";
 Blockly.Msg.ai_model_face_TOOLTIP = "檢測到人臉";
 Blockly.Msg.ai_model_face_attribute_TOOLTIP = "人臉屬性";
 Blockly.Msg.ai_model_customized_init_setup_definition_TOOLTIP = "在自定義模型的程序運行前,進行記憶體的釋放";

+ 14 - 15
src/editor.js

@@ -2620,38 +2620,37 @@ BlockPyEditor.CATEGORY_MAP = {
         // '<block type="ai_model_digital_init"></block>' +
         '<block type="ai_model_digital_init_loding"></block>' +
         // '<block type="ai_model_digital_attribute"></block>' +
-        '<block type="ai_model_digital"></block>' +
-        '<block type="ai_model_digital_new"></block>' +
+        // '<block type="ai_model_digital"></block>' +
+        // '<block type="ai_model_digital_new"></block>' +
         '<block type="ai_model_digital_result"></block>' +
         '<label id="basis_object_recognition" text="Basis object recognition" web-class="myLabelStyle" style="font-size:20px;"></label>' +
         // '<block type="ai_model_object_init">' +
         // '</block>' +
         '<block type="ai_model_object_load"></block>' +
-        '<block type="ai_model_look_attribute"></block>' +
+        // '<block type="ai_model_look_attribute"></block>' +
         // '<block type="ai_model_look"></block>' +
-        '<block type="ai_model_look_new"></block>' +
+        // '<block type="ai_model_look_new"></block>' +
         '<block type="ai_model_get"></block>' +
         '<label id="Guesswork_recognition" text="猜拳识别" web-class="myLabelStyle" style="font-size:20px;"></label>' +
         // '<block type="ai_model_Guesswork_init">' +
         // '</block>' +
         '<block type="ai_model_Guesswork_load"></block>' +
-        '<block type="ai_model_Guesswork_look"></block>' +
-        '<block type="ai_model_Guesswork_look_new"></block>' +
+        // '<block type="ai_model_Guesswork_look"></block>' +
+        // '<block type="ai_model_Guesswork_look_new"></block>' +
         '<block type="ai_model_Guesswork_get"></block>' +
         // '<block type="ai_model_Guesswork_look_attribute"></block>' +
         '<label id="basis_face_recognition" text="Basis face recognition" web-class="myLabelStyle" style="font-size:20px;"></label>' +
-        // '<block type="ai_model_face_recognition_init"></block>' +
         '<block type="ai_model_face_recognition_load"></block>' +
-        '<block type="ai_model_face"></block>' +
-        '<block type="ai_model_face_new"></block>' +
+        // '<block type="ai_model_face"></block>' +
+        // '<block type="ai_model_face_new"></block>' +
         '<block type="ai_model_xy"></block>' +
         // '<block type="ai_model_face_attribute"></block>' +
         // 车牌识别
         '<label id="basis_card_recognition" text="车牌识别" web-class="myLabelStyle" style="font-size:20px;"></label>' +
         // '<block type="ai_model_card_recognition_init"></block>' +
         '<block type="ai_model_card_recognition_load"></block>' +
-        '<block type="ai_model_card_xy"></block>' +
-        '<block type="ai_model_card_xy_new"></block>' +
+        // '<block type="ai_model_card_xy"></block>' +
+        // '<block type="ai_model_card_xy_new"></block>' +
         '<block type="ai_model_card_get"></block>' +
         // '<block type="ai_model_card_result"></block>' +
         '<label id="basis_face_recognition_1" text="人脸识别" web-class="myLabelStyle" style="font-size:20px;"></label>' +
@@ -2670,8 +2669,8 @@ BlockPyEditor.CATEGORY_MAP = {
         '   </block>' +
         '   </value>' +
         '</block>' +
-        '<block type="face_recognition_if_face"></block>' +
-        '<block type="face_recognition_if_face_new"></block>' +
+        // '<block type="face_recognition_if_face"></block>' +
+        // '<block type="face_recognition_if_face_new"></block>' +
         '<block type="face_recognition_detection_rectangle"></block>' +
         // '<block type="face_recognition_map_face"></block>' +
         // '<block type="face_recognition_face_result"></block>' +
@@ -2770,8 +2769,8 @@ BlockPyEditor.CATEGORY_MAP = {
         '   </block>' +
         '   </value>' +
         '</block>' +
-        '<block type="ai_model_customized_if_got"></block>' +
-        '<block type="ai_model_customized_if_got_new"></block>' +
+        // '<block type="ai_model_customized_if_got"></block>' +
+        // '<block type="ai_model_customized_if_got_new"></block>' +
         // '<block type="ai_model_customized_if_got"></block>' +
         '<block type="ai_model_customized_get_result">' +
 

+ 2 - 7
src/python/AI/人脸检测.xml

@@ -17,16 +17,11 @@
     <next>
       <block type="controls_repeat_forever" id="G;eI?9/bLk8BCQx,uJ!a">
         <statement name="DO">
-          <block type="ai_camera_fit_to_screen_size" id=").i8mMAB6q[8N%`SL}P3">
-            <field name="size">224</field>
+          <block type="ai_camera_snapshot" id="J,Z*r]C[vp%0I_#L(rXF">
             <next>
               <block type="ai_model_face_recognition_load" id="yG0O]?M58_OGNL}x@*c:">
                 <next>
-                  <block type="ai_model_face" id=";h6=_#sA2YQ2~xG%xfAB">
-                    <next>
-                      <block type="ai_lcd_showcarvas_set_display" id="G53S9xg,q:=U=lWRg95p"></block>
-                    </next>
-                  </block>
+                  <block type="ai_lcd_showcarvas_set_display" id="G53S9xg,q:=U=lWRg95p"></block>
                 </next>
               </block>
             </next>

+ 10 - 15
src/python/AI/人脸采集.xml

@@ -17,8 +17,7 @@
     <next>
       <block type="controls_repeat_forever" id="G;eI?9/bLk8BCQx,uJ!a">
         <statement name="DO">
-          <block type="ai_camera_fit_to_screen_size" id=").i8mMAB6q[8N%`SL}P3">
-            <field name="size">224</field>
+          <block type="ai_camera_snapshot" id="O@VRo`bc^I/cF5n6}Op8">
             <next>
               <block type="face_recognition_load" id="nr7fbKdQsVfEXai[_#v]">
                 <value name="class_input">
@@ -42,21 +41,17 @@
                   </block>
                 </value>
                 <next>
-                  <block type="face_recognition_if_face" id="mD.,N+8B%47fGAZ*hd2G">
+                  <block type="face_recognition_if_face_new" id="SYI?4X^`j+~-_EAgN*}w">
+                    <statement name="input">
+                      <block type="face_recognition_add" id="0c=C]fvgb6afQL$a_(7?">
+                        <field name="button_type">C</field>
+                      </block>
+                    </statement>
                     <next>
-                      <block type="face_recognition_if_face_new" id="SYI?4X^`j+~-_EAgN*}w">
-                        <statement name="input">
-                          <block type="face_recognition_add" id="0c=C]fvgb6afQL$a_(7?">
-                            <field name="button_type">C</field>
-                          </block>
-                        </statement>
+                      <block type="face_recognition_remove" id="3S^9Ef//y*qxWsp;JY`%">
+                        <field name="button_type">D</field>
                         <next>
-                          <block type="face_recognition_remove" id="3S^9Ef//y*qxWsp;JY`%">
-                            <field name="button_type">D</field>
-                            <next>
-                              <block type="ai_lcd_showcarvas_set_display" id="G53S9xg,q:=U=lWRg95p"></block>
-                            </next>
-                          </block>
+                          <block type="ai_lcd_showcarvas_set_display" id="G53S9xg,q:=U=lWRg95p"></block>
                         </next>
                       </block>
                     </next>

+ 25 - 103
src/python/AI/图片边缘检测.xml

@@ -1,115 +1,37 @@
 <xml xmlns="http://www.w3.org/1999/xhtml" type="IoT">
-  <block type="ai_lcd_screeninit" id="?n*hCVqW[E]Doc^RK-N9" x="185" y="235">
-    <field name="isScreen">False</field>
+  <block type="ai_lcd_showcarvas_set_cord" id="W7R|_~W5MK*6(A1*ncx(" x="185" y="286">
+    <value name="xy">
+      <block type="lcd_set_position" id="V@33YjROc@9OWD#E9cB5">
+        <value name="POSX">
+          <shadow type="math_number" id=";5SG63c|BdKrCug!r@5$">
+            <field name="NUM">48</field>
+          </shadow>
+        </value>
+        <value name="POSY">
+          <shadow type="math_number" id="bA%|Dbq3+v?B(b5ikaLE">
+            <field name="NUM">8</field>
+          </shadow>
+        </value>
+      </block>
+    </value>
     <next>
-      <block type="ai_model_edge_init" id="Md_9(q!d:9#-?IN^N)[J">
-        <next>
-          <block type="ai_lcd_createnonecarvas" id="|zL$]:Ll3RdOeCyU{fV2">
-            <field name="varitem">canvas</field>
-            <value name="wh">
-              <block type="lcd_set_width_height" id="tXC8B^zQ@3:eG}`:]zUM">
-                <value name="WIDTH">
-                  <shadow type="math_number" id="pFPR]I-)QlK*Hf^(~5dn">
-                    <field name="NUM">240</field>
-                  </shadow>
-                </value>
-                <value name="HEIGHT">
-                  <shadow type="math_number" id="L``hh^mCO!3_Xc-8*Lf{">
-                    <field name="NUM">320</field>
-                  </shadow>
-                </value>
-              </block>
+      <block type="controls_repeat_forever" id="w-?2s^`xT,GQ0)%06pK%">
+        <statement name="DO">
+          <block type="v831_img_open" id="ZLR[.A$oepsRqaKb;u=^">
+            <value name="save_path">
+              <shadow type="text" id="08qI*1Fp2e!Bb;6]I1`J">
+                <field name="TEXT">/root/preset/img/cocorobo_logo.jpg</field>
+              </shadow>
             </value>
             <next>
-              <block type="ai_lcd_showcarvas_set_cord" id="W7R|_~W5MK*6(A1*ncx(">
-                <field name="varitem">canvas</field>
-                <value name="xy">
-                  <block type="lcd_set_position" id="V@33YjROc@9OWD#E9cB5">
-                    <value name="POSX">
-                      <shadow type="math_number" id=";5SG63c|BdKrCug!r@5$">
-                        <field name="NUM">48</field>
-                      </shadow>
-                    </value>
-                    <value name="POSY">
-                      <shadow type="math_number" id="bA%|Dbq3+v?B(b5ikaLE">
-                        <field name="NUM">8</field>
-                      </shadow>
-                    </value>
-                  </block>
-                </value>
+              <block type="ai_model_edge_loading" id="?i4iX/KRI:lv4u:Bt0y+">
                 <next>
-                  <block type="controls_repeat_forever" id="w-?2s^`xT,GQ0)%06pK%">
-                    <statement name="DO">
-                      <block type="variables_set" id="`Wz`[J^2gzR-8fT|H0be">
-                        <field name="VAR">img_edgedetection</field>
-                        <value name="VALUE">
-                          <shadow type="math_number" id="W2nsGH,CDw%kMx,u2*~a">
-                            <field name="NUM">0</field>
-                          </shadow>
-                          <block type="v831_img_open" id="ZLR[.A$oepsRqaKb;u=^">
-                            <value name="save_path">
-                              <shadow type="text" id="08qI*1Fp2e!Bb;6]I1`J">
-                                <field name="TEXT">/root/preset/img/cocorobo_logo.jpg</field>
-                              </shadow>
-                            </value>
-                          </block>
-                        </value>
-                        <next>
-                          <block type="variables_set" id="KW22QfJ-~|(G@kPw-?b$">
-                            <field name="VAR">img_edgedetection</field>
-                            <value name="VALUE">
-                              <shadow type="math_number" id=")K7f%kP6KVqnb`}-]AYH">
-                                <field name="NUM">0</field>
-                              </shadow>
-                              <block type="v831_lcd_resizecanvas" id="_=o),xai(t0a;b]|Vze!">
-                                <field name="varitem">img_edgedetection</field>
-                                <value name="wh">
-                                  <block type="ai_lcd_WH_vision" id="WhK_DsXpW8jmq!nv_ONO">
-                                    <value name="A">
-                                      <shadow type="math_number" id="SjUReuK0Pzt4FTOK[:SN">
-                                        <field name="NUM">224</field>
-                                      </shadow>
-                                    </value>
-                                    <value name="B">
-                                      <shadow type="math_number" id="0U/vv|`A|r=DkZ_Lo5d+">
-                                        <field name="NUM">224</field>
-                                      </shadow>
-                                    </value>
-                                  </block>
-                                </value>
-                              </block>
-                            </value>
-                            <next>
-                              <block type="ai_model_edge_loading" id="?i4iX/KRI:lv4u:Bt0y+">
-                                <field name="varitem">img_edgedetection</field>
-                                <next>
-                                  <block type="variables_set" id="A7r9ji^*K7vk.kKIs7s9">
-                                    <field name="VAR">canvas</field>
-                                    <value name="VALUE">
-                                      <shadow type="math_number" id="})6gZKFCo*++!8EfwV5K">
-                                        <field name="NUM">0</field>
-                                      </shadow>
-                                      <block type="ai_model_edge_result" id="j9t@GbN#z|)Y%^f%-1a8"></block>
-                                    </value>
-                                    <next>
-                                      <block type="ai_lcd_showcarvas_set_display" id="4qp70MjO0_xvqUa1nl3I">
-                                        <field name="varitem">canvas</field>
-                                      </block>
-                                    </next>
-                                  </block>
-                                </next>
-                              </block>
-                            </next>
-                          </block>
-                        </next>
-                      </block>
-                    </statement>
-                  </block>
+                  <block type="ai_lcd_showcarvas_set_display" id="4qp70MjO0_xvqUa1nl3I"></block>
                 </next>
               </block>
             </next>
           </block>
-        </next>
+        </statement>
       </block>
     </next>
   </block>

+ 21 - 116
src/python/AI/实时边缘检测.xml

@@ -1,127 +1,32 @@
 <xml xmlns="http://www.w3.org/1999/xhtml" type="IoT">
-  <block type="ai_camera_init" id="=2S[_-0$aerx`JRmIHdZ" x="-84" y="163">
+  <block type="ai_lcd_showcarvas_set_cord" id="W7R|_~W5MK*6(A1*ncx(" x="185" y="286">
+    <value name="xy">
+      <block type="lcd_set_position" id="V@33YjROc@9OWD#E9cB5">
+        <value name="POSX">
+          <shadow type="math_number" id=";5SG63c|BdKrCug!r@5$">
+            <field name="NUM">48</field>
+          </shadow>
+        </value>
+        <value name="POSY">
+          <shadow type="math_number" id="bA%|Dbq3+v?B(b5ikaLE">
+            <field name="NUM">8</field>
+          </shadow>
+        </value>
+      </block>
+    </value>
     <next>
-      <block type="ai_lcd_screeninit" id="?n*hCVqW[E]Doc^RK-N9">
-        <field name="isScreen">False</field>
-        <next>
-          <block type="ai_model_edge_init" id="Md_9(q!d:9#-?IN^N)[J">
+      <block type="controls_repeat_forever" id="w-?2s^`xT,GQ0)%06pK%">
+        <statement name="DO">
+          <block type="ai_camera_snapshot" id="wL2j:v8FoCqc(j%HeN`%">
             <next>
-              <block type="ai_lcd_createnonecarvas" id="|zL$]:Ll3RdOeCyU{fV2">
-                <field name="varitem">canvas</field>
-                <value name="wh">
-                  <block type="lcd_set_width_height" id="tXC8B^zQ@3:eG}`:]zUM">
-                    <value name="WIDTH">
-                      <shadow type="math_number" id="pFPR]I-)QlK*Hf^(~5dn">
-                        <field name="NUM">320</field>
-                      </shadow>
-                    </value>
-                    <value name="HEIGHT">
-                      <shadow type="math_number" id="L``hh^mCO!3_Xc-8*Lf{">
-                        <field name="NUM">240</field>
-                      </shadow>
-                    </value>
-                  </block>
-                </value>
+              <block type="ai_model_edge_loading" id="?i4iX/KRI:lv4u:Bt0y+">
                 <next>
-                  <block type="ai_lcd_showcarvas_set_cord" id="Dr`!c_d)K0s:bdT^ZZNM">
-                    <field name="varitem">canvas</field>
-                    <value name="xy">
-                      <block type="lcd_set_position" id="9L|6p)5v{J5#wZ9Rvv4+">
-                        <value name="POSX">
-                          <shadow type="math_number" id=".z.%V4q-PEj-Ii)72XGr">
-                            <field name="NUM">48</field>
-                          </shadow>
-                        </value>
-                        <value name="POSY">
-                          <shadow type="math_number" id="UxzN+_GI5rhlGRC~Gl`X">
-                            <field name="NUM">8</field>
-                          </shadow>
-                        </value>
-                      </block>
-                    </value>
-                    <next>
-                      <block type="controls_repeat_forever" id="w-?2s^`xT,GQ0)%06pK%">
-                        <statement name="DO">
-                          <block type="variables_set" id="`Wz`[J^2gzR-8fT|H0be">
-                            <field name="VAR">img_edgedetection</field>
-                            <value name="VALUE">
-                              <shadow type="math_number" id="W2nsGH,CDw%kMx,u2*~a">
-                                <field name="NUM">0</field>
-                              </shadow>
-                              <block type="ai_camera_snapshot" id="DBa9xDm=a.#3]gf5m845"></block>
-                            </value>
-                            <next>
-                              <block type="variables_set" id="09KmNjHueIs##7XD^ALx">
-                                <field name="VAR">img_edgedetection</field>
-                                <value name="VALUE">
-                                  <shadow type="math_number" id="){F/9|N@9m#y)pd,!b,_">
-                                    <field name="NUM">0</field>
-                                  </shadow>
-                                  <block type="v831_lcd_img_cut" id="J+p_RSyo2jg}rgd)gE1E">
-                                    <field name="varitem">img_edgedetection</field>
-                                    <value name="xy">
-                                      <block type="ai_lcd_XY_vision" id="fK@Ef2.ke7w0UG,(j9pX">
-                                        <value name="A">
-                                          <shadow type="math_number" id="%hahI,,te-Fq8V|E7+fO">
-                                            <field name="NUM">0</field>
-                                          </shadow>
-                                        </value>
-                                        <value name="B">
-                                          <shadow type="math_number" id="}WO2@xdxN+~JY-d^Z=/q">
-                                            <field name="NUM">0</field>
-                                          </shadow>
-                                        </value>
-                                      </block>
-                                    </value>
-                                    <value name="wh">
-                                      <block type="ai_lcd_WH_vision" id="mt|4#Z*uW3n6pZ1Cj%Cw">
-                                        <value name="A">
-                                          <shadow type="math_number" id="-wS3d?/N1KoQaNm;l[xx">
-                                            <field name="NUM">224</field>
-                                          </shadow>
-                                        </value>
-                                        <value name="B">
-                                          <shadow type="math_number" id=":dtuxYrzYXbLTD~nw!Or">
-                                            <field name="NUM">224</field>
-                                          </shadow>
-                                        </value>
-                                      </block>
-                                    </value>
-                                  </block>
-                                </value>
-                                <next>
-                                  <block type="ai_model_edge_loading" id="?i4iX/KRI:lv4u:Bt0y+">
-                                    <field name="varitem">img_edgedetection</field>
-                                    <next>
-                                      <block type="variables_set" id="A7r9ji^*K7vk.kKIs7s9">
-                                        <field name="VAR">canvas</field>
-                                        <value name="VALUE">
-                                          <shadow type="math_number" id="})6gZKFCo*++!8EfwV5K">
-                                            <field name="NUM">0</field>
-                                          </shadow>
-                                          <block type="ai_model_edge_result" id="j9t@GbN#z|)Y%^f%-1a8"></block>
-                                        </value>
-                                        <next>
-                                          <block type="ai_lcd_showcarvas_set_display" id="4qp70MjO0_xvqUa1nl3I">
-                                            <field name="varitem">canvas</field>
-                                          </block>
-                                        </next>
-                                      </block>
-                                    </next>
-                                  </block>
-                                </next>
-                              </block>
-                            </next>
-                          </block>
-                        </statement>
-                      </block>
-                    </next>
-                  </block>
+                  <block type="ai_lcd_showcarvas_set_display" id="4qp70MjO0_xvqUa1nl3I"></block>
                 </next>
               </block>
             </next>
           </block>
-        </next>
+        </statement>
       </block>
     </next>
   </block>

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä