mirror of
https://github.com/EyeTrackVR/EyeTrackVR-Docs.git
synced 2025-11-04 14:49:44 +08:00
2 lines
15 KiB
JavaScript
2 lines
15 KiB
JavaScript
import{_ as f,o as i,c as o,k as s,F as u,D as m,t as r,e as w,p as A,m as _,H as k,a as p,Q as S}from"./chunks/framework.85565f3c.js";const y={data(){return{tracker:2,components:[{name:"ESP Microcontroller",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:1.85,costAll:()=>this.tracker*0,links:"If you already have a supported camera capable ESP32 or sourced elsewhere."},{name:"Seeed Studio XIAO Sense ESP32-S3",amount:()=>this.tracker,cost:12.87,costAll:()=>this.tracker*12.87+3.18,links:'<a href="https://www.aliexpress.com/item/3256804601970891.html">AliExpress XIAO Sense</a> Recommended'},{name:"ESP32-CAM",amount:()=>this.tracker,cost:12.87,costAll:()=>this.tracker*4.69+3.18,links:'<a href="https://www.aliexpress.us/item/3256806008099661.html">AliExpress ESP32 CAM</a> Requires additional programmer'},{name:"FREENOVE ESP32-S3-WROOM",amount:()=>this.tracker,cost:19.95,costAll:()=>this.tracker*19.95,links:'<a href="https://www.amazon.com/FREENOVE-ESP32-S3-WROOM-Compatible-Wireless-Detailed/dp/B0BMQ8F7FN">Amazon</a> Large, more expensive than XIAO'}],selectedChoice:1,isOpen:!1},{name:"Camera",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:"If you already have a supported camera or sourced elsewhere."},{name:"130 Degree NO-IR",amount:()=>this.tracker,cost:5.41,costAll:()=>this.tracker*5.41,links:'<a href="https://www.aliexpress.com/item/3256802853835121.html">AliExpress</a> Select "Color: 75MM-130 Degree" Must manually remove IR filter'},{name:"160 Degree IR",amount:()=>this.tracker,cost:4.26,costAll:()=>this.tracker*4.26,links:'<a href="https://www.aliexpress.com/item/3256802853835121.html">AliExpress</a> Select "Color: 75MM-160 850nm"'}],selectedChoice:1,isOpen:!1},{name:"IR LEDs",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:'<a href="https://docs.eyetrackvr.dev/getting_started/led_safety">IR LED Safety<a/> If you already have safe IR LED hardware and know what you are doing.'},{name:"Official V4 mini Solder-less Kit",amount:()=>1,cost:28,costAll:()=>this.tracker+28+3,links:'<a href="https://store.eyetrackvr.dev/products/v4-mini-fully-solderless-kit">ETVR Store</a> Length depending on HMD'},{name:"Official V4 mini Bring Your Own Wires Kit",amount:()=>1,cost:24,costAll:()=>this.tracker+24+3,links:'<a href="https://store.eyetrackvr.dev/products/v4-mini-some-assemblly-required">ETVR Store</a> Must solder up your own wires'},{name:"Official V4 lite Assemble Yourself",amount:()=>1,cost:7,costAll:()=>this.tracker+7+3,links:'<a href="https://store.eyetrackvr.dev/products/v4-1-lite-diy-led-kit">ETVR Store</a> Must assemble yourself'}],selectedChoice:2,isOpen:!1},{name:"USB Hub",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:"If you already have safe IR LED hardware and know what you are doing."},{name:"4 port USB 3.2 LDLrui (MTT Usually)",amount:()=>1,cost:17.99,costAll:()=>this.tracker+17.99,links:'<a href="https://www.amazon.com/dp/B09NDQRLBT/">Amazon</a> Usually these are MTT, but sometimes not'},{name:"4 port USB 3.2 Sitecom CN-385 Hub (MTT)",amount:()=>1,cost:40.53,costAll:()=>this.tracker+17.99,links:'<a href="https://www.amazon.com/gp/product/B07YN54Q33/">Amazon</a> Known good MTT hub, but expensive'},{name:"4 port USB 2.0 Breakout (Not MTT)",amount:()=>1,cost:1.41,costAll:()=>this.tracker+1.41+1.99,links:'<a href="https://www.aliexpress.us/item/3256801220206638.html">AliExpress</a> Small but non MTT hub breakout'},{name:"3 port USB 3.0 Hub With Power Passthrough (MTT)",amount:()=>1,cost:17.99,costAll:()=>this.tracker+1.41,links:'<a href="https://www.amazon.com/uni-Charging-Thunderbolt-Aluminum-Pixelbook/dp/B08SVZFFPP/">Amazon</a> Great for Quest due to power passthrough'}],selectedChoice:1,isOpen:!1},{name:"3D Printed Mounts",choices:[{name:"Print Yourself",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:"If you have a 3d printer or have access to one somewhere."},{name:"JLCPCB Print Service, JLC3DP",amount:()=>this.tracker,cost:2,costAll:()=>this.tracker*2+5,links:'<a href="https://jlc3dp.com/3d-printing-quote">JLC3DP</a> '}],selectedChoice:0,isOpen:!1}],total:0}},methods:{updatePrices(){let e=0;this.components.forEach(a=>{if(a.choices.length>1){const l=a.choices[a.selectedChoice];e+=l.costAll(this.tracker)}else a.choices.length===1&&(e+=a.choices[0].costAll(this.tracker))}),this.total=e},toggleDropdown(e){this.components.forEach(a=>{a!==e&&(a.isOpen=!1)}),e.isOpen=!e.isOpen},isOptionsAbove(e){if(this.$refs[`select-${e.name}`]){const a=this.$refs[`select-${e.name}`].getBoundingClientRect();return window.innerHeight-a.bottom<200&&a.top>200}return!1},selectOption(e,a){e.selectedChoice=a,e.isOpen=!1,this.updatePrices()},closeAllDropdowns(){this.components.forEach(e=>{e.isOpen=!1})},handleOutsideClick(e){e.target.closest(".custom-select")||this.closeAllDropdowns()}},mounted(){this.updatePrices(),document.addEventListener("click",this.handleOutsideClick)},beforeUnmount(){document.removeEventListener("click",this.handleOutsideClick)}},b=e=>(A("data-v-389bd90e"),e=e(),_(),e),v={class:"table-container"},E=b(()=>s("thead",null,[s("tr",null,[s("th",{class:"component-col"},"Component"),s("th",{class:"choice-col"},"Choice"),s("th",{class:"amount-col"},"Amount"),s("th",{class:"cost-col"},"Cost"),s("th",{class:"cost-all-col"},"Cost All"),s("th",{class:"links-col"},"Links")])],-1)),O={class:"component-col"},x={class:"choice-col"},B=["onClick"],P={class:"selected-option"},T={key:0,class:"options"},D=["onClick"],I={key:1},R=["innerHTML"];function M(e,a,l,C,c,n){return i(),o("div",v,[s("table",null,[E,s("tbody",null,[(i(!0),o(u,null,m(c.components,t=>(i(),o("tr",{key:t.name},[s("th",O,r(t.name),1),s("td",x,[t.choices.length>1?(i(),o("div",{key:0,class:"custom-select",onClick:h=>n.toggleDropdown(t)},[s("div",P,r(t.choices[t.selectedChoice].name),1),t.isOpen?(i(),o("div",T,[(i(!0),o(u,null,m(t.choices,(h,d)=>(i(),o("div",{key:d,onClick:g=>n.selectOption(t,d),class:"option"},r(h.name),9,D))),128))])):w("",!0)],8,B)):(i(),o("span",I,r(t.choices[0].name),1))]),s("td",null,r(t.selectedChoice?t.choices[t.selectedChoice].amount(c.tracker):0),1),s("td",null,r(t.selectedChoice?"$"+t.choices[t.selectedChoice].cost.toFixed(2):0),1),s("td",null,r(t.selectedChoice?"~$"+t.choices[t.selectedChoice].costAll().toFixed(2):0),1),s("td",{innerHTML:t.selectedChoice?t.choices[t.selectedChoice].links:""},null,8,R)]))),128))])]),s("p",null,"Total: $"+r(c.total.toFixed(2)),1)])}const W=f(y,[["render",M],["__scopeId","data-v-389bd90e"]]);const $={data(){return{tracker:2,components:[{name:"Type A USB Breakout",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:1.85,costAll:()=>this.tracker*0,links:"If you do not need or already have."},{name:"Type A USB Breakout Bare (AliExpress)",amount:()=>1,cost:1.18,costAll:()=>this.tracker+1.18,links:'<a href="https://www.aliexpress.us/item/2255801092919590.html">AliExpress</a>'},{name:"Type A USB Breakout Bare (Amazon)",amount:()=>1,cost:6.49,costAll:()=>this.tracker+5.49,links:'<a href="https://www.amazon.com/10Gtek-DIP-Breakout-Adapter-2-54mm/dp/B09LC8WQCD/">Amazon</a>'},{name:"Type A USB Breakout With Cover (AliExpress)",amount:()=>1,cost:2.2,costAll:()=>this.tracker+1.2+1.99,links:'<a href="https://www.aliexpress.us/item/2251832820552545.html/">AliExpress</a>'},{name:"Type A USB Breakout With Wire and Cover (Amazon)",amount:()=>1,cost:9.6,costAll:()=>this.tracker+8.6,links:'<a href="https://www.amazon.com/Pigtail-Extension-Cables-Connector-Replacement/dp/B09ZQNJ2DJ/">Amazon</a>'}],selectedChoice:0,isOpen:!1},{name:"USB-C Breakout",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:"If you do not need or already have."},{name:"AliExpress Male & Female",amount:()=>1,cost:1.19,costAll:()=>this.tracker+1.19+1.37,links:'<a href="https://www.aliexpress.us/item/3256801151667308.html">AliExpress</a> Choose: "Color: 5Set".'},{name:"AliExpress Vertical Male",amount:()=>1,cost:2.37,costAll:()=>this.tracker+.37+1.99,links:'<a href="https://www.aliexpress.us/item/3256804002116469.html">AliExpress</a>'}],selectedChoice:0,isOpen:!1},{name:"Wire for ESPs",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:"If you do not need wire or already have."},{name:"Silicone Wire Kit",amount:()=>1,cost:5.96,costAll:()=>this.tracker+5.96+.99,links:'<a href="https://www.aliexpress.us/item/3256806164419666.html">AliExpress</a> 30 AWG or lower'},{name:"Generic Wire",amount:()=>1,cost:.7,costAll:()=>this.tracker+.7+1.24,links:'<a href="https://a.aliexpress.com/_mK72cy6">AliExpress</a> Select "Specification: 30 AWG or lower"'}],selectedChoice:0,isOpen:!1},{name:"Wire for LEDs",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:"If you do not need wire or already have."},{name:"Silicone Wire Kit",amount:()=>1,cost:5.96,costAll:()=>this.tracker+5.96+.99,links:'<a href="https://www.aliexpress.us/item/3256806164419666.html">AliExpress</a> 30 AWG or higher'},{name:"Generic Wire",amount:()=>1,cost:.7,costAll:()=>this.tracker+.7+1.24,links:'<a href="https://a.aliexpress.com/_mK72cy6">AliExpress</a> Select "Specification: 30 AWG or higher"'}],selectedChoice:0,isOpen:!1},{name:"Camera Extension Cables",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:"If you do not need or already have."},{name:"AliExpress 24pin 0.5mm Pitch",amount:()=>1,cost:1.33,costAll:()=>this.tracker+.33+1.99,links:'<a href="https://www.aliexpress.us/item/2255799835842411.html">AliExpress</a> Choose: "Insert Type: 24p 0.5mm pitch" and Type A. Length depends on HMD, usually 150mm or 200mm.'},{name:"Adafruit 24 pin 0.5mm pitch",amount:()=>this.tracker,cost:1.35,costAll:()=>this.tracker*1.35+6,links:'<a href="https://www.adafruit.com/product/4230">Adafruit</a> 250mm'}],selectedChoice:0,isOpen:!1},{name:"Camera Extension Connectors",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:"If you do not need or already have."},{name:"AliExpress 24 pin",amount:()=>1,cost:1.32,costAll:()=>this.tracker+.32+1.99,links:'<a href="https://www.aliexpress.us/item/3256804096715690.html">AliExpress</a> Choose: "Pins: 24P".'},{name:"Adafruit 24 pin",amount:()=>this.tracker,cost:.86,costAll:()=>this.tracker*.865+6,links:'<a href="https://www.adafruit.com/product/4524">Adafruit</a>'}],selectedChoice:0,isOpen:!1},{name:"External Antennas",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:"If you do not need or already have."},{name:"AliExpress Small",amount:()=>1,cost:.16,costAll:()=>this.tracker*.16+3.48,links:'<a href="https://www.aliexpress.us/item/2251832800433720.html">AliExpress</a> Choose: "Color: 2.4G Antenna".'},{name:"Amazon Large",amount:()=>1,cost:9.99,costAll:()=>this.tracker+7.99,links:'<a href="https://www.amazon.com/Diymall-Antenna-Antennas-Arduino-ESP-072pcs/dp/B00ZBJNO9O/">Amazon</a>'}],selectedChoice:0,isOpen:!1},{name:"USB-C Cables",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:"If you do not need or already have."},{name:"Short USB-C to USB-C Amazon",amount:()=>1,cost:6.29,costAll:()=>this.tracker+5.29,links:'<a href="https://www.amazon.com/gp/product/B09C2D9Z7T/ref=ox_sc_act_title_2?smid=A10X1BEP2GKRDQ&th=1">Amazon</a>'},{name:"Short USB-A to USB-C Amazon",amount:()=>1,cost:7.99,costAll:()=>this.tracker+5.99,links:'<a href="https://www.amazon.com/Charging-Durable-Station-Compatible-Samsung/dp/B08LL1SVZD/">Amazon</a>'}],selectedChoice:0,isOpen:!1},{name:"V4 LED Wire Extensions/Replacements",choices:[{name:"Bring Your Own",amount:()=>this.tracker,cost:0,costAll:()=>this.tracker*0,links:"If you do not need or already have."},{name:"110mm Extension/Replacement",amount:()=>1,cost:1.5,costAll:()=>this.tracker+1.5+5,links:'<a href="https://store.eyetrackvr.dev/products/2x-110mm-replacement-wires">ETVR Store</a>'},{name:"200mm Extension/Replacement",amount:()=>1,cost:1.5,costAll:()=>this.tracker+1.5+5,links:'<a href="https://store.eyetrackvr.dev/products/2x-200mm-replacement-wires">ETVR Store</a>'}],selectedChoice:0,isOpen:!1}],total:0}},methods:{updatePrices(){let e=0;this.components.forEach(a=>{if(a.choices.length>1){const l=a.choices[a.selectedChoice];e+=l.costAll(this.tracker)}else a.choices.length===1&&(e+=a.choices[0].costAll(this.tracker))}),this.total=e},toggleDropdown(e){this.components.forEach(a=>{a!==e&&(a.isOpen=!1)}),e.isOpen=!e.isOpen},isOptionsAbove(e){if(this.$refs[`select-${e.name}`]){const a=this.$refs[`select-${e.name}`].getBoundingClientRect();return window.innerHeight-a.bottom<200&&a.top>200}return!1},selectOption(e,a){e.selectedChoice=a,e.isOpen=!1,this.updatePrices()},closeAllDropdowns(){this.components.forEach(e=>{e.isOpen=!1})},handleOutsideClick(e){e.target.closest(".custom-select")||this.closeAllDropdowns()}},mounted(){this.updatePrices(),document.addEventListener("click",this.handleOutsideClick)},beforeUnmount(){document.removeEventListener("click",this.handleOutsideClick)}},L=e=>(A("data-v-3f9fd8fa"),e=e(),_(),e),z={class:"table-container"},U=L(()=>s("thead",null,[s("tr",null,[s("th",{class:"component-col"},"Component"),s("th",{class:"choice-col"},"Choice"),s("th",{class:"amount-col"},"Amount"),s("th",{class:"cost-col"},"Cost"),s("th",{class:"cost-all-col"},"Cost All"),s("th",{class:"links-col"},"Links")])],-1)),V={class:"component-col"},F={class:"choice-col"},q=["onClick"],N={class:"selected-option"},H={key:0,class:"options"},Y=["onClick"],G={key:1},K=["innerHTML"];function Q(e,a,l,C,c,n){return i(),o("div",z,[s("table",null,[U,s("tbody",null,[(i(!0),o(u,null,m(c.components,t=>(i(),o("tr",{key:t.name},[s("th",V,r(t.name),1),s("td",F,[t.choices.length>1?(i(),o("div",{key:0,class:"custom-select",onClick:h=>n.toggleDropdown(t)},[s("div",N,r(t.choices[t.selectedChoice].name),1),t.isOpen?(i(),o("div",H,[(i(!0),o(u,null,m(t.choices,(h,d)=>(i(),o("div",{key:d,onClick:g=>n.selectOption(t,d),class:"option"},r(h.name),9,Y))),128))])):w("",!0)],8,q)):(i(),o("span",G,r(t.choices[0].name),1))]),s("td",null,r(t.selectedChoice?t.choices[t.selectedChoice].amount(c.tracker):0),1),s("td",null,r(t.selectedChoice?"$"+t.choices[t.selectedChoice].cost.toFixed(2):0),1),s("td",null,r(t.selectedChoice?"~$"+t.choices[t.selectedChoice].costAll().toFixed(2):0),1),s("td",{innerHTML:t.selectedChoice?t.choices[t.selectedChoice].links:""},null,8,K)]))),128))])]),s("p",null,"Total: $"+r(c.total.toFixed(2)),1)])}const J=f($,[["render",Q],["__scopeId","data-v-3f9fd8fa"]]),X=s("p",null,"WIP new parts list. 3D printed parts will live on their own page.",-1),Z=s("p",null,[p("Use the "),s("strong",null,"interactive"),p(" tables below to select parts!")],-1),j=s("h1",{id:"required-parts",tabindex:"-1"},[p("Required Parts: "),s("a",{class:"header-anchor",href:"#required-parts","aria-label":'Permalink to "Required Parts:"'},"")],-1),ee=s("h1",{id:"additional-parts",tabindex:"-1"},[p("Additional Parts: "),s("a",{class:"header-anchor",href:"#additional-parts","aria-label":'Permalink to "Additional Parts:"'},"")],-1),te=S("",19),ie=JSON.parse('{"title":"Required Parts:","description":"","frontmatter":{},"headers":[],"relativePath":"how_to_build/part_list.md","filePath":"how_to_build/part_list.md","lastUpdated":1719882555000}'),se={name:"how_to_build/part_list.md"},oe=Object.assign(se,{setup(e){return(a,l)=>(i(),o("div",null,[X,Z,j,k(W),ee,k(J),te]))}});export{ie as __pageData,oe as default};
|