SlideShare a Scribd company logo
Building a robot with .Net Micro
           Framework
           Ducas Francis
           SC @ Readify
NetMF
• Open Source Platform for small embedded
  applications
• Runs on devices with a 32-bit processor and as
  little as 64K RAM
• Provides the efficiency of creating and
  maintaining devices in managed code
Why NetMF?
•   Use Visual Studio as the IDE
•   Program in C#
•   Same code runs on any NetMF device   with minimal changes


•   Full debugging capabilities
    –   Emulator
    –   Breakpoints
    –   Stepping
    –   Variables
    –   Stack Traces
• Includes many bus drivers
• Managed Code with Garbage Collection
What about Arduino?
• Open Source Platform for electronics prototyping
• Uses the Arduino programming language (C++
  based) and Arduino IDE.
• Benefits
  –   Inexpensive
  –   Cross-Platform Software
  –   Nice IDE
  –   Open Source and Extensible Software (C++ or AVR-C)
  –   Open Source and Extensible Hardware
      (ATMEGA8/168)
NetMF Hardware - Netduino
• Pro – Atmel ARM7    • Go – STMicro Cortex-
  48MHz 128KB Flash     M4 168MHz 384KB
  60KB RAM              Flash 100KB RAM
NetMF Harware - GHI
• FEZ Spider – EMX ARM7 72MHz   • FEZ Cerberus/Cerbuino/Cerb40 –
  3000KB Flash 12000KB RAM        OSHW Cortex-M4 168MHz 300KB
                                  Flash 112KB RAM




• Fez Hydra – OSHW ARM9
  240MHz 3000KB Flash 12000KB   • FEZ Panda II - USBizi-100 ARM7
  RAM                             72MHz 148KB Flash 62KB RAM
Arduino Compatible vs Gadgeteer
• Compatible with          • Sockets over Pins
  Arduino shields          • Modules are pre-built
• Pins over Sockets        • Not all boards have all
• Easy to prototype with     socket types
  breadboards and          • Usually have more
  breakout boards            powerful processors
• More flexible for
  electronics projects
What Are We Building
• Let’s see…
Fez Panda II
Tamiya Dual Motor Gearbox
Tamiya Dual Motor Gearbox
Tamiya Track and Wheel Set
Tamiya Plate Set
Dual Motor Driver
Low Current Motors
Ultrasonic Range Finder
Accelerometer
What you Need
•   Mainboard           • FEZ Panda II $50
•   Motors              • SolarRobotics RM3 2x $4
•   Gearboxes           • Tamiya Double Gearbox (70168) $15
•   Wheels              • Tamiya Track and Wheel Set (70100) $15
•   Housing/Plates      • Tamiya Universal Plate Set (70157) $10
•   Batteries           • 4xAAA + 1x9V $10
•   Motor Driver        • 1A Dual TB6612FNG H Bridge (ROB-
                          09457) $10
• Distance Sensor       • MaxBotix LV-EZ0 Ultrarosnic Range Finder
                          (SEN-08502) $35
• Accelerometer         • Triple Axis Accelerometer ADXL345 (SEN-
                          …) $30

                     Total: ~$150
Or You Could Just Buy a Kit…
• FEZ Mini Robot Kit $120   • RP5 Tank Chasis +
                              Driver $120
What you need to know
• *Basic* electronics
• How to use a soldering iron
• How to cut a little code in C#
NetMF 101
Net MF 101 – What do I have?
• Multithreading
• GC
• Flash access
NetMF 101 – What don’t I have?
• Generics
• A lot of RAM…
NetMF 101
NetMF 101 - IO
•   Digital IO
•   Interrupts
•   Analog IO
•   UART
•   SPI
•   I2C
•   PWM
NetMF 101 – Digital IO
• Pin can either be set to HIGH (true) or LOW
  (false)
• OutputPort.Write(bool)
• bool InputPort.Read()

• Demo - LED
NetMF 101 - Interrupts
• Act when the signal changes from LOW to
  HIGH and vice-versa
• NativeEventHandler InterruptPort.OnInterrupt

• Demo - Bumper
NETMF 101 – Analog IO
•   Read a voltage – not just HIGH/LOW
•   Not part of core NetMF
•   byte AnalogIn.Read()
•   AnalogOut.Set(int value)
•   AnalogOut.Set(byte[] data, int offset, int
    count, int dataRate)

• Demo – Ultrasonic Distance Finder
NETMF 101 – UART Serial Ports
• Use 2 Pins to Communicate between 2 Devices
   – TXD
   – RXD
• Wire to the opposite on each device
   – RXD => TXD
   – TXD => RXD
