前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >留出300个小时,手把手教你做一个乐高潜水艇!网友看了都直呼大师之作

留出300个小时,手把手教你做一个乐高潜水艇!网友看了都直呼大师之作

作者头像
大数据文摘
发布2022-07-19 20:11:48
5850
发布2022-07-19 20:11:48
举报
文章被收录于专栏:大数据文摘大数据文摘

大数据文摘出品

作者:kazuha

乐高被玩出花是不是已经不新鲜了?

比如这个叫大卫·阿吉拉尔(David Aguilar)男孩因右臂发育不良,就自己利用乐高来制作了义肢

或者是用乐高DIY一个高精度电动显微镜

但是文摘菌敢说,这次的乐高也绝对能让你大吃一惊。

看到了吗,这水中矫捷的身影,一个漂亮的U型回转然后急速刹车,再沉着冷静地向上浮去。‍

再看实际演练过程中,“船长”一脸镇定地操作,即使是在自然环境中也没有丝毫退却的意思。

就是你想的那样,这个潜艇正是利用乐高制作的。

该视频在YouTube上也是引起了热烈讨论,两三天观看人数就已经接近3万人次。

这不,有网友就直呼,“又是一个大师之作!”

也有网友表示,镜头清晰度令人震惊,对于低成本水下远程拍摄来说,这也是一个很好的概念验证。

接下来,就和文摘菌一起揭开这个乐高潜艇的面纱~

乐高和树莓派竟是“绝配”!

做好准备,开工!

我们先备上一个60毫升的注射器,将乐高齿轮架(零件编号3743)放在注射器杆旁,末端的灰色部分可以帮助固定机架线。

在此基础上要将齿轮用力推到齿条上,以确保其它们就不会乱动。在这里可以放置两个8齿齿轮(10928)从两侧推动杆,这也可以帮助固定齿条。

然后要用注射器的一个手柄把齿轮按杆的方向纵向固定住,这个过程需要大量的试错和实验。

乐高变速箱(6588)有24:1的齿轮减速比。它需要一个蜗轮 (4716) 和一个24齿齿轮 (3648) 才能工作,除了将扭矩增加24倍、减少摩擦外,它还非常紧凑,很适合用在潜艇上。

乐高电机选用的是EV3中型电机,里面的转速表可以用来跟踪注射器位置,将其与树莓派连接上。这里可以剪断一条EV3电缆,在末端压接杜邦母线连接器。

接下来需要用到Python来读取转速表,两个转速计信号可以根据哪个信号首先变为1来了解旋转方向。

tachoPower = DigitalOutputDevice(20)tachoA = DigitalInputDevice(16)tachoB = DigitalInputDevice(19)tachoAValue = tachoA.valuetachoBValue = tachoB.valuedef tachoA_rising(): global tachoCount global tachoAValue global tachoBValue tachoAValue = 1 if tachoBValue == 0: #A in rising edge and B in low value # => direction is clockwise (shaft end perspective) tachoCount += 1 else: tachoCount -= 1def tachoA_falling(): global tachoAValue tachoAValue = 0def tachoB_rising(): global tachoCount global tachoAValue global tachoBValue tachoBValue = 1 if tachoAValue == 0: tachoCount -= 1 else: tachoCount += 1def tachoB_falling(): global tachoBValue tachoBValue = 0tachoA.when_activated = tachoA_risingtachoA.when_deactivated = tachoA_fallingtachoB.when_activated = tachoB_risingtachoB.when_deactivated = tachoB_fallingtachoPower.value = 1

tachoPower = DigitalOutputDevice(20)tachoA = DigitalInputDevice(16)tachoB = DigitalInputDevice(19) tachoAValue = tachoA.valuetachoBValue = tachoB.valuedef tachoA_rising(): global tachoCount global tachoAValue global tachoBValue tachoAValue = 1 if tachoBValue == 0: #A in rising edge and B in low value # => direction is clockwise (shaft end perspective) tachoCount += 1 else: tachoCount -= 1def tachoA_falling(): global tachoAValue tachoAValue = 0def tachoB_rising(): global tachoCount global tachoAValue global tachoBValue tachoBValue = 1 if tachoAValue == 0: tachoCount -= 1 else: tachoCount += 1def tachoB_falling(): global tachoBValue tachoBValue = 0 tachoA.when_activated = tachoA_risingtachoA.when_deactivated = tachoA_fallingtachoB.when_activated = tachoB_risingtachoB.when_deactivated = tachoB_falling tachoPower.value = 1

注射器范围设置在3毫升至45毫升之间。

