- தேவையான கூறுகள்:
- சுற்று வரைபடம் மற்றும் விளக்கம்: -
- ஜி.பி.எஸ்ஸிலிருந்து இருப்பிடத் தரவைப் பெறுதல்:
- பி.ஐ.சி மைக்ரோகண்ட்ரோலருடன் ஜி.பி.எஸ் இடைமுகத்திற்கான படிகள்: -
- குறியீடு விளக்கம்:
ஜிபிஎஸ் என்பது குளோபல் பொசிஷனிங் சிஸ்டத்தின் குறுகிய வடிவம். இது துல்லியமான உயரம், அட்சரேகை, தீர்க்கரேகை, யுடிசி நேரம் மற்றும் பல தகவல்களை வழங்கும் ஒரு அமைப்பாகும், அவை 2, 3, 4 அல்லது அதற்கு மேற்பட்ட செயற்கைக்கோளில் இருந்து எடுக்கப்படுகின்றன. ஜி.பி.எஸ்ஸிலிருந்து தரவைப் படிக்க, எங்களுக்கு சில மைக்ரோகண்ட்ரோலர் தேவை, நாங்கள் ஏற்கனவே ஜி.பி.எஸ்ஸை அர்டுயினோ மற்றும் ராஸ்பெர்ரி பை உடன் இணைத்துள்ளோம்.
யு- ப்ளாக்ஸ் தயாரித்த ஜி 7020 ஜிபிஎஸ் தொகுதியை நாங்கள் தேர்ந்தெடுத்துள்ளோம். செயற்கைக்கோளிலிருந்து ஒரு குறிப்பிட்ட நிலையின் தீர்க்கரேகை மற்றும் அட்சரேகைகளைப் பெறுவோம், அதையே 16x2 எழுத்து எல்சிடியில் காண்பிப்போம். எனவே இங்கே ஜிபிஎஸ் ஐ மைக்ரோசிப் மூலம் PIC16F877A மைக்ரோகண்ட்ரோலருடன் இடைமுகப்படுத்துவோம்.
தேவையான கூறுகள்:
- Pic16F877A - PDIP40 தொகுப்பு
- ரொட்டி வாரியம்
- பிக்கிட் -3
- 5 வி அடாப்டர்
- LCD JHD162A
- uBLOX-G7020 GPS தொகுதி
- சாதனங்களை இணைக்க கம்பிகள்.
- 4.7 கே மின்தடையங்கள்
- 10 கே பானை
- 20mHz கிரிஸ்டல்
- 2 பிசிக்கள் 33 பிஎஃப் பீங்கான் மின்தேக்கிகள்
சுற்று வரைபடம் மற்றும் விளக்கம்: -

