vrchat吧 关注:41,999贴子:395,143

【记录.教程】手搓SlimeVR动作追踪器

只看楼主收藏回复

1. 前言
本来其实是打算准备来玩VRChat的,但事实上极度社恐的我根本不适合玩这种游戏……
当时由于我看互联网上现成的模块价格都十分昂贵(溢价率超过100%),所以说我就有了自己DIY的想法。即使我不会拿来真正用来玩游戏,但我只是很享受折腾的过程罢了。
我并不认为唯结果论是完全对的,我认为折腾的经历过程所收获的经验是买一个成品所无法获得的。这段体验和经历是金钱无法购买的,可以在我的人生历程上添上更丰富的一页。这就是DIY和折腾的乐趣吧~
LZ陆陆续续折腾了快一个月,最后终于折腾出来了,分享下自己制作的经验吧


IP属地:江苏1楼2024-09-10 19:45回复
    2L备用
    最终成品如下,用硬纸板真的仅仅只是为了图省事罢了(


    IP属地:江苏2楼2024-09-10 19:47
    回复
      2025-07-31 00:33:34
      广告
      不感兴趣
      开通SVIP免广告
      本贴的文档版本链接,由于直接发出来老是被吞,就这样吧...


      IP属地:江苏3楼2024-09-10 19:52
      收起回复
        2.材料准备
        在制作前,我们需要准备好材料,材料有必需品和非必需品,根据你所需来准备吧!
        必需品:
        1. IMU(惯性测量单元) 至少5个
        推荐的跟踪器放置位置
        5 个追踪器:胸部、大腿和小腿。
        6 个追踪器:胸部、臀部、大腿和小腿。
        7 个追踪器:胸部、腰部、臀部、大腿和小腿。
        8 个追踪器:胸部、臀部、大腿、小腿和脚。
        9 个追踪器:胸部、腰部、臀部、大腿、小腿和脚。
        10 个追踪器:胸部、臀部、大腿、小腿、脚和上臂。
        11 个追踪器:胸部、腰部、臀部、大腿、小腿、脚和上臂。
        12 个追踪器:上胸部、胸部、腰部、臀部、大腿、小腿、脚和上臂。
        14 个追踪器:上胸部、胸部、腰部、臀部、大腿、小腿、脚、上臂和肩部或小臂(仅适用于 VRChat 肩部追踪)。
        根据你的需求准备材料。
        2. MCU(与IMU配套获取追踪数据的单片机) 数量与IMU配套】
        IMU和MCU的推荐我们留在第二章讲
        3. 28AWG电子线若干
        (你当然可以用更粗的,但是IMU和MCU都很小,细一点的更方便焊接)
        4. 扁平锂聚合物电池 数量与IMU配套
        这里推荐至少1000mha,但也不建议使用太高的,因为会大大增加质量。另外貌似使用过低容量的锂电池会显著降低锂电池的使用寿命(忘了从哪看来的了)
        每100mha的电量大概够支撑整个追踪模块使用1小时左右。

        5.TP4056充电模块 数量与IMU配套

        6. 电烙铁+焊锡丝+烙铁头+烙铁头清洁海绵海绵
        焊锡丝建议用0.3mm的,过粗的在焊这种小器件时不好用
        烙铁头建议准备好尖头 刀头 马蹄头的
        7. 绑带 数量与IMU配套
        绑带建议购买40-1500px的用来绑带大腿。
        小腿、胳膊感觉20-1000px就够了,
        90-3000px的来绑胸部、腰部、臀部,这个尺寸长度应该对于大部分人来说是够用的。当然实际尺寸肯定需要根据你的身体尺寸来算的。
        或是用软尺来测量,然后根据尺寸购买是最好的。毕竟每个人都长得不一样。
        8.剥线钳
        9.拨动开关若干尺寸根据自己需要选择


        IP属地:江苏4楼2024-09-10 19:55
        收起回复
          非必需品(可选)
          1. 热风枪+焊锡膏(建议中温)
          注意,如果你要和我一样自己来焊接IMU,你一定需要购买热风枪和锡膏,因为IMU芯片要焊接到PCB版上,用电烙铁是不可能的!如果你使用现成的IMU模块则不需要。
          2. 二极管 1N5819/1N5817
          二极管的作用是防充电涌流,可以让你边充电边打开开关使用,不加二极管充电时则不能打开开关!
          3.180k电阻(不是贴片电阻)
          这个电阻是用来检测剩余电量的,事实上SlimeVR本身在机器电量低时就会闪烁,我自己是没有装的,所以说教程里不会写如何安装,具体请参阅官方文档。
          4.贴片电阻/电容/诸如此类的贴片模块
          适用于你和我一样自己焊接IMU,根据你的PCB板上所需的元件准备
          5.防护器具
          比如口罩、护目镜、手套
          6.电工胶带
          7.镊子
          焊贴片时要用到的,不和我一样自己焊IMU不怎么用得到,但我其实也建议你准备一个,毕竟价格也不贵
          1. 杜邦线+排针+面包板一块
          使用杜邦线的好处是方便你接完MCU和IMU就到SlimeVR里进行测试的,你也可以直接线焊接到焊孔里,代价是如果出问题了DEBUG很麻烦,而且不方便拆卸。面包板仅仅是为了方便焊接排针用的,别想太多(
          9.吸锡器、助焊剂等等
          其实这些东西我全程没用到,看你会不会需要用吧,需要就准备。
          10.热熔胶和热熔胶枪
          用来给部件固定用的
          另外,不建议你看完前两章就立马下单把东西买起来,建议先把完整的教程过一遍再根据自己所需买材料(或是放弃——


          IP属地:江苏5楼2024-09-10 19:57
          回复
            3. 准备你的IMU和MCU
            到这一部分我们就要开始正式的制作了,首先我会放出SlimeVR的官方文档,如有需要,你还是需要参阅官方的文档的,因为我这篇文档肯定不可能面面俱到的。
            https://docs.slimevr.dev/
            3.1首先是MCU的选择,MCU充当着一个用于接收IMU的数据,并传回SlimeVR服务器的功能,有了MCU,你才能通过SlimeVR服务器来通讯,让骨骼动起来。
            官方最推荐的MCU是Wemos D1 Mini,你可以在类似淘宝网上的购物平台来买到所需要的东西,这块MCU目前的价格大约是10元左右。

            当然,其实你也可以买别的,但是本教程使用的是WemosD1Mini。如果你要执意使用别的MCU,记得驱动别装错!
            3.2然后就是IMU,如果说MCU是心脏,负责将血液泵入各个器件。那IMU则就是大脑了。因为IMU的好坏直接决定了你追踪的效果。
            IMU的比较具体参阅文档的这部分:
            https://docs.slimevr.dev/diy/imu-comparison.html
            不想看英语文档的我会为大家直接来总结其中的内容。
            首先就是大家熟知的 BNO085

            效果是最好的,也是官方最推荐的。缺点是,价格实在太贵了!目前大概国内一个模块要80元左右,而相较于我DIY制作的BMI270,它的成本只有,8块不到。。。。也就是说,你买一块BNO085我都能做10个BMI270的,最关键它们效果差不了多少的。(因为实际使用BNO085也会关掉磁力计,而仅仅使用6轴来追踪的)即使有差距,也绝不会差距10倍!
            这也是我决定DIY的根本性原因。
            第二推荐的就是BMI270了 便宜实惠性能也好,也是我最为推荐的。
            缺点是网上没有模块购买(唯一一家卖的要40块,你怎么不去抢)
            需要你和我一样自己手搓模块。

            第三的是BMI160,性能似乎比BMI270低一些。

            唯一的优势是有模块可与直接买,不用你和我一样手搓了。模块价格一般8元左右(对,和BMI270的成本价格差不多,所以说我选择自己手搓BMI270了,尽管买工具花了远远不止这点钱)
            第四的是ICM20948
            目前模块的价格国内貌似是30元左右,我不怎么推荐。因为这样单块的价格也要4倍的BMI270的花费了,其性能肯定不会有那么多提升,并且可用性测试并不足,可能问题会比较多。

            剩余的IMU选项都是官方不推荐的,我也不在此列出了,有兴趣的可与去官方文档自己看。


            IP属地:江苏6楼2024-09-10 20:06
            回复
              3.3手搓IMU(建议跳过)
              这部分是关于如何手搓BMI270的,有兴趣折腾的可以看。
              我会手搓是因为BMI270网上实在没模块买。能买模块的真不建议手搓,太折腾了(这东西占据了我整个制作的70%时间)
              这是BMI270的原理图。采用的是已有的方案。
              https://store.kouno.xyz/products/bmi270-breakout-board
              来源于这里,当然,你接受的起运费可以2.5欧一个直接买。

              绘制PCB版

              我会把已经做完的BMI270的嘉立创工程文件一块放出,需要的你可以在嘉立创上进行打板(搜索嘉立创免费打板教程可以直接白嫖),我这里不具体说了。(工程文件在上面的网盘链接里)
              使用这个方案你还需要准备2.54mm*7、2.54mm*5的排针、3.9K贴片电阻、0欧的贴片电阻(用于跳线)、100nf的贴片电容若干,皆为0603封装。


              IP属地:江苏7楼2024-09-10 20:10
              回复
                看到这,你可能看不大懂了?别急,我也没任何嵌入式经验,学习焊接和看原理图就是从做这东西开始的。当然,PCB版我请别人来画了,我只负责了焊接,it just works就行!
                焊接只需要根据PCB上的元件标识把东西焊上去就可以了,由于中间的IMU芯片引脚全在背面,所以说只能用锡膏来焊接,别指望使用电烙铁了。要做这个一定要准备热风枪和锡膏哦~(当然肯定有杠精要说:我可以跳线啊!)
                简单来说,你只要看上面的丝印,知道R是电阻,C是电容,U是表示那些没有特定分类的元件(这里表示IMU芯片)就行了。然后具体用什么阻值的什么规格的元件要参阅原理图。

                比如这张原理图上写的就是C1 C2是100nf的电容、R1 R2R3 R4是3.9k的电阻、R5是0K的跳线电阻。然后根据PCB上的印刷,把对应的元件焊上去就可以了噢!当然,不要把不同规格的元件焊搓,这样你需要重新加热元件来解焊。
                另外特别要注意的是,IMU芯片是有方向的!!!

                看见这个黄色的点了吗,这是为了方便你芯片焊接准确而存在的,芯片上的点的方向要对着靠近PCB焊接的点的方向,不要焊反了!



                IP属地:江苏8楼2024-09-10 20:22
                回复
                  2025-07-31 00:27:34
                  广告
                  不感兴趣
                  开通SVIP免广告
                  焊接排针时可以使用面包板辅助焊接,前面也提过了,焊接排针是方便测试和拆卸。


                  IP属地:江苏9楼2024-09-10 20:23
                  回复
                    太强了,可以找3d打印做一个外壳,就更好啦,我会建模和3d打印,可以帮你做


                    IP属地:黑龙江来自Android客户端10楼2024-09-10 20:39
                    收起回复
                      4. 焊接MCU与IMU、安装SlimeVR和刷固件
                      不会焊接的小伙伴们可以去网上找点教程看,比如说在B站上有很多焊接的教程,我也就随便找了几个视频看了下就开干了,一点都不难(真的,除了出了点小意外手上被打了几个烙印,所以说可以的话请务必做好防护哟!)
                      4.1下面就是准备好MCU和IMU了,我们目前只需要焊接这两个,因为还要做测试呢。
                      首先来到官方文档的这个页面
                      https://docs.slimevr.dev/diy/tracker-schematics.html
                      然后选择你使用的IMU(我使用的是BMI270),下面的图片就会显示焊接的方法了,如果你使用二极管或是额外的电阻或是第二块辅助IMU(本教程这里不讲)你可以勾选一下左下角的选项。我这里使用二极管,所以说勾了一下。

                      之前说过了,做测试只要连IMU和MCU的线就行了,下面的开关 电池 TP4056都不需要先焊好!
                      也就是说,你要先连好3v3 ground SCL SDA就可以了。
                      要注意的是,地线那里要分线,你可以选择买1分2的杜邦线,然后母头插在MCU的排针上,然后剪掉另外两头中的一头的连接器,一头日后接开关,一头接IMU的排针。
                      也可以学我不额外买1分2的杜邦线,用一根杜邦线剪掉其中一头,然后再拿一跟电子线,都剥开其中的外壳,将两根电线缠在一起焊接在开发板上。

                      像这样,然后把捆好的电线焊接在开发板的焊孔上就行了。

                      就像这样

                      另外你也发现了吧,排针不是全用到的,不用到的排针可以偷懒不焊(
                      别在乎下面垫着的硬纸板,本来是起额外固定作用的,后面测试的时候实际上一点用都没的,后面被我拆掉了。


                      IP属地:江苏11楼2024-09-10 21:19
                      回复
                        至此,主要功能就做完了,其他都只是为了供电用的,现在就是刷固件测试IMU和MCU能不能用了。
                        所以说,你甚至可以这样


                        IP属地:江苏13楼2024-09-10 21:22
                        回复
                          很好的教学


                          IP属地:广东来自Android客户端14楼2024-09-11 06:39
                          回复
                            可以啊,一下子看到了我大学时候的劲,加油


                            IP属地:浙江15楼2024-09-11 12:11
                            回复
                              2025-07-31 00:21:34
                              广告
                              不感兴趣
                              开通SVIP免广告
                              这个东西吧,跟VRC相关的开发有点烦,因为拿不到相关的开发文档,VRC官方文档也说了,大概意思就是我们能够很好的兼容HTC,其他类似的我们一概不确定。
                              想想这事情也能明白,毕竟HTC是VRC的股东。


                              IP属地:浙江16楼2024-09-11 12:13
                              回复