Earlier this year I got the idea stuck in my head that I should make a robot that points at the nearest plane. I'm not sure why, but I just knew I had to do it.
Arduino was the obvious platform to make this come to life, and it seemed much simpler to connect the Arduino to a computer rather than directly interface the Arduino with the internet to acces plane data. Having never interfaced an arduino with a computer before, I took inspiration from Michael Reeves and decided to use Visual C#. However after many days of struggling to set up Visual Studio and the required libraries on a mac, I soon gave up and decided to instead use Python.
Once I made the switch to Python everything began to run smoothly. My first challenge was determining the computer's location, but with the use of Google's geolocation API that turned out to be relatively simple. I managed to poll wifi data quite easily, and after learning a bit of RegEx, I was able to parse it too.
The hardware side of things was quite simple. So after interfacing with a few more APIs everything was up and running. The only other difficulty was string parsing on the Arduino, which involved way more struggling with pointers than I'm willing to submit.
Now that I have the guts of it working, the only thing left to do is pretty it up. I plan on laser cutting an enclosure for the machine, and I will be sure to post an update along with photos of the finished project once I've done so.
When I was back in Ottawa I attempted to make an enclosure for the plane pointer. I modelled a box in Fusion 360 (pictured above) and laser cut panels out of thin plywood. While most of the pieces slid together with just a bit of sanding, not all of the electrical components fit correctly. I guess this was because I only modelled the wooden panels, not all of the electronics. In the future I'll do so, but it would have been to much to model when using Fusion 360 for the first time. Oh well, iteration is an important part of design. I'll remodel the parts with issues and hopefull everything will fit perfectly next time.