আরডুইনো কমিউনিকেশন প্রোটোকল

Aradu Ino Kami Unikesana Protokala



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

আরডুইনো কমিউনিকেশন প্রোটোকল

কমিউনিকেশন প্রোটোকল ব্যবহার করে, আমরা Arduino-এ যেকোনো সেন্সরের ডেটা পাঠাতে এবং গ্রহণ করতে পারি।

কিছু সাধারণ সেন্সর যেমন ইনফ্রারেড (IR) সরাসরি Arduino এর সাথে যোগাযোগ করতে পারে কিন্তু কিছু জটিল সেন্সর যেমন Wi-Fi মডিউল, SD কার্ড মডিউল এবং Gyroscope কোন যোগাযোগ প্রোটোকল ছাড়াই Arduino এর সাথে সরাসরি যোগাযোগ করতে পারে না। সুতরাং, এই কারণেই এই প্রোটোকলগুলি Arduino যোগাযোগের একটি অবিচ্ছেদ্য অংশ।







Arduino এর সাথে একাধিক পেরিফেরাল সংযুক্ত আছে; তাদের মধ্যে আরডুইনো বোর্ডে ব্যবহৃত তিনটি যোগাযোগ পেরিফেরাল রয়েছে।



আরডুইনো কমিউনিকেশন প্রোটোকল

Arduino মত বিভিন্ন ইলেকট্রনিক ডিভাইসের মধ্যে যোগাযোগ এই তিনটি প্রোটোকলের মধ্যে মানসম্মত; এটি ডিজাইনারদের বিভিন্ন ডিভাইসের মধ্যে সহজে যোগাযোগ করতে সক্ষম করে কোন সামঞ্জস্যতা সমস্যা ছাড়াই। এই তিনটি প্রোটোকলের কাজ একই কারণ তারা যোগাযোগের একই উদ্দেশ্য পরিবেশন করে, কিন্তু একটি সার্কিটের ভিতরে বাস্তবায়নের ক্ষেত্রে তারা ভিন্ন। এই প্রোটোকলগুলির আরও বিবরণ নীচে আলোচনা করা হয়েছে।







UART

UART হিসাবে পরিচিত ইউনিভার্সাল অ্যাসিঙ্ক্রোনাস রিসিভার ট্রান্সমিটার। UART হল একটি সিরিয়াল কমিউনিকেশন প্রোটোকল যার মানে ডেটা বিটগুলি একের পর এক অনুক্রমিক আকারে স্থানান্তরিত হয়। UART যোগাযোগ স্থাপনের জন্য আমাদের দুটি লাইন প্রয়োজন। একটি Arduino বোর্ডের Tx (D1) পিন এবং দ্বিতীয়টি Arduino বোর্ডের Rx(D0) পিন। Tx পিন ডিভাইসগুলিতে ডেটা প্রেরণের জন্য এবং Rx পিন ডেটা গ্রহণের জন্য ব্যবহৃত হয়। বিভিন্ন Arduino বোর্ডে একাধিক UART পিন থাকে।

আরডুইনো ডিজিটাল পিন UART পিন
D1 Tx
D0 Rx

UART পোর্ট ব্যবহার করে সিরিয়াল যোগাযোগ স্থাপন করতে আমাদের নিচের দেখানো কনফিগারেশনে দুটি ডিভাইস সংযোগ করতে হবে:



