সুচিপত্র:

জিপিএস মডিউল (নিও -6 এম) সহ ইন্টারফেস আরডুইনো মেগা: 8 টি ধাপ
জিপিএস মডিউল (নিও -6 এম) সহ ইন্টারফেস আরডুইনো মেগা: 8 টি ধাপ

ভিডিও: জিপিএস মডিউল (নিও -6 এম) সহ ইন্টারফেস আরডুইনো মেগা: 8 টি ধাপ

ভিডিও: জিপিএস মডিউল (নিও -6 এম) সহ ইন্টারফেস আরডুইনো মেগা: 8 টি ধাপ
ভিডিও: আপনি হয়তো ভয়ে! NO NC কানেকশন করেন না/ দেখুন NO NC সহ Magnetic Contactor এর পুরো সহজ কানেকশন। 2024, নভেম্বর
Anonim
জিপিএস মডিউল সহ ইন্টারফেস আরডুইনো মেগা (নিও -6 এম)
জিপিএস মডিউল সহ ইন্টারফেস আরডুইনো মেগা (নিও -6 এম)

এই প্রকল্পে, আমি দেখিয়েছি কিভাবে একটি জিপিএস মডিউল (নিও -6 এম) ইন্টারফেস করতে হয় আরডুইনো মেগা দিয়ে। TinyGPS লাইব্রেরি দ্রাঘিমাংশ এবং অক্ষাংশের ডেটা প্রদর্শন করতে ব্যবহৃত হয় এবং TinyGPS ++ সিরিয়াল মনিটরে অক্ষাংশ, দ্রাঘিমাংশ, উচ্চতা, গতি এবং উপগ্রহের সংখ্যা প্রদর্শন করতে ব্যবহৃত হয়।

ধাপ 1: উপাদান প্রয়োজন

হার্ডওয়্যার

  • Arduino মেগা ==> $ 30
  • নিও -6 এম জিপিএস মডিউল ==> $ 30

সফটওয়্যার

Arduino IDE

প্রকল্পের মোট খরচ $ 60

পদক্ষেপ 2: জিপিএস সম্পর্কে তথ্য

জিপিএস কি

গ্লোবাল পজিশনিং সিস্টেম (জিপিএস) হল একটি স্যাটেলাইট ভিত্তিক নেভিগেশন সিস্টেম যা কমপক্ষে ২ sat টি উপগ্রহ নিয়ে গঠিত। জিপিএস যেকোনো আবহাওয়াতে, পৃথিবীর যেকোনো স্থানে, দিনে ২ hours ঘন্টা কাজ করে, কোন সাবস্ক্রিপশন ফি বা সেটআপ চার্জ ছাড়াই।

জিপিএস কিভাবে কাজ করে

জিপিএস স্যাটেলাইট পৃথিবীকে দিনে দুবার একটি নির্দিষ্ট কক্ষপথে প্রদক্ষিণ করে। প্রতিটি স্যাটেলাইট একটি অনন্য সংকেত এবং কক্ষপথের প্যারামিটার প্রেরণ করে যা জিপিএস ডিভাইসগুলিকে স্যাটেলাইটের সুনির্দিষ্ট অবস্থান ডিকোড এবং গণনা করতে দেয়। জিপিএস রিসিভার ব্যবহারকারীর সঠিক অবস্থান গণনা করতে এই তথ্য এবং ট্রিলারেটেশন ব্যবহার করে। মূলত, জিপিএস রিসিভার প্রতিটি স্যাটেলাইটের দূরত্ব পরিমাপ করে সংক্রামিত সংকেত পেতে যত সময় লাগে। আরও কয়েকটি উপগ্রহ থেকে দূরত্ব পরিমাপের মাধ্যমে, রিসিভার ব্যবহারকারীর অবস্থান নির্ধারণ করতে পারে এবং এটি প্রদর্শন করতে পারে।

