一、项目背景介绍
随着社会的不断发展,人们对于汽车的安全性要求越来越高,而倒车雷达系统就是为了增强汽车驾驶者的安全性而被广泛使用。在这种情况下,我们开发了一个基于Linux设计的倒车雷达系统,该系统可以采用迅为4412主控板,运行Linux3.5内核,使用USB摄像头、TFT真彩显示屏、超声波测距模块和蜂鸣器等硬件。
二、创新点
本项目的创新点包括:
三、使用技术介绍
四、系统架构
整个系统由以下几个模块组成:
五、功能设计
六、摄像头图像显示应用代码
#include
#include /* See NOTES */
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
/* 图片的象素数据 */
typedef struct PixelDatas {
int iWidth; /* 宽度: 一行有多少个象素 */
int iHeight; /* 高度: 一列有多少个象素 */
int iBpp; /* 一个象素用多少位来表示 */
int iLineBytes; /* 一行数据有多少字节 */
int iTotalBytes; /* 所有字节数 */
unsigned char *VideoBuf; //存放一帧摄像头的数据
//指向了存放摄像头数据的空间地址
}T_PixelDatas;
T_PixelDatas Pixedata; //存放实际的图像数据
/*
USB摄像头相关参数定义
*/
struct v4l2_buffer tV4l2Buf;
int iFd;
int ListNum;
unsigned char* pucVideBuf[4]; // 视频BUFF空间地址
void camera_pthread(void);
//LCD屏相关的参数
unsigned char *lcd_mem=NULL; /*LCD的内存地址*/
struct fb_fix_screeninfo finfo; /*固定形参*/
struct fb_var_screeninfo vinfo; /*可变形参*/
void LCD_Init(void);
void show_pixel(int x,int y,int color);
int main(int argc ,char *argv[])
{
if(argc!=2)
{
printf("./app /dev/videoXn");
return -1;
}
LCD_Init(); //LCD屏初始化
camera_init(argv[1]); //摄像头设备初始化
//开始采集摄像头数据,并实时显示在LCD屏幕上
camera_pthread();
return 0;
}
//LCD屏初始化
void LCD_Init(void)
{
/*1.打开设备文件*/
int fd=open("/dev/fb0",O_RDWR);
if(fd