Xamarin Robotics is a full-stack framework that aims to make Robotics and Wearable development much easier by providing a foundation that provides core functionality both for bulding both mobile apps that are Wearables/Robotics aware, as well as .NET Micro Framework based applications that run on microcontrollers such as the Netduino and use peripherals such as sensors, servor, actuators, motor drivers, etc.
It is split into two major platform stacks:
- Mobile Stack - The Mobile Stack is built in C# and runs on iOS, Android, and Windows Phone via the Xamarin platform and contains features for communicating with wearables such as health monitoring devices and smartwatches, as well as microcontrollers such as the Netduino and Arduino.
- Microcontroller Stack - The Microcontroller Stack is built with C# and runs on .NET Micro Framework compatible microcontroller platforms such as the Netduino.
The following diagram illustrates the topology of the entire stack:
The Mobile stack consists of three different parts:
- Low-level Bluetooth LE (BLE) API - A cross-platform API (iOS and Android only right now) that supports communicating with BLE devices.
- Low-Level Wifi API - A cross-platform API (iOS and Android only right now) that supports connecting to WiFi enabled devices.
- Messaging Framework - A high-level cross-platform protocol for messaging peripherals via WiFi or BLE.
- Peripheral Libraries - Strongly typed libraries for communicating with various vendor-specific peripherals such as health monitoring devices, smart watches, and the like.
The Microcontroller stack consists of two parts:
- Low-level Hardware Abstraction - This is a modular/compositable based on the concept of Blocks and Scopes that represent devices and listeners, accordingly.
- Sensor and Peripheral Library - Strongly typed libraries that do the heavy lifting of integration with hundreds of popular sensors spanning the gamut from Alcohol Sensors to 3-axis Accelerometers.
Level: Beginner
A simple robot that monitors soil moisture, waters when needed, and logs and reports moisture and watering.
Level: Beginner
A simple robot that monitors the temperature inside a BBQ/Smoker, adds oxygen as necessary to increase temperature, and logs and reports its progress.
Level: Intermediate
A relatively simple robot that opens and closes a chicken coop based on sunlight/time of day.
Level: Intermediate
An RC car that is controllable via a mobile device via BLE or WiFi.
Level: Advanced
An semi-advanced robot that can perform basic collision avoidance and can be optionally controlled by a mobile device.
Bryan Costanich, Frank Krueger