আপনার 2-ডি অবস্থান (অক্ষাংশ এবং দ্রাঘিমাংশ) এবং ট্র্যাক মুভমেন্ট গণনা করতে, একটি জিপিএস রিসিভার কমপক্ষে 3 টি স্যাটেলাইটের সিগন্যালে লক করা থাকতে হবে। 4 বা ততোধিক উপগ্রহ দেখার সাথে সাথে, রিসিভার আপনার 3-ডি অবস্থান (অক্ষাংশ, দ্রাঘিমাংশ এবং উচ্চতা) নির্ধারণ করতে পারে। সাধারণত, একটি জিপিএস রিসিভার 8 বা তার বেশি স্যাটেলাইট ট্র্যাক করবে, কিন্তু এটি দিনের সময় এবং আপনি পৃথিবীতে কোথায় আছেন তার উপর নির্ভর করে। একবার আপনার অবস্থান নির্ধারণ করা হলে, জিপিএস ইউনিট অন্যান্য তথ্য গণনা করতে পারে, যেমন

  • গতি
  • ভারবহন
  • ট্র্যাক
  • ট্রিপ জেলা
  • গন্তব্যের দূরত্ব

সংকেত কি

জিপিএস স্যাটেলাইট কমপক্ষে ২ টি লো-পাওয়ার রেডিও সিগন্যাল প্রেরণ করে। সংকেতগুলি দৃষ্টিশক্তি দ্বারা ভ্রমণ করে, যার অর্থ তারা মেঘ, কাচ এবং প্লাস্টিকের মধ্য দিয়ে যাবে কিন্তু বেশিরভাগ কঠিন বস্তু যেমন ভবন এবং পাহাড়ের মধ্য দিয়ে যাবে না। যাইহোক, আধুনিক রিসিভারগুলি আরও সংবেদনশীল এবং সাধারণত বাড়ির মাধ্যমে ট্র্যাক করতে পারে। একটি জিপিএস সিগন্যালে different টি ভিন্ন ধরনের তথ্য থাকে

ছদ্মবেশী কোড

এটি একটি আই.ডি. কোড যা সনাক্ত করে কোন স্যাটেলাইট তথ্য প্রেরণ করছে। আপনি আপনার ডিভাইসের স্যাটেলাইট পৃষ্ঠায় কোন উপগ্রহ থেকে সংকেত পাচ্ছেন তা দেখতে পারেন।

এফেমেরিস ডেটা

স্যাটেলাইটের অবস্থান নির্ধারণের জন্য এফেমেরিস ডেটার প্রয়োজন হয় এবং স্যাটেলাইটের স্বাস্থ্য, বর্তমান তারিখ এবং সময় সম্পর্কে গুরুত্বপূর্ণ তথ্য দেয়।

Almanac ডেটা

অ্যালমানাক ডেটা জিপিএস রিসিভারকে বলে যেখানে প্রতিটি জিপিএস স্যাটেলাইট সারা দিন যে কোন সময় থাকা উচিত এবং সেই স্যাটেলাইট এবং সিস্টেমের অন্যান্য স্যাটেলাইটের কক্ষপথের তথ্য দেখায়।

ধাপ 3: নিও -6 এম জিপিএস মডিউল

NEO-6M GPS মডিউলটি নিচের চিত্রে দেখানো হয়েছে। এটি একটি বহিরাগত অ্যান্টেনা সহ আসে এবং হেডার পিনের সাথে আসে না। সুতরাং আপনাকে এটি সোল্ডার করতে হবে।

NEO-6M GPS মডিউলের ওভারভিউ

NEO-6M GPS চিপ