• new SerialPort(“COM1”, …)
• SerialPort.Read(byte*+, …)
• SerialPort.Write(byte*+, …)

• Demo - XBee
NetMF 101 – I2C
• Use 2 Pins to communicate between master
  and multiple slave devices.
  – SCL
  – SDA
• Provides a bus and ability to define
  configuration and communicate using
  transactions

• Demo - Accelerometer
NetMF 101 - PWM
• Pulse Width Modulation
• Emulates a wave with given frequency and
  duty cycle
• Motors should be given higher frequencies
• PWM.Set(int freqHz, int dutyCycle)

• Demo - Piezo
Building Tank Bot..
•   Build the gearbox
•   Attach the gearbox to the frame and wheels
•   Attach the main board to the frame
•   Attach battery holders to the frame
•   Solder pins to the prototyping board, distance sensor,
    motor driver and accelerometer
•   Solder wires to the motors
•   Attach the distance sensor to the frame
•   Wire the motor driver, distance sensor and
    accelerometer to the prototyping board
•   Write some code…
Test Bots
• Distance Sensor
• Accelerometer
• Motor Driver
Discovery Bot
while (something within 30cm of front)
     avoid

go forward
Safe Discovery Bot
while (bot is tipping)
     avoid

while (something within 30cm of front)
     avoid

go forward
Where to buy…


EOFY2012
Where to learn more…
• tinyclr.com
• netmf.com
• letsmakerobots.com

• sparkfun.com
• bildr.com

• mbed.org
With thanks to our sponsors
Please complete your feedback
  forms, and return them to the
registration desk for a chance
                       to win a
                  Nokia Lumia

More Related Content

PPT
Arduino Meetup with Sonar and 433Mhz Radios
PDF
Hardware Hacking
PPTX
Arduino IDE
PPTX
What are TULIPP starter kits?
PDF
lesson2 - Nodemcu course - NodeMCU dev Board
PDF
Making wearables with NodeMCU - FOSDEM 2017
PPTX
ESP8266 Wifi Nodemcu
PDF
Aewin embedded cm6121 amd lx800
Arduino Meetup with Sonar and 433Mhz Radios
Hardware Hacking
Arduino IDE
What are TULIPP starter kits?
lesson2 - Nodemcu course - NodeMCU dev Board
Making wearables with NodeMCU - FOSDEM 2017
ESP8266 Wifi Nodemcu
Aewin embedded cm6121 amd lx800

What's hot (20)

PPTX
[5]投影片 futurewad樹莓派研習會 141218
PPTX
IoT Hands-On-Lab, KINGS, 2019
PDF
Amp si3540 specsheet
PPTX
Esp8266 NodeMCU
PPTX
Introduction to Hardware Design Using KiCAD
PPTX
Nodemcu - introduction
PDF
Aewin embedded em6331 amd lx800_sbc
PDF
Introduction to Arduino and Circuits
PPT
Introduction to Arduino
PPTX
PPTX
Introduction to Internet of Things Hardware
KEY
Internet of Things
PDF
Thotcon 0x8 - Hardware Hacking on a Budget
PDF
Insecure Obsolete and Trivial - The Real IOT
PDF
Esp8266 hack sonoma county 4/8/2015
PPTX
Arduino 習作工坊 - Lesson 1 燈光之夜
PDF
NodeMCU ESP8266 workshop 1
PPTX
Pc 104 express w. virtex 5-2014_5
PDF
It's game time
PDF
Espresso Lite v2 - ESP8266 Overview
[5]投影片 futurewad樹莓派研習會 141218
IoT Hands-On-Lab, KINGS, 2019
Amp si3540 specsheet
Esp8266 NodeMCU
Introduction to Hardware Design Using KiCAD
Nodemcu - introduction
Aewin embedded em6331 amd lx800_sbc
Introduction to Arduino and Circuits
Introduction to Arduino
Introduction to Internet of Things Hardware
Internet of Things
Thotcon 0x8 - Hardware Hacking on a Budget
Insecure Obsolete and Trivial - The Real IOT
Esp8266 hack sonoma county 4/8/2015
Arduino 習作工坊 - Lesson 1 燈光之夜
NodeMCU ESP8266 workshop 1
Pc 104 express w. virtex 5-2014_5
It's game time
Espresso Lite v2 - ESP8266 Overview
Ad

Viewers also liked (7)

