Drive a radio-controlled car via a RESTful API using any internet-enabled client!

As a long-time .Net and Visual Studio fan, I was immensely excited when I discovered the original Netduino - finally I could use the same IDE I develop software with all day long for my hardware projects! I somehow got distracted with a million other boards along the way, but this contest allowed me to rekindle my love for the .Net Micro Framework - this time re-imagining a project I’d created back on the original device which allowed me to control a radio control car via a PC - but now with added IoT goodness thanks to the networking capabilities of the Netduino 3 Ethernet! 🎮🏎️

Development Process
The first step in my project was tearing down the KT-18 controller from my Mini-Z in order to replace the potentiometers that are used in the steering wheel and throttle trigger with a DS1803 Addressable Dual Digital Potentiometer, allowing me to emulate their positions digitally. I connected the DS1803 to the Netduino’s SDA and SCL pins in order to communicate with it via I2C. I then refactored to create a DS1803 object for better abstraction from my main Program.cs.

With the digital potentiometer functional, my next step was to IoT-ify everything! The Netduino Getting Started guide includes a section on Networking which was a helpful overview, but I ran into a lot of problems getting networking…working! 😅 It wasn’t until I discovered the RgbLedHost example that I managed to get a cohesive web server functioning, and as a bonus I discovered how to use event-based functions as an interface between classes.

With a basic web server in place, I was then able to flesh out a RESTful API with endpoints to control various steering and throttle functions.”