মডিউলের হৃদয় হল U-blox থেকে NEO-6M GPS চিপ। এটি 50 টি চ্যানেলে 22 টি স্যাটেলাইট ট্র্যাক করতে পারে এবং শিল্পের সর্বোচ্চ স্তরের সংবেদনশীলতা অর্জন করে -যেমন -161 ডিবি ট্র্যাকিং, যখন শুধুমাত্র 45mA সরবরাহের বর্তমান ব্যবহার করে। ইউ-ব্লক্স 6 পজিশনিং ইঞ্জিনটি টাইম-টু-ফার্স্ট-ফিক্স (টিটিএফএফ) কম 1 সেকেন্ডের। চিপের সেরা বৈশিষ্ট্যগুলির মধ্যে একটি হল পাওয়ার সেভ মোড (পিএসএম)। এটি রিসিভারের পার্টস অন এবং অফ সিলেকটিভ স্যুইচ করে সিস্টেমের পাওয়ার খরচ কমানোর অনুমতি দেয়। এটি নাটকীয়ভাবে মডিউলের বিদ্যুৎ খরচ কমিয়ে মাত্র 11mA করে দেয় যা এটি GPS রিস্টওয়াচের মতো পাওয়ার সংবেদনশীল অ্যাপ্লিকেশনের জন্য উপযুক্ত করে তোলে। NEO-6M GPS চিপের প্রয়োজনীয় ডেটা পিনগুলি 0.1 ″ পিচ হেডারে বিভক্ত। এতে UART- এর উপর একটি মাইক্রোকন্ট্রোলারের সাথে যোগাযোগের জন্য প্রয়োজনীয় পিন অন্তর্ভুক্ত রয়েছে।

দ্রষ্টব্য:- মডিউল 9600 ডিফল্ট বড সহ 4800bps থেকে 230400bps পর্যন্ত বড রেট সমর্থন করে।

পজিশন ফিক্স LED ইন্ডিকেটর

NEO-6M GPS মডিউলে একটি LED আছে যা পজিশন ফিক্সের অবস্থা নির্দেশ করে। এটি কোন অবস্থায় আছে তার উপর নির্ভর করে এটি বিভিন্ন হারে পলক ফেলবে

  1. কোন ব্লিঙ্কিং ==> মানে এটি স্যাটেলাইট অনুসন্ধান করছে
  2. প্রতি 1 সেকেন্ডে ঝলকান - মানে পজিশন ফিক্স পাওয়া যায়

3.3V এলডিও রেগুলেটর

NEO-6M চিপের অপারেটিং ভোল্টেজ 2.7 থেকে 3.6V পর্যন্ত। কিন্তু, মডিউলটি MICREL থেকে MIC5205 আল্ট্রা-লো ড্রপআউট 3V3 নিয়ন্ত্রকের সাথে আসে। লজিক পিনগুলিও 5-ভোল্ট সহনশীল, তাই আমরা কোন লজিক লেভেল কনভার্টার ব্যবহার না করেই এটিকে সহজেই একটি Arduino বা 5V লজিক মাইক্রোকন্ট্রোলারের সাথে সংযুক্ত করতে পারি।

ব্যাটারি এবং EEPROM

মডিউল একটি HK24C32 দুই তারের সিরিয়াল EEPROM দিয়ে সজ্জিত। এটি 4KB আকারের এবং I2C এর মাধ্যমে NEO-6M চিপের সাথে সংযুক্ত।

ব্যাটারির সাথে একটি EEPROM ব্যাটারি সমর্থিত RAM (BBR) ধরে রাখতে সাহায্য করে। BBR- এ রয়েছে ক্লক ডেটা, লেটেস্ট পজিশন ডেটা (GNSS কক্ষপথ ডেটা) এবং মডিউল কনফিগারেশন। কিন্তু এটি স্থায়ী ডেটা স্টোরেজের জন্য নয়।

যেহেতু ব্যাটারি ঘড়ি এবং শেষ অবস্থান ধরে রাখে, প্রথম ঠিক করার সময় (টিটিএফএফ) উল্লেখযোগ্যভাবে 1 সেকেন্ডে হ্রাস পায়। এটি অনেক দ্রুত অবস্থান লক করার অনুমতি দেয়।