16x2 எழுத்து எல்சிடி PIC16F877A மைக்ரோகண்ட்ரோலர் முழுவதும் இணைக்கப்பட்டுள்ளது, இதில் RB0, RB1, RB2 முறையே LCD முள் உடன் இணைக்கப்பட்டுள்ளது, இது RS, R / W, மற்றும் E. RB4, RB5, RB6 மற்றும் RB7 ஆகியவை LCD இன் 4 முள் D4, D5 முழுவதும் இணைக்கப்பட்டுள்ளன., டி 6, டி 7. எல்சிடி 4 பிட் பயன்முறையில் அல்லது நிப்பிள் பயன்முறையில் இணைக்கப்பட்டுள்ளது. பி.ஐ.சி மைக்ரோகண்ட்ரோலருடன் எல்.சி.டி.யை இணைப்பது பற்றி மேலும் அறிக.
OSC1 மற்றும் OSC2 முள் முழுவதும் இணைக்கப்பட்ட 33pF இன் இரண்டு பீங்கான் மின்தேக்கியுடன் 20MHz இன் படிக ஆஸிலேட்டர். இது மைக்ரோகண்ட்ரோலருக்கு நிலையான 20 மெகா ஹெர்ட்ஸ் கடிகார அதிர்வெண்ணை வழங்கும்.
uBlox-G7020 GPS தொகுதி, UART ஐப் பயன்படுத்தி தரவைப் பெற்று அனுப்பவும். PIC16F877A சில்லுக்குள் ஒரு USART இயக்கியைக் கொண்டுள்ளது, ஜிபிஎஸ் தொகுதியிலிருந்து USART மூலம் தரவைப் பெறுவோம், எனவே மைக்ரோகண்ட்ரோலர் Rx முள் முதல் ஜிபிஎஸ்ஸின் Tx முள் மற்றும் USART ஜிபிஎஸ் டிரான்ஸ்மிட் முள் முழுவதும் இணைக்கப்பட்ட பின் இணைப்புக்கு குறுக்கு இணைப்பு செய்யப்படும்.
UBlox-G7020 ஊசிகளுக்கான வண்ணக் குறியீட்டைக் கொண்டுள்ளது. நேர்மறை அல்லது 5 வி முள் சிவப்பு நிறத்திலும், எதிர்மறை அல்லது ஜிஎன்டி முள் கருப்பு நிறத்திலும், டிரான்ஸ்மிட் முள் நீல நிறத்திலும் உள்ளது.
இதையெல்லாம் ப்ரெட்போர்டில் இணைத்துள்ளேன்.
ஜி.பி.எஸ்ஸிலிருந்து இருப்பிடத் தரவைப் பெறுதல்:
USART ஐப் பயன்படுத்தி ஜி.பி.எஸ்ஸை எவ்வாறு இடைமுகப்படுத்துவது என்பதைப் பார்ப்போம், இதன் விளைவாக 16x2 எழுத்து எல்.சி.டி.
தொகுதி 9600 பாட் விகிதத்தில் பல சரங்களில் தரவை அனுப்பும். 9600 பாட் வீதத்துடன் UART முனையத்தைப் பயன்படுத்தினால், ஜி.பி.எஸ் பெற்ற தரவைப் பார்ப்போம்.
ஜி.பி.எஸ் தொகுதி என்.எம்.இ.ஏ வடிவத்தில் நிகழ்நேர கண்காணிப்பு நிலை தரவை அனுப்புகிறது (மேலே உள்ள ஸ்கிரீன்ஷாட்டைப் பார்க்கவும்). NMEA வடிவம் பல வாக்கியங்களைக் கொண்டுள்ளது, இதில் நான்கு முக்கியமான வாக்கியங்கள் கீழே கொடுக்கப்பட்டுள்ளன. என்.எம்.இ.ஏ வாக்கியம் மற்றும் அதன் தரவு வடிவம் பற்றிய கூடுதல் விவரங்களை இங்கே காணலாம்.
- $ GPGGA: குளோபல் பொசிஷனிங் சிஸ்டம் ஃபிக்ஸ் டேட்டா
- $ ஜிபிஜிஎஸ்வி: ஜிபிஎஸ் செயற்கைக்கோள்கள் பார்வையில்
- $ ஜிபிஜிஎஸ்ஏ: ஜிபிஎஸ் டிஓபி மற்றும் செயலில் உள்ள செயற்கைக்கோள்கள்
- $ ஜி.பி.ஆர்.எம்.சி: பரிந்துரைக்கப்பட்ட குறைந்தபட்ச குறிப்பிட்ட ஜி.பி.எஸ் / டிரான்ஸிட் தரவு
ஜி.பி.எஸ் தரவு மற்றும் என்.எம்.இ.ஏ சரங்களைப் பற்றி மேலும் அறிக.
9600 பாட் விகிதத்தில் இணைக்கப்படும்போது ஜி.பி.எஸ் பெறும் தரவு இதுவாகும்.
$ GPRMC, 141848.00, A, 2237.63306, N, 08820.86316, E, 0.553,, 100418,,, A * 73 $ GPVTG,, T,, M, 0.553, N, 1.024, K, A * 27 $ GPGGA, 141848.00, 2237.63306, என், 08820.86316, இ, 1,03,2.56,1.9, எம், -54.2, எம்,, * 74 $ ஜிபிஜிஎஸ்ஏ, ஏ, 2,06,02,05,,,,,,,,, 2.75, 2.56,1.00 * 02 $ ஜிபிஜிஎஸ்வி, 1,1,04,02,59,316,30,05,43,188,25,06,44,022,23,25,03,324, * 76 $ ஜிபிஜிஎல்எல், 2237.63306, என், 08820.86316, இ, 141848.00, எ, எ * 65
எந்த இடத்தையும் கண்காணிக்க ஜி.பி.எஸ் தொகுதியைப் பயன்படுத்தும்போது, எங்களுக்கு ஆயத்தொகுப்புகள் மட்டுமே தேவை, இதை $ GPGGA சரத்தில் காணலாம். $ GPGGA (குளோபல் பொசிஷனிங் சிஸ்டம் ஃபிக்ஸ் டேட்டா) சரம் மட்டுமே பெரும்பாலும் நிரல்களில் பயன்படுத்தப்படுகிறது மற்றும் பிற சரங்கள் புறக்கணிக்கப்படுகின்றன.
$ GPGGA, 141848.00,2237.63306, N, 08820.86316, E, 1,03,2.56,1.9, M, -54.2, M,, * 74
அந்த வரியின் பொருள் என்ன?
அந்த வரியின் பொருள்: -
1. சரம் எப்போதும் “$” அடையாளத்துடன் தொடங்குகிறது
2. ஜிபிஜிஜிஏ என்பது குளோபல் பொசிஷனிங் சிஸ்டம் ஃபிக்ஸ் டேட்டாவைக் குறிக்கிறது
3. “,” கமா இரண்டு மதிப்புகளுக்கு இடையிலான பிரிவைக் குறிக்கிறது
4. 141848.00: GMT நேரம் 14 (மணி): 18 (நிமிடம்): 48 (நொடி): 00 (எம்.எஸ்)
5. 2237.63306, என்: அட்சரேகை 22 (பட்டம்) 37 (நிமிடங்கள்) 63306 (நொடி) வடக்கு
6. 08820.86316, இ: தீர்க்கரேகை 088 (பட்டம்) 20 (நிமிடங்கள்) 86316 (நொடி) கிழக்கு
7. 1: அளவு 0 = தவறான தரவு, 1 = செல்லுபடியாகும் தரவு, 2 = டிஜிபிஎஸ் பிழைத்திருத்தம்
8. 03: தற்போது பார்க்கப்பட்ட செயற்கைக்கோள்களின் எண்ணிக்கை.
9. 1.0: HDOP
10. 2.56, எம்: உயரம் (மீட்டரில் கடல் மட்டத்திலிருந்து உயரம்)
11. 1.9, எம்: ஜியோயிட்ஸ் உயரம்
12. * 74: செக்சம்
எனவே தொகுதி இருப்பிடம் அல்லது அது அமைந்துள்ள இடம் பற்றிய தகவல்களை சேகரிக்க எங்களுக்கு எண் 5 மற்றும் எண் 6 தேவை.
பி.ஐ.சி மைக்ரோகண்ட்ரோலருடன் ஜி.பி.எஸ் இடைமுகத்திற்கான படிகள்: -
- ஆஸிலேட்டர் உள்ளமைவை உள்ளடக்கிய மைக்ரோகண்ட்ரோலரின் உள்ளமைவுகளை அமைக்கவும்.
- TRIS பதிவு உட்பட எல்சிடிக்கு விரும்பிய துறைமுகத்தை அமைக்கவும்.
- USART ஐப் பயன்படுத்தி ஜிபிஎஸ் தொகுதியை மைக்ரோகண்ட்ரோலருடன் இணைக்கவும்.
- 9600 பாட் வீதத்துடனும், 4 பிட் பயன்முறையில் எல்.சி.டி.யுடனும், தொடர்ச்சியான பெறுதல் பயன்முறையில் கணினியைத் தொடங்கவும்.
- அட்சரேகை மற்றும் தீர்க்கரேகைகளின் நீளத்தைப் பொறுத்து இரண்டு எழுத்து வரிசைகளை எடுத்துக் கொள்ளுங்கள்.
- ஒரு நேரத்தில் ஒரு எழுத்துக்குறியைப் பெற்று, அது from இலிருந்து தொடங்கப்பட்டதா இல்லையா என்பதைச் சரிபார்க்கவும்.
- $ பெறு என்றால் அது ஒரு சரம், நாம் ஜிபிஜிஜிஏ, இந்த 5 எழுத்துக்கள் மற்றும் கமாவை சரிபார்க்க வேண்டும்.
- இது ஜிபிஜிஜிஏ என்றால், நாங்கள் நேரத்தைத் தவிர்த்துவிட்டு, அட்சரேகை மற்றும் தீர்க்கரேகைகளைத் தேடுவோம், அட்சரேகை மற்றும் தீர்க்கரேகைகளை N (வடக்கு) மற்றும் ஈ (கிழக்கு) பெறாத வரை இரண்டு எழுத்துக்குறி வரிசையில் சேமிப்போம்.
- வரிசையை எல்சிடியில் அச்சிடுவோம்.
- வரிசையை அழிக்கவும்.

