切换到宽版
  • 66735阅读
  • 259回复

[AVR]基于ATmega64的实用、多功能的蓝牙OBD行车电脑『开源』 [复制链接]

上一主题 下一主题
离线helloplay
 

发帖
14
M币
463
专家
4
粉丝
41
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2012-10-31
— 本帖被 發騷友 设置为精华(2013-01-30) —
09年有了自己的第一辆车,车子很一般,是雪佛兰的乐风。没有行车电脑功能。于是想弄一个行车电脑安在车上。在淘宝上搜了一圈,发现现有的行车电脑,功能大多不实用。大部分都是基于标准的OBD协议进行开发,功能无非就是查看故障码、清除故障码、显示转速、车速、水温、进气压力、进气温度等等的一些发动机参数。其实这些参数如果不是维修的话,日常行车基本上没用的。感觉成品的行车电脑不能满足自己的要求。于是萌发了自己制作一款多功能行车电脑的念头。于是开始查资料、研究车辆的OBD协议,设计线路板、编程、调试,经过1年多的时间,经过了3个版本的修改,最终做成了现在的这款行车电脑。自我感觉还不错,用的效果也很好。现在共享出来给大家。本人的单片机水平纯属业余爱好,在此之前只会一些51的单片机,第一版就是用的51的单片机,后来用AVR,也是临时学的。编程很线路图设计都很差劲。不过,功能好歹都实现了。

先上一张系统框图给大家看看。


整个系统采用ATmega64作为主控芯片,用24064的黄绿液晶作为显示屏(T6963C驱动),DS1302作为时钟芯片,读取时间。用2个DS18B20温度传感器检测车内及车外温度,用C3-370C的GPS模块作为GPS接收装置,读取经纬度、海拔、航向等信息。在发动机的OBD接口上安装一个蓝牙的OBD模块(买的),系统板上也采用一个蓝牙串口模块,系统板和车辆之间通过蓝牙串口来透明的传输发动机数据。电源采用的是LM2596,其实整机功耗不大,用7805也可应付。按键采用的是4个独立按键(上图搞错了)其实这4个按键我借用了乐风的电控后视镜按钮。(我的车是低配,是手动调节后视镜,但是有安装电调后视镜按钮的位置。所以我买了一个后视镜调节按钮,当作了系统的按键)。系统板上留出了ISP接口和JTAG接口,方便下载程序和在线调试。

下面是原理图:



目前实现的功能:
1.车速的实时显示。(这个是实际的车速,而不是表速。表速根据国标规定,比实际速度低一些)
2.超速报警功能。(设定一个报警值,当车速超过以后,蜂鸣器报警。可用按键关闭。高速上开车相对方便)
3.小计里程统计。(车速表上的小计里程一般最大统计1000Km,这个可以统计65535Km。可通过长按下键来清零)
4.每月行驶里程统计。(统计每个月的行驶里程,并可显示。每月自动清零,不可手动清零)
5.本次行驶平均油耗统计。(显示本次行驶的平均油耗,单位是 L/100Km)
6.历史平均油耗统计。(车辆在一个大的用车时间内的平均油耗)
7.剩余燃油续航里程。(根据当前的油耗计算出的油箱内燃油还能跑多少公里)
8.当前行驶方向。(分八个方向显示。东、西、南、北、东南、东北、西南、西北)
9.当前位置经纬度坐标。(度、分、秒格式)
9.当前位置海拔高度。
10.时间及日期显示(年、月、日、星期、时、分、秒根据GPS自动校时,无需手动调整)
11.车内温度显示。
12.车外温度显示。
13.本次行程统计。(在本次行车停车关机时显示,显示的信息有:本次行驶时间、本次行驶里程、本次行驶平均油耗、本次行驶最高速度、本次行驶平均速度)
14.最高速度记录。(记录开车的最高速度)
15.加油记录。(每次加油后,开机时可自动识别出加油,可记录本次加油单价、加油量、总价、加油时间)
16.用油统计。(可统计自某个时间以来,总的加油量、总天数、总行驶里程、总加油费用、总的平均油耗、平均费用,包括每天的费用和每公里费用)
17.根据环境光线,自动开启仪表照明。(这个功能硬件预留,程序中没设计。后序陆续添加)

先看一下线路板。这个线路板是画好以后在网上找的PCB厂家给做的。当时在验证设计时,曾经用感光法自制过PCB板,专门买了感光蓝油、PCB覆铜板,蚀刻液,用喷墨打印机打印PCB图到感光胶片上,覆盖在涂了感光蓝油的覆铜板上,用台灯曝光15分钟,然后显影、脱膜、蚀刻。效果很好,最小线宽可以做到10mil!但是打孔是个头疼问题。全是1mm一下的孔,太难钻了,而且过孔问题很难解决。所以后来还是让PCB厂家做的板。


下面是用的LCD屏。24064的黄绿点阵。T6963C的控制器。这个屏是我在单位的一台废旧设备上拆下的。工业级的。还不错。



屏和主板是两层设计,中间的是蓝牙串口模块。




放在车上的效果。


下面介绍一下各个界面
第一屏,最常用的信息,开机后就在这个界面