ব্যাটারি ছাড়া জিপিএস সবসময় ঠান্ডা-শুরু হয় তাই প্রাথমিক জিপিএস লক বেশি সময় নেয়। ব্যাটারি স্বয়ংক্রিয়ভাবে চার্জ করা হয় যখন বিদ্যুৎ প্রয়োগ করা হয় এবং বিদ্যুৎ ছাড়া দুই সপ্তাহ পর্যন্ত ডেটা বজায় রাখে।

পিনআউট

GND হল গ্রাউন্ড পিন এবং আরডুইনোতে GND পিনের সাথে সংযুক্ত হওয়া প্রয়োজন।

সিরিয়াল যোগাযোগের জন্য TxD (ট্রান্সমিটার) পিন ব্যবহার করা হয়।

সিরিয়াল যোগাযোগের জন্য RxD (রিসিভার) পিন ব্যবহার করা হয়।

ভিসিসি মডিউলের জন্য শক্তি সরবরাহ করে। আপনি এটি সরাসরি Arduino এ 5V পিনের সাথে সংযুক্ত করতে পারেন।

ধাপ 4: Arduino মেগা

Arduino একটি ওপেন সোর্স ইলেকট্রনিক্স প্ল্যাটফর্ম যা সহজেই ব্যবহারযোগ্য হার্ডওয়্যার এবং সফটওয়্যারের উপর ভিত্তি করে। Arduino বোর্ডগুলি ইনপুট পড়তে সক্ষম - একটি সেন্সরে আলো, একটি বোতামে আঙুল, বা একটি টুইটার বার্তা - এবং এটি একটি আউটপুটে পরিণত করে - একটি মোটর সক্রিয় করা, একটি LED চালু করা, অনলাইনে কিছু প্রকাশ করা। বোর্ডে থাকা মাইক্রোকন্ট্রোলারের কাছে নির্দেশাবলীর একটি সেট পাঠিয়ে আপনার বোর্ডকে কী করতে হবে তা বলতে পারেন। এটি করার জন্য আপনি প্রক্রিয়াকরণের উপর ভিত্তি করে Arduino প্রোগ্রামিং ভাষা (তারের উপর ভিত্তি করে), এবং Arduino সফটওয়্যার (IDE) ব্যবহার করেন।

আরডুইনো মেগা

Arduino Mega 2560 হল Atmega2560 এর উপর ভিত্তি করে একটি মাইক্রোকন্ট্রোলার বোর্ড।

  • বোর্ডে 54 টি ডিজিটাল I/O পিন এবং 16 টি এনালগ পিন রয়েছে যা এই ডিভাইসটিকে অনন্য এবং অন্যদের থেকে আলাদা করে তোলে।
  • বোর্ডে 16MHz ফ্রিকোয়েন্সি একটি স্ফটিক দোলক যোগ করা হয়।
  • বোর্ডটি USB কেবল পোর্টের সাথে আসে যা কম্পিউটার থেকে বোর্ডে কোড সংযোগ এবং স্থানান্তর করতে ব্যবহৃত হয়।
  • ডিসি পাওয়ার জ্যাকটি বোর্ডের সাথে মিলিত হয় যা বোর্ডকে পাওয়ার জন্য ব্যবহৃত হয়।
  • বোর্ড দুটি ভোল্টেজ রেগুলেটর অর্থাৎ 5V এবং 3.3V নিয়ে আসে যা প্রয়োজনীয়তা অনুযায়ী ভোল্টেজ নিয়ন্ত্রণের জন্য নমনীয়তা প্রদান করে।
  • ইউএসএআরটি নামে একটি রিসেট বোতাম এবং 4 টি হার্ডওয়্যার সিরিয়াল পোর্ট রয়েছে যা যোগাযোগ স্থাপনের জন্য সর্বাধিক গতি তৈরি করে।
  • বোর্ডকে ক্ষমতা দেওয়ার তিনটি উপায় রয়েছে। আপনি বোর্ডকে পাওয়ার করতে এবং বোর্ডে কোড স্থানান্তর করতে একটি USB তারের ব্যবহার করতে পারেন অথবা আপনি বোর্ডের ভিন ব্যবহার করে বা পাওয়ার জ্যাক বা ব্যাটারের মাধ্যমে এটিকে শক্তিশালী করতে পারেন।