குறியீடு விளக்கம்:
குறியீடு வரியை வரி மூலம் பார்ப்போம். முந்தைய டுடோரியலில் விளக்கப்பட்ட உள்ளமைவு பிட்களை அமைப்பதற்கான முதல் சில வரிகள், எனவே அவற்றை இப்போது தவிர்க்கிறேன். இந்த டுடோரியலின் முடிவில் முழுமையான குறியீடு கொடுக்கப்பட்டுள்ளது.
இந்த ஐந்து வரிகள் நூலக தலைப்பு கோப்புகளைச் சேர்க்கப் பயன்படுத்தப்படுகின்றன, எல்.சி.டி.எச் மற்றும் யூசார்ட்.ஹெச் முறையே எல்.சி.டி மற்றும் யு.எஸ்.ஐ.டி. மற்றும் xc.h மைக்ரோகண்ட்ரோலர் தலைப்பு கோப்பு உள்ளது.
#சேர்க்கிறது
இல் வெற்றிடத்தை முக்கிய () செயல்பாடு, system_init () ; செயல்பாடு LCD மற்றும் USART ஐ துவக்க பயன்படுகிறது.
வெற்றிட முக்கிய (வெற்றிடத்தை) { TRISB = 0x00; // வெளியீடு system_init () ஆக அமைத்தல் ;
Lcd_init (); மற்றும் EUSART_Intialize (); lcd.h மற்றும் eusart.h ஆகிய இரண்டு நூலகங்களிலிருந்து அழைக்கப்படுகிறது
void system_init (வெற்றிடம்) { lcd_init (); // இது lcd EUSART1_Initialize () ஐ துவக்கும் ; // இது யூசார்ட்டைத் துவக்கும் }
இல் போது நாம் பெற மற்றும் அட்சரேகைமீது ஒருங்கிணைக்க GPGGA சரம் உடைக்க லூப். நாங்கள் ஒரு நேரத்தில் ஒரு பிட் பெறுகிறோம், அதை GPGGA சரத்தில் இருக்கும் தனிப்பட்ட எழுத்துகளுடன் ஒப்பிடுகிறோம்.
நாம் பெறும் குறியீடுகளை உடைக்கிறோம்: -
வருமானம்_தட்டா = EUSART1_Read (); // '$ GPGGA,' / * ------------------------------ சரத்தை சரிபார்க்கவும் படிப்படியாக GPGGA வரியைக் கண்டறிதல்- --------------------------- * / if (வருமானம்_தட்டா == '$') {// ஜி.பி.எஸ் தரவின் முதல் அறிக்கை a $ அடையாளம் வருமானம்_தட்டா = EUSART1_Read (); // முதல் உண்மை என்றால், அடுத்த கட்டம் என்றால் (வருமானம்_தட்டா == 'ஜி') { வருமானம்_தட்டா = EUSART1_Read (); if (வருமானம்_தட்டா == 'பி'); { வருமானம்_தட்டா = EUSART1_ படிக்க (); if (வருமானம்_தட்டா == 'ஜி'); { வருமானம்_தட்டா = EUSART1_Read (); if (வருமானம்_தட்டா == 'ஜி') { வருமானம்_தட்டா = EUSART1_ படிக்க (); if (வருமானம்_தட்டா == 'A') { வருமானம்_தட்டா = EUSART1_ படிக்க (); if (வருமானம்_தட்டா == ',') {// முதலில், பெறப்பட்டது வருமானம்_தட்டா = EUSART1_Read (); // இந்த கட்டத்தில் இறுதி சோதனை முடிந்தது, GPGGA காணப்படுகிறது.
இந்த குறியீட்டைப் பயன்படுத்துவதன் மூலம் UTC நேரத்தைத் தவிர்க்கிறோம்.
போது (incomer_data = ','!) {// தாவுவது ஜிஎம்டி நேர incomer_data = EUSART1_Read (); }
இந்த குறியீடு எழுத்துக்குறி அட்சரேகை மற்றும் தீர்க்கரேகை தரவை சேமிப்பதற்கானது.
வருமானம்_தட்டா = EUSART1_Read (); அட்சரேகை = வருமானம்_தட்டா; போது (வருமானம்_தட்டா! = ',') { for (வரிசை_கணக்கு = 1; வருமானம்_தட்டா! = 'என்'; வரிசை_ எண்ணிக்கை ++) { வருமானம்_தட்டா = EUSART1_Read (); அட்சரேகை = வருமானம்_தட்டா; // அட்சரேகை தரவை சேமிக்கவும் } வருமானம்_தட்டா = EUSART1_Read (); if (வருமானம்_தட்டா == ',') { for (array_count = 0; வருமானம்_தட்டா! = 'E'; வரிசை_கணவு ++) { வருமானம்_தட்டா = EUSART1_Read (); தீர்க்கரேகை = வருமானம்_தட்டா; // தீர்க்கரேகை தரவை சேமிக்கவும் }}
இறுதியாக எல்.சி.டி.யில் தீர்க்கரேகை மற்றும் அட்சரேகை அச்சிட்டுள்ளோம்.
வரிசை_ எண்ணிக்கை = 0; lcd_com (0x80); // எல்சிடி வரி ஒரு தேர்வு (வரிசை_ எண்ணிக்கை <12) {// அட்சரேகை தரவின் வரிசை 11 இலக்க எல்சிடி_டேட்டா (அட்சரேகை); // அட்சரேகை தரவு வரிசை அச்சிடு ++; } வரிசை_ எண்ணிக்கை = 0; lcd_com (0xC0); // எல்சிடி வரி இரண்டு தேர்வு (வரிசை_ எண்ணிக்கை <13) {// தீர்க்கரேகை தரவின் வரிசை 12 இலக்க எல்சிடி_டேட்டா (தீர்க்கரேகை); // தீர்க்கரேகை தரவு வரிசை அச்சிடு ++; }
தற்போதைய இருப்பிடத்தின் அட்சரேகை மற்றும் தீர்க்கரேகைகளைப் பெற ஜி.பி.எஸ் தொகுதியை பி.ஐ.சி மைக்ரோகண்ட்ரோலருடன் எவ்வாறு இணைக்க முடியும்.
முழுமையான குறியீடு மற்றும் தலைப்பு கோப்புகள் கீழே கொடுக்கப்பட்டுள்ளன.
