{
  "appVersion": "0.12.0",
  "savedAt": "2026-09-30T02:31:31.692Z",
  "workspace": {
    "blocks": {
      "languageVersion": 0,
      "blocks": [
        {
          "type": "controls_whileUntil",
          "id": "|H`7r@tZIk=P]HXtj@dz",
          "x": 276,
          "y": 84,
          "icons": {
            "comment": {
              "text": "机器人直行直到检测车库门口黑线跳出循环小车停止",
              "pinned": true,
              "height": 80,
              "width": 160
            }
          },
          "fields": {
            "MODE": "UNTIL"
          },
          "inputs": {
            "BOOL": {
              "block": {
                "type": "logic_compare",
                "id": "y4[sAZ3@sJIMO{1UM3%/",
                "fields": {
                  "OP": "LT"
                },
                "inputs": {
                  "A": {
                    "block": {
                      "type": "apm_mini_sensor",
                      "id": "N)!31Nicz]jO-O?-OuOW",
                      "fields": {
                        "CH": "3"
                      }
                    }
                  },
                  "B": {
                    "block": {
                      "type": "math_number",
                      "id": "zl`*4@!-1L`?zZbK.Xa1",
                      "fields": {
                        "NUM": 50
                      }
                    }
                  }
                }
              }
            },
            "DO": {
              "block": {
                "type": "apm_mini_rpm",
                "id": "FrluK4iHIiH?W?`MpCg?",
                "inputs": {
                  "LEFT": {
                    "shadow": {
                      "type": "math_number",
                      "id": "(6[U]Ex(juPn9o-#ugx]",
                      "fields": {
                        "NUM": 50
                      }
                    }
                  },
                  "RIGHT": {
                    "shadow": {
                      "type": "math_number",
                      "id": ".2~A)ndbHrs-9X#rR~yE",
                      "fields": {
                        "NUM": 50
                      }
                    }
                  }
                }
              }
            }
          },
          "next": {
            "block": {
              "type": "apm_mini_stop",
              "id": "%Pe0+;RFpP)rmq]IdNes",
              "fields": {
                "MOTOR": "0"
              },
              "next": {
                "block": {
                  "type": "apm_mini_wait",
                  "id": "=t}-LV7C0a5;X5E}g.U8",
                  "inputs": {
                    "MS": {
                      "shadow": {
                        "type": "math_number",
                        "id": "gZ*E^C-w+KdAW%C0T+9)",
                        "fields": {
                          "NUM": 1000
                        }
                      }
                    }
                  },
                  "next": {
                    "block": {
                      "type": "apm_mini_rpm",
                      "id": "3%3Iqv4`]E~WkFl]}llV",
                      "inputs": {
                        "LEFT": {
                          "shadow": {
                            "type": "math_number",
                            "id": "_W5Q[+6v0GggazZ_4zd|",
                            "fields": {
                              "NUM": -50
                            }
                          }
                        },
                        "RIGHT": {
                          "shadow": {
                            "type": "math_number",
                            "id": "/:h~V#Hte+cBJ^KZ,LYu",
                            "fields": {
                              "NUM": 0
                            }
                          }
                        }
                      },
                      "next": {
                        "block": {
                          "type": "apm_mini_wait",
                          "id": "up/@W/O/gYjHY,[$MXwz",
                          "icons": {
                            "comment": {
                              "text": "机器人后退转向，通\n过调试时间数值，使机器人后退转向直角，车位正对车库。",
                              "pinned": true,
                              "height": 101.66665649414062,
                              "width": 167.77780151367188,
                              "x": 75.61111111111111,
                              "y": 236.05555555555554
                            }
                          },
                          "inputs": {
                            "MS": {
                              "shadow": {
                                "type": "math_number",
                                "id": "I`bsqpPwW[9vR(?1jHUK",
                                "fields": {
                                  "NUM": 1000
                                }
                              }
                            }
                          },
                          "next": {
                            "block": {
                              "type": "apm_mini_stop",
                              "id": "u9));c}T]|Vs1H?YF@#1",
                              "fields": {
                                "MOTOR": "0"
                              },
                              "next": {
                                "block": {
                                  "type": "apm_mini_wait",
                                  "id": "y#W?d}cL3IQ(]#$#Nk=L",
                                  "inputs": {
                                    "MS": {
                                      "shadow": {
                                        "type": "math_number",
                                        "id": "!9j:=)yhcQGGEI:JgZWo",
                                        "fields": {
                                          "NUM": 1000
                                        }
                                      }
                                    }
                                  },
                                  "next": {
                                    "block": {
                                      "type": "apm_mini_rpm",
                                      "id": "_)zY+h]HDN#(0.1M9d6C",
                                      "inputs": {
                                        "LEFT": {
                                          "shadow": {
                                            "type": "math_number",
                                            "id": "N9wC;=Ts3xkUUw@pv37W",
                                            "fields": {
                                              "NUM": -50
                                            }
                                          }
                                        },
                                        "RIGHT": {
                                          "shadow": {
                                            "type": "math_number",
                                            "id": "|1N;jy2Ortwd#*@P#Xw$",
                                            "fields": {
                                              "NUM": -50
                                            }
                                          }
                                        }
                                      },
                                      "next": {
                                        "block": {
                                          "type": "apm_mini_wait",
                                          "id": "Ej*yl^*f-5K:tHtaSTl+",
                                          "icons": {
                                            "comment": {
                                              "text": "机器人后退倒进车库，通过调试数值大小，使机器人刚好停进车库内",
                                              "pinned": true,
                                              "height": 108.33334350585938,
                                              "width": 168.33334350585938,
                                              "x": 71.72222222222223,
                                              "y": 409.72222222222223
                                            }
                                          },
                                          "inputs": {
                                            "MS": {
                                              "shadow": {
                                                "type": "math_number",
                                                "id": "-]9gM%:xbXow(_0MeM!|",
                                                "fields": {
                                                  "NUM": 2000
                                                }
                                              }
                                            }
                                          },
                                          "next": {
                                            "block": {
                                              "type": "apm_mini_stop",
                                              "id": "cdKofa%*30^*rW:F:j%p",
                                              "fields": {
                                                "MOTOR": "0"
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ]
    }
  },
  "python": "import light\nimport drive\nimport time\n\n\nwhile not light.get_optical_sensor(3) < 50:\n  drive.drive_rpm(50, 50)\ndrive.stop_rpm(0)\ntime.sleep_ms(int(1000))\ndrive.drive_rpm(-50, 0)\ntime.sleep_ms(int(1000))\ndrive.stop_rpm(0)\ntime.sleep_ms(int(1000))\ndrive.drive_rpm(-50, -50)\ntime.sleep_ms(int(2000))\ndrive.stop_rpm(0)\n",
  "programmingMode": "blocks"
}