mirror of
https://github.com/m5stack/Applications-LidarBot.git
synced 2026-05-20 10:23:34 -07:00
0.0.2
LidarBot
文档地址:https://docs.m5stack.com/#/zh_CN/app/lidarbot
LidarBot是能够应用于地图扫描、运动控制研究、路径规划、人工智能、自动驾驶以及多机协同任务的非常强大,好用的轮式机器人套件。
目录树
LidarBot目录树
├─Example
│ ├─LidarBot_CarMain_V1.1 - 雷达车主控程序
│ ├─LidarBot_RemoteController_V1.0 - 遥控手柄程序V1.0
│ └─LidarBot_RemoteController_V1.2 - 遥控手柄程序V1.2(相比V1.0精度提高一倍)
│
├─Firmware(底层MEGA328P固件,使用时可忽略)
│ ├─LidarBot_Bottom_FW - 车底板轮子控制板主控MEGA328P程序(可忽略)
│ └─LidarBot_Remote_FW - 手柄内部MEGA328P程序(可忽略)
│
├─Product_Picture - 产品图片
├─Schematic_Diagram - 原理图示意
└─SComAssistant - 上位机(暂时只有雷达地图显示功能)
程序解析:
雷达车主控程序:
/* 主循环 */
void loop()
{
espnow.BotConnectUpdate();// ESPNOW断开重连/换设备重连
lidarcar.MapDisplay();// 显示地图
esp_now_send(espnow.peer_addr, lidarcar.mapdata, 180);// ESPNOW发送地图数据
}
-
单个功能解析:
-
读取雷达数据的使用
#include "lidarcar.h" LidarCar lidarcar; lidarcar.Init(); GetData();//得到雷达保存到数组distance[] -
迷宫的使用
lidarcar.CarMaze(); //迷宫执行函数 -
循迹的使用
lidarcar.TrackControl(); //循迹执行函数 -
ESP_NOW的使用
-
手柄主控程序:
/* 主循环 */
void loop()
{
espnow.RemoteConnectUpdate();// ESPNOW断开重连/换设备重连
keyboard.GetValue();//读取摇杆数据
esp_now_send(espnow.peer_addr, keyboard.keyData, 3);// ESPNOW发送摇杆数据给小车主控
MapDisplay();// 显示地图
accessport.AnalzyCommand();// 发送地图数据给上位机
}
-
单个功能解析:
-
JOYSTICK的使用
#include "keyboard.h" KeyBoard keyboard; keyboard.Init(); GetValue();//手柄读数保存在adX, adY,并控制赋值给数组keyData[]和手柄RGB灯 -
与上位机通信的使用
#include "accessport.h" AccessPort accessport; accessport.AnalzyCommand();// 发送地图数据给PC上位机
-
开发环境安装
点击链接:https://github.com/m5stack/M5Stack
原理图
源码
雷达车:Bot
遥控器:Remote
上位机
新加上位机调试功能。
功能一:实时显示LidarBot地图。
激光车示图
长:142mm, 宽:117mm, 高:120mm
Description
Languages
C
88.2%
C++
11.8%