HOMECOURSESSTUDENTSDONATIONSVIDEOSEVENTSTUTORIALSLINKSNEWSCONTACT


TUTORIALS 》 Using a GPS Sensor

A GPS receiver uses satellites to pinpoint locations, so as long as you have a GPS receiver and a clear view of the sky, you'll never be lost again!

Have a look at this amazing site to know more about a GPS Sensor: http://electronics.howstuffworks.com :: How GPS Receivers Work

I would suggest have a look at how the GPS receiver generates a Pseudo Random Code which has a mention in the given site. The GPS system uses an array of satellites orbiting around the earth and sending time information. It picks up the signal transmitted from the satellites, calculates the time it took for the signal to arrive, and by identifying the position of satellites, triangulates the position on the surface of the globe. It uses the standard NMEA protocol (http://www.nmea.org) to transmit the position data via serial port. Let us start exploring the world of GPS!

GPS Satellites


Here is a list of components needed:


Here are some images of this module:


Image Source: http://www.alselectro.com/images/GPS_3_thumb_0cdckk0l.jpg


Image Source: https://cdn.instructables.com/F0J/9T8J/IOT2UO46/F0J9T8JIOT2UO46.MEDIUM.jpg


Image Source: http://module143.com/image/cache/catalog/skg13bl-500x500.jpg


The connections are as follows:

Skylab SKG13BL GPS Receiver



GND of GPS ------------ GND of Arduino
3.3V of GPS ------------- 3.3V on Arduino

Note: Skylab SKG13BL: It is always a good practice to read the Datasheet. So here you go: http://www.alselectro.com/files/SkyLab_Datasheet.pdf
Note : You can even use a 12V Power source, but here we are using 3.3V.

Most microcontrollers these days have built in UARTs (universally asynchronous receiver/transmitter) that can be used to receive and transmit data serially. UARTs transmit one bit at a time at a specified data rate (i.e. 9600bps, 115200bps, etc.). This method of serial communication is sometimes referred to as TTL serial (transistor-transistor logic).

The last simple connection involves connecting the TLL from GPS to Arduino Board:
Rx of GPS -------- Tx of Arduino (Pin 3)
Tx of GPS --------- Rx of Arduino (Pin 4)

* Refer Pg.8 of the Datasheet.

Now, connect the G Mouse to the GPS Receiver and connect the Arduino board to the PC via USB.


Libraries/Dependencies:
Here are the required libraries we need to install.
Install the TinyGPS Library from here: http://arduiniana.org/libraries/tinygps/
Install the Software Serial Library: https://www.arduino.cc/en/Reference/SoftwareSerial


Please take care of the following:

  • Do not connect the GPS Module to Multiple Power Supplies.
  • Place the G Mouse at a spot where it can see the sky.
  • Please go through the Datasheet.
  • You can even use Putty to obtain output (in Windows) - http://www.putty.org/
  • If the code shows error, make sure to keep the Baud Rate to 9600.
  • If you face port or driver problem,
    Do this (in Windows): Control Panel > System and Security > System > Device Manager > Ports > Arduino UNO > Update Driver Software > Browse computer manually and choose the Arduino IDE folder.


Source code:
Download the code HERE.
Kindly remember to refer the previous step in case of Port Error.


Output:
The code will give the Latitude and Longitude. Make sure to divide the output by 10^6 to get correct coordinates.

You can also visit sites likes to map the points:


So here is the output it generates:

Position: lat: 26865785 lon: 80906375 Position: lat: 26865785 lon: 80906375 Position: lat: 26865785 lon: 80906375 Position: lat: 26865783 lon: 80906375 Position: lat: 26865783 lon: 80906375 Position: lat: 26865783 lon: 80906375 Position: lat: 26865783 lon: 80906375 Position: lat: 26865783 lon: 80906373 Position: lat: 26865783 lon: 80906373 Position: lat: 26865783 lon: 80906373 Position: lat: 26865783 lon: 80906373 Position: lat: 26865783 lon: 80906373 Position: lat: 26865783 lon: 80906373 Position: lat: 26865783 lon: 80906373 Position: lat: 26865783 lon: 80906373 Position: lat: 26865783 lon: 80906372 Position: lat: 26865783 lon: 80906372 Position: lat: 26865783 lon: 80906370 Position: lat: 26865783 lon: 80906370 Position: lat: 26865783 lon: 80906370 Position: lat: 26865783 lon: 80906370 Position: lat: 26865783 lon: 80906372 Position: lat: 26865783 lon: 80906372 Position: lat: 26865783 lon: 80906375


About me: Saumitra Kapoor
My name is Saumitra Kapoor and I am in love with Electronics, Circuits, Wires and Devices. I started learning everything about it long back from wherever I could and I haven’t stopped since. I try to read a lot, build fun projects and come up with tutorials.


Featured Video:



Suggested Topics:


☆ Tutorials :: Arduino UNO Projects ↗


☆ Tutorials :: Network Software Development ↗


☆ Tutorials :: Research and Projects ↗


☆ Tutorials :: Linux (user-space), Systems Architecture ↗


☆ Tutorials :: Linux Kernel Software Development ↗


☆ Tutorials :: Linux Kernel Internals (PDFs) - by Ramin Farajpour ↗


☆ Tutorials :: Software Development (Programming) Tools ↗


☆ Tutorials :: Embedded Projects ↗

Join The Linux Channel :: Facebook Group ↗

Visit The Linux Channel :: on Youtube ↗


💗 Help shape the future: Sponsor/Donate


Recommended Topics:
Featured Video:
Watch on Youtube - x224 Linux Kernel Dummy Network Interface /drivers/net/dummy... ↗

Raspberry Pi OS with PIXEL ↗
Saturday' 13-Mar-2021

Programming Language Performance and Overheads ↗
Saturday' 13-Mar-2021
A detailed Youtube video series of various programming language performance and overheads - a big picture

What is a Linux Kernel Module - a Big Picture ↗
Saturday' 13-Mar-2021
Learning Linux Kernel Programming is always fascinating and yet challenging. So generally you may tend to learn Kernel Module programming, since such a module can be dynamically plugged into running Linux Kernel. But this will lead to confusion, and many assume kernel source is mostly a collection of these modules. Which in reality is not. Not just that, when we say Kernel Module, its a vaguely defined term. The term Module (as we know) is nothing but a collection of APIs, bunch of variables and associated data-structures. Which may or may not be a plugable kernel module. If you ask me, I am a fan of wiring Linux Kernel Modules, which may not be necessarily a pluggable kernel module. It all boils down to the address space at which these modules function inside a monolithic Linux Kernel. Which is nothing but Linux Kernel's address space. Hence here is my detailed multi-episode Youtube video series on Linux Kernel modules, a big picture and the significance of the

Linux Kernel Programming | with or without Kernel Modules | Device Drivers ↗
Saturday' 13-Mar-2021
When learning Linux Kernel programming, often I notice my students and viewers gets confused and they start with learning writing Linux Kernel modules. And so they develop the common misconception about Kernel Programming in general. They assume writing code in Linux Kernel means writing kernel modules. Which is absolutely not. Kernel modules are an optional choice and are part of Linux Kernel. But besides modules, Linux Kernel has lot of other mainstream code. Hence if anyone wants to be a Kernel Developer, you should be aware that sometimes you add new code via modules, sometimes without them. And if you ask me, I am not much in favor of writing Kernel modules. Instead in my code, I try to integrate and make them a part of Linux Kernel so that they all get initialized during boot time. Here is an extensive Youtube video of mine on Linux Kernel Programming, with and without Kernel Modules.

Weekly News Digest - Week 03 - June 2020 ↗
Saturday' 13-Mar-2021
The Linux Channel :: Weekly News Digest - Week 03 - June 2020 > Kimχ Micro: A powerful alternative to the Raspberry Pi that supports PCIe cards > Linux Lands And Then Reverts Usage Of Flexible Array Members > AMD Ryzen 4000-Powered Asus Mini PC Challenges Intel's NUC > Aaeon's Raspberry Pi-like Board Bears An Intel 8th Gen Core i7 CPU and 16GB of DDR4 > Linus Torvalds Announces Massive Linux Kernel 5.8 Update > New Cisco Cloud Scale ASIC & 400G Line Card Announced > Key Differences of PoE vs PoE+ vs PoE++ Switches a STH Guide

CEO, CTO Talk ↗
Saturday' 13-Mar-2021

TCP vs UDP an Expert Opinion ↗
Saturday' 13-Mar-2021

Weekly News Digest - Week 5 - February 2018 ↗
Saturday' 13-Mar-2021
> Mini-ITX board fosters flexibility and fights obsolescence > You Can Do Better Than Arduino: Try These Microcontrollers > Open source is 20: How it changed programming and business forever > Since computer technology evolves so rapidly, does it matter if you have 5 or 15 years of experience as e.g. software developer? > Linux Kernel net_device data-structure - possible_net_t nd_net - Network namespace and Linux Containers - Ep7 > New Wave of Mini Satellites Could Boost Climate Research > Here come all the AI deployments; Now how do we manage AI? > Imagination announces neural network acceleration push

How to start Open-Source Project ↗
Saturday' 13-Mar-2021

Weekly News Digest - Week 8 - February 2018 ↗
Saturday' 13-Mar-2021
> Asymmetric Processor Cores > Using QCT Quanta LB6M 10GbE Switch for Container Networking > Using SSE Instead Of WebSockets For Unidirectional Data Flow Over HTTP/2 > Why IPv6 networks create DNS configuration problems > Hypervisor or containers: Which solution is right for you? > Blockchain for 2018 and Beyond: A (growing) list of blockchain use cases > Raw sockets backdoor gives attackers complete control of some Linux servers


Trending Video:
Watch on Youtube - x226 Linux Kernel Tasklets | Big-Picture | vs User-Space pth... ↗

Deciding the future: Cloud/Colocation Data Center or Premise-Built Data Center? ↗
Saturday' 13-Mar-2021
Before we go ahead expounding on picking between managed hosting and data center co-location, let us initially comprehend what each of these methods for a business endeavor to achieve. According to an article written by Nitin Mishra, According to an article written by Nitin Mishra, Former Airtel & Samsung executive. “which is perfect for your business? The appropriate response lies in the points of interest and relies upon your organisation's particular prerequisites and the workloads that you would need to keep running from both of these alternatives.” PROS/CONS: Premise-Built Data Center vs. Cloud/Colocation Data Center.



Recommended Video:
Watch on Youtube - x224 Linux Kernel Dummy Network Interface /drivers/net/dummy... ↗