Leonardo mbos

This is a test program to study the capability of a GPS module to control navigation of a robot in an outdoor environment.


It is available at: http://mbed.org/users/guiott/programs/LeonardoMbos/m4jtr1

The hardware:

  1. mbed LPC1768 board
  2. RTC battery backup
  3. mbed LPC1768 Workshop Development Board http://www.coolcomponents.co.uk/catalog/product_info.php?products_id=608
  4. Garmin GPS 15L module
  5. Garmin GPS active antenna
  6. serial level adapter (MAX232) between GPS module and mbed serial port
  7. battery control circuit with step-up converter from 3.7V to 6V
  8. LCD display 20x4
  9. keypad


underneath the cover:

  1. 3.7V LiPo battery
  2. 5V LDO regulator
  3. resistor ladder

This version is developed within the mbos RTOS: http://mbed.org/users/AndrewL/libraries/mbos/lqn3ca

It uses NMEA library by Tim (xtimor@gmail.com) ported by Ken Todotani http://mbed.org/users/todotani/ on public mbed library http://mbed.org/users/todotani/programs/GPS_nmeaLib/5yo4h also available, as original universal C library, at http://nmea.sourceforge.net

The original gmath.c has been modified to fix a bug in nmea_distance_ellipsoid() function according to bug report ID: 2945855


    // while ((delta_lambda > 1e-12) && (remaining_steps > 0))  original by xtimor

    while (( remaining_steps == 20 ) || ((fabs(delta_lambda) > 1e-12) && (remaining_steps > 0)))

the original code always returns a zero distance if the arrival point longitude is equal or smaller than the starting point one.

The mbed module is interfaced with a Garmin GPS sensor (used in standard mode) with an external antenna, a 20x4 LCD text display and a 5 keys keypad interfaced on a single ADC port via a resistors ladder.

A curiosity: All the hardware components of the test set are mounted on the top of a wooden box, looking like a kind of a steampunk navigator. When my daughter looked at the box she said: "it looks alike the navigator of the da Vinci car". This is the reason why the name of this project is "Leonardo".

This is not a definitive application but a study program to test NMEA full decoding library and a first approach to an RTOS. Many thanks to Andrew Levido for his support and his patience on teaching me the RTOS principles from the other side of the Earth.

Please log in to post comments.