×

用于ESP32的带有惯性模拟的Arduino RC发动机声光控制器

消耗积分:2 | 格式:zip | 大小:0.16 MB | 2023-01-30

久醉不醒

分享资料个

电路板如下图:
poYBAGPV7wKAbLvfAAHAYKV0HSg566.png
poYBAGPV7wWAe3FrAAD83rCScbk948.png
pYYBAGPV7wiAE6T_AAC-nbZANZk948.jpg
poYBAGPV7wqAS-BnAAFAFtKzqws624.jpg
poYBAGPV7wyAF5zvAADm8r1gm8Y399.jpg

描述

用于 ESP32 的带有惯性模拟的 Arduino RC 发动机声光控制器

特征:

独特的车辆质量惯性模拟(将履带式ESC连接到引脚33)。在机械3速变速器换档过程中,节气门输出会发生变化,以实现平稳换档、档位保护和真实声音。适用于TAMIYA 3速变速器。履带式2速变速器也能正常工作。ESC由具有以下状态的状态机控制:向前行驶和向后行驶(可变加速,取决于节气门位置)、空档、向前和向后制动(根据“反向节气门”位置,具有精细粒度的可变减速度)。它还允许正确控制刹车灯、刹车声、倒车灯和倒车嘟嘟声。每个档位的加速和减速(滑行和制动)可单独调节,以确保最大的真实性。

独特的“虚拟离合器”允许发动机转速低于可调节的ESC输出速度。上面,离合器接合并确保发动机声音与车轮转速同步。声音和行为与换挡变速器完美结合!

带变矩器的模拟自动变速器(如果您的车辆没有真正的换档变速器)

模拟双离合器变速器

模拟手动换档3速变速器(v5.5中的新功能)

虚拟的、可切换的空档允许在静止状态下加速发动机

Jake制动器(模拟气动发动机制动器,主要用于美国卡车)

跟踪模式(CH2和CH3上的双油门输入,用于坦克、挖掘机等。此模式不支持ESC控制。(4.5版新增)

坦克大炮声音和闪光(v4.6中的新功能)

使用rcTrigger库触发每个模拟通道的多个锁存和非锁存动作(声音、灯光)(v4.7中的新功能,仍处于实验阶段)

许多可选择的声音:发动机启动、发动机怠速、发动机转速、涡轮呜呜声、柴油点火“爆震”声、废气旁通阀、喇叭、警报器、倒车嘟嘟声、空气制动、驻车制动、换档等。

真实的发动机声音在飞行中混合在一起,最多有4种声音:发动机怠速、涡轮增压器、废气旁通阀(均具有可变采样率)、柴油机点火爆震(固定采样率,因此音调不会变化)

负载(节气门位置)相关的音量声音:怠速、转速、柴油爆震

发动机转速相关音量声音:涡轮增压器、废气旁通阀

包括数十种引擎和其他声音,您也可以使用Audacity和bitlunis转换工具编写自己的声音(上面的链接)

发动机转速范围和惯性可调,所有声音的音量可调,发动机声音分别用于负载和怠速。

许多其他参数可以调整。所有调整都可以在“adjustmentsXyz.h”中轻松访问

声音文件最高可达22'050Hz,8bit,可使用单声道

兼容输入信号:PWM、PPM、SBUS(反相和非反相信号)、IBUS

与PAM8403放大器模块配合使用效果最佳,该模块通过10kOhm电阻器和10kOhm电位计连接至引脚25和26(见下图)

根据针脚13上的RC信号输入计算发动机转速***注意,所有针脚上的最大值为3.3V!***建议在所有I/O引脚上使用330欧姆电阻器!

可以在“曲线.h”中生成非线性节气门曲线

灯光效果:前照灯(远光和近光灯)、尾灯、刹车灯、雾灯、顶灯、驾驶室灯、倒车灯、指示灯(转向信号灯)、危险灯、蓝光灯等(最多12个输出)

发动机振动模拟,使用具有偏心重量的振动电机:盘车时强烈振动,中等怠速,转速时轻微振动

可调音量(通过遥控器)

使用ESP32,CPU频率必须设置为240MHz

包括Eagle原理图和电路板文件。预先制作的Gerber文件可以让您轻松订购板。

包括易于使用的.wav到.h声音文件转换器

使用“remoteSetup.h”可以轻松分配频道

Flysky FS-i6X和Arduino Mirco RC遥控器的预制配置文件(5.5版新增)

喇叭和警报器的可变长度,使用声音文件中的循环区域(v5.6中的新功能)

用于转向伺服和换档伺服的总线解码器(将伺服连接到CH1和CH2)引脚

拖车耦合器(第五轮)伺服可连接到CH4引脚(不在PWM通信模式下)

TAMIYA拖车存在开关可连接至引脚32(取决于“6_adjustmentsLights.h”选项卡中的“#define THIRD_BRAKELIGHT”设置)

支持非线性油门和转向曲线(以便围绕中心位置进行更精确的控制)。在“2_adjustmentsRemote.h”中使用“EXPONENTIAL_THROTTLE”和“EXPONNTIAL_STEERING”

支持HOBBYWING Quicrun Fusion Motor/ESC组合。在“3_adjustmentsESC.h”中使用“#define QUICRUN_FUSION”

绞车支架,连接至CH3(仅总线通信模式)。使用“7_adjustmentsServo.h”中的“#define MODE2_WINCH”,然后使用模式2按钮通过CH4在喇叭/警报声控制和绞盘控制之间切换。绞车由一个旧的RC伺服驱动板控制。使用“CH3L”、CH3C”和CH3R”位置进行速度和空档设置。

支持LCD仪表板

支持

支持液压挖掘机(液压泵、液压流量、履带嘎嘎声)。使用#define FLYSKY_FS_I6S_EXCAVATOR 配置文件进行远程

基于 ESP-NOW 的 2.4 GHz无线拖车控制支持

可以使用 RZ7886 电机驱动器 IC 代替标准履带式 RC ESC

电池低放电保护选项

可切换的爬虫模式(具有最小的虚拟惯性)

代码

完整的 GitHub 存储库:

https://github.com/TheDIYGuy999/Rc_Engine_Sound_ESP32

 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.lene-v.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'用于ESP32的带有惯性模拟的Arduino RC发动机声光控制器',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.lene-v.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);