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

What's hot

[5]投影片 futurewad樹莓派研習會 141218
[5]投影片 futurewad樹莓派研習會 141218[5]投影片 futurewad樹莓派研習會 141218
[5]投影片 futurewad樹莓派研習會 141218
CAVEDU Education
 
IoT Hands-On-Lab, KINGS, 2019
IoT Hands-On-Lab, KINGS, 2019IoT Hands-On-Lab, KINGS, 2019
IoT Hands-On-Lab, KINGS, 2019
Jong-Hyun Kim
 
Amp si3540 specsheet
Amp si3540 specsheetAmp si3540 specsheet
Amp si3540 specsheet
Electromate
 
Esp8266 NodeMCU
Esp8266 NodeMCUEsp8266 NodeMCU
Esp8266 NodeMCU
roadster43
 
Introduction to Hardware Design Using KiCAD
Introduction to Hardware Design Using KiCADIntroduction to Hardware Design Using KiCAD
Introduction to Hardware Design Using KiCAD
NEEVEE Technologies
 
Nodemcu - introduction
Nodemcu - introductionNodemcu - introduction
Nodemcu - introduction
Michal Sedlak
 
Aewin embedded em6331 amd lx800_sbc
Aewin embedded em6331 amd lx800_sbcAewin embedded em6331 amd lx800_sbc
Aewin embedded em6331 amd lx800_sbc
Sirena Cheng
 
Introduction to Arduino and Circuits
Introduction to Arduino and CircuitsIntroduction to Arduino and Circuits
Introduction to Arduino and Circuits
Jason Griffey
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
Richard Rixham
 
Introduction to Internet of Things Hardware
Introduction to Internet of Things HardwareIntroduction to Internet of Things Hardware
Introduction to Internet of Things Hardware
Daniel Eichhorn
 
Internet of Things
Internet of ThingsInternet of Things
Internet of Things
Andy Gelme
 
Thotcon 0x8 - Hardware Hacking on a Budget
Thotcon 0x8 - Hardware Hacking on a BudgetThotcon 0x8 - Hardware Hacking on a Budget
Thotcon 0x8 - Hardware Hacking on a Budget
Price McDonald
 
Insecure Obsolete and Trivial - The Real IOT
Insecure Obsolete and Trivial - The Real IOTInsecure Obsolete and Trivial - The Real IOT
Insecure Obsolete and Trivial - The Real IOT
Price McDonald
 
Esp8266 hack sonoma county 4/8/2015
Esp8266 hack sonoma county 4/8/2015Esp8266 hack sonoma county 4/8/2015
Esp8266 hack sonoma county 4/8/2015
mycal1
 
Arduino 習作工坊 - Lesson 1 燈光之夜
Arduino 習作工坊 - Lesson 1 燈光之夜Arduino 習作工坊 - Lesson 1 燈光之夜
Arduino 習作工坊 - Lesson 1 燈光之夜
CAVEDU Education
 
NodeMCU ESP8266 workshop 1
NodeMCU ESP8266 workshop 1NodeMCU ESP8266 workshop 1
NodeMCU ESP8266 workshop 1
Andy Gelme
 
Espresso Lite v2 - ESP8266 Overview
Espresso Lite v2 - ESP8266 OverviewEspresso Lite v2 - ESP8266 Overview
Espresso Lite v2 - ESP8266 Overview
The World Bank
 

What's hot (20)

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

Viewers also liked

Introduction to Kafka
Introduction to KafkaIntroduction to Kafka
Introduction to Kafka
Ducas Francis
 
A Day in the Life of a Metro-veloper
A Day in the Life of a Metro-veloperA Day in the Life of a Metro-veloper
A Day in the Life of a Metro-veloper
Ducas Francis
 
Apache Kafka Introduction
Apache Kafka IntroductionApache Kafka Introduction
Apache Kafka Introduction
Amita Mirajkar
 
Continuous Delivery Pipeline - Patterns and Anti-patterns
Continuous Delivery Pipeline - Patterns and Anti-patternsContinuous Delivery Pipeline - Patterns and Anti-patterns
Continuous Delivery Pipeline - Patterns and Anti-patterns
Sonatype
 
