汽车编程线
⑴ 给汽车编程的是什么工作
给汽车编程就是给汽车芯片写程序,汽车电脑编程,是用于汽车芯片改装。只要把ECU的背板拆开,拔掉原来的芯片再换上新的芯片便完事了,由于一些旧款的E-ROM芯片仅可写入程序一次,因此每次修改程序后都须用刻录机把程序刻入空白芯片来替换出原来的芯片。
在早期的车辆中,每个控制模块只处理某个特定功能。如果控制模块出现了问题,不管是硬件还是软件三陪,均会更换控制模组。 随着车辆型号及功能的增加,一个控制模块用于一个功能的设计已变得笨拙和浪费。这就要求有一种新型的电气系统。这种新的电气系统使用分配式功能、控制区域网络(CAN)通讯、可重新编程的控制模块。
车载电脑编程的优点:1、若要获得某个新的功能,比如在无旅程电脑的车辆中加入旅程电脑,可安装一个新的控制杆,并下载新的车辆配置软件。多功能控制模块利用该车辆配置文档以特定的方式来发挥其功能。
2、控制模块型号变少。发动机控制模块(ECM)便是一个好的例子。由于有60种不同的发动机类型,以前便需要60种不同的备用零件存货。车辆电脑可编程:三种不同的硬件便可满足所有的车型。
3、调整喷油程序以适应市场。所有市场可使用相同的发动机模块的应用软件。然而,可以下载不同市场的软件以区别对待不同市场的废气排放需求。(图/文/摄: 邹婷1) @2019
⑵ 汽车电脑板如何在线编程
现在的车载电脑都采用的可擦写的存储器,所以可以将修改原来ECU中存储的程式变为可能,但是如果要是一个普通的电脑编程员,还是不足以能编辑汽车ECU中的程序,因为这涉及到汽车的点火,喷油,各个传感器和执行器信号的输入和输出,另外现在都采用了CAN。所以要编汽车的语言需要学电脑的编程语言,要知道编写汽车的发动机的机械性能(包括各个转速下的点火时间,喷油时间等等),以及很强的汽车专业知识,现在还增加了对局域网知识的要求,所以现在中国大陆只有很少的一部分人能改汽车电脑里的程式
补充:汽车改装最简单的是采用转换储存程序芯片方式,更换不同编程的芯片时,只要把ECU的背板拆开,拔掉原来的芯片再换上新的芯片便完事了,由于一些旧款的E-ROM芯片仅可写入程序一次,因此每次修改程序后都须用刻录机把程序刻入空白芯片来替换出原来的芯片。近年很多新车的ECU使用了可以多次重复读写的Flash-Rom (快闪记忆)芯片,在修改程序时不用更换空白芯片便可直接加载,较E-Rom方便多了。
⑶ 汽车如何编程
Define Class 环奇小大脚 As 舵机控制
Name = "环奇小大脚"
Procere Init()
This.COM口 = 9
This.速率 = 115200
Return DoDefault()
Endproc
Procere 定义油门曲线()
If Not DoDefault() Then
Return .F.
Endif
*-- 油门
Insert Into 油门曲线 (通道, 位置, 脉冲宽度) Values (0, -1, 1700) && 油门 - 倒车最大
Insert Into 油门曲线 (通道, 位置, 脉冲宽度) Values (0, 0, 1500) && 油门 - 中点
Insert Into 油门曲线 (通道, 位置, 脉冲宽度) Values (0, 0.05, 1450) && 油门 - 不动的
Insert Into 油门曲线 (通道, 位置, 脉冲宽度) Values (0, 1, 1350) && 油门 - 最大
*-- 方向舵
Insert Into 油门曲线 (通道, 位置, 脉冲宽度) Values (1, -1, 1450) && 方向舵 - 最左
Insert Into 油门曲线 (通道, 位置, 脉冲宽度) Values (1, 0, 1370) && 方向舵 - 中点
Insert Into 油门曲线 (通道, 位置, 脉冲宽度) Values (1, 1, 1250) && 方向舵 - 最右
Return .T.
Endproc
Enddefine
Define Class 舵机控制 As Form
Name = "舵机控制"
COM口 = 0
速率 = 115200
Procere Init()
This.定义油门曲线()
Return This.连接舵机控制板()
Endproc
Procere Destory()
*-- 释放串口。
If Type("This.舵机控制板") = "O" Then
If This.舵机控制板.PortOpen Then
This.舵机控制板.PortOpen = .F.
Endif
Endif
Return .T.
Endproc
Procere 定义油门曲线()
*-- 创建油门曲线临时表
Create Cursor 油门曲线 (通道 Integer, 位置 N(6, 4), 脉冲宽度 N(4))
Return .T.
Endproc
Procere 连接舵机控制板()
*-- 没有“舵机控制板”就创建一个。
If Type("This.舵机控制板") <> "O" Then
This.AddObject("舵机控制板", "Olecontrol", "MSCommlib.MSComm")
Endif
*-- 打开串口。
If This.舵机控制板.PortOpen Then
This.舵机控制板.PortOpen = .F.
Endif
This.舵机控制板.CommPort = This.COM口
This.舵机控制板.Settings = Textmerge("<<This.速率>>,n,8,1")
If Not This.舵机控制板.PortOpen Then
This.舵机控制板.PortOpen = .T.
Endif
Return This.舵机控制板.PortOpen
Endproc
Procere 发送指令(通道, 位置)
Local 下限位置, 下限脉冲宽度, 上限位置, 上限脉冲宽度, 当前脉冲宽度, 串口指令代码
m.下限位置 = -1
m.下限脉冲宽度 = 500
m.上限位置 = 1
m.上限脉冲宽度 = 2500
m.当前脉冲宽度 = 1500
m.串口指令代码 = ""
*-- 1 找到当前位置最近的2个曲线值,如果找不到就取默认值 -1, 500 及 1, 2500。
*-- 2 生成指令。
*-- 3 发送给串口。
*-- 1
Select Top 1 * From 油门曲线 Where 通道 = m.通道 And 位置 = m.位置 Order By 位置 Desc Into Cursor curTemp
If Reccount("curTemp") > 0 Then
m.当前脉冲宽度 = curTemp.脉冲宽度
Else
Select Top 1 * From 油门曲线 Where 通道 = m.通道 And 位置 < m.位置 Order By 位置 Desc Into Cursor curTemp
If Reccount("curTemp") > 0 Then
m.下限位置 = curTemp.位置
m.下限脉冲宽度 = curTemp.脉冲宽度
Endif
Select Top 1 * From 油门曲线 Where 通道 = m.通道 And 位置 > m.位置 Order By 位置 Into Cursor curTemp
If Reccount("curTemp") > 0 Then
m.上限位置 = curTemp.位置
m.上限脉冲宽度 = curTemp.脉冲宽度
Endif
m.当前脉冲宽度 = Int((m.上限脉冲宽度 - m.下限脉冲宽度) / (m.上限位置 - m.下限位置) * (m.位置 - m.下限位置) + m.下限脉冲宽度)
Endif
*-- 2
m.串口指令代码 = Textmerge("#<<m.通道>>P<<m.当前脉冲宽度>>")
Debugout m.串口指令代码
*-- 3
This.舵机控制板.OutBufferCount = 0
This.舵机控制板.Output = 串口指令代码 + Chr(13)
Endproc
Enddefine
⑷ 如何编程让小车沿线条走
(1)作为一辆小车必须有可以行走的轮子,即可以正常行走的小车,这是小车的框架;
(2)要求智能,即可以通过CPU控制小车自由移动,那么必须有控制轮子的驱动,一般轮子的驱动用电机制作,可为直流电机或步进电机,因此这部分内容包括CPU控制电机实现小车前后移动,左拐、右拐,调速;必须有一个CPU处理器,使用单片机、ARM等处理器芯片都可以;电机驱动电路,实现电机正反转、调速。
(3)循迹,必须确定轨迹模型,才能有针对性的选择传感器,比如要求小车按地上的黑线轨迹行走,确定轨迹是地上的黑线之后,选择传感器用于识别地上的黑线,用什么检测地上的黑线呢?最简单的是使用红外接收对管,通过黑色吸收光线最强的原理判别小车是否在轨道上。当然也可以使用其他传感器识别轨迹,比如摄像头等,不过对于初学者来说没必要整得这么复杂。