第二屏,主要显示GPS的一些信息。按按钮上的“右”键切换到第二屏。


再按“右”键,切换到第三屏。第三屏是显示的加油统计。


一屏显示不完,按“下”键后显示剩下的。



再按“下”键时,屏幕底部的“明细”会反显,然后按“左右”键,反显会在三个选择之间切换。然后按“下”键,会执行相应功能。“明细”就是显示每次的加油明细,“增加”就是增加一条记录。(其实每次加油后会自动跳转到新增加油记录界面,这个地方是个补充)“复位”就是将加油统计数据清零,重新开始统计。

这个地方也有一个“平均油耗”这个和第一屏上显示的平均油耗算法是不一样的。这儿的平均油耗是根据你总的加油量,减去现在油箱剩余油量,除以这期间你跑的公里数得出的。而在第一屏上的历史平均油耗,则是根据单次的平均油耗和里程,按加权平均值算法得出的。这两个油耗有偏差,但是不大。

按“明细”后,显示如下



从左到右依次显示:加油时间、单价、加油量(L),总钱数
当系统检测到加油后,或者在“加油统计”界面选择“增加”,进入如下界面



如果是自动检测到加油,加油数量能够自动检测出(有一定误差,需要手动修改),单价自动调用上次单价,总价格是根据单价和加油量自动计算出的。左右键选择位置,上下键调整数值。完成后选择“确定”就会记录本次加油量。

在“加油统计”界面按“右”键,会进入第四屏,显示的是本年度每个月的行驶里程数



方括号内是月份数,下面对应的数就是当月里程。(由于我不断的调试,更改,数据没有了,所以前几个月都显示“0”,剩余的11月和12月由于还没有到,所以不显示。

在“超速报警标志”显示的时候,也就是超速报警打开时,短按“上”、“下”键可以调整报警车速的值。长按“上”键,打开或者关闭超速报警功能。设定值会以反显的形式显示在车速位置,设定好以后,自动保存,退出设定模式。



当每次行驶停止,关闭车辆后(车辆钥匙位置在“off ”档)系统延时大约8秒关闭。在此期间,显示本次行驶的一些统计信息。



下面是一些晚上拍摄的。晚上的效果。这个屏的背光亮度刚刚好,晚上背光一点也不刺眼,不影响驾驶。






下面是一些安装时的图片







程序是用C语言写的。本人水平有限。我自己看着都很乱。附件中含有清晰版的原理图和源程序。用CodeVisionAVR V2.04.4a编译。压缩包内自带工程文件与源文件。编译没有错误,但是有警告。注意源文件中有DS1302.lib和DS18B20.lib两个文件,要拷贝到CodeVisionAVR的安装目录下的lib文件夹内,替换系统自带的两个文件。因为我对这两个文件做了修改。

一直想弄个外壳,在淘宝上找了很久,也没找到合适的外壳。没有外壳就暂时裸奔吧!


说说使用的感受:
1.跑高速时很爽!在这个安装位置正好,需要看时速时眼扫一下就可以,或者设定好超速报警,开就是了,根本不用低头看车速!
2.平均油耗,至少在我的车上还是比较准确的。
3.海拔高度显示比较有意思。至少让你知道你所在地的高度。
4.其它的一些统计功能也比较有用,可以让你更清楚的掌握自己的行驶情况。
5.方向显示不会让你转向!


原理图和源代码来了!


29楼上传OBD协议。2012-11-04更新
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共39条打赏M币+256专家+1
离线stanley.zhao

发帖
33
M币
79
专家
1
粉丝
4
只看该作者 1楼 发表于: 2012-10-31
穿上衣服就更帅了
努力学习,快乐每一天!
离线yimenwang

发帖
158
M币
1379
专家
6
粉丝
45
只看该作者 2楼 发表于: 2012-10-31
不愧为专业的啊
离线nwcheroes

发帖
453
M币
165
专家
15
粉丝
28
只看该作者 3楼 发表于: 2012-10-31
碉堡了,如果能做的体积更小,再加上投影到玻璃上显示就无敌了
离线zhujinliang

发帖
2860
M币
1051
专家
12
粉丝
94
只看该作者 4楼 发表于: 2012-10-31
做得不错啊,支持一个
离线myshm

发帖
189
M币
414
专家
0
粉丝
21
只看该作者 5楼 发表于: 2012-10-31
继续。。。功能很强。。。最好加个外壳。。。。。
离线xiaoxiao80

发帖
683
M币
836
专家
3
粉丝
52
只看该作者 6楼 发表于: 2012-10-31
厉害!!!!!!!!!
离线after8clk

发帖
165
M币
6
专家
2
粉丝
10
只看该作者 7楼 发表于: 2012-10-31
这个不是一般的强了!我等只有望望羡慕的份儿,楼主强大!
每晚八点后!
离线giggabc

发帖
243
M币
4335
专家
0
粉丝
20
只看该作者 8楼 发表于: 2012-10-31
这个东西非常不错实用,但是楼主能搞个其他点阵的吗?比如12864等等24064这类不好找啊
离线逆戟

发帖
853
M币
511
专家
0
粉丝
23
只看该作者 9楼 发表于: 2012-10-31
卖给行车电脑公司应该很值钱