12 KiB
GPS ডেটা পড়ুন - Wio Terminal
এই পাঠের এই অংশে, আপনি আপনার Wio Terminal-এ একটি GPS সেন্সর যোগ করবেন এবং এর থেকে মান পড়বেন।
হার্ডওয়্যার
Wio Terminal-এর জন্য একটি GPS সেন্সর প্রয়োজন।
আপনি যে সেন্সরটি ব্যবহার করবেন তা হলো Grove GPS Air530 সেন্সর। এই সেন্সরটি একাধিক GPS সিস্টেমের সাথে সংযোগ স্থাপন করতে পারে দ্রুত এবং সঠিক অবস্থান নির্ধারণের জন্য। সেন্সরটি দুটি অংশ নিয়ে গঠিত - সেন্সরের মূল ইলেকট্রনিক্স এবং একটি বাহ্যিক অ্যান্টেনা যা একটি পাতলা তারের মাধ্যমে সংযুক্ত থাকে, যা স্যাটেলাইট থেকে রেডিও তরঙ্গ গ্রহণ করে।
এটি একটি UART সেন্সর, তাই এটি UART-এর মাধ্যমে GPS ডেটা পাঠায়।
GPS সেন্সর সংযুক্ত করুন
Grove GPS সেন্সরটি Wio Terminal-এর সাথে সংযুক্ত করা যেতে পারে।
কাজ - GPS সেন্সর সংযুক্ত করুন
GPS সেন্সর সংযুক্ত করুন।
-
Grove কেবলের এক প্রান্ত GPS সেন্সরের সকেটে প্রবেশ করান। এটি শুধুমাত্র একটি নির্দিষ্ট দিকেই প্রবেশ করবে।
-
Wio Terminal আপনার কম্পিউটার বা অন্য পাওয়ার সাপ্লাই থেকে সংযোগ বিচ্ছিন্ন অবস্থায়, Grove কেবলের অন্য প্রান্তটি Wio Terminal-এর স্ক্রিনের দিকে তাকালে বাম পাশের Grove সকেটে সংযুক্ত করুন। এটি পাওয়ার বোতামের সবচেয়ে কাছের সকেট।
-
GPS সেন্সরটি এমনভাবে স্থাপন করুন যাতে সংযুক্ত অ্যান্টেনার আকাশের দিকে দৃশ্যমানতা থাকে - আদর্শভাবে একটি খোলা জানালার পাশে বা বাইরে। অ্যান্টেনার পথে কিছু না থাকলে পরিষ্কার সিগনাল পাওয়া সহজ হয়।
-
এখন আপনি Wio Terminal-কে আপনার কম্পিউটারের সাথে সংযুক্ত করতে পারেন।
-
GPS সেন্সরের দুটি LED রয়েছে - একটি নীল LED যা ডেটা প্রেরণের সময় ঝলকানি দেয় এবং একটি সবুজ LED যা স্যাটেলাইট থেকে ডেটা গ্রহণ করার সময় প্রতি সেকেন্ডে ঝলকানি দেয়। Wio Terminal চালু করার সময় নিশ্চিত করুন যে নীল LEDটি ঝলকানি দিচ্ছে। কয়েক মিনিট পর সবুজ LEDটি ঝলকানি দেবে - যদি না দেয়, তাহলে হয়তো অ্যান্টেনার অবস্থান পরিবর্তন করতে হতে পারে।
GPS সেন্সর প্রোগ্রাম করুন
এখন Wio Terminal-কে সংযুক্ত GPS সেন্সর ব্যবহার করার জন্য প্রোগ্রাম করা যেতে পারে।
কাজ - GPS সেন্সর প্রোগ্রাম করুন
ডিভাইসটি প্রোগ্রাম করুন।
-
PlatformIO ব্যবহার করে একটি নতুন Wio Terminal প্রকল্প তৈরি করুন। এই প্রকল্পটির নাম দিন
gps-sensor
।setup
ফাংশনে সিরিয়াল পোর্ট কনফিগার করার জন্য কোড যোগ করুন। -
main.cpp
ফাইলের শীর্ষে নিম্নলিখিত include নির্দেশনা যোগ করুন। এটি একটি হেডার ফাইল অন্তর্ভুক্ত করে যা বাম পাশের Grove পোর্টকে UART-এর জন্য কনফিগার করার ফাংশন সরবরাহ করে।#include <wiring_private.h>
-
এর নিচে, নিম্নলিখিত কোড যোগ করুন যা UART পোর্টের সাথে একটি সিরিয়াল পোর্ট সংযোগ ঘোষণা করে:
static Uart Serial3(&sercom3, PIN_WIRE_SCL, PIN_WIRE_SDA, SERCOM_RX_PAD_1, UART_TX_PAD_0);
-
কিছু অভ্যন্তরীণ সিগনাল হ্যান্ডলারকে এই সিরিয়াল পোর্টে পুনঃনির্দেশ করার জন্য কোড যোগ করতে হবে।
Serial3
ঘোষণার নিচে নিম্নলিখিত কোড যোগ করুন:void SERCOM3_0_Handler() { Serial3.IrqHandler(); } void SERCOM3_1_Handler() { Serial3.IrqHandler(); } void SERCOM3_2_Handler() { Serial3.IrqHandler(); } void SERCOM3_3_Handler() { Serial3.IrqHandler(); }
-
setup
ফাংশনে যেখানেSerial
পোর্ট কনফিগার করা হয়েছে তার নিচে, নিম্নলিখিত কোড ব্যবহার করে UART সিরিয়াল পোর্ট কনফিগার করুন:Serial3.begin(9600); while (!Serial3) ; // Wait for Serial3 to be ready delay(1000);
-
setup
ফাংশনে এই কোডের নিচে, Grove পিনকে সিরিয়াল পোর্টের সাথে সংযুক্ত করার জন্য নিম্নলিখিত কোড যোগ করুন:pinPeripheral(PIN_WIRE_SCL, PIO_SERCOM_ALT);
-
loop
ফাংশনের আগে নিম্নলিখিত ফাংশন যোগ করুন যা GPS ডেটা সিরিয়াল মনিটরে পাঠায়:void printGPSData() { Serial.println(Serial3.readStringUntil('\n')); }
-
loop
ফাংশনে, নিম্নলিখিত কোড যোগ করুন যা UART সিরিয়াল পোর্ট থেকে পড়ে এবং সিরিয়াল মনিটরে আউটপুট প্রিন্ট করে:while (Serial3.available() > 0) { printGPSData(); } delay(1000);
এই কোডটি UART সিরিয়াল পোর্ট থেকে পড়ে।
readStringUntil
ফাংশনটি একটি টার্মিনেটর ক্যারেক্টার পর্যন্ত পড়ে, এই ক্ষেত্রে একটি নতুন লাইন। এটি একটি সম্পূর্ণ NMEA বাক্য পড়বে (NMEA বাক্যগুলি একটি নতুন লাইন ক্যারেক্টার দিয়ে শেষ হয়)। যতক্ষণ না UART সিরিয়াল পোর্ট থেকে ডেটা পড়া যায়, এটি পড়া হয় এবংprintGPSData
ফাংশনের মাধ্যমে সিরিয়াল মনিটরে পাঠানো হয়। যখন আর ডেটা পড়া যায় না, তখনloop
1 সেকেন্ড (1,000ms) বিলম্ব করে। -
কোডটি Wio Terminal-এ বিল্ড এবং আপলোড করুন।
-
আপলোড করার পর, আপনি সিরিয়াল মনিটর ব্যবহার করে GPS ডেটা পর্যবেক্ষণ করতে পারেন।
> Executing task: platformio device monitor < --- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time --- More details at http://bit.ly/pio-monitor-filters --- Miniterm on /dev/cu.usbmodem1201 9600,8,N,1 --- --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- $GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67 $GPGSA,A,1,,,,,,,,,,,,,,,*1E $BDGSA,A,1,,,,,,,,,,,,,,,*0F $GPGSV,1,1,00*79 $BDGSV,1,1,00*68
💁 আপনি এই কোডটি code-gps/wio-terminal ফোল্ডারে খুঁজে পেতে পারেন।
😀 আপনার GPS সেন্সর প্রোগ্রাম সফল হয়েছে!
অস্বীকৃতি:
এই নথিটি AI অনুবাদ পরিষেবা Co-op Translator ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই।