{
  "appVersion": "0.10.0",
  "savedAt": "2026-09-29T07:45:37.843Z",
  "workspace": {
    "blocks": {
      "languageVersion": 0,
      "blocks": [
        {
          "type": "controls_whileUntil",
          "id": "~z+_lEg#^*D(}`Yfpb7l",
          "x": 180,
          "y": 348,
          "fields": {
            "MODE": "WHILE"
          },
          "inputs": {
            "BOOL": {
              "block": {
                "type": "logic_boolean",
                "id": "$8vEXwu4rcS*ymw5:2qA",
                "fields": {
                  "BOOL": "TRUE"
                }
              }
            },
            "DO": {
              "block": {
                "type": "apm_mini_print",
                "id": "Nf1V,4tF;}}=*=Bp,DLM",
                "inputs": {
                  "VALUE": {
                    "shadow": {
                      "type": "text",
                      "id": ";T*bf]zb6ze;Jk0%eP_p",
                      "fields": {
                        "TEXT": "APM 小小车"
                      }
                    },
                    "block": {
                      "type": "apm_mini_sensor",
                      "id": "Vz1r].CHJ-Bicm;Lq;Gi",
                      "fields": {
                        "CH": "1"
                      }
                    }
                  }
                },
                "next": {
                  "block": {
                    "type": "apm_mini_wait",
                    "id": "j]Io^13WBL@oM$74}:Vs",
                    "inputs": {
                      "MS": {
                        "shadow": {
                          "type": "math_number",
                          "id": "#/:$K-v?qf^]UXGyQlh/",
                          "fields": {
                            "NUM": 1000
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        {
          "type": "apm_mini_sound_declare",
          "id": "^lO[*g|{!M*g%(#[}~Sk",
          "x": 180,
          "y": 516,
          "fields": {
            "NAME": "声音1"
          },
          "inputs": {
            "FREQ": {
              "shadow": {
                "type": "math_number",
                "id": "=7WpsJxMw/mko?If3F6=",
                "fields": {
                  "NUM": 880
                }
              }
            },
            "SECONDS": {
              "shadow": {
                "type": "math_number",
                "id": "b!iMK@YV)S}hhz7;D1t.",
                "fields": {
                  "NUM": 0.1
                }
              }
            },
            "VOLUME": {
              "shadow": {
                "type": "math_number",
                "id": "C:IC(Nckt@kQe}@m(]n[",
                "fields": {
                  "NUM": 20
                }
              }
            }
          },
          "next": {
            "block": {
              "type": "variables_set",
              "id": ",NH9$b9l^4kx1|h*AWB|",
              "fields": {
                "VAR": {
                  "id": "YeD-ml+PJ|I)JF}it|-n"
                }
              },
              "inputs": {
                "VALUE": {
                  "block": {
                    "type": "math_number",
                    "id": "u.MDLG!b.@llxD]ax/]v",
                    "fields": {
                      "NUM": 0
                    }
                  }
                }
              },
              "next": {
                "block": {
                  "type": "controls_whileUntil",
                  "id": "^x1_K}-Lc=cFoALl^Nx3",
                  "fields": {
                    "MODE": "WHILE"
                  },
                  "inputs": {
                    "BOOL": {
                      "block": {
                        "type": "logic_boolean",
                        "id": "ioZE+hC!vtJ~[#.3)YmV",
                        "fields": {
                          "BOOL": "TRUE"
                        }
                      }
                    },
                    "DO": {
                      "block": {
                        "type": "apm_mini_rpm",
                        "id": "Xe6P//506z[Tek5t=4d^",
                        "inputs": {
                          "LEFT": {
                            "shadow": {
                              "type": "math_number",
                              "id": "Pt!-QQ//Xq:d`0icPZb$",
                              "fields": {
                                "NUM": 50
                              }
                            }
                          },
                          "RIGHT": {
                            "shadow": {
                              "type": "math_number",
                              "id": "qba7[#C@7Pac/?LQb=s-",
                              "fields": {
                                "NUM": 50
                              }
                            }
                          }
                        },
                        "next": {
                          "block": {
                            "type": "controls_if",
                            "id": ")cCWnl|FJyMabQMqJ_lp",
                            "inputs": {
                              "IF0": {
                                "block": {
                                  "type": "logic_compare",
                                  "id": "lys`0HucL?DF;^7dIolE",
                                  "fields": {
                                    "OP": "LT"
                                  },
                                  "inputs": {
                                    "A": {
                                      "block": {
                                        "type": "apm_mini_sensor",
                                        "id": "3d@F)eLpB*6d+*J+(eLL",
                                        "fields": {
                                          "CH": "3"
                                        }
                                      }
                                    },
                                    "B": {
                                      "block": {
                                        "type": "math_number",
                                        "id": "Zu}F2iGWU%vgaFzYrV=O",
                                        "icons": {
                                          "comment": {
                                            "text": "根据实际情况调整",
                                            "pinned": false,
                                            "height": 80,
                                            "width": 161.86669921875
                                          }
                                        },
                                        "fields": {
                                          "NUM": 50
                                        }
                                      }
                                    }
                                  }
                                }
                              },
                              "DO0": {
                                "block": {
                                  "type": "variables_set",
                                  "id": "6Rge*UQAPktU64Wj:!9[",
                                  "fields": {
                                    "VAR": {
                                      "id": "YeD-ml+PJ|I)JF}it|-n"
                                    }
                                  },
                                  "inputs": {
                                    "VALUE": {
                                      "block": {
                                        "type": "math_arithmetic",
                                        "id": "]/S},ONhe]A3?m]B|5BH",
                                        "fields": {
                                          "OP": "ADD"
                                        },
                                        "inputs": {
                                          "A": {
                                            "block": {
                                              "type": "variables_get",
                                              "id": "|*)XC_kU`SWaO,Dvt~:!",
                                              "fields": {
                                                "VAR": {
                                                  "id": "YeD-ml+PJ|I)JF}it|-n"
                                                }
                                              }
                                            }
                                          },
                                          "B": {
                                            "block": {
                                              "type": "math_number",
                                              "id": "Y}rU|^);6);(3~pQXkB3",
                                              "fields": {
                                                "NUM": 1
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  },
                                  "next": {
                                    "block": {
                                      "type": "apm_mini_sound_play",
                                      "id": "AvQO5uLHf|P)Gv_.{qZu",
                                      "fields": {
                                        "INSTANCE": "id:^lO[*g|{!M*g%(#[}~Sk"
                                      },
                                      "next": {
                                        "block": {
                                          "type": "apm_mini_wait",
                                          "id": "q[/hApwbxcsl})C-QN[c",
                                          "icons": {
                                            "comment": {
                                              "text": "等待时间是防止对同一条黑线重复计数",
                                              "pinned": false,
                                              "height": 61.95556640625,
                                              "width": 178.66668701171875,
                                              "x": 76.20662027994788,
                                              "y": 894.4333333333334
                                            }
                                          },
                                          "inputs": {
                                            "MS": {
                                              "shadow": {
                                                "type": "math_number",
                                                "id": "`|:Z2|:=q/,u!ZG1irEr",
                                                "fields": {
                                                  "NUM": 500
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ]
    },
    "variables": [
      {
        "name": "黑线数量",
        "id": "YeD-ml+PJ|I)JF}it|-n"
      }
    ]
  },
  "python": "import light\nimport time\nimport buzzer\nimport drive\n\n黑线数量 = None\n\n\nwhile True:\n  print(light.get_optical_sensor(1))\n  time.sleep_ms(int(1000))\n\n声音1 = buzzer.sound(int(880), 0.1, volume=int(20))\n黑线数量 = 0\nwhile True:\n  drive.drive_rpm(50, 50)\n  if light.get_optical_sensor(3) < 50:\n    黑线数量 = 黑线数量 + 1\n    声音1.play()\n    time.sleep_ms(int(500))\n",
  "programmingMode": "blocks"
}