v10模型集成+去抖+架构重构: 单线程+背景采集, ControlUpdate单出口电机控制, I2C音频持久fd, 斑马线接近去抖

This commit is contained in:
spdis
2026-06-09 17:07:00 +08:00
parent b6b631cef3
commit d284e18407
25 changed files with 2453 additions and 409 deletions
+4 -12
View File
@@ -1,11 +1,3 @@
/*
* @Author: ilikara 3435193369@qq.com
* @Date: 2024-10-10 08:28:56
* @LastEditors: ilikara 3435193369@qq.com
* @LastEditTime: 2025-01-07 09:35:04
* @FilePath: /smartcar/lib/camera.h
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
#ifndef CAMERA_H_
#define CAMERA_H_
@@ -22,6 +14,7 @@
#include <linux/fb.h>
#include <algorithm>
#include <chrono>
#include <thread>
#include "image_cv.h"
#include "PIDController.h"
@@ -29,16 +22,15 @@
#include "global.h"
#include "frame_buffer.h"
#include "serial.h"
#include "control.h"
int CameraInit(uint8_t camera_id, double dest_fps, int width, int height);
int CameraHandler(void);
void streamCapture(void);
void cameraDeInit(void);
extern bool streamCaptureRunning;
extern double kp;
extern double ki;
extern double kd;
extern double g_steer_deviation;
#endif
#endif
+5 -2
View File
@@ -8,11 +8,14 @@
#include "serial.h"
void ControlInit();
void ControlMain();
void ControlUpdate(double speed, bool zebra_block);
void ControlExit();
extern double mortor_kp;
extern double mortor_ki;
extern double mortor_kd;
#endif
extern GPIO mortorEN;
extern MotorController *motorController[2];
#endif
+1
View File
@@ -18,6 +18,7 @@ const std::string start_file = "./start";
const std::string showImg_file = "./showImg";
const std::string destfps_file = "./destfps";
const std::string foresee_file = "./foresee";
const std::string zebrasee_file = "./zebrasee";
const std::string saveImg_file = "./saveImg";
const std::string speed_file = "./speed";
const std::string deadband_file = "./deadband";
+16
View File
@@ -0,0 +1,16 @@
/*
* zebra_detect.h — 斑马线检测函数
* ================================
* 输入图片 → 返回是否有人行横道 + 距离
*/
#pragma once
#include <opencv2/opencv.hpp>
struct ZebraResult
{
bool detected; // true = 检测到斑马线
int distance_px; // 斑马线下沿距图像下边框的像素距离, -1 = 未检测到
};
ZebraResult detect_zebra_crossing(const cv::Mat &bgr_frame);