项目概述和目录
显示了用于电动推动 10 英尺皮划艇的控制台。控制台包含一个能够生成脉冲宽度调制 (PMW) 信号的 Arduino Uno 计算机。Cytron 驱动器是一块 2 x 3 英寸的威廉希尔官方网站 板,位于 Uno 旁边,它解释 PWM 信号并为拖钓船电机供电,就像它为机器人电机供电一样。
在控制台的一侧,库存的 4 安培小时 (AH) 或 6 AH Ryobi 锂电池组(用于为无绳工具供电)为拖钓船马达提供操作电源。控制台还提供了一个电压表和一个电流表来监控电池电量和流向电机的功率。电机的速度由具有 6 个正向和 3 个反向速度的旋转开关控制。
Arduino Uno 对拖钓船电机的 PWM 控制有两种使用方式,首先它将锂离子电池组的 18 伏电源调整为电机的 12 伏额定电压,其次它控制电机的速度。这是它擅长的地方:通过在电池威廉希尔官方网站 中插入电阻器,小型拖钓电机以低于全速运行。这些电阻器将多余的电池电量转化为热量,这些热量在水中消散并被浪费掉。在低速时,典型的拖钓电机的效率约为 25%。用于控制速度的 PWM 技术在所有速度下的效率为 98%。
使用电池组为电机供电的便利性最显着的是其重量轻:一个 4 AH 电池组重 2 磅。很容易插入控制台或充电器,大约 2 小时即可将电池充满电。备用电池组便于携带,可延长巡航范围。锂电池在长时间保持充电和在任何速度下都能提供满额定功率方面也非常出色。
该项目中使用的组件具有极高的价值。一艘 10 英尺长的皮划艇大约需要 200 美元,拖钓船马达大约需要 100 美元,两个 4 AH 锂电池组 100 美元,还有不到 100 美元的杂项电子设备和零件,这些电子设备和零件需要一个方便的自己动手组装起来。
Arduino Uno 和 PWM 的组合及其简单的编程具有许多应用。虽然我的兴趣主要在于划船,但这种类型的电机控制也可以有效地用于为推车或电动踏板车提供动力。这些都是有趣的项目,它们提供了很好的学习体验。
目录_
以下是本文内容的注释列表。
1. 背景和介绍 - 项目是如何产生的
2. 项目概述 - 皮划艇的修改和添加
3. 脉冲宽度调制 - 它是什么以及我们为什么需要它
4. 控制箱 - 一个耦合到 Cytron 驱动器的 Arduino Uno 控制电机
五、控制箱接线
6. 软件 - Uno 中使用的 Arduino“电动皮划艇”草图
7. 安装组件 - 控制箱、转向装置和横梁。
8. 测试 - 皮划艇在水中的操作和结果总结
9. 运输和启动皮划艇
为了让自己的生活更轻松一些,我投资了 200 美元买了一艘“坐在”10 英尺的皮划艇来代替我的“坐在”10 英尺的皮划艇。在我年纪很大的时候,进出“坐式”皮划艇是一件很麻烦的事!如下图所示,我添加了一对坚固的把手和一个自制的木桅杆和吊杆。由于船基本上是像板一样建造的,我想我可以安装一个小帆,用桨控制船的方向。那没有用。然后我添加了一个加重的中心板,但它仍然不能令人满意地航行。我决定下一步必须建造一个相当大的方向舵。
当我在权衡各种帆船的利弊时,我在我最喜欢的 Hingham 海滩度过了一天,这是波士顿港的一个小镇,其历史可以追溯到 1636 年。退潮时海滩很泥泞,因此不是一个繁忙的地方. 该镇在附近开设了一所帆船学校,他们在那里让孩子们开始乘坐 Optimists (Opti) 8 英尺的小艇。它 35 平方英尺的帆和 7.5 英尺的桅杆似乎很适合我的新皮划艇。
Opti 由美国人 Clark Mills 于 1947 年设计。他用两张胶合板制造了最大的婴儿车。它后来成为世界上最受欢迎的帆船之一。他将这些计划捐赠给了乐观主义者俱乐部。
回到我在海滩的一天,当我步行去帆船学校了解孩子们如何操纵他们的 Opti 时,我注意到没有一点风。我完全期望找到一群脸很长的孩子。相反,他们再高兴不过了。有的孩子躺在船底,用手划桨,有的孩子在用船上的排水管打水仗,有的孩子穿着衣服和运动鞋,很高兴从码头跳入水中。我不禁想知道为什么成年人不能像孩子们那样享受在水上度过的一天。我认为,如果船的价格更合理(今天一条新的翻车鱼售价 5000 美元)并且船易于运输且易于安装和下水,那么大人们可以。
在 Opti 帆船装置的试水期间,我遇到了大风天,两次倾覆了皮划艇。幸运的是,我离岸不远,船在没有进水的情况下自行恢复,但事件提醒我皮划艇是一项危险的运动。在冒险走得太远之前,明智的做法是学会纠正船并练习回到船上,如有必要,在帆船学校上一堂课。那时已经是赛季末了,所以我搁置了航行的想法,开始了我的新冬季项目“电动皮划艇”。
就像售价 200 美元的 10 英尺皮划艇一样,两台小型 Minn-Kota 和 Newport Vessels 12 伏拖钓电机每台售价约 100 美元,在价值方面很难被击败。它们的重量不到 20 磅,并且输出的功率足以复制桨手的速度。他们效率不高。我对这些电机进行的测功机测试表明,它们在全功率时的效率约为 65%,正如我们将看到的,在低速时效率要低得多。对于像汽车电池一样大的电池,效率低不是一个严重的问题,但对于皮划艇来说,更小的电池和更好的效率是非常理想的特性。幸运的是,使用小型 Arduino Uno 微处理器(稍后将描述)的脉冲宽度调制 (PWM) 奇迹提供了非常有效的推进力。
二十年前,我在电动船上做了很多工作,写了几本书。我最成功的船是“Sunny II”,这是一艘改装的 19 英尺帆船(O'Day Rhodes 19 船体,配备高效的英国 Etek 发动机,如我的“我的电动船”一书中所述)。船在拖车上,因此可以在将船放入水中之前给电池充电。虽然它比卸下电池充电所需的工作少得多,而且比在船顶使用太阳能电池充电更可靠,但它仍然是我电动划船体验中最不满意的部分。
多年来,人们通过使用锂离子而不是铅来提高电池容量和减轻电池重量。这些改进将继续,因为电动汽车和无绳工具的市场不断增长(Ryobi 现在拥有 150 多种不同的无绳工具)。Ryobi 18 伏、4 安时 (AH) 和 6 AH 电池组随时可用。当电机仅消耗 35 瓦时,使用 PWM 产生最低速度,连续运行时间是从一个 4 AH 电池组测量为 2 小时。当然,随着速度的增加,运行时间会减少。考虑到 2 小时的充电时间和在控制箱中插入新充电电池组的便利性,这是解决电池问题的绝佳解决方案。
我对“电动皮划艇”项目的计划是修改两艘 10 英尺的皮划艇,以便除了划桨之外,还可以使用稍微改进的 Minn-Kota 或 Newport Vessels 拖钓马达来推动它们。Arduino Uno 微处理器中固有的 PWM 技术用于将电池组的 18 伏电压降低到 12 伏,并控制电机的速度以实现最高效率。Ryobi 4 AH 电池组(例如无线工具中使用的电池组)用于电池供电。
为了描述这个项目,我将使用红色皮划艇(“坐式”皮划艇)的照片,因为我展示了珊瑚色的“坐式”皮划艇作为帆船。我对两艘皮划艇进行了相同的电气修改。这样做的原因是我想知道船体形状是否会影响船的速度。两艘船也可以使用两个电机中的任何一个进行操作。通过所有四种可能配置的水测试结果,我们应该能够了解每种船体形状和每种电机的优缺点。
从皮划艇的后部开始,我们看到用于悬挂电机的迷你横梁的位置距离船尾 2 英寸。过去,我为小马达制作了一个支架,用于在独木舟上使用。支架位于座椅附近,因此无需重新定位控制装置或添加转向装置。它奏效了,但操控(尤其是转弯)感觉很尴尬,我不想重复那些令人失望的结果。
在我遥远的过去,我还看到过龙虾渔民使用的大型船,船内装有一个装有舷外发动机的盒子。使用了电机控制,转向是用舷外机完成的。所有这些都非常方便且易于实施。由于我已经在珊瑚皮划艇的中心板上切了一个洞,我推断通过扩大它,我可以将拖钓马达安装在划桨手可以轻松触及的地方。这个想法也没有奏效,主要是因为电机安装得太靠近船的中间,无法有效转向。但是我的水下测试确实揭示了以下好消息,虽然没有简单的捷径,但当电机安装在横梁上时,控制和转向都可以完美地工作。
转向是通过一个枢轴上的杠杆完成的(在第 7 节中显示组件的照片),在桨手容易够到的地方。如上图所示,它启动添加到电机的转向杆。1/4 英寸的线连接到转向杆的末端,在船的每一侧都看不见,并出现在马达前方几英尺处以连接到转向杆。线条需要质量好、平滑且不拉伸。在船的前面,它绕过一个小滑轮,其余部分通过 6 个吊环螺栓引导。
关于控制箱会说更多。通常,它必须位于操作员可触及的地方。作为保持其干燥的第一道防线,它安装在一个 3 英寸高的吊舱上。它装有 Uno 微处理器和 Cytron 驱动程序。两条电源线(至少#14 规格)从控制箱连接到电机到横梁。
上述添加和修改不会妨碍带桨的皮划艇的操作。当然,控制箱应尽可能保持干燥。一个简单的解决方案是用大约 1 1/2 加仑大小的塑料袋盖住它,底部用拉绳固定它。控制箱和转向手柄的照片在第 7 节中显示和描述
为了利用 Minn-Kota 和 Newport Vessel 拖钓船马达固有的巨大价值,必须提供 12 伏电源。但是我们的锂离子电池组本身比铅酸电池有很多优势,可产生 18 伏的电压。使用脉冲宽度调制 (PWM),18 伏电源可以轻松有效地降低到 12 伏。
PWM 的另一个同样重要的工作是提供 6 个前进速度和 3 个倒退速度。在这种情况下,PWM 技术将显着提高这些电机在低速时的效率。
让我们来探讨一下这些电机的速度控制是如何正常工作的。两个电阻器连接到一个复杂(而且不是很可靠)的开关,以提供 5 个正向和 3 个反向速度。这些电阻器位于电机前部的水中,用于散发它们产生的热量。对于最慢的速度,两个电阻串联并散发最多的热量,从而为电机提供最低的电池电压。假设 4 伏电压进入电机而 8 伏电压被浪费在热量上(效率为 33%),那么电机的全速 65% 效率现在将进一步降低到 25% 以下。另一方面,PWM 以 98% 的效率运行。我们可以对这个效率数据充满信心,因为产生 PWM 输出功率的 Cytron 通风 Mosfet 驱动器不会变得过热。
Cytron 驱动器(20 美元)在 30 伏特下额定电流为 20 安培,旨在以各种速度在正向和反向运行机器人电机。它专门设计用于解释来自 Arduino Uno(10 美元)等设备的 PWM 信号(0 到 +5 伏),以驱动拖钓电机等永磁电机。在我们的项目中,使用 Cytron 和 Uno,我们可以非常有效地降低电池电压并在正向和反向提供 9 个电机速度。这是天作之合!
脉冲宽度调制
让我们探讨一下 PWM 技术的工作原理。上图显示了控制电机的开关方法在顶部(100% 占空比)和 PWM 方法在底部(50% 占空比)。第一行简单地显示了一个开关打开和关闭电机电源。例如,如果一个 12 伏的电池与一个开关串联,并且当开关打开时流过 15 安培的电流,那么电机将在 100% 的时间内消耗 180 瓦的功率。
归根结底,在设置为 50% 占空比的 PWM 控制下,电机在一半时间内接收 15 安培电流,因为脉冲宽度设置为 50%。它将消耗 90 瓦并产生一半的功率。使用 Arduino Uno,占空比由软件提供的 0 到 255 之间的数字确定。50% 占空比的数字是 127(255 的 50%)。
如果这个马达是拖钓马达,它会以降低的速度推动船。这种降低的速度相当于将备用电机的速度控制手柄设置为五个前进速度的中间时获得的速度。在该设置下,插入威廉希尔官方网站 中的串联电阻将导致电机接收 6 伏而不是 12 伏。
正如我们之前所讨论的,两种技术在效率上存在很大差异:使用 PWM 时,电池的耗电量为 90 瓦,而使用电阻法时,电池的耗电量约为 150 瓦。60 瓦通过电阻器转换为热量并浪费掉。
示波器连接到 Cytron 驱动器的输出,该驱动器连接到拖钓电机之一。驱动器在 PWM 控制下产生的波形图像如上图所示。第一张图显示了大约 50% 占空比的输出,PWM = 120。它与上图非常相关。第二张图显示了最慢速度 (PWM = 60) 的输出。它对应于电机手柄上的最慢设置。在这种低速设置下,电机在桶装水测试中消耗了大约 45 瓦。
在 PWM 控制下驱动电机
使用 Cytron 驱动器和 Arduino Uno 计算机连接电机是一项简单的工作。Uno 和 Cytron 之间只需要 3 根控制线,其中一根是 PWM 信号。
为这个任务对 Uno 进行编程同样容易。稍后我们将详细介绍编写草图,但在这一点上,让我们考虑为 Cytron 驱动器的 PWM 端子生成适当信号的任务。
我们计算电动皮划艇的占空比如下。首先,计算全速占空比数。由于我们的电源组电压产生的电压略高于 18 伏,因此在相当于 12 伏的电压下运行电机应该是 255 的 2/3。现在,我们将使用数字 160。为了获得从全速到最小速度的范围,我们将在 20 个点的步骤中将该数字从 160 减少到 60(值 160、140、120、100、80 和 60)为了提供 6 个前进速度。这是选择 PWM 编号值的良好起点。根据皮划艇的类型、水测试结果和所需性能,最高速度和中间速度可通过使用 0 到 255 之间的 PWM 值完全调节。
这就是生成 PWM 信号的全部内容。上面显示的示波器图像产生了预期的结果。用于顶部照片的 PWM 编号为 120,用于底部照片的编号为 60。在我们处理软件之前,我们的 PWM 讨论结束。
控制箱内装有 Arduino Uno 和 Cytron 驱动单元。每个都是一块大约 2 x 3 英寸和大约 1 英寸厚的小型电子板。上面的框图显示了与速度控制开关(10 线电缆)的电子连接以及两个板之间的 3 根线(PWM、方向和接地)。Cytron 驱动器的粗线显示了到电池的两个连接(一定要注意正确的极性!)和到电机的两个连接(旋转方向由连接的极性决定)。
电源连接均由#14 编织线制成。连接器是卷曲的蓝色铲形接线片。要连接仪表,请使用 #22 编织线。在有利的地方(从电池输出和分流器),这些较小的电线可以与蓝色连接器中的 #14 电线一起压接。在 #22 线的另一端,使用小的红色连接器。
定制的控制箱(大部分)由 ¼ 英寸胶合板粘合在一起制成。背面和底部面板被拧上,以便接触电子设备和安装螺钉。下图显示了面板的尺寸。
基本的设计标准是使盒子尽可能窄,以便为桨手的腿留出尽可能多的空间。我已经建造了四个这样的盒子,我可以肯定地说,如果不对米做点什么,它们的宽度就不能超过 5.5 英寸。例如,我们可以通过使用每个电池组不可或缺的 4 个指示灯(通过将电池组倒置)来放弃使用电压表,或者我们可以使用更小的仪表。然后控制箱会窄约一英寸。
除了电池组插入盒子的右侧之外,构建木盒很简单。为了给电池组提供坚实的支持,我在盒子的右侧使用了一块 6 x 6 的 1 英寸橡木(¾ 英寸厚)。下面的草图显示了右侧面板的整体尺寸和安装电池组的详细尺寸。由 ¼ 英寸胶合板制成的左侧面板具有相同的整体尺寸。该面板只需要在距前缘约 1.5 英寸、距底部约 1 英寸处钻一个 1 英寸的孔,即可接入 Uno 的 USB 连接器。
面板的 2 3/8 部分凹陷 1/4 英寸,以容纳电池组突出的平坦部分。距右侧边缘 1¾ 英寸的切口可容纳电池组触点的突出部分。弹簧导体(约 3/16 英寸宽)安装在切口的每一侧,以将电流从电池传输到 Cytron 驱动器。电池用 1/4 英寸和 1 1/16 英寸的有机玻璃板锁定在适当的位置,这些有机玻璃板以 2 ½ 英寸的间距小心安装。
许多插槽必须与电池组的突起对齐。使用其中一种 Ryobi 便携式工具作为指南。控制箱的图片也可能有助于解开锁定机构的奥秘。这和触点的安装是控制箱结构中唯一困难的部分。
还有一个细节。左侧面板有木制 ½ x ½ 加固木片,粘在面板的背面和底部边缘。这是用 ¾ 英寸 #6 螺钉连接后面板和底板的位置。
其他 5 个面板在所有情况下都与侧面板重叠。因此,它们比它们所连接的侧板的尺寸长 1/4 到 1/2 英寸或宽。将提供面板的尺寸,但由于它们只是 ¼ 胶合板的矩形件,因此仅提供前面板的图纸。
顶板:2 ¾ 英寸 x 5 ½ 英寸宽
前面板: 6 英寸(根据需要修剪以确保良好贴合)x 5 ½ 英寸宽
底部前面板:1 ¾ x 5 ½ 英寸宽
后面板:6 ¼ 英寸 x 5 ½ 英寸宽
底板:5 ½ x 5 ½ 英寸宽
前面板安装的角度是指前面板和顶部的90度直角必须分成4个方向。大致角度如下:顶面板和前面板之间的角度约为 55 度(每个面板的边缘为 28 度)。底板和前面板之间的角度约为 35 度(每个面板的边缘为 17 度)
上面显示了前面板的草图。它显示了组件和控件的建议位置。3 个前面板的边缘视图也显示了上面讨论的角度。控制箱组件包括:一个 20 安培的电流表,在顶部面板下方安装了一个分流器,以及一个 30 伏的电压表。提供6个前进速度和3个后退速度的速度控制开关和带指示灯的开/关开关也安装在这个面板上。(这些仪表可在亚马逊购买,总价约为 20 美元)。
两块威廉希尔官方网站 板(Cytron 和 Uno)尽可能向前地安装在仪表下方的底板上。Uno 最靠近 USB 电缆的 1 英寸检修孔所在的左侧
控制箱的接线用两张图表示。第一张图是电源接线图,即从电池组到 Cytron 驱动板再到电机的接线图。第二张图(电子线路)显示了控件如何连接到 Arduino Uno 微处理器和 Cytron 驱动程序。正如接线图所示,这两个非常基本且易于实现。
从电池组的 + 端子开始,接线图显示了到该端子的 3 个连接:a) 400 欧姆,½ 瓦电阻,b) 电流表分流器和 c) 电压表的 + 端子。a) 电阻连接在插入 Arduino Uno 的屏蔽板上进行。其目的是为 Uno 提供电力。这模拟了 9 伏电池的使用。该电阻器用于将 18 伏电池电压降低到 12 伏以下,以符合 Uno 规范。它被焊接到 9 伏电池连接器的 + 上。
b) 连接到与电流表一起提供的分流装置的一侧。分流器只是一个校准电阻器,它与电流表的机制相匹配(实际上是一个 75 毫伏电压表)。另一个分流连接到 Cytron 驱动器的 +。Cytron 驱动器没有防止不正确的极性连接,因此观察电源的极性很重要。请注意,电机没有极性标记。原因是当电线反向时,电机只是以相反的方向运行。两根电线(22 号)从分流器连接到电流表。
c) 连接从电池 + 到电压表的 +。另一根 22 号线从电池的负极连接到电压表的负极。我们之前提到过,22 号线可以与蓝色端子中的 14 号线一起压接。在最后三个连接中,一个从电池连接到 Cytron,最后两个从 Cytron 板连接到拖钓船电机。
这些说明适用于两种拖钓船马达:
卸下固定盖子的 6 颗螺钉。请注意,有 4 根电线沿着轴连接到电机:2 根大线,红色 (+) 和黑色(它们连接到电机端子)和 2 根较小的线,白色和黄色(它们连接到电阻器)。使用 PWM 控制时不需要黑色速度控制开关和电阻器,将按如下方式绕过 - 将红线和黑线剪离控制开关约 2 英寸。使用对接连接器将大约 18 英寸的电线(电池线可用于此目的)添加到电机的红线和黑线。您需要足够的电线才能到达迷你横梁上的端子。白线和黄线可以保持原样连接。使用 4 个对接连接器,2 个用于电机线,2 个用于电池线,可以将接线恢复到其原始配置。
电子图
我们在上图中提到了“盾牌”这个词。许多 Arduino 计算机(例如 Uno)可以容纳一个屏蔽,该屏蔽插入带有预置威廉希尔官方网站 的处理器板,用于特殊目的,例如连接到 Internet。也可以购买原型屏蔽(3 美元)来实现定制威廉希尔官方网站 。它看起来像一个带有几个连接器的裸面包板,通常是一个复位开关。我们使用这些原型屏蔽之一来方便地安装我们需要的电阻器。
控制箱中的电子连接显示了速度控制器、5 伏开关、Uno 屏蔽和 Cytron 驱动器之间的互连。
速度控制器是一个 12 位旋转开关。中心位置为“关”。顺时针转动拨盘,一次选择一个速度 F1 到 F6。F1 是最慢的前进速度,F6 是全速前进。When a speed is selected the 5 volts from the center position is connected to the selected pin. 当表盘逆时针旋转时,一次选择一个反向速度 R1 到 R3。如果旋转开关有挡块,请小心选择“关闭”位置,以确保挡块不会干扰 6 个正向或 3 个反向速度的顺序。
如果您能找到一小段颜色编码的 9 芯 #26(或接近该尺寸)绞合线,那就太好了。如果不是,则制作三根 3 线电缆,分别标识每一端 如图所示,引脚 F1、F2 和 F3 连接到端口 4*、5* 和 6*。引脚 F4、F5 和 F6 连接到端口 7*、8* 和 9*。反向引脚 R1、R2 和 R3 连接到端口 10*、11* 和 12*。
星号表示 10、000 ohm、1/4 瓦电阻连接到 11 个端口中的每一个。这种接地是必要的,这样 Uno 端口就不会“浮动”,这是一种既不是 1 也不是 0 的不稳定状态。所有的屏蔽都不一样,但我碰巧买的那个有一个接地条(和一个+5 条)可以焊接 11 个电阻的一端。我小心地从屏蔽连接器上滑下塑料外壳,露出内部引脚,然后小心地将电阻器的一端焊接到它上面。然后我还将速度控制器的电线焊接到电阻器上。
Cytron 驱动器与端口 3*、13* 和 Gnd 之间的连接需要另一条 3 线电缆。#23 和#26 之间的任何绞合线都可以使用。对于使用螺钉连接器的 Cytron 板上的连接,请将电线镀锡,以便在拧紧螺钉时不会散开。
电子接线的最后一点是与开/关开关和 LED 指示灯的 5 伏连接。上面使用的相同绞合线适用于这些连接。+5v 从 Uno 屏蔽层连接到开关的一侧,开关的另一侧连接到速度控制器的公共端和 500 欧姆 LED 限流电阻。电阻的另一端连接到 LED 的 + 侧(必须观察 LED 的极性)。LED 的另一条腿连接到 Gnd。
控制箱的电源接线和电子接线到此结束
选择 Arduino Uno 来控制 Cytron 驱动程序是因为它体积小但功能强大,足以执行所需的任务。主要要求是为 6 个正向和 3 个反向速度提供足够的端口或通道。它还必须能够生成 PWM 信号以将 18 伏电池组电压降低到 12 伏。
能够完成这项工作的程序(在 Arduino 演讲中称为“草图”)编写在 PC 上,并通过 PC 的 USB 连接器上传到 Uno 板。在上传草图之前,它会通过内置编译器进行验证和编译。“电动皮划艇”草图是为您编写的,因此只需在您的 PC 上键入几页代码即可。
要将 Arduino 草图从您的 PC 写入并上传到 Uno,您必须首先将 Arduino IDE(集成开发环境)综合软件程序加载到您的 PC 中。在它的众多功能中,一个草图库、一个用于输入新草图的编辑器(类似于 Open Office 的编辑器)、一个还可以验证草图的编译器以及将草图上传到诸如 UNO 之类的计算机板所需的软件。要下载最新版本的 IDE,请访问 Arduino.com 站点。IDE 是一个完全免费的“开源”程序。
您需要按照安装说明选择 USB 驱动程序。您还必须提供板的名称 (Uno) 和端口的 COM 号(通常为 3)。当您到达这一点时,从 Arduino 库(文件/示例/基础/闪烁)中选择一个草图,例如“闪烁”,并确保您可以上传并运行它。
您现在可以复制草图“电动皮划艇”并将其上传到 Uno,Uno 将使用 Cytron 驱动程序来操作拖钓船马达。一旦将草图加载到 Uno 中,就可以反复使用它。断开 Uno 板的电源不会影响存储的程序。
如果这是您第一次使用 USB 电缆为 Uno 板供电,您将立即看到板上的 LED 闪烁。这告诉您,板子出厂时已经加载了一个草图。闪烁的 LED 是传统的“Hello World”符号,用于介绍新程序。
通过将草图“Blink”上传到板上来测试上述安装。此时一个很好的简短练习是将延迟(在“闪烁”中)从 1000(1 秒)修改为 200(1/5 秒)。上传修改后的“闪烁”后,您会看到一个非常快速闪烁的 LED。本练习展示了更改草图中的参数是多么容易。
接下来的工作是将下面显示的草图复制到 Arduino IDE 的程序列表中。程序如下。
打开 IDE
在“新建”下,您将找到以下基本草图,它显示了草图的两个基本部分:“设置”(仅运行一次)和反复运行的“循环”。当草图中有数字(整数)时,需要在设置部分之前定义它们。
在草图“电动皮划艇”中,我们将有与端口对应的数字(整数)。它们的定义如下例所示:“int KAYAK_PWM= 3;”。这意味着端口 3 将产生 PWM 输出。
在设置部分,我们还将显示端口是用作输入端口还是输出端口。例如:“pinMode(3, OUTPUT);”
在循环部分,示例显示我们将根据选择的速度和旋转方向驱动电机:“analogWrite(KAYAK_PMW, 100*val);”
一个基本的骨架草图如下所示:
无效设置(){
// 把你的设置代码放在这里,运行一次:
}
无效循环(){
// 把你的主要代码放在这里,重复运行:
}
请注意标点、大写字母、空格、下划线和括号都必须符合 C++ 规则。编译器将拾取任何错误,并且进度将停止,直到错误得到纠正。很容易出现标点错误或省略标点符号。小心输入草图!尽可能使用“复制”和“粘贴”编辑功能来复制通过编译测试的代码。
电动皮划艇草图如下。双斜杠 (//) 告诉编译器忽略该行上的其余解释性信息。(如果您需要对编译器发现的错误进行故障排除,它也会派上用场)。
// 把你的设置代码放在这里,运行一次:
int KAYAK_PWM = 3;
诠释 KAYAK_F1 = 4;
诠释 KAYAK_F2 = 5;
诠释 KAYAK_F3 = 6;
诠释 KAYAK_F4 = 7;
诠释 KAYAK_F5 = 8;
诠释 KAYAK_F6 = 9;
诠释 KAYAK_R1 = 10;
诠释 KAYAK_R2 = 11;
诠释 KAYAK_R3 = 12;
诠释 KAYAK_DIR = 13;
整数值 = 0;
无效设置()
{
pinMode(3,输出);
pinMode(4,输入);
pinMode(5,输入);
pinMode(6,输入);
pinMode(7,输入);
pinMode(8,输入);
pinMode(9,输入);
pinMode(10,输入);
pinMode(11,输入);
pinMode(12,输入);
pinMode(13,输出);
}
无效循环(){
// 把你的主要代码放在这里,重复运行:
val=digitalRead(KAYAK_F1);
如果(val == 1){
数字写入(KAYAK_DIR,val);
模拟写入(KAYAK_PWM,60*val);
延迟(1000);
数字写入(KAYAK_DIR,低);
数字写入(KAYAK_PWM,低);}
val=digitalRead(KAYAK_F2);
如果(val == 1){
数字写入(KAYAK_DIR,val);
模拟写入(KAYAK_PWM,80*val);
延迟(1000);
数字写入(KAYAK_DIR,低);
数字写入(KAYAK_PWM,低);}
val=digitalRead(KAYAK_F3);
如果(val == 1){
数字写入(KAYAK_DIR,val);
模拟写入(KAYAK_PWM,100*val);
延迟(1000);
数字写入(KAYAK_DIR,低);
数字写入(KAYAK_PWM,低);}
val=digitalRead(KAYAK_F4);
如果(val == 1){
数字写入(KAYAK_DIR,val);
模拟写入(KAYAK_PWM,120*val);
延迟(1000);
数字写入(KAYAK_DIR,低);
数字写入(KAYAK_PWM,低);}
val=digitalRead(KAYAK_F5);
如果(val == 1){
数字写入(KAYAK_DIR,val);
模拟写入(KAYAK_PWM,140*val);
延迟(1000);
数字写入(KAYAK_DIR,低);
数字写入(KAYAK_PWM,低);}
val=digitalRead(KAYAK_F6);
如果(val == 1){
数字写入(KAYAK_DIR,val);
模拟写入(KAYAK_PWM,160*val);
延迟(1000);
数字写入(KAYAK_DIR,低);
数字写入(KAYAK_PWM,低);}
val=digitalRead(KAYAK_R1);
如果(val == 1){
数字写入(KAYAK_DIR,低);
模拟写入(KAYAK_PWM,60*val);
延迟(1000);
数字写入(KAYAK_DIR,低);
数字写入(KAYAK_PWM,低);}
val=digitalRead(KAYAK_R2);
如果(val == 1){
数字写入(KAYAK_DIR,低);
模拟写入(KAYAK_PWM,80*val);
延迟(1000);
数字写入(KAYAK_DIR,低);
数字写入(KAYAK_PWM,低);}
val=digitalRead(KAYAK_R3);
如果(val == 1){
数字写入(KAYAK_DIR,低);
模拟写入(KAYAK_PWM,120*val);
延迟(1000);
数字写入(KAYAK_DIR,低);
数字写入(KAYAK_PWM,低);}
//延迟(2000);
}
在输入草图并检查它是否编译后,使用“另存为”(在“文件”下)以您选择的文件名保存它。要检索草图,最简单的方法是使用位于所有草图顶部的向上箭头。
设置代码显示我们有 2 个输出端口(端口 3 和 13)。端口 3 为 PWM 端口,用于输出 PWM 信号给 Cytron 驱动器。端口 13 用于向 Cytron 驱动器输出电机方向信号。六速正向运行,三速反向运行电机。端口 4 到 9 是正向速度,而端口 10、11 和 12 是反向速度。“val”的二进制值是一或零。当旋转速度控制开关选择特定的速度程序时,它变为 1。
循环部分由 9 个类似的速度例程组成,用于 6 个前进速度和 3 个倒退速度。根据速度控制开关的设置,每个速度都有自己的 PWM 编号和旋转方向。例如,当开关顺时针转动一个位置(从中心/关闭位置)时,电机将以最慢的速度(PWM 编号 60)在正向 (F1) 上运行。下一个顺时针位置将导致第二个例程变为活动状态。它将在前进方向将速度增加到 PWM 80。接下来的 4 个位置将在前进方向上产生相同的效果。最后一个开关位置以 PWM 为 160 的最大速度运行电机。要激活 3 个反向程序,开关返回到中心/关闭并逆时针转动。每一步都会以与正向增加速度相同的方式反向增加速度。反向例程是例程 7、8 和 9。
查看每个例程中的 7 行代码,我们首先确定哪个例程处于活动状态(如果有)。第一个速度程序是速度 F1(前进 1)。第一行代码决定了“val”的值。它可以是 1 或 0,如果选择了它的开关位置,它只会是 1。中心/关闭将返回 0,任何其他速度也将返回 0,因为任何时候只能选择一种速度。
如果 val 为 0,我们将继续下一个速度例程。但是如果它是一个,意味着速度开关在这个触点上有一个 +5 伏,我们将激活打开大括号(“{”)之后的接下来的 5 行代码,直到我们到达一个闭合大括号(“} ”)。
这些代码的第一行是“digitalWrite(KAYAK_DIR, val). 这意味着我们将使用 +5 伏激活端口 13,以使电机正向转动。
第二行代码是“analogWrite(KAYAK_PWM, 60* val). 这意味着我们将使用一个信号激活端口 3(一个 PWM 端口),该信号会导致 Cytron 驱动程序生成一个持续时间为 60/255 的脉冲。
第三行只是意味着我们在这些操作条件下暂停 1 秒钟。
第四行代码“digitalWrite(KAYAK_DIR, LOW)”关闭端口 13,第五行代码“digitalWrite(KAYAK_PWM, LOW)”关闭端口 3。
我们现在转到循环中的下一个速度例程。最可能的情况是速度开关没有移动,因此,在检查了其他 8 个可能的速度之后,我们在第一个速度例程中再次发现 val = 1。这种情况将再次导致电机运行一秒钟,然后再检查开关位置是否发生变化。这可能会持续几个小时。电机中没有明显的功率损耗,因为 Uno 速度如此之快,以至于绕循环一次(检查其他 8 个速度例程)所需的时间不到 50 微秒,时间间隔太短以至于电机无法注意到。
最终,速度将被改变或速度开关将返回到中心/关闭位置。在这种情况下,val 在任何速度程序中都不会为“1”,并且电机将关闭。此时,可以关闭电子设备的电源,并且可以从控制箱中取出电池组。
在这个非常有趣的部分中,我们看到了大脑(Uno 计算机)如何使用 Cytron 驱动程序控制电池组肌肉,以正向和反向以各种速度运行拖钓电机。Electric Kayak 草图是控制大脑运作的程序。我们首先设置所需的 11 个输入和输出端口。然后,使用 9 个类似的“速度程序”,我们以速度控制开关选择的速度为拖钓船马达通电。同时,电池组电压从 18 伏降至 12 伏,以匹配拖钓船马达的工作电压。
我们已经看到,电动皮划艇是一款 10 英尺长的皮划艇,有 3 个主要附加功能:一个安装电动拖钓电机的微型横梁、一个转向机构和一个控制箱,该控制箱可以在两个方向上以不同的速度运行电机和房屋电池组。在本节中,我们将用照片描述这些添加物,并展示它们是如何安装在皮划艇上的。
下图显示了一个带有电流表、电压表和速度控制器的控制箱。在右侧,可以插入 Ryobi 4 或 6 安培小时电池组。在左侧提供了一个 1 英寸的孔,以便可以将 USB 电缆从 PC 连接到控制箱。在盒子的后盖上有 2 个端子,用于连接电机的两条导线。
控制箱安装在一个 3 英寸高的吊舱上,以避免它被我们通常在皮划艇底部发现的水弄湿。吊舱底部的轮廓类似于皮划艇的底部。它用两个 1/4 英寸平头不锈钢螺钉拧到座椅前部前方约 12 英寸的底部,1¼ 英寸长。控制箱通过 3/16 英寸黄铜(或不锈钢)螺钉 1½ 长和 32 螺纹连接到吊舱。
我用胶合在一起的 2 块 2 x 4 制作了豆荚。它的尺寸约为 3 x 3 英寸。3/16 英寸螺钉穿过吊舱顶部 1.5 英寸的一半。它们凹陷 3/4 英寸,因此它们突出 3/4 英寸。它们与位于 Cytron 板附近的控制箱中的孔相匹配,向前不要太远,以便在卸下后盖时可以用套筒扳手拧紧锁紧螺母。
转向机构只是皮划艇中间附近枢轴上的手臂。连接到手臂底部的是一根绳索,绕着船的两侧,从电动机的控制臂伸出约 2 英尺。用转向手柄拉动控制臂,进而拉动电机控制臂的右侧。它使船向右舷(右)方向转动。下面是转向机构的图片。转向控制臂显示在第 2 节中的电机图片中。
转向机构的构造很简单。1/4 英寸厚的手臂由两个 1/8 厚的铝条制成,大约 1¼ 英寸宽(与手柄直径相同)。两个 1/8 英寸的部分分别长 9 英寸和 10 英寸。它们用 4 个平头、不锈钢、#8、½ 英寸长的螺丝和锁紧螺母用螺栓固定在一起,这样杆的顶部彼此齐平。
枢轴孔是一个 3/8 英寸的孔,从最长杆的底部钻出 5.5 英寸。它可容纳一个 3/8 英寸的螺栓,该螺栓在 ½ 英寸的距离内没有螺纹(以提供光滑的旋转表面)。然后螺栓的螺纹部分将与锁紧螺母的末端齐平。
枢轴的另一半将机制锚定到船的一侧。它由一根 1.5 英寸宽、1/4 英寸厚的铝条(或两个 1/8 英寸厚的条)组成。它(用 2 个合适的螺钉)连接到一个同样长 5 英寸、宽约 3 英寸、厚 2 英寸的木块上。块的背面必须与船侧面的轮廓相匹配,并且其厚度必须允许枢轴臂穿过皮划艇顶部的狭槽,如控制箱照片所示,并且手柄(上)。带式砂光机可以很好地完成这种轮廓工作。
然后用两个 3 英寸长的 ¼ 英寸不锈钢螺钉和锁紧螺母将转向机构和异形垫片连接到船上。这些螺栓穿过垫片和 ¼ 英寸枢轴杆,如上图所示的枢轴臂。
唯一剩下的转向部分是连接到转向臂的手柄。与垫片一样,它由经过压力处理的 2 x 4 透明截面制成。截面为八角形,直径约为 1 1/4 英寸。首先切割 7 英寸长的 2 x 4 块,然后将其制成 1¼ 英寸见方。然后,通过调整台锯上的栅栏和刀片的角度,很容易制作出具有专业外观的八角形。在手柄的一端切出一个 1/4 英寸的槽,用于安装转向臂。用两个 1 1/2 英寸 #6 螺钉和锁紧螺母将臂锁定到位。
将电动机安装在皮划艇上需要等效的横梁。有足够的空间容纳 7 到 10 英寸宽的定制迷你横梁(取决于皮划艇的宽度),以容纳至少需要 6 英寸宽的电机夹。横梁的良好高度为 3 ½ 至 4 英寸,良好的厚度为 2 1/2 英寸。可以按照以下方式从我们的压力处理的 2 x 4 组装一块这种尺寸的木头。2 层 2 x 4 和一层 1 x 4 粘合在一起以获得必要的高度。然后修剪块的末端以匹配皮划艇侧面的线条。在台锯上切割 2 ½ 英寸的厚度。然后,块的底部的轮廓与皮划艇的顶部相匹配,如下图所示。
为了将横梁连接到船,我使用了 ¼ 英寸不锈钢螺纹杆,它通过将船内部的电机动力带到横梁表面来实现双重功能。在左舷,我们有两个螺纹杆,而在右舷,我们只有一个。注意带电的拉杆尽量远离电机的安装支架,以免电池线与电机的连接拧紧时造成短路。
使用两艘皮划艇和两台电机,我们有四种配置来比较四组不同的性能结果。要收集的最重要信息是每个配置的效率。它将由给定功率(以瓦特为单位)产生的运行时间量决定。同样重要的是在每个速度设置下达到的最大速度。
下面的四个图表显示了这些信息。对于每种配置的六个前进速度设置中的每一个,都会测量以下数据:电池电压和电流(相乘时确定以瓦特为单位的功率)和速度。通过单独的测试(桶水测试)确定每个速度设置的运行时间。四种配置如下:
A. 带有 Minn-Kota (MK) 拖钓马达的静坐式(红色)皮划艇
B. 带有 Newport Vessels (NV) 拖钓马达的静坐式皮划艇
C. 带 Minn-Kota 马达的坐式(珊瑚)皮划艇
D. 使用 Newport Vessels 电机的坐式皮划艇
电压和电流读数取自控制台上的仪表。计算以瓦特为单位的功率。速度是使用我 iPhone 上的卫星应用程序“MPH”获得的。当它在船上休息时,它工作得很好。我使用了杯架,它比试图拿着手机好得多。
运行时间通过使用下面描述的桶水测试结果来确定。
确定运行时间,即一个充满电的 4AH 或 6AH 电池,电机可以连续运行的时间,是一项耗时的任务。每台电机必须以 6 种不同的速度设置运行总计近 7 小时,在此期间,水面上的天气条件可能会发生变化。通过在装满水的桶中在更受控的条件下运行电机可以获得更准确的结果。枪管中有更多的湍流,但只要电池的消耗量与马达为船提供动力时的消耗量大致相同,结果就有效。运行时间数字是从桶测试中获得的。下面的曲线和两个图表显示了每个电机的运行时间。
请注意,位置 1a 已添加到桶测试的 6 个前沿位置。添加它是为了产生更低的速度和更少的电池消耗,当电机用于在开阔水域推动船时,这与位置 1 更兼容。测试表明,在相同速度位置下,在开阔水域中,电池消耗比在桶的湍流水中要少得多。为了运行位置 1a 的桶测试,我们简单地将位置 1 的 PWM 数量从 60 减少到 55。
下面两个图表显示了每个电机在 7 个前进位置(包括位置 1a)的运行时间。该数据绘制在下图所示的曲线上,用于确定水测试结果中每个位置的运行时间。这些测试使用额定为 4 AH 的电池。如果使用 6 AH 电池,结果将增加 50%,即位置 1a 的运行时间为 3 小时。请注意,使用任一电机的电池具有相同的特性。
现在我们已经将运行时间与船速(确定范围)相关联,我们可以对四种配置的值进行平均,并显示下面的结果图表。对于每个速度设置,我们都有完全充电的 4 AH 电池产生的平均船速和平均运行时间。
使用一个小型锂离子 4 AH 电池组以 1.7 MPH 的拖钓速度为 10 英尺船供电两小时或以 3.5 MPH 的船体速度为近半小时供电是一项了不起的壮举。我是船操作员,体重 185 磅,所以如果操作员较轻,结果会更好。皮划艇桨手的平均速度为 2.8 MPH。
获得出色的低速结果的主要原因是我们使用了脉冲宽度调制技术。与电阻器相比,它通过将多余的功率转化为热量来浪费能量,从而有效地降低了速度。PWM 技术的一个好处是该软件同时将 18 伏电池组电压转换为拖钓电机所需的 12 伏电压。
为了实现 PWM 电机驱动,我们构建了两个用于插入电池组的控制台。控制台中的另外两个电子元件是 Arduino Uno,它在一个非常简单的软件草图的控制下产生 PWM 信号,以及一个 20 安培的 Cytron 驱动器,用于运行机器人电机。Cytron 只需要 3 根来自 Arduino Uno 的信号线。由于它们的简单性,两个控制台在项目的设计、施工和测试过程中都能完美运行。
Ryobi 电池组也可以完美运行。我以 100 美元的价格购买了两个 4 AH 单位。6 AH 单元也很容易买到,但每个单元的价格超过 100 美元。请务必购买正品 Ryobi 产品。市场上有许多不符合所声称的 AH 规格的“仿制品”。一位产品评论员指出,这些仿冒品的重量远低于正品。
与铅酸电池不同,锂离子电池更小更轻,在从 2 安培到 12 安培的所有放电速率下都满足 4 AH 额定值。内置指示灯可用于监控电池的充电水平。充电器同样工作良好。您可以在大约两个小时内充满电。
这种设计强调了电力推进的快速设置。只需将两根电线连接到电机上。电机通过两个大蝶形螺母连接到迷你横梁上。通过向前倾斜电机,无需进一步调整,转向电缆即可轻松卡在转向杆上。
桶水测试提供了一种可重复的方法来构建确定六种速度设置的运行时间所需的曲线。整个电池充电的连续运行预示着电子设备的可靠性,尤其是 Cytron 电机驱动模块的可靠性,该模块在检查时从未超过温暖。
水测试表明,6 个位置的速度正确响应为每个位置选择的 PWM 编号。位置 3 的平均速度为 2.6 MPH,接近桨手的平均速度 2.8 MPH。在这个速度下,产生约 1/8 马力的 4 AH 电池组将驱动 10 英尺的皮划艇行驶 57 分钟,距离约 2.5 英里。
水测试还表明,传统的坐式皮划艇排水型船体比坐式皮划艇的扁平船体快一点。红色(坐式)皮划艇的吃水线长度为 9 英尺,船体速度为 3 x 1.34,等于 4 节或 4.6 MPH。使用大约 200 瓦功率(大约 1/4 马力)的任一电机,我们都接近达到这个速度
有什么可以改进的?如果我再做一次,我会更多地考虑让控制台防水。在水测试期间我没有遇到水问题,但我可以看到这可能是一个长期的问题。另一个可以改进设计的领域是转向。应该对其进行修改,以便能够进行更急转弯。可能纵横交错的电缆会有所帮助。
在水上度过一天的部分乐趣在于能够处理让船准备好下水的琐事。很少有人在他们的后院有一个码头,让他们可以随时跳上船。顺便说一句,即使是那些船也很少使用。下一个最好的事情是在离家很短的车程内的码头或水上某处的停泊处有一艘船。对于我们大多数人来说,所涉费用的现实迫使我们用拖车或将船运到海滩或汽车或卡车的发射区。
对我来说行不通的是将一艘帆船拖到下水点,然后花很长时间让船准备好下水。我见过人们到达发射区,即使有两个人在做这项工作,也要花一个小时踩桅杆、调整支柱、展开和连接帆、安装舷外机和发射船。然后,他们仍然需要找到一个停靠区和一个停放汽车和拖车的地方。
我也试过充气路线。即使使用最好的泵,手动或电动,也需要付出很多努力才能让船准备好,当你完成后,你最终可能会得到一艘不那么适合航海或令人愉快的船。
因此,在尝试了许多划船选择之后,我很高兴选择一艘我可以自己处理并在几分钟内准备好下水的皮划艇。上面讨论的 10 英尺皮划艇仅重 40 磅,它们很容易装载在汽车或卡车中或放在屋顶上。我曾经以这种方式携带独木舟和铝制船,但我从来没有在高速公路上驾驶过我的屋顶上有大东西的舒适。另一种方法是将船放在 SUV 的后部(离地面只有 30 英寸),并让后舱口部分打开。但这会导致两个问题:内部变脏,打开的舱口在高速行驶时会产生大量的风和噪音。污垢问题只能通过让皮划艇干燥半小时并用毛巾刷好或擦去沙子来缓解。
但是用挡板可以大大降低噪音。然后将噪音水平降低到更像是打开后窗而不是打开舱口。下图显示了我为降噪和防风以及将皮划艇保持在适当位置而建造的挡板。挡板由 2 x 4 英尺的 3/8 胶合板制成。为了提高汽车和挡板之间的密封性,顶部 8 英寸部分由 2 英寸厚的泡沫制成,可适应后窗的轮廓。家得宝以大约 5 美元的价格出售 22 X 22 英寸的 2 英寸正方形泡沫。在我的车里,挡板可以用两个小桶螺栓闩锁(4 美元)连接,这些闩锁滑入通常用于架子的现有孔中。
两块大约 8 x 21 英寸的泡沫以下列方式连接到面板上。用电刀或电动曲线锯在泡沫中间切出一个 1.5 深的槽,以便泡沫可以滑过胶合板的顶部。在每块泡沫中钻四个 3/16 孔,穿过前后 3/4 英寸的木条,并穿过胶合板的顶部。必须冲出穿过泡沫的孔。我使用了带有 2 英寸长的锁紧螺母的 #8 螺钉,但 2 ½ 长的螺钉会使组装更加容易。
面板底部用两个 1/8 英寸的铝板固定,尺寸为 1 ½ x 2 ½ 英寸。它们安装在地毯和汽车装饰之间,如下图所示。
皮划艇伸出舱口约 18 英寸,舱口下来停在船上。舱口和船之间的垫子可以避免划伤和嘎嘎声。需要两个强大的冲击弦来保持舱口向下。在我的车里,当舱门打开时会响起警报。这个问题很容易解决。通过使用一字螺丝刀将锁定机构触发到关闭位置,可以诱骗警报器认为舱口已锁定。确保在关闭舱口之前解锁它(使用答题器)。
启动皮划艇
启动皮划艇很容易。将其拖到水中,并用大旋钮将拖钓马达固定在横梁上。电机的电源由从横梁突出的 2 个端子提供(红色为 +,它连接到前螺栓)。然后电机向前倾斜,两条转向线的末端卡在转向杆上。将电机返回到锁定位置以拉紧线。然后将电池组卡入控制箱中,您很快就可以在水上度过愉快的一天。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !