GPS HUD for Snowmobile/Motorcycle Helmet
by c-bryan.1 in Circuits > Microcontrollers
70467 Views, 121 Favorites, 0 Comments
GPS HUD for Snowmobile/Motorcycle Helmet
The main idea of this project was to be able to "low jack" myself and be able to see what trails I had traveled on in the winter snowmobiling season, then take that data and lay it over a google map to see the detailed lay of the trails and what cities were near the trails that I was not aware of. This is my first Instructable and would really like to publish this for the final part of my class project so that I may graduate from college this spring.
The Components
The components, I chose the following components for their high reliability and ease of use.
Otter Box 1000 Clear case - Strong and watertight
Parallax Micro controller - Easy to program (took an entire quarter of programing this in College)
GPS Module - Easy to obtain Latitude and Longitude from this device to "plot points"
Parallax Micro SD reader - Write data to Micro SD Card for easier upload to computer
OLED Screen - Easy to program to inverted images( explained further in following steps)
Eprom module - required to program the micro controller
A to D converter - Take the analog signal from the temperature sensor and make it digital so the micro controller can process it
LM34 Temperature Sensor - Gives reliable data to AtoD converter to display exterior and body temperature
Lastly the Radio shack 371 hole PCB
Otter Box 1000 Clear case - Strong and watertight
Parallax Micro controller - Easy to program (took an entire quarter of programing this in College)
GPS Module - Easy to obtain Latitude and Longitude from this device to "plot points"
Parallax Micro SD reader - Write data to Micro SD Card for easier upload to computer
OLED Screen - Easy to program to inverted images( explained further in following steps)
Eprom module - required to program the micro controller
A to D converter - Take the analog signal from the temperature sensor and make it digital so the micro controller can process it
LM34 Temperature Sensor - Gives reliable data to AtoD converter to display exterior and body temperature
Lastly the Radio shack 371 hole PCB
The layout:
I did some work before I received all the components to make sure everything went as smoothly as possible during the soldering stage.
Here is a picture of the board after assembly to show why careful planning was need to make the best use of space.
I did some work before I received all the components to make sure everything went as smoothly as possible during the soldering stage.
Here is a picture of the board after assembly to show why careful planning was need to make the best use of space.
Programing .....
The programing is is especially hard trying to bring this many components together and work correctly. Here is an example of some of my code in .spin .
***************************************************************************************************
PUB MAIN
GPS.start(rxpin, mode, baudrate)
OLED.INIT
ADC.start(BTdatapin, BTclkpin, BTCSpin, BTADCmode)
FS.SetPrecision(3)
DELAY.PauseSec(1)
' OLED.INVERT
SD_Demo := 0 'Set to 0 if xxx_2_uSD and xxx_From_uSD routines are commented out
'CLEAR_SECTORS 'Clears the first 200 sectors on the uSD card
cognew(SDCARD,@stacksdcard[0])
REPEAT
'SETUP
Sats:=GPS.GETSatellites
Time:=GPS.GETTIME '
Latitude_0 :=GPS.GETLATITUDE_0
Latitude_1 :=GPS.GETLATITUDE_1
Longitude_0 :=GPS.GETLONGITUDE_0
Longitude_1 :=GPS.GETLONGITUDE_1
Longitude_2 :=GPS.GETLONGITUDE_2
waitcnt(80_000_000+cnt)
DISPLAY
' SHUTDOWN
***************************************************************************************************
PUB MAIN
GPS.start(rxpin, mode, baudrate)
OLED.INIT
ADC.start(BTdatapin, BTclkpin, BTCSpin, BTADCmode)
FS.SetPrecision(3)
DELAY.PauseSec(1)
' OLED.INVERT
SD_Demo := 0 'Set to 0 if xxx_2_uSD and xxx_From_uSD routines are commented out
'CLEAR_SECTORS 'Clears the first 200 sectors on the uSD card
cognew(SDCARD,@stacksdcard[0])
REPEAT
'SETUP
Sats:=GPS.GETSatellites
Time:=GPS.GETTIME '
Latitude_0 :=GPS.GETLATITUDE_0
Latitude_1 :=GPS.GETLATITUDE_1
Longitude_0 :=GPS.GETLONGITUDE_0
Longitude_1 :=GPS.GETLONGITUDE_1
Longitude_2 :=GPS.GETLONGITUDE_2
waitcnt(80_000_000+cnt)
DISPLAY
' SHUTDOWN
The Display
The display is a OLED display that is not rated for temperatures below 32 degree F. I have done some testing and found out that it in fact works to 10 degrees F . The display need to be "mirrored" so that when reflected off of a piece of plexi-glass that is placed infront of the eye it appears correct.
What the display shows:
Time in 24 hour time
Number of Satellites( to help you determine the accuracy of the data)
Latitude
Longitude
Exterior Temperature ( the temperature inside the OtterBox mounted on the outside of the helemet)
Body Temperature ( taken by the LM34 that is touching your head inside the helmet- Calibrated for accuracy)
What the display shows:
Time in 24 hour time
Number of Satellites( to help you determine the accuracy of the data)
Latitude
Longitude
Exterior Temperature ( the temperature inside the OtterBox mounted on the outside of the helemet)
Body Temperature ( taken by the LM34 that is touching your head inside the helmet- Calibrated for accuracy)
The Result
This is the result of one of my tests where it tracked my car on a portion of a drive.
Thanks for checking out my instructable and please vote for it !
I could use my( if won, i do not currently own one since i'm in college) laser engraver to start my dream job of custom camouflage painting by cutting out the stencils and offer custom graphics for the camouflage. I would also like to provide promotional/award (trophy and plaque) items to minor league sports teams in my town to help motivate kids to join sports and get ACTIVE! Again thank you for your consideration!
I could use my( if won, i do not currently own one since i'm in college) laser engraver to start my dream job of custom camouflage painting by cutting out the stencils and offer custom graphics for the camouflage. I would also like to provide promotional/award (trophy and plaque) items to minor league sports teams in my town to help motivate kids to join sports and get ACTIVE! Again thank you for your consideration!