作者:Signx
概述
当前的人脸识别摄像头,价格昂贵,拟改造成stm32单片机版本的,节省成本
功能:
1.连接摄像头OV2640,用fish指令开启摄像头
2.将摄像头数据传到电脑显示图片
3.将摄像头数据传到spi显示屏显示(未完成)
4.用人脸识别算法识别人脸开锁(未完成)
5.可登录到tencent Cloud云平台,实现上云
开发环境:
硬件:Art-pi+OV2640
RT-Thread版本:4.0.2
开发工具及版本:rt-stuidio V2.0.0
RT-Thread使用情况概述:
硬件框架:art-pi官方开发板+OV2640(dma+DCMI)
软件框架说明:
见思维导图
软件模块说明:
见思维导图
该系统的思维脑图如下:
演示效果:
视频:
实物图如下:
实现的效果如图:
连接电路如图所示:
实现功能:
1.连接摄像头OV2640,用fish指令开启摄像头
2.将摄像头数据传到电脑显示图片
3.将摄像头数据传到spi显示屏显示(未完成)
4.用人脸识别算法识别人脸开锁(未完成)
5.可登录到tencent Cloud云平台,实现上云主要碰到的技术难点:
1.art-pi组建库里有ov2640的软件包,本以为直接能用的,结果发现有很多缺失
首先是io口的确实,没有定义到足够的io口,所以代码里又加上了io口的定义以及初始化:
io口定义代码:
typedef enum
{
BMP_QQVGA = 0x00, /* BMP Image QQVGA 160x120 Size */
BMP_QVGA = 0x01, /* BMP Image VGA 800*480 Size */
JPEG_160x120 = 0x02, /* JPEG Image 160x120 Size */
JPEG_176x144 = 0x03, /* JPEG Image 176x144 Size */
JPEG_320x240 = 0x04, /* JPEG Image 320x240 Size */
JPEG_352x288 = 0x05 /* JPEG Image 352x288 Size */
}ImageFormat_TypeDef;
/*摄像头接口 */
//IIC SCCB
//#define CAMERA_I2C I2C1
//#define CAMERA_I2C_CLK_ENABLE() __HAL_RCC_I2C1_CLK_ENABLE()
//
//#define CAMERA_I2C_SCL_PIN GPIO_PIN_8
//#define CAMERA_I2C_SCL_GPIO_PORT GPIOB
//#define CAMERA_I2C_SCL_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
//#define CAMERA_I2C_SCL_AF GPIO_AF4_I2C1
//
//#define CAMERA_I2C_SDA_PIN GPIO_PIN_9
//#define CAMERA_I2C_SDA_GPIO_PORT GPIOB
//#define CAMERA_I2C_SDA_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
//#define CAMERA_I2C_SDA_AF GPIO_AF4_I2C1
//VSYNC
#define DCMI_VSYNC_GPIO_PORT GPIOI
#define DCMI_VSYNC_GPIO_CLK_ENABLE() __HAL_RCC_GPIOI_CLK_ENABLE()
#define DCMI_VSYNC_GPIO_PIN GPIO_PIN_5
#define DCMI_VSYNC_AF GPIO_AF13_DCMI
// HSYNC
#define DCMI_HSYNC_GPIO_PORT GPIOH
#define DCMI_HSYNC_GPIO_CLK_ENABLE() __HAL_RCC_GPIOH_CLK_ENABLE()
#define DCMI_HSYNC_GPIO_PIN GPIO_PIN_8
#define DCMI_HSYNC_AF GPIO_AF13_DCMI
//PIXCLK
#define DCMI_PIX
1