স্পেসিফিকেশন

পিনআউট

পিন বর্ণনা

  • 5V এবং 3.3V ==> এই পিনটি 5V এর কাছাকাছি আউটপুট নিয়ন্ত্রিত ভোল্টেজ প্রদান করতে ব্যবহৃত হয়। এই নিয়ন্ত্রিত বিদ্যুৎ সরবরাহ নিয়ন্ত্রক এবং বোর্ডের অন্যান্য উপাদানগুলিকে ক্ষমতা দেয়। এটি বোর্ডের ভিন বা ইউএসবি কেবল বা অন্য নিয়ন্ত্রিত 5V ভোল্টেজ সরবরাহ থেকে পাওয়া যেতে পারে। অন্য ভোল্টেজ নিয়ন্ত্রণ 3.3V পিন দ্বারা প্রদান করা হয়। সর্বোচ্চ ক্ষমতা এটি আঁকতে পারে 50mA।
  • GND ==> বোর্ডে 5 টি গ্রাউন্ড পিন পাওয়া যায় যা প্রকল্পের জন্য একাধিক গ্রাউন্ড পিনের প্রয়োজন হলে এটি উপযোগী করে তোলে।
  • রিসেট ==> এই পিনটি বোর্ড রিসেট করতে ব্যবহৃত হয়। এই পিনটি LOW এ সেট করলে বোর্ড রিসেট হবে।
  • ভিন ==> এটি বোর্ডে সরবরাহ করা ইনপুট ভোল্টেজ যা 7V থেকে 20V পর্যন্ত। পাওয়ার জ্যাকের দেওয়া ভোল্টেজ এই পিনের মাধ্যমে অ্যাক্সেস করা যায়। যাইহোক, এই পিনের মাধ্যমে বোর্ডে আউটপুট ভোল্টেজ স্বয়ংক্রিয়ভাবে 5V পর্যন্ত সেট হবে।
  • সিরিয়াল কমিউনিকেশন ==> RXD এবং TXD হল সিরিয়াল ডেটা প্রেরণ এবং গ্রহণের জন্য ব্যবহৃত সিরিয়াল পিন অর্থাৎ Rx ডেটা ট্রান্সমিশনের প্রতিনিধিত্ব করে যখন Tx ডেটা গ্রহণ করতে ব্যবহৃত হয়। এই সিরিয়াল পিনের চারটি কম্বিনেশন ব্যবহার করা হয় যেখানে সেরাইল 0 তে RX (0) এবং TX (1) থাকে, সিরিয়াল 1 তে TX (18) এবং RX (19) থাকে, সিরিয়াল 2 তে TX (16) এবং RX (17) থাকে, এবং সিরিয়াল 3 তে TX (14) এবং RX (15) রয়েছে।
  • বাহ্যিক বাধা ==> বাহ্যিক বাধা তৈরির জন্য ছয়টি পিন ব্যবহার করা হয় যেমন 0 (0), বাধা 1 (3), বাধা 2 (21), বাধা 3 (20), বাধা 4 (19), বাধা 5 (18)। এই পিনগুলি বিভিন্ন উপায়ে ইন্টারাপ্ট তৈরি করে অর্থাত্ নিম্ন মান প্রদান, বৃদ্ধি বা পতন প্রান্ত বা ইন্টারাপ্ট পিনের মান পরিবর্তন করা।
  • LED ==> এই বোর্ডটি ডিজিটাল পিন 13 এর সাথে সংযুক্ত বিল্ট-ইন LED এর সাথে আসে। এই পিনের উচ্চ মান LED চালু করবে এবং নিম্ন মান এটি বন্ধ করবে।
  • AREF ==> AREF মানে অ্যানালগ রেফারেন্স ভোল্টেজ যা এনালগ ইনপুটগুলির জন্য একটি রেফারেন্স ভোল্টেজ।
  • এনালগ পিন ==> বোর্ডে A0 থেকে A15 লেবেলযুক্ত 16 টি এনালগ পিন রয়েছে। এটি লক্ষ করা গুরুত্বপূর্ণ যে এই সমস্ত এনালগ পিনগুলি ডিজিটাল I/O পিন হিসাবে ব্যবহার করা যেতে পারে। প্রতিটি এনালগ পিন 10-বিট রেজোলিউশনের সাথে আসে। এই পিনগুলি মাটি থেকে 5V পর্যন্ত পরিমাপ করতে পারে। যাইহোক, AREF এবং analogReference () ফাংশন ব্যবহার করে উপরের মান পরিবর্তন করা যায়।
  • I2C ==> দুটি পিন 20 এবং 21 I2C যোগাযোগ সমর্থন করে যেখানে 20 এসডিএকে প্রতিনিধিত্ব করে (সিরিয়াল ডেটা লাইন প্রধানত ডেটা রাখার জন্য ব্যবহৃত হয়) এবং 21 এসসিএলকে প্রতিনিধিত্ব করে (সিরিয়াল ক্লক লাইন প্রধানত ডিভাইসের মধ্যে ডেটা সিঙ্ক্রোনাইজেশন প্রদানের জন্য ব্যবহৃত হয়)
  • এসপিআই কমিউনিকেশন ==> এসপিআই মানে সিরিয়াল পেরিফেরাল ইন্টারফেস যা নিয়ামক এবং অন্যান্য পেরিফেরাল উপাদানগুলির মধ্যে ডেটা প্রেরণের জন্য ব্যবহৃত হয়। চারটি পিন অর্থাৎ 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) SPI যোগাযোগের জন্য ব্যবহৃত হয়।

