I haven't done any embedded development in a while and I was thinking to build myself a remote controlled toy car with video streaming.
The project is going to take me a while. To build it I'm going to use C#. I'm already too familiar with Python and a little challenge doesn't hurt.
To interface with the hardware, I'm going to use the .Net Core IoT Libraries from Microsoft.
My idea was to create a set of .Net Core services that communicate internally via gRPC and an ASP.Net Core web application to control the car. (Now that I'm writing this I'm thinking that could possibly drop the web app and use gRPC directly from the client).
The client would be a desktop application that will display the video stream and data from the sensors. It should work with an Xbox controller or else it won't be fun. :(
To write it I will probably use Mono or Unity.
After burning the latest version of Raspbian on the board using Etcher and spending a few hours in Rider developing a base for the app. I've Installed .Net Core 3 SDK and ran the application. The results were amazing! I've checked the thermostat in the office and it was set on 25
And the application only consumes ~10MB RAM! That's awesome!
I'm really impressed and so far things are looking bright for dotnet/iot
. I can't wait to test the gRpc support and other hardware modules.
The full code can be found here: https://github.com/dnutiu/NucuCar
If you want to run the app on your Raspberry you'll need to install the .Net Core Sdk (Instructions) and run the following commands:
git clone https://github.com/dnutiu/NucuCar.git
cd NucuCar
dotnet build
cd NucuCar.Sensors
dotnet run
Thanks for reading!
I hope you will give dotnet/iot
a try for your next project!