আরডুইনো ইউনোতে, একটি সিরিয়াল পোর্ট যোগাযোগের জন্য নিবেদিত যা সাধারণত ইউএসবি পোর্ট হিসাবে উল্লেখ করা হয়। নামটি ইউনিভার্সাল সিরিয়াল বাসের পরামর্শ দেয়, তাই এটি একটি সিরিয়াল পোর্ট। ইউএসবি পোর্ট Arduino ব্যবহার করে কম্পিউটারের সাথে যোগাযোগ স্থাপন করতে পারে। ইউএসবি পোর্টটি আরডুইনোর অনবোর্ড পিন Tx এবং Rx এর সাথে সংযুক্ত। এই পিনগুলি ব্যবহার করে, আমরা USB এর মাধ্যমে কম্পিউটার ছাড়া অন্য যে কোনও বাহ্যিক হার্ডওয়্যার সংযোগ করতে পারি। Arduino IDE সফটওয়্যার সিরিয়াল লাইব্রেরি প্রদান করে (SoftwareSerial.h) যা ব্যবহারকারীদের সিরিয়াল Tx এবং Rx পিন হিসাবে GPIO পিন ব্যবহার করতে দেয়।

  • UART আরডুইনো দিয়ে কাজ করা সহজ
  • UART-এর কোনো ঘড়ির সংকেতের প্রয়োজন নেই
  • ডেটা ক্ষতি রোধ করতে যোগাযোগকারী ডিভাইসের 10% সীমার মধ্যে বড রেট সেট করতে হবে
  • মাস্টার স্লেভ কনফিগারেশনে Arduino সহ একাধিক ডিভাইস UART এর সাথে সম্ভব নয়
  • UART হল হাফ ডুপ্লেক্স, যার মানে ডিভাইসগুলি একই সময়ে ডেটা প্রেরণ এবং গ্রহণ করতে পারে না
  • এক সময়ে শুধুমাত্র দুটি ডিভাইস UART প্রোটোকলের সাথে যোগাযোগ করতে পারে

সিরিয়াল পেরিফেরাল ইন্টারফেস (SPI)

এসপিআই সিরিয়াল পেরিফেরাল ইন্টারফেসের একটি সংক্ষিপ্ত রূপ যা মাইক্রোকন্ট্রোলারদের সাথে যোগাযোগ করার জন্য বিশেষভাবে ডিজাইন করা হয়েছে। SPI ফুল-ডুপ্লেক্স মোডে কাজ করে যার মানে SPI একই সাথে ডেটা পাঠাতে এবং গ্রহণ করতে পারে। UART এবং I2C এর সাথে তুলনা করলে এটি Arduino বোর্ডের দ্রুততম যোগাযোগের পেরিফেরাল। এটি সাধারণত যেখানে LCD ডিসপ্লে এবং মাইক্রো এসডি কার্ড অ্যাপ্লিকেশনের মতো উচ্চ ডেটা হারের প্রয়োজন হয় সেখানে ব্যবহার করা হয়।

আরডুইনোতে এসপিআই ডিজিটাল পিনগুলি পূর্বনির্ধারিত। Arduino Uno SPI পিন কনফিগারেশনের জন্য নিম্নরূপ:

এসপিআই লাইন জিপিআইও ICSP হেডার পিন
SCK 13 3
MISO 12 1
ধোঁয়া এগারো 4
এসএস 10 -
  • MOSI মানে মাস্টার আউট স্লেভ ইন , MOSI হল মাস্টার থেকে স্লেভের জন্য ডেটা ট্রান্সমিশন লাইন।
  • SCK হল a ঘড়ির লাইন যা ট্রান্সমিশন গতি এবং শুরু শেষ বৈশিষ্ট্য সংজ্ঞায়িত করে।
  • এসএস মানে স্লেভ সিলেক্ট ; একাধিক স্লেভ কনফিগারেশনে কাজ করার সময় SS লাইন মাস্টারকে একটি নির্দিষ্ট স্লেভ ডিভাইস নির্বাচন করার অনুমতি দেয়।
  • MISO এর পূর্ণরূপ মাস্টার ইন স্লেভ আউট ; MISO হল ডেটার জন্য স্লেভ টু মাস্টার ট্রান্সমিশন লাইন।

SPI প্রোটোকলের প্রধান হাইলাইটগুলির মধ্যে একটি হল মাস্টার-স্লেভ কনফিগারেশন। SPI একটি ডিভাইস ব্যবহার করে অনেকগুলি স্লেভ ডিভাইস নিয়ন্ত্রণ করতে মাস্টার হিসাবে সংজ্ঞায়িত করা যেতে পারে। SPI প্রোটোকলের মাধ্যমে স্লেভ ডিভাইসের সম্পূর্ণ নিয়ন্ত্রণ মাস্টার।