ধাপ 5: Arduino IDE

এখানে আমি ধরে নিচ্ছি আপনি ইতিমধ্যে Arduino IDE ইনস্টল করেছেন।

1. নিচের প্রয়োজনীয় লাইব্রেরি ডাউনলোড করুন

TinyGPS lib

2. ডাউনলোড করার পর। এটি এক্সট্র্যাক্ট করুন এবং C: / Users \… / Documents / Arduino / লাইব্রেরিতে নিশ্চিত করুন যে কোন (-) নেই।

3. Arduino IDE খুলুন এবং প্রোগ্রাম বিভাগ থেকে কোডটি অনুলিপি করুন।

4. তারপর তার জন্য বোর্ড নির্বাচন করুন Tools ==> বোর্ড ==> এখানে বোর্ড নির্বাচন করুন আমরা Arduino Mega 2560 ব্যবহার করছি

5. বোর্ড সিলেক্ট করার পর পোর্ট সিলেক্ট করুন তার জন্য Tools ==> Ports এ যান

6। বোর্ড এবং পোর্ট নির্বাচন করার পর আপলোড ক্লিক করুন।

7. একবার কোড আপলোড হয়ে গেলে আউটপুট দেখতে সিরিয়াল টার্মিনাল খুলুন।

ধাপ 6: সংযোগ

Arduino MEGA ==> NEO-6M GPS

  • 3.3V ==> VCC
  • GND ==> GND
  • Tx1 (18) ==> Rx
  • Rx (19) ==> Tx

আপনি সিরিয়াল 1 এর পরিবর্তে সিরিয়াল 2 বা সিরিয়াল 3 ব্যবহার করতে পারেন

প্রস্তাবিত: