- ఉపయోగించిన పదార్థాలు
- NEO6M GPS మాడ్యూల్
- 1.3 అంగుళాల I2C OLED డిస్ప్లే
- సర్క్యూట్ రేఖాచిత్రం
- Arduino OLED స్పీడోమీటర్ కోసం ప్రోగ్రామింగ్ Arduino
వాహనం యొక్క ప్రయాణ వేగాన్ని కొలవడానికి స్పీడోమీటర్లను ఉపయోగిస్తారు. మేము గతంలో అనలాగ్ స్పీడోమీటర్ మరియు డిజిటల్ స్పీడోమీటర్లను నిర్మించడానికి ఐఆర్ సెన్సార్ మరియు హాల్ సెన్సార్లను ఉపయోగించాము. ఈ రోజు మనం కదిలే వాహనం యొక్క వేగాన్ని కొలవడానికి GPS ని ఉపయోగిస్తాము. ప్రామాణిక స్పీడోమీటర్ల కంటే జిపిఎస్ స్పీడోమీటర్లు చాలా ఖచ్చితమైనవి ఎందుకంటే ఇది వాహనాన్ని నిరంతరం గుర్తించగలదు మరియు వేగాన్ని లెక్కించగలదు. నావిగేషన్ మరియు ట్రాఫిక్ హెచ్చరికల కోసం స్మార్ట్ఫోన్లు మరియు వాహనాలలో GPS సాంకేతికత విస్తృతంగా ఉపయోగించబడుతుంది.
ఈ ప్రాజెక్ట్లో, మేము OLEED డిస్ప్లేతో NEO6M GPS మాడ్యూల్ ఉపయోగించి Arduino GPS స్పీడోమీటర్ను నిర్మిస్తాము.
ఉపయోగించిన పదార్థాలు
- ఆర్డునో నానో
- NEO6M GPS మాడ్యూల్
- 1.3 అంగుళాల I2C OLED డిస్ప్లే
- బ్రెడ్బోర్డ్
- జంపర్లను కనెక్ట్ చేస్తోంది
NEO6M GPS మాడ్యూల్
ఇక్కడ మేము NEO6M GPS మాడ్యూల్ ఉపయోగిస్తున్నాము. NEO-6M GPS మాడ్యూల్ అంతర్నిర్మిత సిరామిక్ యాంటెన్నాతో కూడిన ప్రసిద్ధ GPS రిసీవర్, ఇది బలమైన ఉపగ్రహ శోధన సామర్థ్యాన్ని అందిస్తుంది. ఈ రిసీవర్ స్థానాలను గ్రహించి 22 ఉపగ్రహాలను ట్రాక్ చేయగల సామర్థ్యాన్ని కలిగి ఉంది మరియు ప్రపంచంలో ఎక్కడైనా స్థానాలను గుర్తిస్తుంది. ఆన్-బోర్డు సిగ్నల్ సూచికతో, మేము మాడ్యూల్ యొక్క నెట్వర్క్ స్థితిని పర్యవేక్షించవచ్చు. ఇది డేటా బ్యాకప్ బ్యాటరీని కలిగి ఉంది, తద్వారా ప్రధాన శక్తి అనుకోకుండా మూసివేయబడినప్పుడు మాడ్యూల్ డేటాను సేవ్ చేస్తుంది.
GPS రిసీవర్ మాడ్యూల్ లోపల ఉన్న ప్రధాన గుండె U- బ్లాక్స్ నుండి NEO-6M GPS చిప్. ఇది 50 ఛానెళ్లలో 22 ఉపగ్రహాలను ట్రాక్ చేయగలదు మరియు చాలా ఆకట్టుకునే సున్నితత్వ స్థాయిని కలిగి ఉంటుంది -161 dBm. ఈ 50-ఛానల్ యు-బ్లాక్స్ 6 పొజిషనింగ్ ఇంజిన్ 1 సెకన్ లోపు టైమ్-టు-ఫస్ట్-ఫిక్స్ (టిటిఎఫ్ఎఫ్) ను కలిగి ఉంది. ఈ మాడ్యూల్ 4800-230400 బిపిఎస్ నుండి బాడ్ రేటుకు మద్దతు ఇస్తుంది మరియు డిఫాల్ట్ బాడ్ 9600 ను కలిగి ఉంది.
లక్షణాలు:
- ఆపరేటింగ్ వోల్టేజ్: (2.7-3.6) V DC
- ఆపరేటింగ్ కరెంట్: 67 mA
- బాడ్ రేటు: 4800-230400 బిపిఎస్ (9600 డిఫాల్ట్)
- కమ్యూనికేషన్ ప్రోటోకాల్: నెమా
- ఇంటర్ఫేస్: UART
- బాహ్య యాంటెన్నా మరియు అంతర్నిర్మిత EEPROM.
GPS మాడ్యూల్ యొక్క పిన్అవుట్:
- VCC: మాడ్యూల్ యొక్క ఇన్పుట్ వోల్టేజ్ పిన్
- GND: గ్రౌండ్ పిన్
- RX, TX: మైక్రోకంట్రోలర్తో UART కమ్యూనికేషన్ పిన్స్
మేము ఇంతకుముందు జిడిఎస్ను ఆర్డునోతో ఇంటర్ఫేస్ చేసాము మరియు వాహన ట్రాకింగ్తో సహా జిపిఎస్ మాడ్యూళ్ళను ఉపయోగించి అనేక ప్రాజెక్టులను నిర్మించాము.
1.3 అంగుళాల I2C OLED డిస్ప్లే
OLED అనే పదం “ సేంద్రీయ కాంతి ఉద్గార డయోడ్” ని సూచిస్తుంది, ఇది మన టెలివిజన్లలో చాలావరకు ఉపయోగించబడే అదే సాంకేతికతను ఉపయోగిస్తుంది, కానీ వాటితో పోలిస్తే తక్కువ పిక్సెల్లు ఉన్నాయి. ఈ కూల్ లుకింగ్ డిస్ప్లే మాడ్యూళ్ళను ఆర్డునోతో అనుసంధానించడం చాలా ఆనందంగా ఉంది, ఎందుకంటే ఇది మా ప్రాజెక్టులు చల్లగా కనిపిస్తుంది. మేము ఇక్కడ OLED డిస్ప్లేలు మరియు దాని రకాలను పూర్తి కథనాన్ని కవర్ చేసాము. ఇక్కడ, మేము మోనోక్రోమ్ 4-పిన్ SH1106 OLED 1.28 ”OLED డిస్ప్లేని ఉపయోగిస్తున్నాము. ఈ ప్రదర్శన I2C మోడ్తో మాత్రమే పనిచేయగలదు.
సాంకేతిక వివరములు:
- డ్రైవర్ IC: SH1106
- ఇన్పుట్ వోల్టేజ్: 3.3 వి -5 వి డిసి
- రిజల్యూషన్: 128x64
- ఇంటర్ఫేస్: I2C
- ప్రస్తుత వినియోగం: 8 mA
- పిక్సెల్ రంగు: నీలం
- వీక్షణ కోణం:> 160 డిగ్రీ
పిన్ వివరణ:
విసిసి : ఇన్పుట్ విద్యుత్ సరఫరా 3.3-5 వి డిసి
GND: గ్రౌండ్ రిఫరెన్స్ పిన్
SCL: I2C ఇంటర్ఫేస్ యొక్క క్లాక్ పిన్
SDA: I2C ఇంటర్ఫేస్ యొక్క సీరియల్ డేటా పిన్
Arduino సంఘం ఇప్పటికే మాకు చాలా లైబ్రరీలను ఇచ్చింది, దీనిని చాలా సరళంగా చేయడానికి నేరుగా ఉపయోగించవచ్చు. నేను కొన్ని లైబ్రరీలను ప్రయత్నించాను మరియు Adafruit_SH1106.h లైబ్రరీని ఉపయోగించడం చాలా సులభం మరియు కొన్ని గ్రాఫికల్ ఎంపికలు ఉన్నాయని కనుగొన్నాను, అందువల్ల మేము ఈ ట్యుటోరియల్లో కూడా ఉపయోగిస్తాము.
OLED చాలా బాగుంది మరియు కొన్ని ఆసక్తికరమైన ప్రాజెక్టులను రూపొందించడానికి ఇతర మైక్రోకంట్రోలర్లతో సులభంగా ఇంటర్ఫేస్ చేయవచ్చు:
- రాస్ప్బెర్రీ పైతో SSD1306 OLED డిస్ప్లేని ఇంటర్ఫేసింగ్
- ఆర్డునోతో SSD1306 OLED డిస్ప్లేని ఇంటర్ఫేసింగ్
- ESP32 మరియు OLED డిస్ప్లే ఉపయోగించి ఇంటర్నెట్ క్లాక్
- ఆర్డునో, డిహెచ్టి 11 మరియు ఐఆర్ బ్లాస్టర్ ఉపయోగించి ఆటోమేటిక్ ఎసి టెంపరేచర్ కంట్రోలర్
సర్క్యూట్ రేఖాచిత్రం
OLED ఉపయోగించి ఈ Arduino GPS స్పీడోమీటర్ కోసం సర్క్యూట్ రేఖాచిత్రం క్రింద ఇవ్వబడింది.
పూర్తి సెటప్ క్రింద కనిపిస్తుంది:
Arduino OLED స్పీడోమీటర్ కోసం ప్రోగ్రామింగ్ Arduino
ప్రాజెక్ట్ యొక్క పూర్తి కోడ్ ట్యుటోరియల్ దిగువన ఇవ్వబడింది. ఇక్కడ మేము పూర్తి కోడ్ పంక్తిని లైన్ ద్వారా వివరిస్తున్నాము.
అన్నింటిలో మొదటిది, అన్ని లైబ్రరీలను చేర్చండి. ఇక్కడ GPS రిసీవర్ మాడ్యూల్ ఉపయోగించి GPS కోఆర్డినేట్లను పొందడానికి TinyGPS ++. H లైబ్రరీ ఉపయోగించబడుతుంది మరియు OLED కోసం Adafruit_SH1106.h ఉపయోగించబడుతుంది.
# చేర్చండి
అప్పుడు, OLED I2C చిరునామా నిర్వచించబడింది, ఇది OX3C లేదా OX3D కావచ్చు, ఇక్కడ ఇది నా విషయంలో OX3C. అలాగే, డిస్ప్లే యొక్క రీసెట్ పిన్ను నిర్వచించాలి. నా విషయంలో, ఇది -1 గా నిర్వచించబడింది, ఎందుకంటే ప్రదర్శన Arduino యొక్క రీసెట్ పిన్ను పంచుకుంటుంది.
# OLED_ADDRESS 0x3C ని నిర్వచించండి # OLED_RESET -1 Adafruit_SH1106 డిస్ప్లే (OLED_RESET) ను నిర్వచించండి ;
తరువాత, TinyGPSPlus మరియు Softwareserial క్లాస్ కోసం వస్తువులు క్రింద చూపిన విధంగా నిర్వచించబడతాయి. సాఫ్ట్వేర్ సీరియల్ క్లాస్కు Arduino పిన్ నం అవసరం. సీరియల్ కమ్యూనికేషన్ కోసం, ఇది ఇక్కడ 2 మరియు 3 గా నిర్వచించబడింది.
int RX = 2, TX = 3; TinyGPSPlus gps; సాఫ్ట్వేర్ సీరియల్ జిపిసాఫ్ట్ (ఆర్ఎక్స్, టిఎక్స్);
సెటప్ () లోపల, సీరియల్ కమ్యూనికేషన్ మరియు OLED కోసం ప్రారంభించడం జరుగుతుంది. సాఫ్ట్వేర్ సీరియల్ కమ్యూనికేషన్ కోసం డిఫాల్ట్ బాడ్ రేటు 9600 గా నిర్వచించబడింది. ఇక్కడ SH1106_SWITCHCAPVCC అంతర్గతంగా 3.3V నుండి డిస్ప్లే వోల్టేజ్ను ఉత్పత్తి చేయడానికి ఉపయోగించబడుతుంది మరియు డిస్ప్లేని ప్రారంభించడానికి display.begin ఫంక్షన్ ఉపయోగించబడుతుంది.
శూన్య సెటప్ () { Serial.begin (9600); gpssoft.begin (9600); display.begin (SH1106_SWITCHCAPVCC, OLED_ADDRESS); display.clearDisplay (); }
నిజమైన లూప్ లోపల , అందుకున్న సీరియల్ డేటా ధృవీకరించబడుతుంది, చెల్లుబాటు అయ్యే GPS సిగ్నల్స్ స్వీకరించబడితే, OLED లో వేగం విలువను చూపించడానికి డిస్ప్లేస్పీడ్ () అంటారు.
అయితే (gpssoft.available ()> 0) if (gps.encode (gpssoft.read ()) డిస్ప్లేస్పీడ్ ();
డిస్ప్లేస్పీడ్ () ఫంక్షన్ లోపల, GPS మాడ్యూల్ నుండి వేగం డేటా gps.speed.isValid () ను ఉపయోగించి తనిఖీ చేయబడుతుంది మరియు ఇది నిజమైన విలువను తిరిగి ఇస్తే, వేగం విలువ OLED డిస్ప్లేలో ప్రదర్శించబడుతుంది. ఇక్కడ OLED టెక్స్ట్ పరిమాణం ఉపయోగించి నిర్వచిస్తారు display.setTextSize ఉపయోగించి నిర్వచిస్తారు ఫంక్షన్ మరియు కర్సర్ స్థానం display.setCursor ఫంక్షన్. GPS మాడ్యూల్ నుండి వేగం డేటా gps.speed.kmph () ఫంక్షన్ ఉపయోగించి డీకోడ్ చేయబడుతుంది మరియు చివరకు ఇది display.display () ను ఉపయోగించి ప్రదర్శించబడుతుంది.
if (gps.speed.isValid ()) { display.setTextSize (2); display.setCursor (40, 40); display.print (gps.speed.kmph ()); display.display (); }
చివరగా, ఆర్డునో యునోలో కోడ్ను అప్లోడ్ చేసి, సిస్టమ్ను కదిలే వాహనంలో ఉంచండి మరియు ఈ క్రింది చిత్రంలో చూపిన విధంగా మీరు OLED డిస్ప్లేలో వేగాన్ని చూడవచ్చు.
డెమో వీడియోతో పూర్తి కోడ్ క్రింద ఇవ్వబడింది.