Your SlideShare is downloading. ×
Building a robot with the .Net Micro Framework
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Building a robot with the .Net Micro Framework


Published on

Slides from my DDD Sydney session.

Slides from my DDD Sydney session.

Published in: Technology, Education
1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 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…
  • 9. Fez Panda II
  • 10. Tamiya Dual Motor Gearbox
  • 11. Tamiya Dual Motor Gearbox
  • 12. Tamiya Track and Wheel Set
  • 13. Tamiya Plate Set
  • 14. Dual Motor Driver
  • 15. Low Current Motors
  • 16. Ultrasonic Range Finder
  • 17. Accelerometer
  • 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#
  • 21. NetMF 101
  • 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…
  • 24. NetMF 101
  • 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 Botwhile (something within 30cm of front) avoidgo forward
  • 35. Safe Discovery Botwhile (bot is tipping) avoidwhile (something within 30cm of front) avoidgo forward
  • 36. Where to buy…EOFY2012
  • 37. Where to learn more…••••••
  • 38. With thanks to our sponsors
  • 39. Please complete your feedback forms, and return them to theregistration desk for a chance to win a Nokia Lumia