LESSON 22: Build an Arduino GPS Tracker

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello guys i am paul McWhorter and I am here with lesson number 22 on using the Arduino microcontroller and we have an exciting project for you today where we are going to be building from scratch our very own GPS tracker now I'll be honest with you this is actually going to take two lessons so we're going to do the first part today and the second part tomorrow what we're going to do for today where our goal for today is is to get the GPS hooked up to get the circuit hooked up and to have it streaming the data to us so that we're getting that position data coming off of the GPS module then tomorrow what we'll do is we'll finish up the program where we write the parsing program where we parse the data and store it in a useful format on an SD card but for dead today let's get this thing hooked up and let's get some good data coming off of it we will be using the most excellent at a froot ultimate GPS breakout Version three okay you can pick this up I you can pick this up for about forty dollars and there are several reasons we use it there's a lot of these GPS units in this price range the reason that we like the Adafruit one is that you probably know that myself and my students do a lot of high-altitude ballooning where we develop instrument packages and send them to the edge of space as you can see with the picture back here send back data send back pictures the thing is most GPS stopped working above 60,000 feet and they stopped working because the GPS manufacturers miss read the government regulations on GPS equipment and they turn them off when they go above 60,000 feet the thing about the Adafruit unit is they have correctly interpreted the government regulations which will allow you to have a GPS working above 60,000 feet on a slow-moving object the balloon is slow moving object and therefore it is perfectly legitimate to hook a GPS up to it and so the neat thing is is that this Adafruit unit is one of the few that really work at very high altitudes I will say in some of our launches we have taken this little unit up to altitudes of 120 to 130 thousand feet and have had it performed flawlessly at those very very high altitudes and so if you're thinking about doing high-altitude ballooning this is a great GPS unit as well as it's just it's pretty good for just any just about any application so that's why we chose this particular particular unit now if we are going to do this there's a little useless there's a little bookkeeping we need to take care of right off the bat Etta fruit provides a very nice library to help do some of the hard work for you in developing software for this so we need to start by downloading that the easiest way to do that is to go to my website www.wefeedtheplanet.com go GLE Chrome as I am it shows up down here the zipped folder if you are on a different browser you will go have to hunt for this in your download folder but for us we can just click on it and it will enough the folder it has opened the zip folder the folder we want is the folder inside the zip folder so don't just drag the zip folder to your desktop you want to open the zip folder and then you want to get the folder inside the zip folder and drag that to your desktop ok then once that is to your desktop this is the library we want to rename it so we're going to come in and I am going to rename it I just like this take that off add a fruit where that - is you want to underscore Adafruit underscore GPS like that okay we need to put that in our library folder well where is our library folder this is the easiest way to find it and this should work no matter where you have it installed you come to your little Arduino ie you come over here and you look at preferences under file and then this shows you where your sketchbook is and inside your sketchbook you should see a library folder well what I can do is I can come over here and let's just say I open up a folder like let me just open up any folder let me go to my computer and then let's just sort of navigate there let's go back and look at this window and let's kind of navigate there so you can see that it's under users my name documents arduino i could go sort of one by one on that let's just do it one by one let's go local disk I said should see something here that says users and then I should see something that has my name there it is and then I want Arduino okay or I want documents and so we come down to documents in my documents or synonymous and then there is the Arduino folder in boom there is the library folder we want to drop this inside that library folder okay let me show you another way to do it let me just go back to a computer I could get this and I could copy this controls that come up here to this bar and paste it and then if I go boom it takes me there as well so that's two different ways that you can do it and we now have the library loaded very important for you to be able to see that library you have to kill your IDE your integrated development environment and then you have to open up a fresh one okay because it's when you open up that fresh one right here all this business it's going out and it's looking for your libraries and so now if I tell your under libraries there is my Adafruit GPS library so now the library is there that is a good deal okay that is very good now let's go ahead and let's hook let's hook this thing up so let me find where we where we went here let's go back to WWE boy calm we are on lesson 22 okay so what we want to do is we want to go ahead and just sort of see if we can hook this up now the interesting about this particular sensor is is that once you put power but it starts streaming data okay and that's kind of like a good thing and you'll see in a minute it's a little bit of a bad thing it creates a challenge for us as soon as you turn it on it starts streaming data so let's see if we can get this thing hooked up the way you hook it up is you come over here and you should see a pen that says VN okay the VN pin or Mon is over here almost to the left you hook VN to volts on the Arduino ground goes to ground okay and what we're going to do to start with now just to sort of see if it's working what I want you to do is I want you to ignore what I say here okay and we're just going to see if it's working so I want you to take the TX pin the the rx pin I'm sorry the rx pin is next to ground and I want you to take the rx pin and I want you to hook it to pin 0 okay the rx pin to pin 0 on the Arduino and then I want you to take the TX pin which is next to it and hook it to pin 1 on the Arduino ok so our X to 0 and our and TX to pin 1 all right and what that should do is that should just stream the data that's coming off the TX Rx data off the GPS and it should just throw it on your serial port ok so let's see if that works so what we I need you to do is I need you to open up an integrated development environment like this that's just blank avoid setup with nothing in it avoid loop with nothing in it and then download that to your Arduino okay you get that downloaded and notice we haven't loaded any libraries we haven't done anything but just connect power and connect to those serial those receive transmit pins and if I hit this and I need to set this back to 9600 which is probably where it's coming through yeah so what I want you to see here is this is the data that is just streaming off of that GPS module and what these are called is these are called NEMA in EM e a sentence --is in these each line is one sentence and each lineman has data about what your location is well I'm going to stop this for a second so that you can see it and there's a couple of things that we ought to talk about here each line is one NEMA sentence and each NEMA sentence has various data that's very useful and informative to you it has things like what time it is what is your latitude what is your longitude what is your altitude do you have a fix how many satellites can you see the quality of your fix velocity all types of useful information all right now if you look at my nameís sentences what you see are a bunch of commas and a bunch of zeros and that's because because I'm sitting inside I cannot get a fix because I've got a big roof over me I'm not getting a fix so it's just streaming empty NEMA sentences but what this is saying is it's saying that the GPS is nominally working and it's talking to the Arduino and it's streaming this data out what I want you to see is is that there's different types of NEMA sentences I have the dollar GP they all start with dollar GP but I have dollar GP and then I have the RMC sentence and then after that I have the GGA sentence and then I have the RMC sentence and I have the G see a sentence I had programmed this up earlier to only show those two sentences if you've just just turned your GPS on for the first time you probably see a whole bunch more than this but one of your goals is going to be is is to just get it down to where it's only streaming these two sentences because for most applications for high altitude ballooning and for most applications that I can think of all the data that you will ever need is in the GCE a and the RM see sentences and so what we'll be trying to do is to get it where it only sends those two sentences out but the neat thing is is that you can see without writing any code at all this thing is already stringing data and if I took this outside and set it with a clear view of the sky you would start seeing data coming through here that ah that would have position information and other neat and useful things like that so this is the neat thing is that it just sits there and it disputes this data out the problem is that it just sits there in spews the data out so let's say that I write a program and I'm off doing something else well what I'm off doing something else is spitting all this data at me then when I go to read the data off the serial monitor the problem is is that that data might be old because it might have been you know data from ten minutes ago that was the first data in and then it filled up the serial port buffer it filled up that buffer and then who knows what's happening I have either old data or corrupt data in that serial buffer it's not you would like it to be more of a client-server type of relationship where the Arduino could go out to the GPS and said send me data and then GPS says here's your data you ask where's the data and it says here's your data but no the GPS does not listen it's just sitting there just throwing data at us and we've got to keep that in mind when we develop the software because I'll tell you I've really struggled with this part and in our high altitude ballooning work we found many times we were ending up with old or corrupt data in that serial buffer and so we've got to make sure that we are mindful of the fact that this thing is constantly streaming data and if we go away and do something else with the Arduino like the Arduino goes away and reads pressure or something like that comes back tries to read that serial monitor the data could be old the data could be corrupt we can fix that but we've got to keep it we've got to keep that in mind as we're as we're doing that okay so that just shows that if I connect TX and rx to Penn zero and one which are sort of like just a little direct path to your serial to your serial port I can just stream directly from the GPS into the serial port and I can display it but we want to be able to program and we want to do a little bit better than that and so we need to go out and we need to connect rx to pen two and tx2 pen three be sure to do this so I'm coming over here and I have I have a TX I'm going to put on pin three I got to look very carefully and then our X I'm going to put on pin - all right just like it says here so now what that's going to do is we're going to have to load a library called software serial so we're going to create sort of a new serial port on pins two and three and we're going to be talking to them on this rx TX Rx TX protocol all right so what's up let's start developing our code here let's get our code going so open up a new window and there's some things that we are going to need to do first of all we're going to have to load some libraries in here there's several libraries we are going to have to include which is how we load a library and we need our add a fruit underscore GPS dot H that is that library that we just installed okay that is that library that we just installed okay so let's say install the PATA fruit GPS library now we are going to have to include let's fill it right include and we need the software serial libraries software serial dot H I better put a comment here this is not going to be happy make it a comment okay load the software serial library okay what the software serial library does is allows you to create kind of like a new serial port over here on these two pins so that that you still use your normal serial port for normal things and you created another one over here to talk to the to talk to the GPS now that we have loaded that we need to create a software serial object so we're going to say software serial okay and let's call it my serial and what we're going to do is we're going to tell it how we're talking to the GPS well where do we want that software serial where do we want it to show up we want it to show up at pins three and two okay three and two so this is telling this is setting up that that new serial port and we're telling it that we connected to the GPS on pins three and two okay so we're going to get that set up this is a mystery initialize the software serial port okay now what we want to do is actually create our GPS object so we use the library named Adafruit underscore GPS make sure that you're getting the underscores right make sure you're getting the capitalization right and the way we do this is and my cereal so what I'm saying is and I need to give it a name here let me uh so the library name is Adafruit GPS and now my object name is going to be GPS and I'm going to connect to it through and I need to put an and my serial because remember this is my serial port that I created to connect to this on pins three and two and so I've got to tell it that the GPS is connected through the my sea real and for some reason these new Adafruit libraries like to do this thing where you got to put an end in front of there I don't understand it but I know that the end needs to be there okay so what are we doing here create the GPS object alright so that looks good so we have that little business taken care of what variables are we going to need well dad to show you that I showed you where you want the GP GG a NEMA sentence and you want the GP RMC NEMA Senate so when we go out we want to grab two sentences and then when we come back and read again we want to grab two sentences and so we need to keep track of two name of sentences and really we don't know whether it's going to read the GGA first or read the RMC first we don't care we're just going to have two variables one for the first sentence one for the second sentence so those are going to be string variables and so we're going to have mm e am e a1 okay variable for for first EEMA sentence and then strain in mea two very variable for second and then be a sentence okay and then the way we read this did you see how those things were coming in that data was coming in they're coming in as just characters and so the way we read that it we just read a character over and over and over we're just reading a character so we need a variable to read that character into is it streaming in so we need a char a character I'll just call it C to read characters come I mean from the GPS I think those are our variables in our void set up we've got some business to take care of we always want to start our serial ports we're going to say serial dot begin and this is just our normal serial port that talks to the computer so we'll well we better go fast we have no time to dilly-dally with this thing so we're going to go fast okay turn on serial monitor in the baud rate is 115200 we've got to now start the the GPS and so just like we did serial again we got to do a GPS dot again why is it GPS because that's what we named our object up here and that we can talk to it 9600 I don't think it likes to go very much faster than that okay turn on GP GPS at 9600 baud okay now this is where it gets kind of confusing one of the really frustrating things about the adafruit GPS is is that it keeps wanting to send you the status of the antenna is there an antenna connected and I don't care if there's an antenna connected because I don't have an external antenna I know there's not one connected and so when I'm out there trying to grab these sentences that are coming off of the GPS all of a sudden it keeps spewing at me data about the antenna and I don't care about the antenna and then that messes me up when I'm trying to parse the data all I want is the GGA sentence and the RMC sentence I don't want you to send me an update on the antenna so I have to force it because the commands that a different says will turn that off don't work okay so we've got to get down and dirty in this thing and we have to do a GPS because that's what we named it up here and then we've got a dot send a command okay and the command we are going to send is dollar uppercase P G C M D comma 33 comma zero star six uppercase D in quotes okay what this is doing is this is just sending a command down into the registers that turns that thing off kind of like finally at the hardware level okay turn off and Keena update new since data okay so let's look at this again I'm going to this one I know works so I'm going to copy and paste it from over here and then I will read it to you again very carefully because you were typing this in it is dollars it's in quotes dollar sign uppercase P G C and D comma thirty three comma zero star 6d and ended that will turn that off in your life will be so much easier if you are not getting that data in there we need to do another send command okay GPS got send command we need to tell it what speed we want it to work at and that is going to be the command P m TK all uppercase underscore set underscore in a M a in a a underscore update underscore 10 Hz close that into the colon okay set up update break q10 first your other choices you could change this 10 to a 5 4 5 hurt so you could change it to a 1 4 1 Hertz and so those are kind of your choices you can't put in any number you want you can kind of make it 10 5 or 1 so that's p m TK underscore set underscore in and oh I have a typo here in M e a NMEA underscore update underscore 10 Hertz it gets easier here in a second but this is just some bookkeeping that we've got to send these commands so that we get the GPS configured correctly now we're going to do GPS underscore send command what we want to do now is we want to just tell it that we want two sentences we want the GGA sentence in the RMC sentence and it sends them over and over but we'll send the g8 the GG armc GG armc GG armc but it won't put all those other sentences in there that we don't work and so I am going to copy and paste this so that I do not make a mistake and then I will read it to you carefully you want PMT K underscore set underscore in M EA underscore output underscore R MC GGA so we're saying we want the our MC sentence and we want the GG a sentence okay request our MC and Gigi a sentences only alright now let's give it a second type digest all this so we will say delay by a thousand milliseconds just to give it a chance to get all this information yeah alright now let's come down we are actually getting pretty close here this gets pretty easy and what I'm going to do is I'm just going to write my own function and then I'm going to call it and the function that I am going to call it or the function that I am going to make is going to call read GPS and what I'm going to do here in this loop in my avoid loop I'm just going to sit and read GPS reach epi sorry GPS okay and so this is a function so I have to define that function so after the void loop is over okay this is the end of my void loop I will create a new type of function called void and it's going to be read GPS okay void means I'm not passing it any parameters in the parentheses I'm not passing any parameters to it I'm not getting any parameters back I'm just going to do the steps in there so void just means don't expect any data return from it okay so now let's do the avoid reread GPS well what do I want to do okay I want to come down here and this is going to be just like our void loop and our void setup we have a begin of the clause and we have an end of the clause with curly brackets so this function starts with this and ends with this and then everything in here it will do when I call this so when it sees this command it jumps down here and does these steps and then it goes back what I want to do is I want to sit and loop okay I just want to sit and loop until I get a good NEMA Senate sin so what I'm going to do is I'm going to say while I exclamation means not while I don't have while it's not okay GPS dot new in in E a re see okay and what you got to do here is be very careful of your capitalization uppercase GPS and then dot new and then uppercase n m e a the r is uppercase received and then an open a closed and then a closed for the while loop and then open bracket for the while loop and then close curly bracket for the while loop all right so what is this going to do this is going to sit and loop until it gets a GPS dot new Nima received when GPS dot new Nima received is true it has a new Nima sentence and it will drop out of this but as long as you don't have a GPS dot new Nima received it will sit here in loop so it's going to sit here and loop until it gets a sentence well what are we doing the loop we read so C is equal to GPS dot read open closed : all right so let's let's let's think about this we call the GPS read we come down here and we loop and we just keep reading a character keep reading a character keep reading a character keep reading a character until this function GPS new Nemo received is true and once it's true it drops out of this while loop meaning you have one of those sentences okay so what we are doing here is loop until you have a good nema sentence all right well once you have a good name a sentence once you have a good name a sentence what do you want to do you want to parse it so you're going to say GPS dot parse what do you parse you parse that ah you parse the GPS dot last nema parse that last good name uh sentence all right so once it gets a sentence where is that sentence that sentence is in the the function or the command GPS blasts nema okay I take that GPS last nema and i parse it which that means it's going to take all those useful things and put them in variables that will be easy for me to get to tomorrow so we want to get the sentence and then we want to parse it all right get the sentence and then we want to parse it then once we have parsed it we also sort of want to save it right we want to hang on to it because we know that we are going to want to use it later so I'm going to call this NN ea1 remember that was that string and then I'm going to make that equal to the variable GPS dot last N and M PA and do I need oh yeah I got to put the open/close on this so right there you need to open closed parenthesis here you need open close parenthesis okay so I'm going to sit here and loop until I've read a good sentence then once I have a good sentence I am going to GPS dot parse that good sentence and then I'm going to save that good sentence in the variable in n eá all right so at this point I should have one good sentence this is the tricky thing guys this data is coming in so fast at us you cannot pause and do anything here whatever that first sentence is you've got to go read that other sentence because that GGA sentence in that RMC sentence come right after each other and if you run off and check the temperature or check the time or get a cup of coffee or or do any other command that sentence is going to be in there and jammed up in your buffer before you know it so we need to immediately read that next sentence that's why we put it down here by itself you have to read those two sentence right exactly together you cannot even put a print statement here if you put a print statement in the time that you do that print you have already jammed up that that that buffer and it's overflowed and it's corrupted so the only way this works is if you read sentence 1 and read sentence 2 and don't do anything not even a print statement in between them so what do we want to do we want to read that second sentence so we're going to take this copy and we're going to do it again okay only this time so we have while we look we're reading the second sentence and this time okay I've got it and now I'm going to parse it and this time I will call it two right so now I've got the first sentence and now I've got the second sentence alright I've got the two things I needed I got my two sentences I parsed them now I can relax now I can print them out okay so what am I going to do serial dot right Ln MVA one okay and then I'm going to put a serial dot print and I'm going to put in mp2 all right so I'm going to grab the first half grams sicken and now that I have my two sentences now I can casually print them and casually print them but you can't do anything because of the stream of data you've just got to read the two all together all right I think this should give us two nameless sentences let's download this let's see where my ears what did I do here Oh up here forgot my colon did you guys catch that when I did it forgot my semicolon at the end of that remember when you load libraries you don't put calm you don't put us in my cones when you load the library's almost everywhere else you do so let's give this a new read GPS okay why does it not like that we do three GPS that is going to be ah okay so I'm reading the GPS thank you sir I appreciate that okay so I'm going to read the GPS and it says that that was not declared here I've got I'm defining it let me look and see what could possibly be wrong here read GPS and then in my void loop and then down here undo I'm diff'ent you guys probably see it already avoid oh I don't I don't want this okay that : because this is a function I don't for the semicolon there okay ah new name were received okay let's see what I did wrong there well not GPS do aa little art I'm sorry anima receive little R on Nemo received little are okay alright hopefully you're up with me I'm sorry for those little snafu but I think that we have got it now okay so let's look at our serial monitor we should see these Nemo sentences coming in and we don't 115,000 on the body right remember let's see what happens there okay I'm a serial print line Nemo one serial.print miney mo 2 m2 is let's try it download it again okay we're on 115200 we've got that let's take a look here so we are reading our GPS why are we not happy okay I found the mistake I hope you guys saw this when I went through it the baud rate should be 9600 and I said it at 96 thousand let's download that whoo that was a hard one but things have to work if they don't we've made a mistake this should work this time all right I turn this on okay and you can see that I'm getting these Nemeth sentences streaming to me I'm going to put an extra print statement in so I can see a little bit better I want to see the one - I wanna see the one-two punch okay so serial dot print Ln I'm having problems today spelling open the clothes by putting a blank line so I can see them one after the other coming in and we download it okay let's see what happens all right so let's look here I'm gonna turn the auto scroll off and let's look look the first data that I'm getting is corrupt okay because that's like I'm out doing all of this stuff and then I go and I say read the serial port and it's already jammed all this stuff in on me while I'm doing my setup and then I try to read it now read garbage well then I'm coming in and I'm getting an A in a C and a and a C and a and a C it seems like it's working pretty good after the first one so we might say well ignore the first one because as I'm coming down here we're getting a lot of good data okay I'm seeing a lot of AC AC so that looks good the problem is if I just ignore it the other thing is imagine all I'm doing here is reading GPS but remember eventually we want to pressure a sensor in a temperature sensor and an inertial measurement sensor there's going to be a lot going on and so I need to kind of simulate that other stuff going on what if I put a delay of 250 milliseconds here that after I read the GPS that leaves me you know let's say I'm going out doing other sensors and stuff in that time what happens if I put that delay to simulate those other sensors so if it's just running flat out the first data is corrupt but what if I have a delay in there what happens okay that first data is corrupt and then I get a CA CA and it's looking surprisingly good with at 250 milliseconds delay first one it's still bad and look this one's bad too because I'm missing the Chi things look pretty good at that point but we got to kind of try random delay time so let's try 750 and see what happens because you don't know all the things that you might be doing between GPS reads we got to make sure that this core part of our program is robust so that we can add to it so that's bad that's good good I get a CNN a but now look at this I'm getting an A in an a and then a CA and an A in an a well this a and a won't work because I need to get both the MC and the GA so what it's doing is it's reading like an old a and then while I was away in that 250 or 750 milliseconds it misses the our MC and then when it comes back there's another a there so you can see this is not going to work this is not going to work because while we're away I Jam up data in that buffer and then it's old and it's corrupt data so how do we handle that this is how we handle it we need a new function and down here in void read GPS when we read the GPS the first thing we should do is we should clear GPS so we're going to create a new function so when I tell it to read the first thing I want to do is just go clear it so now I need to define a new function which is going to be void and then this is going to be clear GPS we're not returning any data so it's that like that don't make that mistake again open curly braket close curly bracket so here's the function and what do I want to do here how do i clear so the thing is while I'm out reading one of the other sensors there's all this data that is jammed up in the buffer and it's become old or corrupt what do I want to do well I just want to read it and discard it so I'm going to do like two reads on the GPS I just want to do two quick reads to get all that old and corrupt data out and then I want to just go back and continue in my function to do the real reads so what do we want to do we want to do this right here we just want to read and parse the sentence I don't want to save it I just want to read it for the purpose of getting it out of there okay okay so here we are going to loop until okay and what's the purpose of this function clear old and corrupt data from serial deport okay and so I've read it once and then I'm going to do it again because there may be there could be say a couple of sentences worth of bad data there so I'm just going to read it twice throw the data away and then I'm going to come back up here after I've cleared it and then I'm going to grab the one I'm going to keep and I'm going to grab the one I'm going to keep and I think this should work I think this should even work on the first one because we're going out and we're clearing that old data out of there downloading anyway let's look I'll look at that I got a CNN a I got an anus II a CNN a and anus II I don't care if they're in different orders but look I'm getting a complete a sentence and a complete C sentence a complete C complete a that is looking good that is looking good the first ones good they were all good how about let's go back and let's put like a short delay because you got you got to try cuz you don't know how long these things are going to be that when you go do these other reads it could be span a wide amount of time so we've got to really try this for different delays to make sure that for any delay that when you come back and want to do it could GP it when you want to come back and do a GPS read that you're going to get good data so this is just with a very small delay and look at that I'm getting an AC AC AC AC look at that that is working okay let's go back to like 750 see how that works you see you're better off trying to break it now yourself and getting way into a project and then see that your algorithm is not very robust but so far this is looking good okay first then it's a CNN a that's good an ans see a CNN a and ans see I don't care if they're in different orders I just need every time an A and a C and look at that I'm getting an A and a C that's going to work we just put something crazy like a 12500 that should be like 12 seconds 12 and a half seconds I just want to do that just to make sure that anything that we do is going to is going to still have this core part of the program working I got a good a I've got a good see wait twelve and a half seconds okay ooh that one is a busted sentence you see that is a busted sentence that one looks good so for ultra long delays of like ten or twelve sentence I did get a busted sentence in there so I am going to just to be safe I'm going to read you know the questions I'm not sure how big that buffer is and maybe there's enough room in there for three sentences and so maybe instead of reading two sentences I need to read three sentences here so I'm going to take this copy and in this void clear I'm going to I'm going to wait till I read three sentences and I'm going to throw it away and then I'm going to go get the data and that certainly should clear up clear out that serial port I think this should work okay got an A and C it was the second one it missed up on last time cold and a half second seems like an eternity when you were waiting ah got a good one let's wait for one more I'm pretty sure that the three has got to work I think that this has just got to work kind of annecy got an ASC got an ASC so that work but let's go back for the other ones just to make sure let's go to ah where were we our delay is in right here let's go back to one second one and a quarter second see what happens see na AC AC AC that is looking good so this I think if we do three reads we just completely flush out that serial port and we are in good shape okay let's go just twelve let's just just to try the other end and this will be the last thing that we try ca ACCA ACCA ACCA look at that and we're getting that mean that is coming in at a pretty good clip there the data is coming in at a pretty good clip and everything's good so we went everything from like 12 seconds down to 12 milliseconds and in that range we got all good sentences no busted not no busted sentences and so I think at this point this is pretty robust now again we're not getting actual coordinate data in those sentences because we're inside what we're going to do tomorrow is we are going to put an SD card on this and hook it up to a battery and I'm going to go walk around outside and we're going to collect real data so tune in tomorrow for lesson number 23 and on that one we'll complete the project to where you will have your very own handy-dandy portable gps tracker again palma quarter thanks for tuning in subscribe to the channel think about giving me a thumbs up talk to you guys later
Info
Channel: Paul McWhorter
Views: 309,530
Rating: undefined out of 5
Keywords: Arduino, GPS, Geocaching (Hobby), Tracker, STEM, High School Science, Adafruit Ultimate GPS, Global Positioning System (Industry)
Id: OsMoowoB2Rg
Channel Id: undefined
Length: 49min 1sec (2941 seconds)
Published: Wed Jul 30 2014
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.