PPTX
Introduction to Kafka
PPTX
A Day in the Life of a Metro-veloper
PDF
Apache Kafka Introduction
PDF
Continuous Delivery Pipeline - Patterns and Anti-patterns
PDF
Apache Kafka: A high-throughput distributed messaging system @ JCConf 2014
PDF
Kafka At Scale in the Cloud
PPTX
Introduction to Kafka and Zookeeper
Introduction to Kafka
A Day in the Life of a Metro-veloper
Apache Kafka Introduction
Continuous Delivery Pipeline - Patterns and Anti-patterns
Apache Kafka: A high-throughput distributed messaging system @ JCConf 2014
Kafka At Scale in the Cloud
Introduction to Kafka and Zookeeper
Ad

Similar to Building a robot with the .Net Micro Framework (20)

PDF
Practical reverse engineering and exploit development for AVR-based Embedded ...
PPTX
Real Time Embedded System Development part-1.pptx
PPTX
Introduction to Arduino Webinar
KEY
Emulating With JavaScript
PPT
serial.ppt
PPT
serial.ppt
PPTX
A brief introduction to making your own (Internet of Things) Thing
PPTX
Presentation1
PPT
S2C China ICCAD 2010 Presentation
PPTX
PPTX
Parallel Rendering of Webpages
PDF
elementz_0636621001471675637HumanFollowerRobotppt.pdf
PDF
introduction to embedded systems part 2
PPTX
embedded-systems-for-beginners
PPTX
Microcontroller from basic_to_advanced
PPTX
Alessandro Abbruzzetti - Kernal64
PPT
Computer Architecture - Hardware - Lessons 14 - SCSI - Eric Vanderburg
PPTX
Basic Information of Arduino Uno ATmega328P microcontroller
PPT
ARDUINO-PPT.pptafafvxvxgxzfgarfarfaarfaabxb
PDF
arduinoworkshop-160204051621.pdf
Practical reverse engineering and exploit development for AVR-based Embedded ...
Real Time Embedded System Development part-1.pptx
Introduction to Arduino Webinar
Emulating With JavaScript
serial.ppt
serial.ppt
A brief introduction to making your own (Internet of Things) Thing
Presentation1
S2C China ICCAD 2010 Presentation
Parallel Rendering of Webpages
elementz_0636621001471675637HumanFollowerRobotppt.pdf
introduction to embedded systems part 2
embedded-systems-for-beginners
Microcontroller from basic_to_advanced
Alessandro Abbruzzetti - Kernal64
Computer Architecture - Hardware - Lessons 14 - SCSI - Eric Vanderburg
Basic Information of Arduino Uno ATmega328P microcontroller
ARDUINO-PPT.pptafafvxvxgxzfgarfarfaarfaabxb
arduinoworkshop-160204051621.pdf

Recently uploaded (20)

PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Spectroscopy.pptx food analysis technology
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPT
Teaching material agriculture food technology
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
sap open course for s4hana steps from ECC to s4
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
Diabetes mellitus diagnosis method based random forest with bat algorithm
MYSQL Presentation for SQL database connectivity
Reach Out and Touch Someone: Haptics and Empathic Computing
Machine learning based COVID-19 study performance prediction
Spectroscopy.pptx food analysis technology
Digital-Transformation-Roadmap-for-Companies.pptx
The AUB Centre for AI in Media Proposal.docx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Teaching material agriculture food technology
Advanced methodologies resolving dimensionality complications for autism neur...
sap open course for s4hana steps from ECC to s4
The Rise and Fall of 3GPP – Time for a Sabbatical?
NewMind AI Weekly Chronicles - August'25 Week I
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Dropbox Q2 2025 Financial Results & Investor Presentation
Understanding_Digital_Forensics_Presentation.pptx
Chapter 3 Spatial Domain Image Processing.pdf
Spectral efficient network and resource selection model in 5G networks