Apache Kafka: A high-throughput distributed messaging system @ JCConf 2014
Apache Kafka: A high-throughput distributed messaging system @ JCConf 2014Apache Kafka: A high-throughput distributed messaging system @ JCConf 2014
Apache Kafka: A high-throughput distributed messaging system @ JCConf 2014
Chen-en Lu
 
Kafka At Scale in the Cloud
Kafka At Scale in the CloudKafka At Scale in the Cloud
Kafka At Scale in the Cloud
confluent
 
Introduction to Kafka and Zookeeper
Introduction to Kafka and ZookeeperIntroduction to Kafka and Zookeeper
Introduction to Kafka and Zookeeper
Rahul Jain
 

Viewers also liked (7)

Introduction to Kafka
Introduction to KafkaIntroduction to Kafka
Introduction to Kafka
 
A Day in the Life of a Metro-veloper
A Day in the Life of a Metro-veloperA Day in the Life of a Metro-veloper
A Day in the Life of a Metro-veloper
 
Apache Kafka Introduction
Apache Kafka IntroductionApache Kafka Introduction
Apache Kafka Introduction
 
Continuous Delivery Pipeline - Patterns and Anti-patterns
Continuous Delivery Pipeline - Patterns and Anti-patternsContinuous Delivery Pipeline - Patterns and Anti-patterns
Continuous Delivery Pipeline - Patterns and Anti-patterns
 
Apache Kafka: A high-throughput distributed messaging system @ JCConf 2014
Apache Kafka: A high-throughput distributed messaging system @ JCConf 2014Apache Kafka: A high-throughput distributed messaging system @ JCConf 2014
Apache Kafka: A high-throughput distributed messaging system @ JCConf 2014
 
Kafka At Scale in the Cloud
Kafka At Scale in the CloudKafka At Scale in the Cloud
Kafka At Scale in the Cloud
 
Introduction to Kafka and Zookeeper
Introduction to Kafka and ZookeeperIntroduction to Kafka and Zookeeper
Introduction to Kafka and Zookeeper
 

Similar to Building a robot with the .Net Micro Framework

Practical reverse engineering and exploit development for AVR-based Embedded ...
Practical reverse engineering and exploit development for AVR-based Embedded ...Practical reverse engineering and exploit development for AVR-based Embedded ...
Practical reverse engineering and exploit development for AVR-based Embedded ...
Alexander Bolshev
 
Introduction to Arduino Webinar
Introduction to Arduino WebinarIntroduction to Arduino Webinar
Introduction to Arduino Webinar
Fragiskos Fourlas
 
Emulating With JavaScript
Emulating With JavaScriptEmulating With JavaScript
Emulating With JavaScript
alexanderdickson
 
serial.ppt
serial.pptserial.ppt
serial.ppt
jordan307266
 
A brief introduction to making your own (Internet of Things) Thing
A brief introduction to making your own (Internet of Things) ThingA brief introduction to making your own (Internet of Things) Thing
A brief introduction to making your own (Internet of Things) Thing
TinamousSteve
 
Presentation1
Presentation1Presentation1
Presentation1
Mostafa Najmi
 
S2C China ICCAD 2010 Presentation
S2C China ICCAD 2010 PresentationS2C China ICCAD 2010 Presentation
S2C China ICCAD 2010 Presentation
srpollock
 
Sundance Profile 2014
Sundance Profile 2014Sundance Profile 2014
Parallel Rendering of Webpages
Parallel Rendering of WebpagesParallel Rendering of Webpages
Parallel Rendering of Webpages
Langtech
 
introduction to embedded systems part 2
introduction to embedded systems part 2introduction to embedded systems part 2
introduction to embedded systems part 2
Hatem Abd El-Salam
 
embedded-systems-for-beginners
embedded-systems-for-beginnersembedded-systems-for-beginners
embedded-systems-for-beginners
mohamed gaber
 
Microcontroller from basic_to_advanced
Microcontroller from basic_to_advancedMicrocontroller from basic_to_advanced
Microcontroller from basic_to_advanced
Imran Sheikh
 
Alessandro Abbruzzetti - Kernal64
Alessandro Abbruzzetti - Kernal64Alessandro Abbruzzetti - Kernal64
Alessandro Abbruzzetti - Kernal64
Scala Italy
 
