你是否对机械学,尤其是汽车的传动系统如何工作和传递动力感到着迷?你是否对3D打印和电子学感兴趣?那么,是时候打造你自己的遥控车了!这些是我开始这个项目的初衷,但我不想仅仅重复已经用3D打印完成多次的内容。因此,我尝试在Fusion 360中设计一辆尽可能少使用(专用)商业组件的汽车。这辆车运行在定制的电子系统上,并配备了基于典型塑料线材3D打印机制作的自制部件,尽可能接近真实汽车的传动系统。
项目概况
-
这辆全轮驱动(AWD)汽车包含一个两速手动变速箱、手动离合器和三个差速器(主差速器具有不对称扭矩输出,前后轴采用Torsen差速器)。
-
该车基于四轮独立悬挂,差速器和车轮之间采用双万向节连接。
-
额外的执行器用于(解)锁驻车制动器和中央差速器锁。
-
几乎所有部件都是通过3D打印定制制造的,包括完整的传动系统和减震器,除了轴承、弹簧和稳定金属杆。
-
该项目中的执行器基于不同类型的电机(有刷直流电机、步进电机和伺服电机),尝试为特定应用选择最合适的电机类型。
-
电子系统是定制的,使用ESP32微控制器控制汽车及其遥控器,甚至遥控器的摇杆也是自制的。
-
所有摇杆和执行器所需的校准步骤都可以在遥控器的菜单中完成。因此,该项目可以在不编写或修改任何代码的情况下完成(当然,你可以根据需要修改代码以自定义控制)。
-
设计和制造中最大的挑战是在添加这些传动部件和不牺牲整体稳定性的平衡。这辆车是为了行驶而设计的,而不仅仅是一个设计研究。该车的尺寸约为47厘米(车身长度,不包括车轮)x
39厘米(轴距),重量近7公斤。这是我在建造履带式车辆后的后续项目。全轮驱动车比坦克需要更复杂的机械结构,因为我试图复制真实汽车的传动系统,而没有采用坦克的简单RC模型兼容的捷径(例如每条履带使用一个电机,而不是选择性地将扭矩分配到两条履带)。显然,在这个过程中遇到了许多障碍和设计迭代,并非所有传动部件都完全按照我的预期工作,但我对结果非常满意。
声明
我既不是汽车工程师,也不是电气工程师,这辆车的设计主要是通过试错而非应用教科书知识完成的。因此,请注意,从工程角度来看,这些部件可能设计不佳,并且我关于不同传动部件的解释可能不完全正确。此外,我尝试提供链接或致谢他人。然而,由于这个项目花费了相当长的时间才完成,并且一些想法并不成功,我不能保证我没有忘记提及某个来源。因此,如果你觉得我遗漏了某个来源,请告诉我,我会将其添加到教程中。
我希望你会喜欢这个教程,就像我享受建造这辆车一样!教程包含所有组件的材料清单、打印部件的CAD文件、PCB的Gerber文件以及汽车和遥控器所需的代码。如果你对这个项目有任何问题或批评,或者想分享你的反馈,我期待听到你的想法,并尽力帮助你在完成这个项目时提供支持!
所需工具
在深入设计部件之前,让我们看看建造这个项目需要什么工具:
- FDM 3D打印机。我使用的是Prusa i3 MK3S。然而,考虑到需要打印的部件数量,建议使用更快的打印机(但如果你有耐心,也不是必须的)。
- 一套六角扳手,包括2.5毫米球头六角扳手。
- 台钻、金属锯、锉刀、M3螺纹切割器、角磨机。
- 焊铁、万用表、电池充电器(用于AA镍氢电池和3S锂聚合物电池)、实验室电源。
- 剥线钳、剪线钳、压接钳。
打印设置
所有3D打印部件的层高为0.2毫米,默认填充率(约15-20%)。它们要么用PETG打印,要么用TPU打印。TPU在CAD图像中为黑色。PETG为灰色或绿色;颜色选择由你决定。塑料部件大多用螺钉和螺母或螺钉和螺纹嵌件连接,你可以在部件文件中看到。如果要使用螺母,则有一个可以容纳M3六角螺母的凹槽。螺纹嵌件进入直径为4.1毫米的孔中,可以用于将M3螺纹嵌件熔化到部件中。所有打印部件都提供为.stp文件,以便你可以根据需要调整它们。所有部件的名称中都带有标识符,格式为xx-yy-zz,其中xx表示部件所属的步骤,yy是步骤中部件的连续编号,zz表示部件需要打印的次数。如果部件名称中包含“TPU”,则必须用TPU打印;否则,应用PETG打印。
旋转轴组件的组装
汽车的传动系统需要将许多组件组装成旋转轴,以便在径向传递扭矩的同时轴向固定,使它们保持在原位。为此,使用了一种特定的部件连接方法,我在这里添加了示例图像。单股铜线(直径1.5毫米²)必须穿过两个配合的打印塑料部件(它们带有适合这种线径的孔)。这种方法的优点是它不会随着时间的推移而松动,同时仍然可以在不破坏任何部件的情况下拆卸。
材料清单
你可以在下面找到完整的材料清单,包括我采购物品的商店链接。这个BOM包括项目所需的所有部件。当总结所有所需部件的成本时,这个项目的总成本超过1100欧元。请注意,这个数字保守地假设你没有任何供应品,而且我没有寻找最便宜的选项(例如,某些部件可以更便宜地采购,如PCB或线材)。例如,如果你已经配备了螺钉、螺母和电线,这个数字会减少约200欧元。如果你的RC车库有电池库存,你可以再节省75欧元,如果你寻找更便宜的线材或想用完你堆积的老化线轴,你可以在PETG和TPU线材上节省180欧元。
第一步:主体
主体是这个项目的起点。它并不是第一个设计的部分,因为我最初是从传动系统的部件开始的,以便了解整个汽车所需的尺寸,但主体是固定所有部件的框架。首先,有一个底座框架(部件01到07),用作传动系统和电子设备的安装板。在设计底盘时,我希望保持这辆车部件的维护/更换方便。因此,为了提高部件的可访问性,汽车的外“壳”不承载任何组件,仅作为机械和电子设备的保护层。所有部件都安装在底座框架上。主发动机及其传动系统和所有辅助执行器安装在底座框架的底部,而电子设备则安装在底座框架的顶部。底座框架由M4螺纹杆(长度390毫米)支撑,以提高其稳定性(例如,3D打印的遥控车Tarmo5使用了相同的原理),这些螺纹杆用螺母固定(每侧每根杆使用两个螺母,不仅将它们压在打印部件上,还相互压紧以防止松动)。除了这个例外,所有部件都使用M3螺钉和螺母或螺纹嵌件连接。
前部和后部
在底座框架的顶部,汽车的前部和后部有附件,用作减震器的安装点,并承载RGB LED灯带。前部(部件08到11)还承载了四个LED前灯。后部(部件17到21)包括一个用于汽车天线的安装孔。我称这些部件为汽车的前后块,每个块由多个部件组成,使用M3螺钉和螺母或螺纹嵌件连接。减震器的接头承载683轴承。固定RGB LED灯带的杆需要与LED灯带一起组装(部件13到16)。从144 LED/米的灯带上剪下两个15 LED的段,焊接电线到灯带上,然后将它们推入RGB LED杆中。这两个段是相互连接的:前部连接到汽车的主PCB,然后串联连接到后部(因此,LED 0-14位于汽车前部,15-29位于汽车后部)。四个LED前灯需要并联焊接,以便它们共享从主PCB的单个连接器分配的相同电源电压。前后块包括切口,使你可以轻松地将电线引入电子部分。在安装电子设备之前,不要安装前板(部件09)。
底部盖板
汽车的底部盖板(部件33到42)保护机械部件免受灰尘和污垢的侵害。除了转向连杆的切口外,它是完全封闭的。我对这些切口的存在并不完全满意,但到目前为止,我还没有遇到因污垢通过这些开口进入并损坏机械部件的严重问题(尽管我不建议在泥泞或过于尘土飞扬的地形中使用这辆车)。此外,底部盖板包括一个可以翻转打开的舱口,通过移除两个螺钉来更换电池。根据设计概念,底部盖板并不是传动系统运行所必需的,仅作为保护层。因此,它应该作为汽车的最后一个部件安装,因为执行器的校准需要在机械部件可访问的情况下进行。
底部盖板不支撑传动系统,但需要一个额外的部件来增加底座框架的刚性。我称这个部件为“笼子”(部件43到45),因为它将齿轮连接锁定在适当的位置。这个部件必须在所有传动系统部件安装后但在操作任何执行器之前安装。否则,底座框架中剩余的灵活性可能导致齿轮跳齿,从而永久损坏部件。底部盖板作为一个大组件组装,由不同的较小部件组成,除了前部的两个挡泥板(部件40和41,在一张图像中以蓝色突出显示)。这些挡泥板直接连接到汽车的底座框架。
顶部盖板
汽车的顶部盖板(部件22到32)保护电子设备免受环境影响,其设计类似于汽车的引擎盖:在松开三个螺钉后可以翻转打开。同样,这个部件不承载任何组件,因此可以在最后安装。它承载了汽车的名称(“Crawler V5”),如果你想要给模型添加个人风格,可以轻松修改。顶部盖板的所有部件都使用M3螺钉和螺纹嵌件连接,除了标签:这里我使用了一种特殊的模板字体(Octin Stencil),它允许将所有字符打印为打印部件中的切口。然后,在背面附上一个不同颜色的板,为标签提供颜色对比。这是一个简单的变通方法,允许在不支持多线材打印的打印机上进行双色打印。这个板使用焊铁连接(将其加热到约240°C,PETG的打印温度,然后沿着板和顶部盖板部件之间的接触线进行融合(焊接两个部件)。
所需部件:
- 1x 开关(Marquardt 1801.6115)
- 2x WS2812 RGB LED灯带,15个LED(144 LED/米)
- 4x E10 LED白色,1W
- 4x E10 LED插座
- 1x WiFi天线
第二步:发动机和变速箱
汽车的发动机是一个775有刷直流电机。这是一种非常常见的、较大的电机,直径为42毫米,机身长度为98毫米。这些电机在给定电压下的扭矩和速度设计上可能有所不同。这辆车的电机在12V电压下应达到10,000 rpm,并且额定功率应大于100W。有刷直流电机在效率和功率输出方面无法与无刷直流电机(相同尺寸下)竞争,但它们有两个主要优势:电机及其驱动器更便宜,而且电机比无刷直流电机更容易控制。有刷直流电机控制简单的原因是它们通过输入电压控制。电压越高,电机旋转越快。反转电源电压会反转旋转方向。如果负载增加,转速会下降,但电机的控制不受影响,这意味着仍然可以通过调整输入电压来平稳地增加或减少转速(直到电机失速)。
另一方面,无刷电机需要一个复杂的电机驱动器,根据电机轴的正确角度选择性地为其三相供电,以将电能转换为运动。因此,时机非常重要,特别是在负载变化时,期望的转速和实际转速会有所不同。电机驱动器需要通过集成一个感应电路来检测电机的位置,以实现正确的供电时机。因此,高质量的驱动器价格昂贵,而便宜的驱动器在适应电机负载变化时表现不佳。相比之下,有刷直流电机驱动器只需要供电(或不供电),这本质上更简单。电压控制通常通过脉宽调制(PWM)实现,这意味着驱动器以非常高的频率开关电源,从而生成一个等于所需电机电源电压的平均电压(“开启”时间除以总时间)。这可以通过控制汽车的ESP32微控制器的内置PWM功能来完成,该微控制器使用电机驱动器(带有大晶体管)来处理电机的大电流。
变速箱设计
然而,仅靠电机不足以驱动汽车。电机的转速范围需要调整,以匹配汽车所需速度的车轮转速。此外,还需要考虑其扭矩。小型电机可以旋转得非常快,但没有足够的扭矩来移动大负载。需要一个减速箱来降低速度并增加扭矩:当忽略减速箱的效率损失时,电机的功率(扭矩和速度的乘积)在添加减速箱时保持不变。因此,可以将高速旋转的电机输出转换为低速、高扭矩的应用,例如越野遥控车。感谢GF Gear Generator的开发者,这是我用于设计该项目中所有齿轮的Fusion 360应用程序!
通常,遥控车使用具有固定传动比(输入和输出速度之间的比率)的变速箱,因为电动机具有在从0开始的广泛转速范围内提供良好功率输出的有利特性。然而,内燃机仅限于相对较窄的转速范围,在该范围内电机可以高效运行。因此,需要一个可以根据所需速度选择传动比的变速箱。这辆车旨在模仿真实汽车的传动系统,这就是为什么它配备了一个两速手动变速箱,允许在高速度和高扭矩齿轮之间进行选择。
变速箱规格
该变速箱通过选择性地解耦两组齿轮的输出实现,这两组齿轮永久连接到电机轴。变速箱的输出要么连接到一组齿轮,要么连接到另一组齿轮。汽车的快速齿轮在电机和变速箱输出之间使用35齿到35齿的比率,而慢速齿轮使用25齿到45齿的比率。传动系统的后续部分还包括进一步的减速,最终快速齿轮的减速比为21.7,慢速齿轮的减速比为39.1。因此,在相同的电机转速下,慢速齿轮的车轮转速比快速齿轮低近50%。鉴于电机在最大速度下达到约10,000
rpm,汽车在快速齿轮下的最高速度为11.7 km/h,在慢速齿轮下为6.5 km/h。
换挡机制依赖于一个滑块(换挡拨叉),可以将其推向慢速或快速齿轮。该滑块位于变速箱输出轴上,使其能够轴向移动,但不能径向移动。因此,当滑块进入齿轮时,电机旋转从所选齿轮传递到变速箱的输出轴。滑块通过犬齿离合器与齿轮啮合,该离合器使用轴向齿而不是径向齿来啮合。这种机制可以在静止状态或电机和变速箱输出速度匹配时完美连接,但两者之间的速度偏差会导致犬齿磨损。真实变速箱为此使用所谓的同步环,在犬齿接触之前强制变速箱以与电机相同的速度旋转。我尝试通过设计由柔性TPU打印的犬齿离合器来实现这一机制。这种材料选择允许犬齿离合器的设计在犬齿啮合之前建立基于摩擦的连接。因此,变速箱的输出轴在接合齿轮之前加速到与电机相同的速度,只要在换挡期间变速箱输出的负载最小,就可以避免犬齿磨损。然而,鉴于用于换挡的执行器的力有限以及打印部件的稳定性差,这种基于摩擦的接触很弱并且会迅速退化。因此,这个同步环更像是一个概念,而不是变速箱的功能性补充。
组装信息
在组装变速箱时,有一些需要注意的地方。电机轴上的齿轮通过将柔性TPU连接器推入齿轮的相应凹槽中连接,这是为了避免振动的积累。如果电机、法兰联轴器和打印齿轮完全平衡,电机运行时就不会有任何振动。然而,当齿轮作为单个部件连接到电机轴时,由于不平衡质量,车架会颤抖,而TPU连接器可以缓解这种情况。此外,换挡机制是一个机械上复杂的设置,因为许多部件需要安装在一个旋转轴上。因此,轴基于两根长度为81毫米的3毫米钢棒,单个部件被推到这些杆上,使整个轴能够传递扭矩而不发生偏转。
换挡滑块由多个部件组成,这些部件通过供应部分中描述的铜线方法相互连接。变速箱轴上两个正齿轮中的轴承(部件14和15)首先通过塑料部件中的紧密配合固定,其次通过将锁环(部件16)放在顶部并将其焊接到齿轮上(焊铁在240°C下沿配合线熔化塑料部件)固定。滑块使用安装在长度为70毫米的6毫米铝棒上的LM6UU轴承轴向移动。
值得注意的是,尽管斜齿轮或人字齿轮通常是3D打印齿轮的更好选择,但汽车的传动系统使用正齿轮。这种设计选择是由于3D打印底盘和传动系统部件的公差较差。例如,人字齿轮依赖于完美居中,因为轴向偏移会导致摩擦和磨损。另一方面,正齿轮不受轴向偏移的影响。因此,尽管正齿轮在理论上是较差的选择,但在实践中,正齿轮在这种设计中表现更好。
所需部件:
- 1x 775有刷直流电机,5毫米轴,2x M4x10螺钉用于安装电机
- 1x 5毫米轴的法兰连接器(用M3圆柱头螺钉替换紧定螺钉)
- 2x 3毫米钢圆棒,长度81毫米
- 2x 6毫米铝圆棒,长度70毫米
第三步:离合器
离合器连接两个旋转部件,以便将动力从一个轴传递到另一个轴。虽然这个定义听起来很简单,但实现起来可能相当棘手。对于换挡机制,典型的遥控车省略了离合器,因为如果使用固定齿轮比并且电机可以从零转速启动而没有任何问题,离合器就完全不需要。即使有多个齿轮,单独的离合器也不是必需的,因为换挡机制的犬齿离合器基本上起到了离合器的作用。然而,在装有内燃机的汽车中,你仍然需要一个专用的离合器,因为你希望逐渐增加从发动机传递到车轮的动力,例如,当你希望缓慢地从静止状态启动时。
设计考虑
这就是棘手的地方:所有未传递到车轮的电机动力必须去某个地方。这个“某个地方”就是摩擦,当离合器打滑时会产生热量。自然,由热塑性线材制成的打印部件不能很好地承受热量。因此,使用输入和输出盘之间摩擦的3D打印离合器会很快磨损。我尝试构建这样的离合器但失败了(尽管我没有尝试将离合器浸入液体中)。因此,我决定退一步,至少构建一个可以可靠地连接和断开电机与车轮并传递动力而不退化的离合器。
即使采用这种更简单的概念,设计也具有挑战性。离合器有一个静止位置(接合或关闭),通常由弹簧固定,以及相反的位置(分离或打开),必须使用执行器保持。小型RC伺服电机原则上适合移动离合器的任务。然而,它们基于有刷直流电机,这些电机不应该在通电时静止不动。这意味着电机失速,导致过热,可能损坏电机及其驱动器。这样的伺服电机只有在不可反向驱动的情况下才适合保持位置,这意味着它在应用中是自锁的。因此,驱动离合器的执行器除了由尝试用3D打印部件构建离合器引起的机械问题外,还增加了另一个挑战。离合器设计需要允许执行器在两个端位置空闲,并且仅在移动离合器时通电。
磁力机械耦合
考虑到这些问题,基于磁力而不是弹簧的离合器实现了所需的设计。一旦输入和输出盘接触,离合器通过将盘夹在一起的磁铁保持关闭。因此,执行器在离合器关闭时不必施加力。反之,当打开离合器时,执行器需要克服磁铁的力。一旦离合器打开,盘和磁铁之间的距离太大,不会产生显著的吸引力,因此执行器在离合器打开时也不需要通电。磁铁可以将盘夹在一起,但当电机产生大扭矩时,它们不能将盘保持在原位,这会导致离合器无意的打滑。因此,在盘上添加了一组犬齿,显著提高了离合器可容忍的扭矩水平。这种设计的缺点是它不允许离合器有意打滑。我尝试过,但在关闭离合器时试图加速汽车时,犬齿会被撕裂。因此,离合器只能在电机和汽车静止时安全操作。
与变速箱一样,离合器由多个部件组成,这些部件需要以在操作期间(在高转速和负载下)保持原位的方式组装。然而,理想情况下,它仍然可以拆卸以进行维护而不破坏任何东西。因此,离合器也使用1.5 mm²单股铜线将部件轴向固定在轴上,而塑料部件径向互锁。输入和输出盘的磁铁是环形的,带有内部倒角,允许使用沉头M3螺钉固定。使用两个盘的反向极化磁铁(一个盘组装有面向另一个盘的北极环形磁铁,另一个盘组装有面向第一个盘的南极磁铁)使离合器可以在任何角度接合。请注意,磁铁仅在显示组装离合器的图像中显示。
两个滑块和公差考虑
离合器使用两个执行器来打开和关闭,这是为了避免倾斜或弯曲滑块。磁铁在打开离合器时施加了必须克服的显著力,并且由于两侧各有一个执行器,滑块可以以受控和平衡的方式移动。通过在离合器的滑动部分内松散安装的6804轴承进一步支持滑块的平衡。该轴承将滑块与输出盘连接,并且由于轴承的松散安装,输出盘可以在滑块内轴向移动+-1毫米。因此,当关闭离合器时,设计允许两个执行器的端位置有一定的公差,而不影响离合器的功能。
离合器增加了传动系统整体减速的一个阶段。换挡器输出轴以一个20齿的正齿轮结束,而离合器的输入轴使用一个40齿的正齿轮。因此,在传动系统的离合器段中有一个固定的1:2减速比。此外,请注意,有一个小的683轴承和一个塑料部件(换挡器垫片,部件18)被推入该轴承。该垫片与变速箱的输出轴松散接触。因此,变速箱的轴不能轴向移动出位置。最后,离合器的输出轴使用一根长度为65毫米的3毫米钢棒作为加固,以避免弯曲。
所需部件:
- 1x 3毫米钢棒,长度65毫米
- 2x 6毫米铝棒,长度73毫米
- 6x 钕磁铁(8x3.5x3毫米),南极
- 6x 钕磁铁(8x3.5x3毫米),北极
第四步:中央差速器
差速器用于将动力从一个输入轴分配到两个输出轴。对于汽车的正常运行,其差速器必须是开放的,这意味着两个输出轴之间的转速可以不同。每当汽车不直行而是转弯时,都需要这种功能:外侧的车轮必须比内侧的车轮旋转得更快,以避免打滑。因此,差速器需要补偿这些速度差异。另一方面,在越野行驶时,差速器应该被锁定(两个输出轴始终以相同的速度旋转),这样即使一个车轮不接触地面,汽车仍然可以移动。
在两轮驱动汽车中,一个差速器足以满足整个传动系统的需求,因为你只有前轮驱动或后轮驱动,因此只有一个轴由发动机主动驱动并配备差速器。然而,在全轮驱动汽车中,前后轴上的左右车轮之间以及前后轴之间都需要差速器,以适应四个车轮的所有可能速度差异。因此,总共需要三个差速器。然而,在许多全轮驱动遥控车中,你不会找到那么多(开放式)差速器。一些设计在前轴和后轴上使用开放式差速器,并省略中央差速器,如Robak 2或Cramer 4x4。Tarmo 4甚至锁定了后差速器。这种方法简单直接:开放式前差速器在转弯时提供足够的控制和牵引力,而缺乏其他(开放式)差速器则即使一个车轮的接触较弱,也能提供牵引力。另一方面,这种概念在转弯时减少了牵引力,因为后轮被迫打滑。
锁定中央差速器
这辆遥控车的目标是组装一个类似于真实汽车的传动系统。因此,三个开放式差速器是全轮驱动传动系统的一部分,中央差速器包括一个可选的锁定装置,以考虑到这辆车应该具备越野兼容性。锁定机制被添加到差速器的前输出端,使前输出轴可以与差速器壳体锁定。当接合时,这种设置有效地阻止了差速器发挥其作用:前后输出被迫以与壳体相同的速度旋转。因此,如果前轮或后轮失去接触,当差速器锁定时,汽车仍然具有牵引力。如果差速器是开放的,将一个车轮抬离地面意味着汽车无法继续行驶,因为所有动力都被导向阻力最小的车轮。因此,锁定这个差速器提高了汽车的越野能力,但代价是迫使前后轮具有匹配的速度,这增加了传动系统的压力并减少了转弯时的牵引力。
锁定机制使用犬齿离合器。一个犬齿齿轮是差速器壳体的一部分,另一个犬齿齿轮轴向安装并在前输出轴上可移动。由于这种设计和3D打印的公差和分辨率较差,存在犬齿无法按预期啮合的风险,但当滑块和壳体之间的角度导致齿尖相互顶住时,它们可能会卡住。这种风险可以通过仅在离合器打开和/或车轮已经失去与地面接触时锁定差速器来最小化。然后,传动系统可以自由移动,锁定装置的犬齿可以更容易地啮合。如果你忽略这个规则,当执行器试图锁定差速器但无法达到其最终位置时,你可能会损坏执行器。这个设计缺陷可以通过使用类似于离合器的磁力设计来抵消(磁铁有助于正确的齿轮啮合),但车内没有剩余空间,我不想从头开始构建原型。
不对称扭矩分配
差速器的经典设计基于锥齿轮,每个输出轴有一个锥齿轮,差速器壳体中安装有两个锥齿轮,由输入轴驱动。其理念是壳体可以自由旋转,两个输出轴也可以自由旋转:壳体的转速与两个输出轴的平均转速相匹配。如果一个输出轴面临更大的阻力,它将旋转得更慢,而另一个输出轴则会旋转得更快。因此,输出轴的平均速度保持与壳体相同,但设计补偿了车轮之间的速度差异,例如在汽车转弯时。在对称差速器中,壳体中锥齿轮的齿轮比对于两个输出轴是恒定的,这导致两个输出轴的扭矩分配相等。在这里,中央差速器是不对称的,将更多的扭矩传递到后轮而不是前轮。中央差速器的不对称扭矩分配很可能对这辆遥控车的操作没有太大影响,但在真实汽车中,当更多扭矩到达后轮时,某些情况下的操控性应该会有所改善。
不对称差速器输出轴上的锥齿轮需要具有不同的齿数,以便壳体与输出轴之间的齿轮比对于两个输出不同。这种设计可以通过将锥齿轮在壳体中不以正交方式安装,而是以与两个输出轴上锥齿轮尺寸差异相匹配的角度安装来实现。然而,这里需要不同的设计,因为差速器是由打印塑料制成的:打印齿轮需要组装,以便作用力不会弯曲部件以防止其断裂。另一方面,3D打印允许使用几乎无法通过传统减材制造制造的设计。因此,差速器壳体中堆叠了两组锥齿轮,导致从壳体到后输出轴的齿轮比为24:36(1.5倍减速),前输出轴为16:20(1.25倍减速)。绝对齿轮减速并不重要,但两个比率之间的差异很重要:这种差异意味着后输出接收的扭矩是前轮的1.2倍,或者以百分比计算,55%的扭矩传递到后轮,45%传递到前轮。
差速器通常也用作传动系统中的齿轮减速器。同样,中央差速器通过从25齿正齿轮接收动力并将其传递到差速器壳体上的50齿正齿轮(1:2减速)来实现这一目的。此外,需要一个垫片来增加离合器和差速器之间的距离,以允许在差速器和离合器之间安装所需的执行器。因此,在离合器和中央差速器之间添加了另一组正齿轮,将齿轮减速增加了两倍。
反转旋转方向
中央差速器中包含的最后一个部件是一个我称为旋转反转器的部件。这个部件不出现在真实汽车的传动系统中:其目的是反转差速器前输出轴的旋转方向。它在这辆传动系统中是必要的,因为驱动轴不在中心,而是偏向汽车的左侧。由于尺寸限制,需要这种偏移,以保持汽车尽可能紧凑,同时仍然将所有传动系统元件装入底盘。因此,前后差速器基本上是镜像的,而不是位于驱动轴的相反侧(如真实汽车那样),这导致前后输出旋转方向相反。旋转反转器补偿了这种方向差异,使前后轮以相同方向旋转。
本质上,旋转反转器是一组锥齿轮,使前输出轴与输入轴反向旋转。值得注意的是,前后轮之间的不均匀扭矩分配也可以在此组件中实现,使用输入和输出的不等齿轮尺寸。然而,该任务由中央差速器完成。因此,旋转反转器使用相同的齿轮尺寸用于输入和输出,仅调整旋转方向而不调整扭矩分配。
与换挡器和离合器一样,差速器也使用铜线方法作为组装工具来连接轴上的部件。紧密配合将轴承固定在差速器锁的滑块中,并通过焊接在差速器锁上的锁环进一步固定,如变速箱齿轮中的轴承。差速器壳体和旋转反转器的锥齿轮安装在3毫米直径的钢棒上,锁定机制的滑块在6毫米直径的铝棒上移动。
所需部件:
- 1x 3毫米钢棒,长度47毫米(差速器)
- 1x 3毫米钢棒,长度37毫米(旋转反转器)
- 2x 6毫米铝棒,长度46毫米(差速器锁)
第五步:执行器
到目前为止,传动系统中已经添加了三个需要手动调整的组件:换挡器需要在慢速和快速齿轮之间移动,离合器需要打开和关闭,中央差速器的锁定装置需要(解)锁。由于该模型应该是一辆完全遥控的车辆,因此需要执行器。通常,RC伺服电机用于此目的:小型有刷直流电机配备大齿轮减速器,使其成为高扭矩执行器。它们带有内置电位器,可以读取其当前位置,因此控制器只需要告诉它们所需的角度,伺服电机就会尝试达到该角度。
RC伺服电机的优缺点
这些伺服电机有多种尺寸和质量可供选择。从极其便宜(<5欧元)到每台超过100欧元,种类繁多。在这辆车的早期设计中,我使用这些伺服电机作为传动系统的执行器。然而,使用RC伺服电机用于此目的存在几个问题。首先,便宜的伺服电机通常质量较差:它们在达到特定位置时的可重复性较差,如果无法正确达到所需位置,它们往往会“颤抖”,由于包含的齿轮箱,存在显著的间隙,并且当它们的控制器故障、电机烧毁或齿轮箱损坏时,它们有随机且频繁被破坏的倾向。另一方面,使用更体面的伺服电机(例如来自Hitec)会增加项目的成本(每台伺服电机至少20-40欧元)。
此外,RC伺服电机不提供其当前位置的反馈,这使得它们不适合包含硬停止和有限操作范围的应用。撞击硬停止意味着伺服电机失速,而过热会在几秒钟内摧毁失速的有刷直流电机。因此,从未知的起始位置校准传动系统变得危险,涉及损坏执行器的风险。在这种应用中使用伺服电机的另一个挑战是,它们需要安装,以便伺服舵机在负载下不会倾斜,这对于使用塑料伺服舵机和齿轮箱的小型伺服电机可能会发生。这需要一个相对较大的打印支架,消耗的空间超过了底盘所能承受的范围。
定制执行器
由于这些原因,选择了定制执行器设计,而不是即插即用的RC伺服电机。其基本原理是相同的:一个小型有刷直流电机配备齿轮箱以增加扭矩,并与电位器耦合以读取执行器的位置。然而,主ESP32微控制器读取位置并控制直流电机,从而实现对位置和运动的完全控制。在这种执行器设计中仍然存在一些妥协以保持低成本。电机是N20减速直流电机,价格便宜,既不非常坚固,在间隙方面也不佳。空间限制要求电位器使用正齿轮偏移安装在电机轴上,这增加了额外的间隙,从而限制了位置读数的准确性。尽管如此,执行器的表现出乎意料地好,即使没有复杂的PID控制,仅通过软件指定的上下位置限制触发微控制器停止电机。
每个执行器的成本高于超便宜的伺服电机,但低于高质量伺服电机。每个执行器有一个N20电机、一个电位器、一些轴承和一个单有刷直流电机驱动器(Pololu DRV8876 QFN)。我不想在电机驱动器上省钱,这种驱动器类型实现了从3.3V逻辑微控制器的简单两针电机控制,使其成为此应用的理想选择。包括电机驱动器在内的每个执行器的总成本约为15欧元。
组装信息
组装执行器时需要考虑两点。首先,N20电机轴上的齿轮通过紧密配合连接。因此,需要相当大的力将齿轮推到电机轴上。理想情况下,使用虎钳将齿轮推到轴上,以避免在将齿轮推到轴上时倾斜齿轮。如果发生这种情况,应打印一个新齿轮,以防止轴从齿轮中滑出。其次,电位器上的齿轮有一个双D形切口,用于电位器的6毫米轴。因此,电位器的圆形轴必须通过锉刀准备相应的双D形,并且必须切割到正确的长度。重要的是不要从电位器轴上磨掉太多材料,因为它必须与其齿轮紧密配合。
执行器需要两个版本(镜像以驱动右侧或左侧的滑块),每个版本在车中需要两次。车底盘上的安装位置带有电位器和电机电线的切口,并且位置标有版本(I和II)以协助组装。
在组装执行器并将其放入底盘时,需要正确设置电位器的角度。它们在机械上限制在300°的旋转范围内,并且具有约240°的电气范围。因此,执行器应在电位器处于中心位置时组装,并且在将执行器放入底盘时,传动系统组件的滑块应移动到一半位置。这样做时不需要过于精确,因为执行器中电位器所需的运动角度仅为约120°或更少。但仍然应大致居中,以避免在校准执行器时损坏任何东西。
所需部件:
- 4x N20电机(12V,50rpm)
- 4x Omeg PC20BU 10k线性电位器
第六步:刹车
汽车传动系统隔间中的下一个部件甚至不属于传动系统:机械刹车。虽然这个部件在任何车辆中都是必不可少的,以确保其能够安全停止,但它通常不会出现在遥控车中。在遥控车中,停止车辆可以通过不再为主电机供电来实现。然后,电机将充当发电机,并对其当前旋转方向施加力,从而在齿轮减速的支持下形成非常有效的制动机制。因此,这个刹车并不是为了降低汽车的速度,而是作为驻车制动器。由于汽车可以通过打开离合器将电机与传动系统分离,车轮可以自由旋转,汽车可能会不受控制地滚下山坡。驻车制动器可以防止这种情况发生,这就是刹车在这里的作用。
设计考虑
机械刹车通过将部件从低摩擦(无接触)移动到高摩擦(压在一起)位置来改变车轮的旋转阻力。因此,汽车的动能被转化为热量,这对于对热敏感的3D打印部件来说是不推荐的。然而,驻车制动器不需要消耗任何动能,因为它只是为了防止汽车开始移动,而不是停止快速移动的车辆。因此,不会有任何热量或过度磨损的问题。然而,基于3D打印塑料部件设计紧凑但坚固可靠的制动系统的问题仍然存在。为此,由于空间限制,我放弃了在车轮上实施刹车的想法。相反,刹车作用于中央差速器的前输出轴,使这个概念成为传动制动器。这种设计并不完美,因为这意味着如果前轮之一离开地面(由于前差速器),汽车仍然可以移动。尽管如此,它仍然可以作为一个设计练习,并且在大多数情况下,所有车轮都与地面接触。
刹车的设计需要满足几个标准:它需要适合传动系统隔间(紧凑),需要自定心(对轴没有不平衡的压力),需要自锁(允许刹车接合时执行器不通电),并且应该以高重复性打开和关闭(每次接合刹车时刹车力恒定)。考虑到这些因素,我选择了类似夹钳的设计:两个臂状卡钳围绕驱动轴。卡钳在轴的一侧通过一个接头相互连接,并在另一侧连接到驱动齿轮。因此,通过旋转驱动齿轮,两个卡钳同时关闭或打开。
自锁蜗杆驱动
这种布局满足了紧凑的标准。两个刹车卡钳围绕现有的驱动轴包裹,这意味着不需要在驱动轴上添加额外的部件,如鼓或盘。此外,这种刹车是自定心的,因为卡钳之间的齿轮连接迫使它们平等移动。此外,刹车应该是自锁的。自锁意味着齿轮比和/或齿轮箱效率被调整,以便执行器可以驱动其输出,但不能被输出反向驱动。用于此目的的常用齿轮箱设计是蜗杆驱动。原则上,蜗杆驱动由相互成90°安装的斜齿轮组成,蜗轮使用类似正齿轮的齿设计,而蜗杆使用类似螺钉的齿轮设计。
这个概念产生了两个效果:首先,可以在小空间内实现相对较高的齿轮减速(减速比越高,反向驱动齿轮箱所需的扭矩越大,使其更难被反向驱动)。其次,蜗杆驱动中齿轮啮合的方式导致齿之间的摩擦比传统的正齿轮排列大得多,特别是在反向驱动齿轮箱时。因此,蜗杆驱动不适用于高速应用(导致热量和磨损),而是适用于低速和高扭矩应用。这正是这里所需要的,齿轮箱中增加的摩擦意味着需要更多的扭矩来反向驱动这个齿轮箱。如果反向驱动齿轮箱所需的力超过了应用中通常发生的力,则可以认为它是不可反向驱动的,从而使设置自锁。
选择合适的执行器
最后,打开和关闭刹车应该是高度可重复的。传动系统中的其他执行器可以接受一些公差,因为末端位置只需要在一定的公差范围内达到以(解)锁某个功能。然而,刹车必须达到一个精确的终点,以确保施加足够的刹车力而不会损坏任何部件。此外,在开始时,我不确定是否可以实现自锁设计,因此我选择了步进电机而不是有刷直流电机来移动刹车。
步进电机基本上是无刷直流电机,但其设计使得为一组线圈供电只会导致微小的角度运动(典型的步进电机每步旋转1.8°)。当线圈保持通电时,电机的保持扭矩增加,但不会像有刷直流电机那样烧毁。这是因为好的步进电机驱动器使用斩波来限制通过电机的最大电流。斩波意味着电源以非常高的频率开关,以实现所需的最大平均电流。步进电机通过在恒定(快速)频率下在线圈之间切换电源来旋转,从而从快速的增量步骤中产生连续运动。通过计算步数并在达到所需步数时精确停止电机,可以实现精确的运动。
因此,步进电机是一种廉价的方式,可以重复且精确地移动部件,这就是为什么它们可以在许多CNC设备中找到,例如3D打印机和便宜的激光雕刻机或CNC铣床。步进电机的缺点是其相对较大的重量和低可达到的速度。然而,刹车的执行器不需要非常快,并且由于蜗杆驱动实现了大齿轮减速比,电机也不需要非常高的扭矩。因此,我选择了一个小的NEMA 14步进电机用于刹车。关于电机安装的旁注:不要将步进电机电缆的连接器压接到主PCB上。步骤13(校准)解释了如何将电机正确连接到PCB。
当依赖步进电机时,执行器不需要连续的位置反馈。在特定方向上执行的步数给出了当前位置。然而,系统的初始位置是未知的(与不断读取其当前位置的伺服电机相比)。因此,使用限位开关来归位刹车。归位通常在启动时完成,以确保自上次运行以来没有外力移动执行器,这会导致执行器的表观位置和实际位置之间的偏移。请注意,刹车的传感器必须接线,以便在触发时输出高电平(逻辑电压),在未触发时输出低电平(地)。如果你不遵守此接线协议,刹车可能会损坏,因为汽车的微控制器会误解传感器输出。
组装信息
刹车内的驱动轴直径增大,以增加有效的刹车力(在卡钳施加恒定力时,该轴的直径越大,克服刹车力所需的扭矩越大)。刹车本身由PETG打印,除了刹车片,必须由TPU打印,以允许通过刹车片的弹性变形逐渐增加刹车力。刹车卡钳安装在直径为4毫米、长度为24毫米的钢圆棒上。可以调整限位开关的位置,以便微调其位置,使刹车在开关被刹车驱动齿轮上的小轴触发时完全打开。这个“打开”位置意味着驱动轴可以自由旋转而不接触刹车片。此外,你需要注意刹车卡钳:在组装刹车时,你必须确保卡钳以正确的角度啮合,并且相对于驱动齿轮彼此之间的距离相同(刹车然后居中),并且当刹车打开时,驱动齿轮上的小轴可以到达限位开关。蜗杆应以45°的角度打印,并带有支撑(Prusaslicer的有机支撑效果很好),以便精确制造齿。
所需部件:
- 1x Joy-IT NEMA14-01步进电机
- 1x Panasonic AV 32543 AT限位开关
- 1x 4毫米钢圆棒,长度24毫米
第七步:前差速器和后差速器
在第四步中已经添加了一个差速器,但还缺少两个差速器:动力需要从中央差速器的两个输出轴分配到前后轴的左右车轮。中央差速器的设计等同于最广为人知的差速器布局,使用多个锥齿轮来实现所需的功能。然而,这种经典类型的差速器无法自动补偿打滑的车轮。需要一个锁定机制,正如在中央差速器中引入的那样。
前后轮之间的空间比传动系统隔间的其他部分更加受限,因为差速器必须安装在车轮之间。因此,单独的、手动的锁定机制是不可取的。因此,我选择了Torsen(扭矩感应)差速器,这是一种限滑差速器。限滑意味着其设计实现了差速器的效果,但具有相对较大的内部摩擦,抵消了差速器的作用。因此,两个输出轴之间的速度差异会导致摩擦阻力。如果一个车轮在空中自由旋转,这无法拯救汽车,但如果一个车轮在光滑的表面上,而另一个车轮在干燥的柏油路面上,可能会有足够的动力到达柏油路面一侧,以保持一定的牵引力。
Torsen差速器的设计
Torsen差速器由两个太阳齿轮(两个输出轴)组成,每个太阳齿轮被三个行星齿轮包围。扭矩感应操作通过像蜗杆驱动一样安装其太阳齿轮和行星齿轮来实现。然而,行星齿轮和太阳齿轮上的齿都呈45°角,而蜗杆驱动通常使用不同的角度用于蜗杆和蜗轮。这种设计产生了差速器操作所需的摩擦。仍然缺少的是两个输出轴之间的连接以链接它们的运动:行星齿轮在其顶部和底部设有一组正齿轮,与相对的输出侧啮合。因此,当考虑整个组件时,如果行星架固定,驱动左输出轴朝一个方向旋转会迫使右输出轴以相同的速度朝相反方向旋转。或者,如果行星架旋转(差速器的正常操作),两个输出轴的平均速度与行星架的速度匹配。
这个概念看起来令人困惑,但一旦你组装了差速器,你就会看到这个齿轮箱的工作有多么优雅(或者在YouTube上观看这个动画)。基本设计相当简单,但用3D打印塑料构建它变得具有挑战性。涉及许多旋转部件,输出轴和行星齿轮的45°齿处于3D打印机在没有支撑的情况下以足够质量生产的极限。因此,基于线材的3D打印的较差公差可能会影响差速器所需的平滑运动。需要多次设计迭代,直到我最终提出一个能够令人满意地实现Torsen差速器操作的布局。
尺寸和公差限制
在这些设计迭代中学到的最重要的一课是,我不想依赖塑料-塑料或塑料-金属滑动来旋转齿轮。打印的部件永远不会完全圆形,这会导致部件之间的不稳定摩擦。相反,所有齿轮都使用球轴承。值得注意的是,这种设计选择限制了Torsen差速器的功能,它需要内部摩擦才能作为限滑差速器操作。然而,如果摩擦仅在某些角度发生而不是持续发生,操作是不可预测的,远非平滑。支持所有旋转部件的轴承的后果是相对较大的差速器尺寸,由手头最小的轴承(683)加上线材3D打印机可以生产的最小齿轮尺寸决定。
从中央差速器到前后差速器的动力传递通过一组齿比为21:57(2.7倍减速)的锥齿轮完成。这是传动系统中的最终减速,意味着传动系统中的最大扭矩作用于前后差速器。因此,必须采用坚固的设计以防止差速器断裂。为此,行星齿轮安装在稳定的轴上,每根3毫米钢棒长度为33毫米。差速器的输出轴连接到以120°间距安装的三个行星齿轮,这平衡了力并防止轴弯曲。因此,这种设计避免了3D打印齿轮的常见故障模式(允许部件弯曲意味着它会在负载下断裂)。
组装信息
Torsen差速器布局的一个主要问题是如何轴向固定输出轴。原则上,可以通过将轴承夹入轴中并将轴承放入差速器壳体中的紧密配合切口来实现。然而,这被证明是相当困难的,因为我不特别热衷于使用胶水,而3D打印驱动轴中的螺钉-螺母连接由于振动容易松动。因此,输出轴通过铜线方法轴向固定。然而,这里的组装有点棘手:差速器必须与输出轴一起安装,并且必须放置在汽车的底座框架上,但不能用其顶部框架支架(部件02、04、07和09)固定。只有底部框架支架(部件01、03、06和08)应放置在底座框架上。然后,车轮的万向节的内侧必须推到输出轴上,并通过铜线方法固定。只有在此步骤完成后,才能添加框架支架的上部,并用螺钉将差速器固定在底座框架上。
这种组装有点繁琐,但连接非常耐用。我的原型已经行驶了许多小时,并且根据经验和这些行驶中的磨损,更新和更换了几个组件,但差速器、万向节以及输出轴和万向节之间的连接都不是其中之一。只有连接到差速器的后21齿小齿轮由于磨损而需要更换。差速器完全由PETG打印,连接到中央差速器的连接器是唯一的例外。它们由TPU制成,以补偿由于底座框架弯曲和3D打印轴的中心和平衡不良而导致的轴向偏移。前后差速器是相同的;只有框架支架是镜像的,以考虑它们在底盘中的位置,并且连接到中央差速器的连接器长度不同,以匹配前后所需的长度。
所需部件:
第八步:转向系统
汽车的转向系统基于与我之前项目相同的布局。然而,我对转向系统进行了修改,以改善其操作和操控性。首先,转向系统使用外部天线以增加其范围。其次,使用四个按钮代替旋转编码器来进入和导航菜单。这些按钮还用于(解)锁驻车制动器、主差速器锁和汽车的前灯LED(不同输入开关和按钮的功能在步骤13中解释)。
定制摇杆
转向系统的另一个升级是摇杆。添加了定制摇杆,而不是商业的双轴拇指摇杆(前后、左右)和包括一个按钮的摇杆。DIY方法是由于廉价拇指摇杆的质量较差。我用于该转向系统原型的一对拇指摇杆在中心位置周围有一个“麻木区”,在该区域内摇杆的输出保持不变。然而,该区域并不完全在摇杆行程的中心。因此,当移动摇杆时,摇杆的输出在某些角度保持其默认值——但仅在一个方向上。这种现象导致汽车的可控性较差。此外,拇指摇杆在其机械行程之前就达到了其最小/最大值:因此,至少有一半的摇杆行程被浪费了。
由于我不愿意购买各种廉价摇杆直到一对工作满意,我决定设计和构建定制摇杆以消除这些问题。摇杆的设计非常简单:必须在拇指摇杆的旋转轴上添加一个电位器。飞机遥控器的油门摇杆正是使用这种设计。然而,在这里,摇杆需要一个额外的功能:它们需要自定心。如果你不主动将它们推向一个方向或另一个方向,它们需要回到中心。这是通过添加一组杠杆和弹簧来实现的,如果没有施加外力,它们将摇杆推回中心位置。我使用了一个7x19毫米的压缩弹簧(0.5毫米线径),来自一个装有各种小型压缩弹簧的廉价盒子。该弹簧决定了移动摇杆所需的力,并控制其回中特性(更快或更慢)。
摇杆组装
摇杆经过多次设计迭代,直到达到良好的机械特性。最终设计使用两个杠杆和两个弹簧。摇杆在每个方向上应具有相同的力,该设计实现了这一点。摇杆设计为围绕中心旋转+-30°,与廉价的商业摇杆模块大致相同,但不同之处在于轴装电位器可以记录定制摇杆的完整行程。摇杆使用的电位器比汽车的执行器略贵:使用的Bourns电位器比Omeg电位器具有更好的公差(10%而不是20%),它需要更少的力来旋转(提高摇杆回中的能力),并且它是一种更稳定的设计,减少了间隙(这对于摇杆来说是致命的)。
电位器通过将其轴切割为6毫米长度并研磨成双D形状安装在摇杆中。然后,它以紧密配合的方式推入摇杆主体(确保不要从电位器的轴上移除太多材料:如果太松,摇杆中会有间隙)。确保以电位器的正确角度研磨双D形状:在将其推入摇杆机械装置时,它应该处于其中心位置,以确保摇杆可以在不达到电位器极限的情况下完成完整行程。摇杆的旋转机构由两个608轴承支撑,从而实现平稳、非常稳定的操作。杠杆的机械装置围绕两根23毫米长的4毫米钢棒包裹。
其他输入设备和显示器
转向系统的其他输入/输出组件是现成的标准部件:一个20x04 I2C LCD、一个开关、两个拨动开关、一个电位器和四个按钮。六节可充电AA电池提供电源,所有电子元件都安装在转向系统外壳内的小PCB上。前面的可拆卸盖允许在需要代码调整时访问转向系统的ESP32微控制器。
PCB包括所需的DC-DC转换器,从电池生成3.3和5V。转向系统需要5V逻辑电源用于LCD显示器。其他组件,包括用于读取所有模拟输入的ADS1115,运行在3.3V。双向逻辑电平转换器允许将LCD显示器连接到转向系统的其余I²C总线(运行在3.3V)。所有外部组件通过Molex SL线板连接器连接到PCB,并且连接器在PCB上标记以明确识别。再次,如果存在I²C连接问题,可以使用一组可选的上拉电阻。我未填充它们。
编程ESP32
转向系统上的代码是该项目中三个ESP32微控制器中最复杂(或至少最长)的代码。这是因为编程LCD屏幕需要许多行代码,特别是如果屏幕必须包括多个页面。在这种情况下,大部分代码需要允许在不修改代码的情况下校准摇杆和执行器,而是通过在转向系统内选择和完成校准步骤。
ESP32微控制器的代码(CrawlerV5rc)以及PCB的Gerber文件(RC PCB文件)可在GitHub上找到。
所需部件:
- 2x Bourns 93R1AR2215L电位器(摇杆)
- 4x 7x19毫米压缩弹簧
- 1x Omeg PC20BU 10k线性电位器(旋转旋钮)
- 1x Marquardt 1801.6115开关
- 2x Marquardt 1821.1101拨动开关
- 4x ONPOW防破坏按钮带LED环
- 1x 20x04 I2C LCD模块
- 1x 6x AA电池盒
- 1x WiFi天线
- 6x NiMH AA电池
- 1x Crawler V5 RC PCB V1.1
PCB组件:
- 1x 双向逻辑电平转换器(安装在相应的插座端子条上)
- 1x ADS1115(安装在相应的插座端子条上)
- 1x Gaptec LME78_03-1.0 DCDC转换器
- 1x Gaptex LME78_05-1.0 DCDC转换器
- 1x ESP32 NodeMCU带外部天线插座(安装在相应的插座端子条上)
- 3x 1206/3216 22 µF 10 V陶瓷电容器
- 2x 2220/5750 10 µF 50 V陶瓷电容器
- 1x 0805/2012 100 nF 50 V陶瓷电容器
- 轴向电阻(9x3.2 mm,1%,0.5 W)如PCB丝印所示
- Molex SL连接器插座
第九步:车轮组装
在这一步中,制造并安装了四个车轮和悬挂系统。汽车为车轮使用独立悬挂,这意味着没有刚性轴将动力从电机传递到车轮,而是每个车轮使用两个特定的接头组合,允许沿轴在不同角度传递旋转。独立悬挂相对于刚性轴的优势在于,悬挂可以独立地对每个车轮的路面不平做出反应,从而改善汽车的整体性能。另一方面,设置的复杂性增加,更多的部件通常也意味着更多的潜在故障源。尽管如此,我对通过柔性轴传递旋转的机械结构感到着迷,因此我选择了为汽车使用独立悬挂。对于所需的接头,有不同的设计,最常见的是万向节(也称为万向接头)和所谓的等速万向节的子类型。
驱动轴的双万向节
万向节由两个铰链组成,这两个铰链连接到一个十字轴。铰链可以围绕十字轴的轴旋转。因此,十字轴固定了连接到铰链的轴的旋转,从而实现了所需的旋转传递。两个铰链实现的自由度允许在轴之间非零角度传递旋转。万向节的一个缺点是,当它们在非零角度下操作时,它们不会连续传递运动:输出运动相对于输入旋转速度会周期性地增加和减少,并且这种周期性速度偏移的幅度随着接头角度的增加而增加。这就是为什么现代汽车使用等速万向节来防止由于这种现象引起的振动和磨损。
尽管如此,我对万向节的设计感到着迷,并想使用它们。此外,有一个简单的解决方案可以解决非恒定输出速度的问题。如果添加第二个万向节,并且保持第一个和第二个万向节的角度相同(输入和输出轴平行且仅横向偏移),输出速度将再次恒定。这种解决方案称为双万向节,它在汽车的后轮上工作得很好,因为没有转向会改变车轮的角度。悬挂主要提升或降低车轮,而不会显著改变车轮相对于汽车的角度(假设中性外倾角)。然而,当转向改变车轮和汽车之间的角度时,双万向节不能完全补偿前轮的非恒定速度输出(转向时输入和输出轴不再平行)。因此,万向节并不完全适合驱动前轮,但我仍然喜欢这种设计,并为所有四个车轮继续使用它们。
关于驱动轴的设计考虑
我认为驱动轴是汽车传动系统中最脆弱的部分,因为它们必须在系统中传递最高的扭矩,同时是一个相对较薄的打印轴。因此,我从万向节的设计开始,决定这些部件的最小尺寸,我认为这些尺寸对于所涉及的扭矩是可信的(直觉,没有计算),然后才开始设计车轮组件。万向节的一个挑战是,为了稳定性和恒定、低摩擦,它们应该在金属轴承上运行。此外,这个项目旨在在没有严重金属加工的情况下构建,这意味着接头的大部分部件需要3D打印。
考虑到这些限制,我最终设计了一个直径为27毫米的万向节,十字轴由一个打印的中心部件组成,该中心部件承载四个M3x6螺钉的头部,每个螺钉用作支撑万向节的两个铰链的轴。683轴承被放置在铰链的凹槽中,从而使铰链的旋转运动由球轴承支撑。组装通过将轴承和M3螺钉放入铰链中,然后将螺钉头推入十字轴中心部件的打印部分,最后用打印的十字轴中心部件的端盖固定螺钉来完成。此时使用锁紧螺母以确保端盖不会随着时间的推移而松动。这种设计的想法是避免任何螺钉连接直接承受负载,从而防止振动导致连接松动。此外,这种设计使得接头的(拆)组装无需破坏任何打印部件。该设计允许万向节的操作角度高达40°,足以满足所需的悬挂行程和转向角度。
连接车轮与底盘内传动系统部件的驱动轴由两个万向节组成,每个万向节推入一个由TPU制成的连接器中,该连接器补偿振动并吸收车轮和驱动轴之间的突然速度变化(充当扭矩阻尼器)。车轮以中性外倾角安装。外倾角描述了车轮相对于表面的角度(参见图片)。中性外倾角意味着车轮是垂直的,而负外倾角意味着车轮“向内倾斜”。负外倾角在高速弯道中有帮助,但这并不是这辆车的设计目的。因此,我选择了中性外倾角,这也使得两个万向节在汽车直线行驶时能够完美补偿其非连续输出速度。
主销后倾角和车轮外倾角
值得注意的是,悬挂系统的设计使得车轮的外倾角在整个悬挂行程中保持不变。悬挂行程中外倾角的变化对公路车有帮助,因为转弯会导致外轮承受更多负载。因此,在高速转弯时负责大部分牵引力的外轮在减震器压缩时受益于更负的外倾角。然而,我的想法是创造一辆越野车,悬挂系统需要补偿崎岖地形而不是高速转弯产生的力。此外,汽车设计有特定的主销后倾角,即车轮悬挂行程与车轮垂直轴之间的角度,以改善其驾驶行为。在这里,为了简单起见,主销后倾角是中性的,尽管汽车通常在前轮上采用正主销后倾角。略微正的主销后倾角可以提高汽车在高速行驶时的稳定性。
悬挂系统基于双叉臂组件,上下叉臂长度相等,从而无论叉臂角度如何,都能实现所需的中性外倾角。前后轮的叉臂是相同的,但前轮在车轮处使用一个具有额外自由度的接头,以允许转向。请注意,组装需要使用全螺纹M3x25螺钉将上叉臂连接到框架安装板。
独立悬挂的后果
这种双叉臂设计的一个缺点是悬挂行程中轴距的变化相对较大。轴距是左右轮毂之间的距离。在这里,它可以从约387毫米(静止位置)变化到最大约392毫米(叉臂水平)和最小约371毫米(减震器的最大伸展长度)。因此,轴距可能会发生显著变化。然而,大部分变化发生在减震器从静止位置伸展时(每侧轴距减少最多8毫米)。相比之下,减震器从静止位置压缩导致的轴距偏差较小。
轴距的变化要求车轮侧向滑动,除非车轮与路面没有接触。虽然这种现象并不理想,但它可能支持这辆车的减震器。减震器应该通过吸收任何突然的高度差异来补偿路面的不平。理想情况下,车轮在回到静止位置之前上下移动一次,从而尽可能少地将上下作用的力传递到汽车的底盘。为此,它由弹簧和阻尼元件组成,弹簧迫使车轮回到静止位置,阻尼元件负责吸收垂直力。如果没有阻尼元件,在不平的地形上行驶会导致由弹簧引起的振荡,从而使汽车反复上下弹跳。
设计定制减震器
这辆车中的减震器是3D打印的,这意味着我没有添加液压或气动阻尼器,而只能添加弹簧。因此,摩擦必须作为阻尼效果,而改变车轮高度时轮胎的强制横向运动可能支持这种基于摩擦的阻尼。弹簧、减震器和车轮组件的布局被选择和设计为使减震器的最大行程导致叉臂的30°(最大伸展行程)至-15°(触底)(0°意味着水平)。汽车的静止位置为15°。在汽车的给定重量下,静止位置由弹簧的两个变量决定:未加载长度和弹簧刚度。
在设计开始时,我不确定汽车的最终重量,也不知道汽车行驶时悬挂的行为(哪种弹簧刚度会导致不太软和不太硬的行为)。因此,我从当地五金店随机选择了一个压缩弹簧并在汽车中进行了测试。没有数据表的弹簧的弹簧刚度可以通过添加已知质量的重量并测量压缩量来确定。弹簧刚度以N/mm为单位。1N约等于100克(精确为0.102千克)。因此,如果在顶部添加1千克重量时弹簧压缩10毫米,则其弹簧刚度约为1N/mm。我用一个简单的厨房秤确定了这个弹簧的弹簧刚度,并在将减震器安装在汽车中时测量了压缩量,结果静止负载为32N。车轮组件的设计已经完成,这意味着我计算了静止负载下减震器的所需长度(叉臂15°;减震器长度102.5毫米)。在给定的减震器几何形状下,需要一个在32N负载下长度约为45毫米的弹簧。我选择了一个长度为63.5毫米、弹簧刚度为1.783 N/mm的弹(Febrotec0C0480-0512500M),在32 N负载下长度为45.6毫米,足够接近所需值。
如果你无法找到相同的弹簧或想要调整悬挂系统的刚度,你可以寻找具有不同弹簧刚度的弹簧。重要的要求是弹簧在32N负载下的长度约为45毫米。在满足此条件的情况下,汽车的静止位置保持不变,而悬挂系统要么变得更软,要么变得更硬。这与典型的减震器调整不同,后者基于改变弹簧的预紧力,从而也改变车轮的静止位置。我建议保持在1.5到2N/mm之间,因为汽车悬挂在当前弹簧下工作得很好。减震器的完全压缩长度为87.5毫米,对应于弹簧的长度为30毫米,最大长度为107.5毫米(弹簧长度为50毫米)。因此,弹簧的块长度(最大压缩时的弹簧长度)必须小于30毫米,未加载长度必须大于50毫米,以保持完整的减震器行程。减震器设计为容纳外径为12.2毫米、内径为9.6毫米的弹簧。必须考虑弹簧尺寸的偏差,并在固定弹簧的打印部件中进行调整。
制造和安装减震器
减震器围绕一根6毫米铝圆棒构建,该圆棒通过一侧的径向通孔和另一侧需要切割螺纹的切割平面连接到塑料部件。切割平面与螺纹和另一侧通孔中心之间的距离需要为66毫米。圆棒可以从通孔的另一侧延伸最多5毫米。因此,理想情况下,将铝棒切割为70毫米长度,在圆棒的一个切割平面上切割M3螺纹,并在距离另一个切割平面4毫米处横向钻一个3毫米直径的孔(距离相对于孔的中心给出)。M3螺纹用于将M3垫圈夹紧到铝棒上,限制减震器的最大行程。最小行程由铝棒(带有垫圈和螺钉作为延伸)撞击减震器的打印顶部部件限制。因此,如果长度与指定值不同,减震器的行程会发生变化。
每个车轮的两个减震器使用一根49毫米长的3毫米钢棒安装到底盘上,该钢棒穿过打印的减震器接头部件中的683轴承。减震器从两侧推入钢棒,并通过基于TPU的减震器夹固定。
几何形状和悬挂特性
减震器相对于车轮以一定角度安装,类似于典型的沙滩车设计。这种布局主要是出于设计原因和空间限制,但它也影响了悬挂的行为。根据胡克定律,弹簧遵循线性力-压缩趋势:如果你将负载加倍,压缩量也会加倍。然而,在这里,叉臂和减震器之间的几何排列导致了这种关系的角度依赖性变化,这意味着弹簧力随车轮高度的变化是非线性的。换句话说,车轮被推得越高,悬挂系统变得越硬。这种效果几乎就像对悬挂系统的保护,防止其触底,因为推动车轮进一步向上所需的力随着减震器的压缩而增加。
如果你在学校时想知道什么时候会需要毕达哥拉斯定理:嗯,它在这里适用,并允许你计算这些值,如减震器长度随叉臂角度的变化。此外,基于减震器中压缩弹簧的已知弹簧刚度,这些数据可以转换为弹簧力随车轮高度或叉臂角度的曲线图。所需的计算在其中一个图像中突出显示。车轮组件的几何形状可以分成几个三角形,通过结合它们角度依赖的边长,可以使用正弦定理和毕达哥拉斯定理计算所需的值。
组装信息
这个车轮组件需要四次。图像仅显示右前轮,但前后轮的大部分部件是相同的。例外是车轮安装板(前轮安装板包含转向节的安装点)和车轮安装板处的叉臂接头(前轮的接头基于一根18毫米长的3毫米钢棒,允许调整转向角度)。
车轮基于单独的轮辋和轮胎。轮辋和轮辐是单独的部件,如果你喜欢不同的设计,可以修改它们。值得注意的是,这种相当坚固的轮辐设计是在观察到更精致的轮辋轮辐迭代中出现裂纹后选择的。显然,在快速加速和转弯时作用在轮辋上的力相当大。轮胎由TPU打印,并使用螺纹嵌件安装到轮辋上。它们的设计使得打印时不需要支撑,并模仿充气轮胎。然而,由于它们的侧壁宽度,它们相当硬。如果你喜欢更软的轮胎或不同的轮胎花纹,你可以在提供的.stp文件中调整设计。
所需部件:
- 8x Febrotec 0C0480-0512500M压缩弹簧
- 8x M3垫圈(减震器铝棒的顶部)
- 8x 6毫米铝圆棒,长度70毫米,顶部一侧切割M3螺纹,另一侧距离4毫米处横向钻3毫米孔
- 4x 3毫米钢棒,长度49毫米(减震器接头)
- 2x 3毫米钢棒,长度18毫米(叉臂接头适配器,前轮)
第十步:电子系统
汽车的机械部分已经完成,但没有电子系统它无法运行。大多数DIY遥控车的设计依赖于商业的RC发射器和接收器套装,这些套装提供了非常直接的应用:不需要编程,遥控器通常具有出色的范围和信号稳定性。然而,与大多数专有系统一样,当你想要做的比制造商预期的更多时,这种概念缺乏灵活性——在这种情况下,不仅仅是控制一个电机驱动器和几个带有有限通道的伺服电机。因此(并且因为这辆车应该尽可能DIY),为汽车定制了电子系统,使其能够读取传感器并将其数据发送到遥控器,控制各种定制执行器,并实现额外的逻辑。
使用ESP32微控制器控制汽车
电子系统围绕ESP32微控制器展开。该控制器的一大优势是其丰富的内置功能(参见StudioPieters的总结)。它不仅像著名的Arduino一样提供多个通用输入输出引脚,可以用作数字输入和输出,还包括易于编程、频率可调的PWM和用于与其他ESP32通信的WiFi。尽管有这些额外的功能,ESP32可以像Arduino一样使用Arduino IDE轻松编程。然而,ESP32也有一些缺点。例如,该微控制器的模数转换器质量较差(噪声大、非线性,并且每个设备的偏移量不同),并且可用引脚的数量比基于开发板38引脚设计所猜测的要少。这种限制是因为并非所有引脚都能服务于所有功能(例如,有些只能作为输入,有些不应该使用,因为它们的使用可能会干扰启动,或者在启动期间输出不需要的信号)。对于使用Arduino Uno或Nano的项目来说,引脚不足也是一个典型问题,但在这种情况下有Arduino Mega,它提供了许多额外的引脚。ESP32没有这种高引脚数的版本。
尽管如此,集成双向无线通信的优势超过了缺点。无线数据传输总是容易出现稳定性问题。例如,NRF24L01经常用于基于Arduino的项目,但众所周知,通常出售的是该芯片的劣质克隆版本,而不是原版,并且将发射器和微控制器之间的电缆长度增加到几厘米以上就足以导致不稳定。我在NRFL01上有过这种经历,但在使用ESP32开发板进行无线通信时从未遇到过这样的问题。此外,引脚数量和模拟输入的限制可以通过使用额外的模块来补偿:MCP23017是一个端口扩展器,通过I²C接口(使用两个引脚)连接到ESP32,并为ESP32提供另外14个可编程的数字输入/输出引脚。ADS1115是一个四通道模数转换器,也通过I²C接口连接。它提供了高质量的模拟传感器读取,而不会阻塞ESP32的任何额外引脚。
ESP32运行在3.3V逻辑电平上,这要求连接的组件与该逻辑电平兼容。ADS1115和MCP23017符合这一要求,选择的有刷直流电机驱动器(用于主发动机的Cytron MD20A和用于执行器的四个Pololu DRV8876(QFN))也考虑了同样的要求。汽车的前灯由IRLZ44N MOSFET控制,其栅极电压阈值足够低,也与3.3V逻辑电压兼容。基于WS2812b的RGB LED灯带设计为在5V下运行,但数据引脚也适用于3.3V逻辑电压(尽管官方不支持)。转向伺服由PCA9685伺服控制器控制,选择它而不是尝试调整ESP32的一个PWM通道到所需的频率和占空比特性。做出这一决定是因为ESP32已经需要处理许多库和时序关键的任务。使用仅执行此任务的专用驱动器是更安全的选择。该伺服控制器也可以由3.3V驱动,类似于大多数可用RC伺服电机的数据引脚。请注意,只需将伺服电机的数据引脚插入PCA9685板(通道0)。汽车的主PCB提供伺服电机的电源。因此,汽车电子系统中不需要将电平转换到另一个逻辑电平,这总是好的:逻辑电平转换器是可用的,但它们增加了另一个错误源,如果可能的话应该尽量避免。
辅助电子组件
用于刹车的步进电机由Pololu DRV8825步进驱动器供电,而该驱动器又由辅助ESP32控制。由于步进电机的控制方式,该任务被外包给一个单独的微控制器。步进电机需要以非常时序关键的方式接收步进信号,以实现恒定速度。这种控制与有刷直流电机有根本不同,后者需要PWM可以近似的定义电压来控制速度。每个步进脉冲都会转换为步进电机的特定旋转增量。这些脉冲频率的任何偏差都会导致不必要的振动,即使只发生一次,并且在最坏的情况下,如果速度接近电机的最大速度,步进将会丢失。因此,通常的做法是从一个专用的扩展板控制步进电机,该扩展板不执行任何其他任务,以确保电机的稳定实时控制。在这里,一个辅助ESP32服务于这一目的。它与主ESP32的数据连接基于一个非常简单的并行接口,每循环迭代读取一次,从而为步进电机提供所需的恒定时序。
另一个主要的电子组件是一个高功率MOSFET,用作汽车的主电源开关。用于开关的小型机械开关不设计用于处理主发动机所需的高电流,因此仅用于开关该MOSFET(IRFP7430PBF)。该晶体管指定用于近200A,远超过汽车从电池中汲取的电流。由于汽车的平均电流消耗仅为约10A,因此可以在不添加额外散热器的情况下使用。在电路中添加了一个30A汽车保险丝,作为严重电气短路时的安全功能。此外,添加了DC-DC转换器,将电池电压降低到5V(伺服电机和RGB LED灯带电源)和3.3V(逻辑电平电压)。添加了几个电容器以稳定不同组件的电源电压。
调整电压电平
3.3V线路还为汽车的前灯LED供电。它们直接从3.3V线路供电,而不是从ESP32的数字输出供电,因为微控制器无法处理超过几mA的电流。LED所需的电压降低(或更准确地说,所需的电流限制)通过添加一个1欧姆电阻来实现。每个LED在全亮度下消耗80mA(根据制造商为3V),并且由于它们是并联连接的,总电流为320mA。当在LED串联中添加一个欧姆电阻时,欧姆定律指出,1欧姆电阻负责0.32V的电压降(U=R*I),从而在从3.3V电源供电时,LED上获得所需的约3V。请注意,如果使用不同的LED,则需要重新计算此值。欧姆电阻将电能转化为热量,这意味着如果使用欧姆电阻来降低电压,则需要考虑散热。在这里,电阻将最多0.1W转化为热量(P=I²*R)。用于PCB的电阻指定用于最多0.5W,这意味着它们可以安全地用于此目的。
模数转换器应该与ESP32通信;因此,它们由3.3V供电。它们只能处理高达其电源电压的模拟输入电压。因此,添加了分压器来读取电池电压(10到12.6V(3S LiPo))和来自电流传感器的信号。后者是一个ACS712霍尔效应传感器,需要5V电源电压,并输出0到5V的模拟信号。该传感器测量+/-30A范围,这远远超过汽车的功耗。值得注意的是,ACS712板使用的端子未指定用于如此高的电流。因此,我将电线焊接到板的底部(端子的引脚),而不是使用板的端子。从电池到主电子板的一条电源线(正极或负极)必须通过该传感器。由于该传感器不仅测量电流,还测量电流流动方向,因此需要考虑测量输出的符号。可以通过使用读数的绝对值来简化。然而,当汽车刹车时,电流可能为负(此时电机充当发电机,从而产生从电机到电池的电流),这也应该被测量。因此,遥控器代码中的自动例程在启动时检测电流流动方向(当遥控器显示“配对”时),并相应地调整显示值的符号。
PCB使布线变得简单
我为汽车的电子系统设计了一个PCB,这在组装和布线中是一个很大的帮助,因为它与使用面包板相比显著减少了电缆数量。设计保持简单(主要是由于我在电气工程方面的技能有限),这意味着可能每个PCB制造商都可以生产这种标准的2层PCB。该板由德国制造商Aisler生产,并且该板工作完美无缺。请注意,与我用于原型的板(版本1.0)相比,PCB文件已更新(版本1.1)。除了板上必要的部件外,板上还有用于可选上拉或下拉电阻的安装点。除非出现问题,否则不需要填充它们。可选的PWM下拉电阻旨在为电机驱动器在启动期间提供稳定的GND信号,以防ESP32的引脚在启动期间(仍然)浮动,从而防止在微控制器上的主程序运行之前电机的任何抖动。I²C上拉电阻旨在调整I²C总线的上拉电阻,以防该总线上的外围组件(MCP23017、2x ADS1115、PCA9685)不按预期工作。
I²C数据总线使用所谓的开漏输出,这意味着数据引脚SDA和SCL只能由总线组件拉低,否则是浮动的。然而,当它们没有被主动拉低时,它们必须处于明确的逻辑高电平,而不是未定义的浮动状态,以确保数据总线正常工作。所有使用I²C连接的组件都连接到相同的SDA和SCL线,但并非每个制造商都为其组件添加了或相同的集成上拉电阻。因此,根据你使用的组件,你可能会在这些数据线和逻辑电压之间得到过低(如果所有组件都带有自己的、相对低欧姆的上拉电阻)或过高(如果大多数组件完全省略此电阻)的电阻,从而导致不稳定操作。在这种情况下,你可以向汽车的PCB添加自己的上拉电阻,并在需要时手动移除组件(这里是两个ADS1115和PCA9685板)的上拉电阻。SDA/逻辑电压和SCL/逻辑电压之间的理想电阻可以计算,但对于业余项目来说,估计在2kOhm到10kOhm之间的电阻可能会起作用。在我的情况下,每个I²C连接的板都带有10kOhm上拉电阻,总上拉电阻为3.3kOhm,无需任何修改即可工作。
编程和功耗
两个ESP32微控制器的代码可以在将它们放置到板上之前上传。原则上,代码应防止在首次为汽车供电时以及如果尚未执行执行器校准时的任何非自愿执行器和电机运动。然而,我不能保证代码中没有任何错误。因此,为了安全起见,在首次打开电源时不要连接任何电机。确保其他一切(无线连接和LED工作)正常,并以一种在电机意外通电时不会受伤的方式固定汽车。此外,在没有连接传感器的情况下不要插入执行器电机连接器。在这种情况下,执行器可能会不可预测地动作。此外,重要的是要注意,我使用Arduino IDE和esp32板管理器包版本2.0.17编写并安装了代码。该代码与板管理器包版本3及更高版本不兼容!如果你打算即插即用,请确保在Arduino IDE中安装旧版本的板管理器(否则编译将失败)。
汽车使用5000mAh 3S LiPo电池作为电源。这种大容量足以让汽车运行至少1小时,显然取决于你如何驾驶它。当你以步行者的速度缓慢而稳定地驾驶时,它的功耗约为20W。最大速度(快速档下约11-12公里/小时)约为80W,加速时可达200W。这意味着发动机的电流消耗不会超过约20A(短期峰值,不超过2-3秒),并且在以最大速度行驶时需要最多约8A的连续电流。电池安装在底盘下部的专用框架中,并使用底板上的切口将其电线推入电子隔间。
组装信息
电子系统安装在底板上的框架作为垫片。定制PCB以及MD20A电机驱动器使用M3螺钉安装。ACS712电流传感器使用两个扎带安装,PCA9685伺服控制器夹在支架之间。由于底板包括许多孔和螺纹嵌件,电子系统的安装点被突出显示以协助组装。
两个ESP32微控制器的代码(CrawlerV5main,CrawlerV5aux)以及PCB的Gerber文件(汽车PCB文件)可在GitHub上找到。
所需部件:
- 1x Crawler V5 PCB V1.1
- 1x Cytron MD20A
- 1x PCA9685
- 1x ACS712
- 1x SLS XTRON 5000 mAH 3S1P电池
- 1x XT60连接器(电池到主PCB;其中一条电线需要通过电流传感器,另一条直接到PCB)
- 2.5 mm²多股线(主电源和到775电机的电线)
- 0.25 mm²多股线(到传感器、执行器、LED的电线)
PCB组件:
- 4x Pololu DRV8876 QFN(安装在相应的插座端子条上)
- 1x Pololu DRV8825(安装在相应的插座端子条上)
- 2x ESP32 NodeMCU(38针版本,1x带外部天线连接器(主ESP32);另一个(辅助ESP32)不需要WiFi;安装在相应的插座端子条上)
- 2x ADS1115(安装在相应的插座端子条上)
- 1x MCP23017(在IC插座GS28-2上)
- 1x Gaptec LC78_05-2.0 DCDC转换器
- 1x Gaptec LME78_03-1.0 DCDC转换器
- 3x Omron B3F-1002 PCB按钮
- 1x Vishay TLHG 4600绿色3mm LED
- 6x Panasonic FC100/50电解电容器
- 5x 1206/3216 22 µF 10 V陶瓷电容器
- 2x 2220/5750 10 µF 50 V陶瓷电容器
- 2x 0805/2012 100 nF 50 V陶瓷电容器
- 1x IMAXX F7030 30A保险丝在1x IMAXX H7810保险丝座中
- 1x IRFP7430PBF功率MOSEFT(开关)
- 1x IRLZ 44N逻辑电平MOSFET(前灯LED控制)
- 1x AKL175-04连接端子
- 轴向电阻(9x3.2 mm,1%,0.5 W)如PCB丝印所示
- Molex SL系列插座
第十一步:遥控器
汽车的遥控器基于与我之前项目相同的布局。然而,我对遥控器进行了修改,以改善其操作和操控性。首先,遥控器使用外部天线以增加其范围。其次,使用四个按钮代替旋转编码器来进入和导航菜单。这些按钮还用于(解)锁驻车制动器、主差速器锁和汽车的前灯LED(不同输入开关和按钮的功能在步骤13中解释)。
定制摇杆
遥控器的另一个升级是摇杆。添加了定制摇杆,而不是商业的双轴拇指摇杆(前后、左右)和包括一个按钮的摇杆。DIY方法是由于廉价拇指摇杆的质量较差。我用于该遥控器原型的一对拇指摇杆在中心位置周围有一个“麻木区”,在该区域内摇杆的输出保持不变。然而,该区域并不完全在摇杆行程的中心。因此,当移动摇杆时,摇杆的输出在某些角度保持其默认值——但仅在一个方向上。这种现象导致汽车的可控性较差。此外,拇指摇杆在其机械行程之前就达到了其最小/最大值:因此,至少有一半的摇杆行程被浪费了。
由于我不愿意购买各种廉价摇杆直到一对工作满意,我决定设计和构建定制摇杆以消除这些问题。摇杆的设计非常简单:必须在拇指摇杆的旋转轴上添加一个电位器。飞机遥控器的油门摇杆正是使用这种设计。然而,在这里,摇杆需要一个额外的功能:它们需要自定心。如果你不主动将它们推向一个方向或另一个方向,它们需要回到中心。这是通过添加一组杠杆和弹簧来实现的,如果没有施加外力,它们将摇杆推回中心位置。我使用了一个7x19毫米的压缩弹簧(0.5毫米线径),来自一个装有各种小型压缩弹簧的廉价盒子。该弹簧决定了移动摇杆所需的力,并控制其回中特性(更快或更慢)。
摇杆组装
摇杆经过多次设计迭代,直到达到良好的机械特性。最终设计使用两个杠杆和两个弹簧。摇杆在每个方向上应具有相同的力,该设计实现了这一点。摇杆设计为围绕中心旋转+-30°,与廉价的商业摇杆模块大致相同,但不同之处在于轴装电位器可以记录定制摇杆的完整行程。摇杆使用的电位器比汽车的执行器略贵:使用的Bourns电位器比Omeg电位器具有更好的公差(10%而不是20%),它需要更少的力来旋转(提高摇杆回中的能力),并且它是一种更稳定的设计,减少了间隙(这对于摇杆来说是致命的)。
电位器通过将其轴切割为6毫米长度并研磨成双D形状安装在摇杆中。然后,它以紧密配合的方式推入摇杆主体(确保不要从电位器的轴上移除太多材料:如果太松,摇杆中会有间隙)。确保以电位器的正确角度研磨双D形状:在将其推入摇杆机械装置时,它应该处于其中心位置,以确保摇杆可以在不达到电位器极限的情况下完成完整行程。摇杆的旋转机构由两个608轴承支撑,从而实现平稳、非常稳定的操作。杠杆的机械装置围绕两根23毫米长的4毫米钢棒包裹。
其他输入设备和显示器
遥控器的其他输入/输出组件是现成的标准部件:一个20x04 I2C LCD、一个开关、两个拨动开关、一个电位器和四个按钮。六节可充电AA电池提供电源,所有电子元件都安装在遥控器外壳内的小PCB上。前面的可拆卸盖允许在需要代码调整时访问遥控器的ESP32微控制器。
PCB包括所需的DC-DC转换器,从电池生成3.3和5V。遥控器需要5V逻辑电源用于LCD显示器。其他组件,包括用于读取所有模拟输入的ADS1115,运行在3.3V。双向逻辑电平转换器允许将LCD显示器连接到遥控器的其余I²C总线(运行在3.3V)。所有外部组件通过Molex SL线板连接器连接到PCB,并且连接器在PCB上标记以明确识别。再次,如果存在I²C连接问题,可以使用一组可选的上拉电阻。我未填充它们。
编程ESP32
遥控器上的代码是该项目中三个ESP32微控制器中最复杂(或至少最长)的代码。这是因为编程LCD屏幕需要许多行代码,特别是如果屏幕必须包括多个页面。在这种情况下,大部分代码需要允许在不修改代码的情况下校准摇杆和执行器,而是通过在遥控器内选择和完成校准步骤。
ESP32微控制器的代码(CrawlerV5rc)以及PCB的Gerber文件(RC PCB文件)可在GitHub上找到。
所需部件:
- 2x Bourns 93R1AR2215L电位器(摇杆)
- 4x 7x19毫米压缩弹簧
- 1x Omeg PC20BU 10k线性电位器(旋转旋钮)
- 1x Marquardt 1801.6115开关
- 2x Marquardt 1821.1101拨动开关
- 4x ONPOW防破坏按钮带LED环
- 1x 20x04 I2C LCD模块
- 1x 6x AA电池盒
- 1x WiFi天线
- 6x NiMH AA电池
- 1x Crawler V5 RC PCB V1.1
PCB组件:
- 1x 双向逻辑电平转换器(安装在相应的插座端子条上)
- 1x ADS1115(安装在相应的插座端子条上)
- 1x Gaptec LME78_03-1.0 DCDC转换器
- 1x Gaptex LME78_05-1.0 DCDC转换器
- 1x ESP32 NodeMCU带外部天线插座(安装在相应的插座端子条上)
- 3x 1206/3216 22 µF 10 V陶瓷电容器
- 2x 2220/5750 10 µF 50 V陶瓷电容器
- 1x 0805/2012 100 nF 50 V陶瓷电容器
- 轴向电阻(9x3.2 mm,1%,0.5 W)如PCB丝印所示
- Molex SL连接器插座
第十二步:高速选项
这一步是可选的:如果你不介意定期重新打印传动系统的部件,可以选择调整汽车的齿轮减速比。与标准版本相比,此高速选项在相同电机速度下使车轮速度翻倍。由于速度提高,汽车的操控性会受到影响,因此不仅需要更换两个齿轮,还需要将略微调整的代码上传到汽车的主ESP32和遥控器的ESP32。
高速选项与标准版本的不同之处在于,用以下文件替换了离合器的输出轴(部件03-09)和离合器与中央差速器之间的40齿到25齿垫片(部件04-02)。最初,它们由一个20齿和一个40齿的正齿轮组成。在高速选项中,两个齿轮都有30齿。因此,省略了一个减速比为2的减速步骤。需要新的微控制器代码以改善汽车在更高速度下的操控性。在高速选项的快速档中,电机的速度变化更加有限,以防止轮胎打滑,并且转向角度受到限制,以避免在高速行驶时尝试过小半径转弯时失去牵引力。
对高速选项的汽车进行了约一小时的测试,没有观察到即时硬件故障。然而,当从标准版本切换到高速版本时,必须考虑在更快行驶时撞到障碍物的风险以及由于汽车在极限附近运行而增加的磨损。在高速选项下加速时,汽车消耗250到300W(比标准版本多约100W),在最高速度下需要约100到120W(比标准版本多约20到40W)。
汽车ESP32微控制器(CrawlerV5main_highspeed)和遥控器(CrawlerV5rc_highspeed)所需的代码可在GitHub上找到。
第十三步:校准与控制
校准是汽车准备运行前的最后一步:从定制摇杆到驻车制动器——所有组件都需要在指定的方向和范围内运行,以确保汽车正常工作。校准应在不修改微控制器代码的情况下进行:汽车和遥控器需要组装并连接,提供的代码需要刷入相应的微控制器,然后你就可以开始了。
校准时的底盘开放
请注意,校准过程中需要移除汽车底盘的底部:你需要通过目视检查执行器的位置以完成校准。此外,在机械部件开放的情况下进行校准是给所有齿轮添加润滑剂的绝佳机会。齿轮的润滑是必要的,以防止它们因摩擦产生的热量而过度磨损。因此,在驾驶汽车之前,请确保润滑所有传动系统的齿轮。执行器的齿轮不需要润滑,因为它们仅在低速下运行且不连续运转。
校准从遥控器开始:在校准摇杆和转向伺服之前,汽车不会行驶或转向。这种安全措施可以防止汽车在启动时损坏其转向系统或失控行驶。因此,首先打开遥控器。你会看到初始化屏幕,等待与汽车的连接。如果你按下左上和右上按钮,可以跳过此屏幕。然而,你不需要这个快捷方式,我添加它是为了允许在不总是连接汽车的情况下修改代码。相反,只需同时打开汽车。
如果未连接,汽车的RGB LED会闪烁红色。如果连接到遥控器,它将显示K.I.T.T.的运行灯,遥控器将显示默认屏幕,显示所有传感器值和执行器位置。连接使用ESP-NOW建立,它使用微控制器的MAC地址将信息发送到配对的设备。然而,汽车主ESP32和遥控器ESP32的代码不需要通过输入ESP32板的MAC地址来更新,因为代码包括用自定义MAC地址覆盖硬编码MAC地址的功能。只有在你想建造多辆这样的汽车并希望同时驾驶它们时,才需要更改此条目。在首次启动时,遥控器将显示摇杆和转向伺服的校准缺失。你需要进入遥控器菜单(右下按钮),然后选择摇杆条目(左上/左下按钮移动光标,右下按钮选择条目)。然后,相应的校准页面将引导你完成过程。一个解释性视频展示了摇杆校准的过程。
校准摇杆和转向
对于摇杆,遥控器需要知道其行程限制和围绕摇杆中心的所需容差。按照校准菜单的指示移动摇杆,并在达到行程限制时确认位置。对于容差,建议暂时保留其默认值。一旦你驾驶汽车,可以微调这些值。容差表示遥控器忽略的摇杆中心周围的行程。它用于防止误输入(当你不推动摇杆时,中心周围的噪声,但测量值与中性位置不完全匹配)。容差值越高,你需要推动摇杆越多才能测量到非中性值。容差越低,响应性越好,但越容易受到噪声的影响。该值以电位器模拟读数范围的百分比给出。如果电机的接线反转,摇杆校准菜单的最后一项是需要的:如果接线反转,汽车将在推动摇杆前进时倒车。因此,你可以在电机驱动器处切换电机线,或使用摇杆校准来反转右摇杆的读数。暂时保留默认值,因为你需要先驾驶汽车以确定是否需要反转摇杆读数。你可以随时重新运行校准以更改此设置。
接下来,校准转向伺服。为此,首先需要指定转向系统的左行程限制,然后是右行程限制,最后微调中性位置。请注意,后者通过同时调整左右行程限制来完成。中性位置定义为(左限制+右限制)/2。因此,在指定转向系统的行程限制时不要过度。当达到行程限制时,转向拉杆不应撞击或弯曲前挡泥板。遥控器LCD上显示的数字代表Adafruit的PWMServoDriver库用于向伺服电机提供位置输出的最小和最大值。这些值可以在150到600的区间内调整。然而,你不需要完整的区间(例如,我的转向/伺服组件的限制为489(左)和294(右))。通过在平滑且均匀的表面上直线驾驶汽车(不触碰转向摇杆)并检查其是否偏离直线行驶,可以最好地完成转向(中性位置)微调。然后,你重新运行校准并逐步调整中性位置,直到它直线行驶。
校准换挡器、离合器和差速器锁
接下来的校准步骤是汽车中用于换挡、锁定差速器和(解)锁离合器的执行器。为此,在遥控器菜单中选择条目并将汽车翻转,以便你可以看到相应执行器的位置。在校准过程中,你需要按下左上/左下按钮以将执行器向一个方向或另一个方向移动。此过程是逐步进行的(按下按钮一次意味着它将移动一个给定的增量)。你移动执行器的方向取决于执行器电机如何连接到PCB。然而,你不需要注意电机的接线,因为此信息在校准期间提供给系统。因此,你只需将执行器移动到遥控器显示中指示的打开/关闭或快速/慢速位置,并通过按下右上按钮确认位置。然后,你将执行器移动到另一个终点位置并再次确认。就这样:执行器已准备好工作。
对于离合器,需要同时校准两个执行器。重要的是要平行移动两个离合器执行器,以免离合器滑块倾斜(这可能会损坏部件)。在此校准步骤中,你可以通过上下移动左侧拨动开关在两个执行器之间切换。然后,可以逐步移动执行器A和B,确保离合器滑块在移动时不会倾斜。当滑块达到其极限而没有被压向该极限时,执行器的理想终点位置就找到了。将执行器推得太远会增加摩擦(球轴承不适用于轴向负载)并给打印部件增加不必要的压力。另一方面,执行器移动不够远意味着滑块的犬齿没有完全啮合,从而在操作过程中存在撕裂它们的风险。
驻车制动器由单独的微控制器控制
最后但同样重要的是,驻车制动器必须进行校准。该系统的过程与其他执行器不同。制动器由辅助ESP32控制,该ESP32没有与遥控器的无线连接。此外,它与主ESP32的接口非常简单且位深度有限,这使得使用遥控器进行校准变得困难。为此,PCB上安装了三个按钮:它们连接到辅助ESP32并用于校准制动器。校准过程通过按下三个按钮中的中间按钮开始。你会看到PCB上按钮旁边的LED指示制动器的状态:如果它以1 Hz(每秒一次)闪烁,则制动器未校准。
在校准之前,需要分享一些关于步进电机的信息:PCB上的步进驱动器包括一个小螺丝,用于限制通过电机的电流。由于电机不会永久通电,而仅在移动制动器时通电,因此不需要调整电流限制以优化能耗。然而,通过限制电流,你可以避免电机及其驱动器的过度加热。因此,建议将电流减少到电机仍能转动但不会消耗超过所需能量的程度。你可以在制动器校准期间通过监控遥控器上的汽车功耗来测量电流。空闲时的电流消耗约为0.3 A。在我的原型中,步进电机通电不需要超过0.2 A;因此,在移动步进电机时显示的电流约为0.5 A是正常的。
此外,你需要确保步进电机的接线正确。使用的步进电机是两相步进电机。这意味着它使用四根线连接到驱动器:1A、1B、2A和2B。电机上的连接没有标记,这使得连接容易出错。幸运的是,此时的错误不会破坏任何东西。然而,它会导致步进电机产生噪音而不移动。在这种情况下,你必须重新排列电线,直到看到电机在校准期间转动。将线圈连接到步进驱动器的“1”或“2”输出并不重要,但线圈的两根线必须连接到驱动器的“1”或“2”输出的A和B输出。如果你不确定哪对电线属于一个电机线圈,可以使用电压表测量电线之间的欧姆电阻。连接到同一线圈的一对电线的电阻应低于100欧姆。不同线圈的电线之间的电阻是无限的。
校准驻车制动器
进入制动器的校准后,LED的闪烁频率增加到2 Hz(每秒两次)。你使用校准中的左或右按钮移动制动器执行器。在这里,执行器会一直移动,直到你松开按钮(与其他执行器不同,按下按钮会导致执行器按给定增量移动一次)。此部分校准必须在制动器传感器未触发时开始。如果它被触发,系统无法检测到打开制动器的方向。因此,如果在你开始此过程时制动器传感器被触发,你可以通过再次按下PCB上的中间按钮来重置测量方向的内部计数器,直到制动器传感器未被触发。然后,你按下左或右按钮打开制动器(将制动器的驱动齿轮转向制动器传感器)。
一旦你触发制动器传感器,系统将跳转到制动器校准的下一步也是最后一步:你需要指定制动器的“关闭”位置。进入此步骤后,制动器LED将激活1秒,然后在此步骤中以5 Hz(每秒五次)的频率闪烁。你按下左按钮(按钮一)关闭制动器。制动器关闭时没有硬性限制。最佳做法是手动旋转驱动轴并缓慢关闭制动器。一旦你无法用手指转动轴,就找到了制动器的“关闭”位置。然后,你按下中间按钮一次以完成校准。不要过度移动制动器:它可能会卡住或在施加过多力时损坏。当制动器打开并校准时,LED缓慢闪烁(0.25 Hz,每四秒一次)。当制动器移动(打开或关闭)时,它以5 Hz闪烁,当制动器接合时,它持续亮起。
完成初始校准
所有执行器的校准需要非常小心地进行。系统中的执行器有足够的扭矩在尝试达到无法达到的位置时损坏自己。因此,在运行校准时,请将手指放在汽车电源开关或执行器相应电机的连接器附近。原则上,一切都应安全运行,但我不能保证我的代码中没有错误。最关键的执行器是差速器的锁。如果滑块和差速器之间的角度导致犬齿尖端相互顶住,执行器可能会损坏。因此,只有在离合器打开或车轮可以自由旋转时,才应操作此执行器。
遥控器菜单中的最后条目是前灯LED亮度和RGB LED颜色的调整。前者通过旋转遥控器的电位器并使用其中一个右按钮确认选择来调整。后者使用左按钮调整并使用其中一个右按钮确认。
最终提示
在默认屏幕中,电位器(#4)限制汽车的最大速度(在20到100% PWM占空比之间)。左侧拨动开关(#5)打开/关闭离合器,右侧拨动开关(#6)换挡,左侧摇杆(#3)负责转向,右侧摇杆(#2)控制主发动机的速度和方向。左上按钮(#7)(解)锁驻车制动器,左下按钮(#8)锁定/打开差速器,右上按钮(#9)启用/禁用前灯LED。
内置的安全功能试图通过不兼容的用户输入防止机械损坏:汽车发动机在离合器移动或制动器接合时不会移动(除非离合器打开)。在离合器关闭时换挡会触发汽车自动打开离合器,然后换挡并随后关闭离合器。另一项安全措施防止电池放电低于安全的最低电压阈值。如果电压降得太低,LiPo电池可能会永久损坏。因此,当3S电池耗尽时(如果它在空闲时达到<11.1 V/在负载下达到<10.8 V——对应于每节3.7/3.6 V),遥控器会指示,并在达到此阈值时不再接受驾驶输入。遥控器还会指示其NiMH电池是否为空(<6.8 V——对应于每节1.1 V)。
汽车的电机控制包括插值输入以平滑所需速度或方向的突然变化。其目的是防止车轮打滑,因为传动系统有足够的扭矩在加速时让车轮打滑。因此,这种插值通过防止电机过度加速来充当基本的牵引力控制。另一方面,汽车的响应性因此受到影响。插值被调整为牵引力和响应性之间的折衷。如果需要,你可以在汽车的主ESP32代码中调整它。然而,建议保留插值以减少轮胎磨损并延长汽车传动系统的寿命。
有了这些最后的提示,你已经掌握了所有需要了解的内容。汽车已组装并校准——准备运行!
第十四步:结论
首先,感谢所有读完这篇教程的人。结果发现它的篇幅远远超出了预期!此外,这个项目是我迄今为止完成的最复杂的机械和电气设计(老实说,这并不太难,因为它包括我设计的第一批PCB)。由于我的业余时间有限,我从零开始开发这个可操作的原型花了一年时间,包括多次设计迭代,甚至一次完整的设计大修。这就是为什么我上次发布的项目被称为Crawler V3,而这个项目被称为V5。V4是我对这辆全轮驱动汽车的第一次尝试,但其设计最终陷入了死胡同,迫使我重新开始设计。
我在这个项目中实施了多项改进,以缓解我在之前项目中发现的问题。例如,这个项目包括用于ESP微控制器的专用ADC、用于线板连接的高质量连接器、“真正的”PCB而不是临时自制的PCB,以及用于微控制器的外部天线,以增加其范围,相比小型PCB天线。此外,运行汽车的代码也得到了改进,因此用户不需要了解编程即可构建这个项目。每个所需的校准步骤都可以在遥控器的菜单中或通过使用汽车PCB上的按钮完成。
在建造汽车后,需要优化几个部件以提高其耐用性。例如,第一批损坏的部件是连接中央差速器到前后差速器的轴的小齿轮。通过添加第二个轴承和加强齿部,它们得到了改进。然而,它们仍然可以被视为传动系统中最薄弱的环节。另一个相当有趣的故障是轮辋。它们的第一个设计包括一个相当精致的轮辐,这些连接在驾驶几个小时后在前轮上出现了裂纹。显然,在高速转弯时作用在前轮上的力相当大。这里包含的更新轮辐设计足够坚固,能够承受发生的力。
说了这些,我对这个项目的结果非常满意。我的目标是建造一辆模拟真实汽车传动系统的3D打印遥控汽车,而这辆遥控汽车在这方面基本上是成功的。然而,正如工程中的常见情况,总有优化的空间。例如,差速器锁在错误角度关闭时容易损坏,这是一个明显的设计缺陷。此外,我的遥控器在首次启动几小时后会卡住。然后,必须关闭并重新打开它才能使其工作。这个问题可能与通过逻辑电平转换器连接的I²C外围设备有关。当电容器尚未充电时,遥控器的3.3V和5V电路中的电容似乎存在初始化/连接问题。
尽管存在这些缺陷,汽车运行非常可靠,驾驶它很有趣。这辆汽车不像许多其他遥控汽车那样快,但追求尽可能快的速度从来不是这个项目的意图。我相信3D打印和DIY项目服务于不同的目的。自制的打印部件不如金属部件或挤出塑料部件坚固,也无法达到它们的公差。因此,我没有尝试建造一辆坚固的高速汽车,只是为了看到它在以30+公里/小时的速度碰撞时一次又一次地损坏。Crawler V5在其快速档中的最高速度限制在约12公里/小时——在我看来,这是遥控汽车在可控性和速度之间的良好折衷。如果它跑得更快,你会很快失去视线,使得控制车辆变得相当困难。与其追求速度记录,这辆汽车在低速控制性方面表现出色。
但真的已经说得够多了:我终于到了这篇教程的结尾。我希望你喜欢它,如果你们中的任何一个人决定建造这辆汽车或使用这个项目作为基础来创造更好的东西,我会非常高兴!如果这篇教程中有不清楚的地方,或者你需要帮助完成这个项目,请在下面留言。
文章中的3D打印资料需要请点击文章末尾链接自行查看!
项目作者:TRDB
项目来源:https://www.instructables.com/3D-Printed-Remote-Controlled-2-speed-AWD-Car/