Inspiration
Geocaching and the hot-cold game
What it does
Play a geocaching hot-cold game with Augmented Reality!
Search for the hidden object (connected to the Quest 2 headset via Bluetooth). The Bluetooth RSSI (Received Signal Strength Indicator) is transmitted to the headset and used as an approximate measure of distance from the user. This signal strength is used to display in the user's head-up display whether the hidden object is close (hot) or far (cold) from the user.
AR passthrough allows the user to see their real-world environment while hunting for the hidden object.
How we built it
- The Oculus Quest 2 connects to the ESP-32 microcontroller via Bluetooth.
- Unity game engine
- C# scripting
- The Singularity, a VRatMIT SDK for connecting custom hardware to Unity VR project with Bluetooth
- Oculus Integration SDK (for AR passthrough)
- XR Interaction Toolkit (for UI interaction with Quest controller)
- Arduino IDE
- C++
- Send reading of Bluetooth classic RSSI to the headset
- SideQuest for recording video from headset including passthrough
- AI generation for project logo and hot and cold icons (these were also modified)
Challenges we ran into
- Getting the Bluetooth signal strength from the ESP-32
- Getting Singularity working to let ESP-32 send messages to Quest 2
- Enabling passthrough and disabling Guardian on the Quest 2
- Getting scene objects to show up with passthrough
- Deciding how to show the distance from the hidden object to the user
- Getting UI to show/hide
- Automatically grabbing MAC address of device to connect to
- Recording video including passthrough
Accomplishments that we're proud of
- Having a working project
- Getting Singularity functioning
- Edge detection to make passthrough look different than the default
What we learned
- Working with AR passthrough
- Sending Bluetooth signal strength data from the ESP-32
- Working with hardware may take a lot of digging online for help
- Getting data off a microcontroller might not be straightforward
What's next for AR Geocaching
Additional features could include:
- Allowing multiple devices to connect
- Geolocation
- Improving the interface
- QR codes
- Add AR effect to the object when they find it
Use cases:
- Hide and seek with phones
- Locating tools (like AirTags)
References
- Hardware Hack - MIT Reality Hack 2023 https://mitrealityhack.notion.site/Hardware-Hack-cea762eb43344eda849dec1067666775
- The Singularity, package by VRatMIT for integrating custom microcontroller VR hardware with Unity project https://github.com/VRatMIT/TheSingularity-Unity
- "Passthrough | Unity VR Tutorial for Oculus Quest" by RealaryVR https://youtu.be/RtoTGYBdGI4
- Sonar audio ping modified from "radar sound effect" by sounds fx https://www.youtube.com/watch?v=_YFXdDppLw0
- "How to use esp_bt_gap_read_rssi_delta function to get bluetooth classic RSSI from ESP32?" - Stack Overflow https://stackoverflow.com/questions/52572703/how-to-use-esp-bt-gap-read-rssi-delta-function-to-get-bluetooth-classic-rssi-fro
Log in or sign up for Devpost to join the conversation.