代码语言:javascript
复制
SYRINGE_POS_MIN     = 3     #syringe ballast min pos [ml]SYRINGE_POS_MAX     = 45    #syringe ballast max pos [ml]SYRINGE_TACHO_COUNT = 19000 #tacho count from syringe min to max posSYRINGE_HYSTERESIS  = 360   #motor+gearbox+syringe backlash/hysteresis [tacho counts]
#calculate syringe positionif tachoCount > trueTachoCount:    trueTachoCount = tachoCountelif tachoCount < trueTachoCount - SYRINGE_HYSTERESIS:    trueTachoCount = tachoCount + SYRINGE_HYSTERESISsyringePos = SYRINGE_POS_MIN + SYRINGE_POS_MAX * \             trueTachoCount / SYRINGE_TACHO_COUNT  #[ml]

通过游泳池测试运行的注射器位置数据可以看到,有效操作范围约25毫升,大约是注射器的一半。

不就是造一个船体吗(狗头

接下来可以制作船体部分了。

预先准备好两个有机玻璃亚克力塑料圆柱体,外径11厘米和10厘米,长度均为25厘米,厚度均为3毫米。

再还没有把它们焐热的时候,先从小圆柱体上锯下2厘米长部分。

在一块由苯乙烯-丙烯腈制成的塑料板上取下2块大小合适的圆形切片。

然后需要将切下来的圆柱体粘到圆形切片上,注意粘合需要防水且牢固。

然后需要对其进行防水密封,这里可以使用O型线圈

安装盖子也是一个挑战,你必须得用指尖把O型圈推到缝隙中,否则它就会滑出来。秘诀是,先进入盖子的底部,然后用力将整个盖子向下推,挤压O形圈,同时将顶部翻入。

还需要在盖上开一个洞来让水进出注射器。此外,还需要使用外部水来测量深度。钻好孔后,将两根4毫米直径乐高气动软管(21825)穿过孔。

在进行组装时,螺旋桨电机必须位于背面才能与磁力联轴器连接;注射器需要空间才能完全延伸,可以安装在电机下方或上方;电池很大,可以安装在前盖附近,也可以用手指方便进行开关操作。

在螺旋桨的选择上,主螺旋桨可以使用4x4.5的Diatone Bull Nose,在螺旋桨两侧贴一块双面胶带,将带有轴孔的圆形乐高板(4032)推到两侧,在车轴上添加乐高半衬套 (4265a) 以保持两端安全。

转弯螺旋桨可以乐高螺旋桨3叶片3直径轴孔(6041)。

接下来就可以……继续盖盖子了。

首先在盖子的两侧贴了一条低摩擦胶带,磁铁上添加硅润滑剂,用棉签清除脏污,添加磁耦合,插入乐高,主要添加了一个8齿齿轮 (10928) 和一个用于转动螺旋桨的轴,以及一个连接件 (48496),用两个锥齿轮 (6589) 进行L形转弯。

再装上压力传感器和激光距离传感器,就可以准备出海了

开上我心爱的小潜艇

带着我们做好的潜艇上路吧!

在水箱测试中,不管是压力传感器还是激光距离传感器,都能正常工作。

在泳池测试中,由于可施展空间更大,不管是转弯还是用螺旋桨加速前进,也都能很好地得以验证和演算。

在完成了初步测试后,我们还可以把潜艇放在自然界的河流里进行最后的模拟测试。

在这段长达200米的行进中,潜艇不仅能躲过各种障碍物正常运转,还拍摄到了非常清晰的水下图景。‍

给我们的“船长”一个大特写:

尽管看上去十分炫酷,但是作者也很真诚的给大家拔了播草。作者表示,前前后后整个构建过程太过复杂,可能花了300个小时左右。

同时目前还存在由于密封严密且需要平衡内部压力,端盖部分尤其复杂;转动螺旋桨太弱;潜艇在以最高速度行驶时不会直线行驶;测速脉冲有时会丢失,需要修复注射器位置参数等问题。

尽管目前已经做了4个版本的乐高潜艇,作者还在想对其进行改进,比如改造端盖使其更易于安装并添加锁定机制,更换无线电控制板,拆下激光距离传感器,增加转动螺旋桨尺寸或齿轮比等等。

文摘菌的脑子已经被这个乐高潜艇炫酷晕了,不知道大家对这个小潜艇有什么看法,欢迎在评论区留言讨论~

相关报道:

https://brickexperimentchannel.wordpress.com/rc-submarine-4-0-blog-post-series/

https://www.youtube.com/watch?v=KLEH8RJsYgI

点「在看」的人都变好看了哦!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据文摘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档