{"id":27878836,"url":"https://github.com/m5stack/applications-lidarbot","last_synced_at":"2025-05-05T03:15:37.039Z","repository":{"id":41063282,"uuid":"155180819","full_name":"m5stack/Applications-LidarBot","owner":"m5stack","description":null,"archived":false,"fork":false,"pushed_at":"2023-04-12T03:59:19.000Z","size":21960,"stargazers_count":18,"open_issues_count":0,"forks_count":15,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-05-05T03:15:25.732Z","etag":null,"topics":["applications","lidar","lidarbot"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/m5stack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-10-29T08:56:08.000Z","updated_at":"2023-04-19T20:58:23.000Z","dependencies_parsed_at":"2023-02-18T04:45:52.443Z","dependency_job_id":null,"html_url":"https://github.com/m5stack/Applications-LidarBot","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m5stack%2FApplications-LidarBot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m5stack%2FApplications-LidarBot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m5stack%2FApplications-LidarBot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m5stack%2FApplications-LidarBot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/m5stack","download_url":"https://codeload.github.com/m5stack/Applications-LidarBot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252429977,"owners_count":21746574,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["applications","lidar","lidarbot"],"created_at":"2025-05-05T03:15:36.374Z","updated_at":"2025-05-05T03:15:37.033Z","avatar_url":"https://github.com/m5stack.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LidarBot\n\nEnglish | [中文](https://github.com/m5stack/Applications-LidarBot/blob/master/README_zh_CN.md)\n\n*Document Link：https://docs.m5stack.com/#/zh_CN/app/lidarbot*\n\nLidarBot is a very powerful and easy-to-use wheeled robot kit that can be applied to map scanning, motion control research, path planning, artificial intelligence, autopilot and multi-machine collaborative tasks.\n\n## Directory tree\n\n**LidarBot Directory tree**\n\n    ├─Example\n\n    │  ├─LidarBot_CarMain_V1.1 - LidarBot master program\n\n    │  ├─LidarBot_RemoteController_V1.0 - Remote control handle programV1.0\n\n    │  └─LidarBot_RemoteController_V1.2 - Remote control handle programV1.2(Double the accuracy of V1.0)\n\n    │\n\n    ├─Firmware(The bottom MEGA328P firmware can be ignored when used)\n\n    │  ├─LidarBot_Bottom_FW - Car floor wheel control board master MEGA328P program (can be ignored)\n\n    │  └─LidarBot_Remote_FW - MEGA328P program inside the handle (can be ignored)\n\n    │\n\n    ├─Product_Picture - Product Image\n\n    ├─Schematic_Diagram - Schematic diagram\n\n    └─SComAssistant - Host computer (temporary only radar map display function)\n\n\n### Connect And Pair\n\nIf you have no map on the screen of your remote, reconnect it.\n\n1. Press Button B of the lidarBot until the sound raised and the car will get into Broadcast mode with it's mac address on the screen which will send the lidarBot Mac address to the remote.\n2. And Press Button B for a few second,you will hear the same sound and the Mac address of lidarBot will show on the screen,use ```down``` button to select and press ```select``` when you choose the right Mac address on the screen.\n3. Check out the lidarBot screen whether it receive the message from the remote,press ```confirm``` and you finish the match.\n\n\n## Program analysis：\n\n### **LidarBot Master program：**\n\n```arduino\n/* Main loop */\nvoid loop()\n{\n  espnow.BotConnectUpdate();// ESPNOW disconnect reconnect / change device reconnection\n  lidarcar.MapDisplay();// Show map\n  esp_now_send(espnow.peer_addr, lidarcar.mapdata, 180);// ESPNOW sends map data\n}\n```\n\n* **Single function resolution：**\n\n   * Read the use of radar data\n\n      ```arduino\n      #include \"lidarcar.h\"\n      LidarCar lidarcar;\n\n      lidarcar.Init();\n      GetData();//Get the radar saved to the array distance[]\n      ```\n\n   * Use of the maze\n\n      ```arduino\n      lidarcar.CarMaze(); //Maze execution function\n      ```\n\n   * Tracking use\n\n      ```arduino\n      lidarcar.TrackControl(); //Tracking execution function\n      ```\n\n   * Use of ESP_NOW\n\n      https://github.com/m5stack/M5-espnow\n\n\n### **Handle master program：**\n\n```arduino\n/* Main loop */\nvoid loop()\n{\n  espnow.RemoteConnectUpdate();// ESPNOW disconnect reconnect / change device reconnection\n  keyboard.GetValue();//Read joystick data\n  esp_now_send(espnow.peer_addr, keyboard.keyData, 3);// ESPNOW sends joystick data to the car master\n  MapDisplay();// Show map\n  accessport.AnalzyCommand();// Send map data to the host computer\n}\n```\n\n* **Single function resolution：**\n\n   * JOYSTICK\n\n      ```arduino\n      #include \"keyboard.h\"\n      KeyBoard keyboard;\n\n      keyboard.Init();\n      GetValue();//Handle readings are saved in adX, adY, and control assignments to array keyData[] and handle RGB lights\n      ```\n\n   * Use of communication with the host computer\n      ```arduino\n      #include \"accessport.h\"\n      AccessPort accessport;\n\n      accessport.AnalzyCommand();// Send map data to PC host computer\n      ```\n\n## Development environment installation\n   click the link：[https://github.com/m5stack/M5Stack](https://github.com/m5stack/M5Stack)\n\n## Schematic\n\n\u003cimg src=\"https://raw.githubusercontent.com/m5stack/Applications-LidarBot/master/LidarBot/Schematic_Diagram/lidarbot_04.png\" width=\"500\" height=\"500\"\u003e\n\n\n## Source code\n\n   [LidarBott](https://github.com/m5stack/Applications-LidarBot/tree/master/LidarBot/Example/LidarBot_CarMain_V1.1)\n\n   [Remote](https://github.com/m5stack/Applications-LidarBot/blob/master/LidarBot/Example/LidarBot_RemoteController_V1.2)\n\n## Host computer\n\n   New plus bit machine debugging features.\n\n   Function 1: Display the LidarBot map in real time.\n\n## Laser car diagram\n\n**Length: 142mm, width: 117mm, height: 120mm**\n\n\u003cimg src=\"https://raw.githubusercontent.com/m5stack/Applications-LidarBot/master/LidarBot/Product_Picture/lidarbot_03.png\" width=\"500\" height=\"500\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/m5stack/Applications-LidarBot/master/LidarBot/Product_Picture/lidarbot_01.png\" width=\"500\" height=\"500\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/m5stack/Applications-LidarBot/master/LidarBot/Product_Picture/lidarbot_02.png\" width=\"500\" height=\"500\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm5stack%2Fapplications-lidarbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm5stack%2Fapplications-lidarbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm5stack%2Fapplications-lidarbot/lists"}