এসপিআই হল সিঙ্ক্রোনাস প্রোটোকল, যার অর্থ যোগাযোগ মাস্টার এবং স্লেভের মধ্যে সাধারণ ঘড়ি সংকেতের সাথে যুক্ত। SPI একটি একক ট্রান্সমিট এবং রিসিভ লাইনের উপর স্লেভ হিসাবে একাধিক ডিভাইস নিয়ন্ত্রণ করতে পারে। সমস্ত স্লেভ সাধারণ ব্যবহার করে মাস্টারের সাথে সংযুক্ত MISO বরাবর লাইন গ্রহণ ধোঁয়া একটি সাধারণ ট্রান্সমিট লাইন। SCK এছাড়াও মাস্টার এবং স্লেভ ডিভাইসের মধ্যে সাধারণ ঘড়ি লাইন। স্লেভ ডিভাইসের মধ্যে পার্থক্য হল প্রতিটি স্লেভ ডিভাইস আলাদা আলাদা মাধ্যমে নিয়ন্ত্রিত হয় এসএস লাইন নির্বাচন করুন। এর মানে হল যে প্রতিটি স্লেভের Arduino বোর্ড থেকে একটি অতিরিক্ত GPIO পিন প্রয়োজন যা সেই নির্দিষ্ট স্লেভ ডিভাইসের জন্য নির্বাচিত লাইন হিসাবে কাজ করবে।

SPI প্রোটোকলের কিছু প্রধান হাইলাইট নীচে তালিকাভুক্ত করা হয়েছে:

  • SPI হল I2C এবং UART এর চেয়ে দ্রুততম প্রোটোকল
  • UART এর মত কোন স্টার্ট এবং স্টপ বিটের প্রয়োজন নেই যার মানে একটানা ডেটা ট্রান্সমিশন সম্ভব
  • সাধারণ মাস্টার স্লেভ কনফিগারেশনের কারণে স্লেভকে সহজেই সম্বোধন করা যেতে পারে
  • প্রতিটি স্লেভের জন্য একটি অতিরিক্ত পিন Arduino বোর্ডে দখল করা হয়। কার্যত 1 মাস্টার 4টি স্লেভ ডিভাইস নিয়ন্ত্রণ করতে পারে
  • UART-তে ব্যবহৃত ডেটার স্বীকৃতি অনুপস্থিত
  • একাধিক মাস্টার কনফিগারেশন সম্ভব নয়

I2C কমিউনিকেশন প্রোটোকল

ইন্টার ইন্টিগ্রেটেড সার্কিট (I2C) আরডুইনো বোর্ড দ্বারা ব্যবহৃত আরেকটি যোগাযোগ প্রোটোকল। I2C হল Arduino এবং অন্যান্য ডিভাইসের সাথে প্রয়োগ করা সবচেয়ে কঠিন এবং জটিল প্রোটোকল। এর জটিলতা সত্ত্বেও এটি একাধিক বৈশিষ্ট্য অফার করে যা অন্যান্য প্রোটোকলগুলিতে অনুপস্থিত যেমন একাধিক মাস্টার এবং একাধিক স্লেভ কনফিগারেশন। I2C প্রধান Arduino বোর্ডের সাথে 128টি ডিভাইস সংযোগ করার অনুমতি দেয়। এটি শুধুমাত্র সম্ভব কারণ I2C সমস্ত স্লেভ ডিভাইসের মধ্যে একক তার ভাগ করে। Arduino-এ I2C একটি অ্যাড্রেস সিস্টেম ব্যবহার করে, মানে স্লেভ ডিভাইসে ডেটা পাঠানোর আগে আরডুইনোকে প্রথমে অনন্য ঠিকানা পাঠিয়ে স্লেভ ডিভাইস নির্বাচন করতে হবে। I2C সামগ্রিক Arduino পিনের সংখ্যা কমিয়ে শুধুমাত্র দুটি তার ব্যবহার করে, কিন্তু এর খারাপ দিক হল I2C SPI প্রোটোকলের চেয়ে ধীর।