Computer Architecture - Hardware - Lessons 14 - SCSI - Eric Vanderburg
Computer Architecture - Hardware - Lessons 14 - SCSI - Eric VanderburgComputer Architecture - Hardware - Lessons 14 - SCSI - Eric Vanderburg
Computer Architecture - Hardware - Lessons 14 - SCSI - Eric Vanderburg
Eric Vanderburg
 
Ardui no
Ardui no Ardui no
Ardui no
Amol Sakhalkar
 
arduinoworkshop-160204051621.pdf
arduinoworkshop-160204051621.pdfarduinoworkshop-160204051621.pdf
arduinoworkshop-160204051621.pdf
AbdErrezakChahoub
 
4 Introduction to Arduino.pdf
4 Introduction to Arduino.pdf4 Introduction to Arduino.pdf
4 Introduction to Arduino.pdf
RynefelElopre2
 
Null mumbai-iot-workshop
Null mumbai-iot-workshopNull mumbai-iot-workshop
Null mumbai-iot-workshop
Nitesh Malviya
 
Processors selection
Processors selectionProcessors selection
Processors selection
Pradeep Shankhwar
 

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

Practical reverse engineering and exploit development for AVR-based Embedded ...
Practical reverse engineering and exploit development for AVR-based Embedded ...Practical reverse engineering and exploit development for AVR-based Embedded ...
Practical reverse engineering and exploit development for AVR-based Embedded ...
 
Introduction to Arduino Webinar
Introduction to Arduino WebinarIntroduction to Arduino Webinar
Introduction to Arduino Webinar
 
Emulating With JavaScript
Emulating With JavaScriptEmulating With JavaScript
Emulating With JavaScript
 
serial.ppt
serial.pptserial.ppt
serial.ppt
 
serial.ppt
serial.pptserial.ppt
serial.ppt
 
A brief introduction to making your own (Internet of Things) Thing
A brief introduction to making your own (Internet of Things) ThingA brief introduction to making your own (Internet of Things) Thing
A brief introduction to making your own (Internet of Things) Thing
 
Presentation1
Presentation1Presentation1
Presentation1
 
S2C China ICCAD 2010 Presentation
S2C China ICCAD 2010 PresentationS2C China ICCAD 2010 Presentation
S2C China ICCAD 2010 Presentation
 
Sundance Profile 2014
Sundance Profile 2014Sundance Profile 2014
Sundance Profile 2014
 
Parallel Rendering of Webpages
Parallel Rendering of WebpagesParallel Rendering of Webpages
Parallel Rendering of Webpages
 
introduction to embedded systems part 2
introduction to embedded systems part 2introduction to embedded systems part 2
introduction to embedded systems part 2
 
embedded-systems-for-beginners
embedded-systems-for-beginnersembedded-systems-for-beginners
embedded-systems-for-beginners
 
Microcontroller from basic_to_advanced
Microcontroller from basic_to_advancedMicrocontroller from basic_to_advanced
Microcontroller from basic_to_advanced
 
Alessandro Abbruzzetti - Kernal64
Alessandro Abbruzzetti - Kernal64Alessandro Abbruzzetti - Kernal64
Alessandro Abbruzzetti - Kernal64
 
Computer Architecture - Hardware - Lessons 14 - SCSI - Eric Vanderburg
Computer Architecture - Hardware - Lessons 14 - SCSI - Eric VanderburgComputer Architecture - Hardware - Lessons 14 - SCSI - Eric Vanderburg
Computer Architecture - Hardware - Lessons 14 - SCSI - Eric Vanderburg
 
Ardui no
Ardui no Ardui no
Ardui no
 
arduinoworkshop-160204051621.pdf
arduinoworkshop-160204051621.pdfarduinoworkshop-160204051621.pdf
arduinoworkshop-160204051621.pdf
 
4 Introduction to Arduino.pdf
4 Introduction to Arduino.pdf4 Introduction to Arduino.pdf
4 Introduction to Arduino.pdf
 
Null mumbai-iot-workshop
Null mumbai-iot-workshopNull mumbai-iot-workshop
Null mumbai-iot-workshop
 
Processors selection
Processors selectionProcessors selection
Processors selection
 

Recently uploaded

Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 

Recently uploaded (20)

Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 

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