I’ve created a “GPS” location system. The top Arduino board represents the unit that broadcasts its current position when requested. The bottom Arduino is the one that sends the initial request, and then uses that information to display on the ring (and in the serial monitor) which direction the broadcast unit is in relation to itself based on cardinal and ordinal directions (N, NE, E, SE, etc.), or, if you’re directly over/under it, it’s labeled “Found.” The lights show up green for a direction, or blue if the unit has been found.
A device like this is essential for an adventure utility belt, because it can be used both as a way for the product owner to find the belt, or as a way to search for the adventurer in an emergency when they are lost.
There are no wireless connections that I could use to broadcast between both units autonomously, so that’s why they have to be hardwired for the prototype. Furthermore, the coding on this was a little tricky, so as of this publishing date, location is updated every second automatically, but I will eventually add a way to trigger a request on demand
GPS Locator v1.0
https://www.tinkercad.com/things/86tz53BOQme
References:
Arduino Master Reader / Slave Sender https://www.arduino.cc/en/Tutorial/LibraryExamples/MasterReader
NeoPixel Github Library
https://github.com/adafruit/Adafruit_NeoPixel
Awesome Arduino Tuturial Series (highly recommended):
https://www.youtube.com/playlist?list=PLA567CE235D39FA84
General code reference:
https://www.arduino.cc/reference/en/
It is also useful for people who cannot read the map. Combining a compass might be a good idea, so it can show people go straight or make a turn, instead of ordinal directions that some people do not understand.
I like your mindset for this design. It looks like in the code for the location Arduino you are randomly generating it. You could use a potentiometer or two as inputs so you can adjust the location yourself. I am impressed that you got the communication to work.
Amazing how you used two Adruino’s to create a simulation of a sender/receiver to show how the location-finder would work. Your code is very elegantly written as well. There are functions and a number of things that I hadn’t come across before (including how to get one Arduino to communicate to another using the Wire library). I really like how clearly the code is written. I also like the visual color-coding of the receiver Arduino, I think it’s a great way to aid the “searcher” especially if they’re in a noise area (such as searching for their adventure belt while riding a helicopter).
Two arduinos! Now you are showing off. But seriously, nice job thinking through the problem/solution and trying something ambitious.
I’m curious if the GPS location works both ways? Meaning, say I leave one ArduIno in a parked car, and carry the other one on my belt. If I’m lost in the woods, could I find my way back to the car, or would the case only be that the person in the car could find me?
It’s not currently set up that way, but I’ll have to dive into the code to find out. As I understand it you generally have a “sender” and a “receiver,” but I’m not sure if they can dual-purpose. Great question, and I’ll get back to you on it!
Wow! this is really amazing. I pivoted on my design to focus on a system of lights but a gps is integral to my product. I’m so happy you did this because I’m learning a lot from it. Super interesting and I love the idea of tackling women’s pockets. It’s such an annoyance!
I’m impressed with 2 Arduinos to communicate and I think using a potentiometer as input can better help to test.
First, DS9 is a clever page name, Sisko.
Second, this is an interesting project that I think you can get communicating both ways. A sender is only a sender while it is active, so it can be triggered to send with a button/switch, otherwise it’s in receive mode by default (like a walkie talkie or military radio). There are a few examples on stackexchange for the code.