আরডুইনো এনালগ পিন I2C পিন
A4 এসডিএ
A5 SCL

হার্ডওয়্যার স্তরে I2C শুধুমাত্র দুটি তারের মধ্যে সীমাবদ্ধ, একটি হিসাবে পরিচিত একটি ডেটা লাইনের জন্য SDA (সিরিয়াল ডেটা) এবং ক্লক লাইনের জন্য দ্বিতীয়টি SCL (ক্রমিক ঘড়ি)। নিষ্ক্রিয় অবস্থায় SDA এবং SCL উভয়ই উচ্চ টানা হয়। যখন ডেটা প্রেরণের প্রয়োজন হয় তখন এই লাইনগুলিকে MOSFET সার্কিট্রি ব্যবহার করে কম টানা হয়। প্রকল্পগুলিতে I2C ব্যবহার করে সাধারণত 4.7Kohm এর মান পুল আপ প্রতিরোধক ব্যবহার করা বাধ্যতামূলক। এই পুল আপ প্রতিরোধকগুলি নিশ্চিত করে যে SDA এবং SCL উভয় লাইনই তাদের নিষ্ক্রিয় শুরুতে উচ্চ থাকবে।

I2C প্রোটোকলের কিছু প্রধান হাইলাইট হল:

  • প্রয়োজনীয় পিনের সংখ্যা খুবই কম
  • একাধিক মাস্টার স্লেভ ডিভাইস সংযুক্ত করা যেতে পারে
  • শুধুমাত্র 2টি তার ব্যবহার করে
  • টান আপ প্রতিরোধকের কারণে SPI এর তুলনায় গতি ধীর
  • প্রতিরোধকের সার্কিটে আরও জায়গা প্রয়োজন
  • ডিভাইসের সংখ্যা বৃদ্ধির সাথে প্রকল্পের জটিলতা বৃদ্ধি

UART বনাম I2C বনাম SPI এর মধ্যে তুলনা

প্রোটোকল UART এসপিআই 2C
দ্রুততা সবচেয়ে ধীর দ্রুততম UART থেকে দ্রুত
ডিভাইসের সংখ্যা 2 পর্যন্ত 4টি ডিভাইস 128টি পর্যন্ত ডিভাইস
তারের প্রয়োজন 2(Tx,Rx) 4(SCK,SMOKE,IES,SS) 2(SDA,SCL)
ডুপ্লেক্স মোড সম্পূর্ণ ডুপ্লেক্স মোড সম্পূর্ণ ডুপ্লেক্স মোড অর্ধেক দ্বৈত
মাস্টার-স্লেভের সংখ্যা সম্ভব একক প্রভু-একক দাস একক প্রভু-মাল্টিপল স্লেভ একাধিক প্রভু-একাধিক ক্রীতদাস
জটিলতা সরল সহজেই একাধিক ডিভাইস নিয়ন্ত্রণ করতে পারেন ডিভাইস বৃদ্ধি সঙ্গে জটিল
স্বীকৃতি বিট না না হ্যাঁ

উপসংহার

এই নিবন্ধে, আমরা আরডুইনোতে ব্যবহৃত তিনটি প্রোটোকল UART, SPI এবং I2C এর একটি ব্যাপক তুলনা কভার করেছি। সমস্ত প্রোটোকল জানা গুরুত্বপূর্ণ কারণ এটি একাধিক ডিভাইসকে একীভূত করার অফুরন্ত সুযোগ দেয়। সমস্ত যোগাযোগের আনুষঙ্গিক বিষয়গুলি বোঝা সময় বাঁচাবে এবং সঠিক প্রোটোকল অনুযায়ী প্রকল্পগুলিকে অপ্টিমাইজ করতে সাহায্য করবে৷