GPS Navigator Using Arduino

Programming, Tutorial, Coding, New Design, and/or any project for your Arduino and Raspberry Pi can post your topic /suggestion here.
User avatar
Posts: 12
Joined: Fri Mar 17, 2017 2:17 pm

GPS Navigator Using Arduino

Wed Apr 05, 2017 6:40 pm

Presented here is such a GPS device with a tracking record system. It shows the path traversed by you from the initial position, so you are never lost at unknown locations and can always come back to the initial point.
GPS Locator Circuit Diagram
GPS_NAVIGATOR CIRCUIT DIAGRAM.jpg (115.83 KiB) Viewed 871 times
The circuit is built around microcontroller ATmega16 (IC1), 5V voltage regulator 7805 (IC2), GPS module (connected at CON1), graphical LCD (GLCD1) and a few other components.

The circuit is powered by a 9V/12V adaptor. Regulator IC2 provides 5V regulated supply for the circuit to operate. LED1 indicates presence of power in the circuit.

Microcontroller IC1 running at a clock frequency of 16 MHz communicates with the GPS receiver modem via serial protocol. Tx pin of the GPS receiver is connected to Rx (PD0) pin of microcontroller IC1. The GPS receiver continuously transmits data at 1Hz update rate.

A 128×64-pixel, KS0108-controller-based GLCD is used to display the navigation data. Port pins PB0 through PB7 of IC1 are connected to data pins D0 through D7 of GLCD1. Port pins PD2 through PD6 are used to provide control signals RS, R/W, EN, CS1 and CS2 to GLCD1, respectively. Switch S1 is used to reset the navigator.

Once powered on, the microcontroller stores the initial longitude and latitude data. Then it continuously plots the changing latitude and longitude as you move around. One division change on the screen is equivalent to approximately 30 metres travelled. With the new latitude and longitude position plotted on the screen, you get a clear idea of the direction and path traveled by you. The display also shows various other information such as current latitude, longitude, speed, altitude, date, time and number of satellites the GPS modem can capture.

The software program is written in ‘C’ language and compiled in WINAVR Programmers Notepad. WINAVR is a GCC–based compiler for AVR. Burn the program into the MCU using a suitable programmer with FUSE BYTE settings mentioned below:
L fuse-0xef
H fuse-0x99

The GPS receiver modem continuously sends data via USART to IC1 at 9600 baud rate. GPS data is initiated by a ‘$’ sign followed by National Marine Electronics Association (NMEA) output sentences.

The microcontroller continuously captures and stores all bytes for each NMEA output sequence. The total bytes are then partitioned and sampled into a small packet containing information about time, date, longitude, latitude, altitude, speed, etc. These values are regularly updated and displayed on the GLCD.

Assemble the circuit on the provided PCB to minimise assembly errors. Use IC base for microcontroller IC1. You can use a 9V/12V adaptor or any other suitable DC source to power the circuit.

To test the circuit for proper functioning, verify 5V power supply at TP1 with respect to TP0. Reset to the system can be checked at TP2. The data transmitted by the GPS modem can be observed at TP3 using an oscilloscope.

PARTS LIST.jpg (74.89 KiB) Viewed 871 times
Source Code:
Source Code
(11.09 KiB) Downloaded 90 times
We are happy if you can share yours, and if you modify found any bug let us know by your comments below. Lets spread open source!



In total there are 4 users online :: 1 registered, 0 hidden and 3 guests
Registered users: Majestic-12 [Bot]
Most users ever online was 156 on Sun Jun 17, 2018 7:42 am
Total posts 471
Total topics 355
Total members 69
Our newest member svetikvow
No birthdays today