Building a robot with the .Net Micro Framework

  • 1. Building a robot with .Net Micro Framework Ducas Francis SC @ Readify
  • 2. NetMF • Open Source Platform for small embedded applications • Runs on devices with a 32-bit processor and as little as 64K RAM • Provides the efficiency of creating and maintaining devices in managed code
  • 3. Why NetMF? • Use Visual Studio as the IDE • Program in C# • Same code runs on any NetMF device with minimal changes • Full debugging capabilities – Emulator – Breakpoints – Stepping – Variables – Stack Traces • Includes many bus drivers • Managed Code with Garbage Collection
  • 4. What about Arduino? • Open Source Platform for electronics prototyping • Uses the Arduino programming language (C++ based) and Arduino IDE. • Benefits – Inexpensive – Cross-Platform Software – Nice IDE – Open Source and Extensible Software (C++ or AVR-C) – Open Source and Extensible Hardware (ATMEGA8/168)
  • 5. NetMF Hardware - Netduino • Pro – Atmel ARM7 • Go – STMicro Cortex- 48MHz 128KB Flash M4 168MHz 384KB 60KB RAM Flash 100KB RAM
  • 6. NetMF Harware - GHI • FEZ Spider – EMX ARM7 72MHz • FEZ Cerberus/Cerbuino/Cerb40 – 3000KB Flash 12000KB RAM OSHW Cortex-M4 168MHz 300KB Flash 112KB RAM • Fez Hydra – OSHW ARM9 240MHz 3000KB Flash 12000KB • FEZ Panda II - USBizi-100 ARM7 RAM 72MHz 148KB Flash 62KB RAM
  • 7. Arduino Compatible vs Gadgeteer • Compatible with • Sockets over Pins Arduino shields • Modules are pre-built • Pins over Sockets • Not all boards have all • Easy to prototype with socket types breadboards and • Usually have more breakout boards powerful processors • More flexible for electronics projects
  • 8. What Are We Building • Let’s see…
  • 10. Tamiya Dual Motor Gearbox
  • 11. Tamiya Dual Motor Gearbox
  • 12. Tamiya Track and Wheel Set
  • 18. What you Need • Mainboard • FEZ Panda II $50 • Motors • SolarRobotics RM3 2x $4 • Gearboxes • Tamiya Double Gearbox (70168) $15 • Wheels • Tamiya Track and Wheel Set (70100) $15 • Housing/Plates • Tamiya Universal Plate Set (70157) $10 • Batteries • 4xAAA + 1x9V $10 • Motor Driver • 1A Dual TB6612FNG H Bridge (ROB- 09457) $10 • Distance Sensor • MaxBotix LV-EZ0 Ultrarosnic Range Finder (SEN-08502) $35 • Accelerometer • Triple Axis Accelerometer ADXL345 (SEN- …) $30 Total: ~$150
  • 19. Or You Could Just Buy a Kit… • FEZ Mini Robot Kit $120 • RP5 Tank Chasis + Driver $120
  • 20. What you need to know • *Basic* electronics • How to use a soldering iron • How to cut a little code in C#
  • 22. Net MF 101 – What do I have? • Multithreading • GC • Flash access
  • 23. NetMF 101 – What don’t I have? • Generics • A lot of RAM…
  • 25. NetMF 101 - IO • Digital IO • Interrupts • Analog IO • UART • SPI • I2C • PWM
  • 26. NetMF 101 – Digital IO • Pin can either be set to HIGH (true) or LOW (false) • OutputPort.Write(bool) • bool InputPort.Read() • Demo - LED
  • 27. NetMF 101 - Interrupts • Act when the signal changes from LOW to HIGH and vice-versa • NativeEventHandler InterruptPort.OnInterrupt • Demo - Bumper
  • 28. NETMF 101 – Analog IO • Read a voltage – not just HIGH/LOW • Not part of core NetMF • byte AnalogIn.Read() • AnalogOut.Set(int value) • AnalogOut.Set(byte[] data, int offset, int count, int dataRate) • Demo – Ultrasonic Distance Finder
  • 29. NETMF 101 – UART Serial Ports • Use 2 Pins to Communicate between 2 Devices – TXD – RXD • Wire to the opposite on each device – RXD => TXD – TXD => RXD • new SerialPort(“COM1”, …) • SerialPort.Read(byte*+, …) • SerialPort.Write(byte*+, …) • Demo - XBee
  • 30. NetMF 101 – I2C • Use 2 Pins to communicate between master and multiple slave devices. – SCL – SDA • Provides a bus and ability to define configuration and communicate using transactions • Demo - Accelerometer
  • 31. NetMF 101 - PWM • Pulse Width Modulation • Emulates a wave with given frequency and duty cycle • Motors should be given higher frequencies • PWM.Set(int freqHz, int dutyCycle) • Demo - Piezo
  • 32. Building Tank Bot.. • Build the gearbox • Attach the gearbox to the frame and wheels • Attach the main board to the frame • Attach battery holders to the frame • Solder pins to the prototyping board, distance sensor, motor driver and accelerometer • Solder wires to the motors • Attach the distance sensor to the frame • Wire the motor driver, distance sensor and accelerometer to the prototyping board • Write some code…
  • 33. Test Bots • Distance Sensor • Accelerometer • Motor Driver
  • 34. Discovery Bot while (something within 30cm of front) avoid go forward
  • 35. Safe Discovery Bot while (bot is tipping) avoid while (something within 30cm of front) avoid go forward
  • 37. Where to learn more… • tinyclr.com • netmf.com • letsmakerobots.com • sparkfun.com • bildr.com • mbed.org
  • 38. With thanks to our sponsors
  • 39. Please complete your feedback forms, and return them to the registration desk for a chance to win a Nokia Lumia