কীভাবে একটি কাস্টম আই 2 সি মাস্টার-স্লেভ সিস্টেম ডিজাইন এবং ডিবাগ করবেন?


10

কীভাবে এগিয়ে যেতে হবে, যখন কাস্টম আই 2 সি মাস্টার-স্লেভ সিস্টেমের প্রয়োজন হয়?

প্রয়োগ করার জন্য ডিজাইনের মানদণ্ড কী কী?

সমস্যা সমাধানের জন্য কেউ কী ডিবাগিং সরঞ্জামগুলি ব্যবহার করতে পারে?


এটি একটি রেফারেন্স প্রশ্ন। আমি বেশ কয়েকটি মন্তব্য মুছে ফেলেছি যা এটিকে কম স্পষ্ট করেছে। (প্রশ্নের উত্তর জিজ্ঞাসাবাদীর দ্বারা দেওয়া হয়)।
নিক দম্ভোক্তি

উত্তর:


10

এই এম্বেডেড লিনাক্স সম্মেলনে আমি এই টিউটোরিয়ালটি প্রশ্নের উত্তর দেওয়ার চেষ্টা করেছি, যেসব বিষয়ের উপরে আলোচনা করা হয়েছে তার আরও বিশদ বিবরণের লিঙ্ক সরবরাহ করা এবং 4WD ড্রোন চালনার ব্যবহারিক উদাহরণ ব্যবহার করে, যেখানে একটি আড়ডিনো মিনি প্রো দাস হিসাবে কাজ করে এবং 4 টি স্বাধীন চাকা নিয়ন্ত্রণ করে । মূল নথিটি এখানে পাওয়া যাবে

দ্রষ্টব্য: লিঙ্কটি থেকে আমি হাইলাইটগুলি অভিযোজন করায় এই উত্তরটি বর্তমানে চলছে।


আই 2 সি বাসের সাধারণ অ্যাপ্লিকেশন

  • তুলনামূলকভাবে ধীর পেরিফেরিয়ালগুলির সাথে ইন্টারফেসিং। প্রাক্তন: সেন্সর, যান্ত্রিক অ্যাকিউটরেটর।
  • "দ্রুত" পেরিফেরিয়ালগুলি নিয়ন্ত্রণ করা হচ্ছে, যা ডেটা এক্সচেঞ্জের জন্য অন্যান্য চ্যানেল ব্যবহার করে। উদাঃ কোডেকস।

    একটি পিসিতে অপারেটিং সিস্টেম সাধারণত I2C এর সাথে ইন্টারঅ্যাক্ট করে:

    • তাপমাত্রা এবং ব্যাটারি ভোল্টেজ মিটার;
    • পাখা গতি নিয়ন্ত্রক;
    • অডিও কোডেস।

যদি একাধিক বাস নিয়ন্ত্রক উপলব্ধ থাকে তবে পেরিফেরিয়ালগুলি গতি অনুসারে শ্রেণিবদ্ধ করা হয়, যাতে দ্রুত গতিগুলি ধীর গতির দ্বারা দন্ডিত হয় না।


আই 2 সি বাসের একটি দ্রুত পরিচয় - মূল বৈশিষ্ট্য

  • সিরিয়াল বাস।
  • মাত্র 2 টি লাইন: সিরিয়াল ক্লক এবং সিরিয়াল ডাটা (প্লাস গ্রাউন্ড)।
  • 4 গতি: 100kHz, 400kHz, 1MHz, 3.2MHz।
  • সাধারণত, 1 মাস্টার ডিভাইস এবং 1 বা আরও বেশি ক্রীতদাস।
  • যোগাযোগগুলি সর্বদা একটি মাস্টার ডিভাইস দ্বারা শুরু করা হয়।
  • একাধিক মাস্টার একই বাসে (মাল্টি-মাস্টার) সহ-উপস্থিত থাকতে পারে।
  • ওপেন-ড্রেন: এসডিএ এবং এসসিএল উভয়েরই পুল-আপ প্রতিরোধকের প্রয়োজন।
  • "ঘড়ি প্রসারিত"
    • মাস্টার এসসিএল নিয়ন্ত্রণ করে, তবে কোনও স্লেভ এটি ধরে রাখতে পারে (কারণ ওপেন ড্রেন), যদি এটির গতি সামঞ্জস্য করতে হয়।
    • এই দৃশ্যের জন্য মাস্টারকে অবশ্যই পরীক্ষা করা উচিত।
    • কোনও গোলাম আটকে যেতে পারে এবং বাসটি জ্যাম করতে পারে: মাস্টার থেকে দাসের রিসেট লাইনের প্রয়োজন।
  • সাধারণত 7-বিট ঠিকানা, তবে 10 বিট সমর্থিত।
  • লজিকাল প্রোটোকল: প্রকৃত ভোল্টেজের স্তরগুলি নির্দিষ্ট করা হয়নি এবং পৃথক বাস্তবায়নের উপর নির্ভর করে। উদাঃ 1.8V / 3.3V / 5.0V

রেফারেন্স ইউআরএল:

বাস কনফিগারেশন উদাহরণ

বাস কনফিগারেশন উদাহরণ


প্রোটোকলের বৈশিষ্ট্য (সরলীকৃত)

  • 2 বার্তা প্রকার: পড়া এবং লিখুন
  • স্টার্ট / স্টপ বিট - বাকি উত্তরে "[" এবং "]" হিসাবে উপস্থাপিত
  • ঠিকানা: 7 বা 10 বিট
  • আর / ডাবল বিট: আর = 1 / ডাব্লু = 0 প্রেরিত বার্তার বৈষম্যমূলক ব্যবহার করতে ব্যবহৃত হয়।
  • বাসে থাকা ডেটা: (ঠিকানা << 1 | আর / ডাব্লু)
  • নির্বাচিত ডিভাইসের মধ্যে তথ্য হ্যান্ডলার হিসাবে নিবন্ধভুক্ত করুন।

বাস ট্রাফিকের উদাহরণ

বাস ট্রাফিকের উদাহরণ বাস রাইট চক্র উদাহরণ বাস রিড সাইকেল পার্ট 1 এর উদাহরণ বাস রিড সাইকেল পার্ট 2 এর উদাহরণ


কাস্টম স্লেভস

কেন কাস্টম আই 2 সি ক্রীতদাস তৈরি করবেন?

  • আই 2 সি ইন্টারফেসের সাথে পছন্দসই সেন্সর / অ্যাক্টিউটার অনুপলব্ধ।
  • দাসদের প্রয়োজনের চেয়ে কম অনন্য ঠিকানা উপলব্ধ।
  • দাসের উপর পছন্দসই কাস্টম কার্যকারিতা:
    • উদ্দীপকে আধা-স্বায়ত্তশাসিত প্রতিক্রিয়া।
    • ফিল্টারিং / ইনপুট ডেটা প্রিপ্রোসেসিং।
  • পাওয়ার অপ্টিমাইজেশন: কাস্টম "সেন্সর হাব" মূল প্রসেসর নিষ্ক্রিয় থাকার সময় গৃহকর্মটি করে।
  • ইনপুটগুলিতে রিয়েলটাইম প্রতিক্রিয়া।
  • [এখানে আপনার কল্পনা]

কীভাবে কাস্টম আই 2 সি স্লেভ ডিজাইন করবেন?

  • প্রয়োজনীয়তা সংজ্ঞায়িত করুন (পূর্ববর্তী স্লাইড দেখুন)
  • মাইক্রোকন্ট্রোলার বা মাইক্রোপ্রসেসর চয়ন করুন।
  • সময়সূচী বা অপারেটিং সিস্টেম (যদি থাকে) চয়ন করুন।
  • যোগাযোগের সাব-প্রোটোকল সংজ্ঞায়িত করুন:
    • আদান প্রদানের জন্য পরামিতি এবং আদেশগুলি নির্ধারণ করুন ine
    • এগুলিকে "রেজিস্টারে" সংগঠিত করুন এবং একটি বিনামূল্যে ঠিকানা চয়ন করুন।

আই 2 সি মাস্টার ডিজাইন

মূল নকশার মানদণ্ড:

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

ডিবাগিং: ভাগ করুন এবং জয় করুন

অ্যাড-হক ডিভাইস নিয়ে বাসের সরাসরি নিয়ন্ত্রণ নিন। উদাহরণ:

  • বাস পাইরেট (অন্যান্য বাসের জন্যও দরকারী)
  • ইউএসবি থেকে আই 2 সি মাস্টার অ্যাডাপ্টার, এফটিডিআই এফটি 232 আর চিপের উপর ভিত্তি করে।
  • কাস্টম ডিভাইস (একটি পৃথক প্রকল্প হতে পারে)।
  • লজিক বিশ্লেষক বা স্কোপ / অ্যাডভান্সড মিটার সহ বাসটি স্নুপ করুন। উদাহরণ:

    • সুসংগত লজিক বিশ্লেষক সহ সিগ্রোক / পালসভিউ
    • 2-চ্যানেল একক স্কোপ / মিটার
    • সার্কিট ডিবাগার / ইন সার্কিট এমুলেটর ইন স্লেভ-নির্দিষ্ট ব্যবহার করুন।

      উদাহরণ: এভিআর চিপসের জন্য এভিআর ড্রাগন (আরডুইনো ইউএনও, ন্যানো, মিনি, মিনিপ্রো)


বাস পাইরেট

বাস পাইরেট

  • মূলত উন্নয়নের উদ্দেশ্যে।
  • উভয়ই বাসকে স্নিগ্ধ করে চালাতে পারে।
  • ম্যাক্রো সহ বেশ কয়েকটি প্রোগ্রামিং ভাষার জন্য প্রোগ্রামিং অ্যাক্সেস সহ সিরিয়াল (ttyACM) পোর্ট ওভার কনসোল ইন্টারফেস।
  • অন্তর্নির্মিত পুলআপ প্রতিরোধক এবং ভোল্টেজ উত্স (5V / 3.3V)
  • অন্যান্য অনেক প্রোটোকল সমর্থন করে।
  • তথ্যসূত্র: উইকিপিডিয়া , মূল পৃষ্ঠা

ইউএসবি থেকে আই 2 সি অ্যাডাপ্টার

usbtoi2c

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

সিগ্রোক এবং পালসভিউ

সিগ্রোক (বেকেন্ড উপাদান) লোগো

sigrok

পালসভিউ (ভিজ্যুয়ালাইজার) উদাহরণ

pulseview

নিম্ন প্রান্তের যুক্তি বিশ্লেষকের উদাহরণ

saleae

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

উদাহরণ: একটি 4WD ড্রোন স্টিয়ারিং

প্রোটোটাইপ 2 আরডুইনো মিনি প্রো ব্যবহার করে নির্মিত। গুঁজনধ্বনি


দাস উদাহরণে কী করে?

আই 2 সি দাস:

  • প্রতিটি চক্রের জন্য প্রয়োগ টর্কের পরিমাণ নিয়ন্ত্রণ করে।
  • প্রতিটি চাকা স্পিন করে এমন দিকটি নিয়ন্ত্রণ করে।
  • একটি অপটিকাল এনকোডার (ওডোমিটার) এর মাধ্যমে প্রতিটি চক্রের আবর্তনের গতি পরিমাপ করে।
  • উপরের প্যারামিটারগুলি I2C মাস্টারকে প্রকাশ করে।

স্লেভ ভূমিকা

আই 2 সি স্লেভের উচ্চ স্তরের ব্লক ডায়াগ্রাম।


স্লেভ নির্বাচন করা: আরডুইনো মিনি প্রো

MiniPro

  • প্রতিটি চাকা সরবরাহ করার জন্য পর্যাপ্ত পিন / ফাংশন:
    • শুল্ক-চক্রের স্বতন্ত্র কনফিগারেশন সহ 1 পিডব্লিউএম আউটপুট।
    • আইআরকিউ হিসাবে ওডোমিটার ইনপুট নিবন্ধনের জন্য 1 জিপিআইও।
    • নির্বাচনের জন্য 2 জিপিআইও:
      • অগ্রবর্তী
      • বিপরীত
      • অলস
      • লক
  • বিঘ্নিত-চালিত আই 2 সি এক্সচেঞ্জের জন্য আই 2 সি এইচডাব্লু ব্লক।
  • এসপিআই-ভিত্তিক প্রোগ্রামিংয়ের জন্য উত্সর্গীকৃত পিন।
  • ক্ষুদ্র পদক্ষেপ.
  • কম খরচে.
  • ছবিতে প্রতিনিধিত্ব করা ক্লোনটির বোর্ড বিন্যাসটি ডিআইএল সকেটে মাউন্ট করার জন্য অনুকূলিত হয়েছে।

স্লেভ-নির্দিষ্ট আইসিডি: এভিআর ড্রাগন

এভিআর ড্রাগন


ওএস নির্বাচন করা হচ্ছে: চিবিওএস

ChibiOS

  • আরটিওএস: প্রিমিপশন, টাস্কস, সেমফোরস, ডায়নামিক সিস্টেম টিক ইত্যাদি etc.
  • ছোট পদচিহ্ন: লিঙ্কটি কেবল ব্যবহৃত কোড / ডেটা ব্যবহার করে।
  • এইচএএল এর মাধ্যমে আরটিএস এবং বিএসপির মধ্যে পার্থক্য।
  • অ-বাণিজ্যিক ব্যবহারের জন্য জিপিএলভি 3।
  • সক্রিয়ভাবে বিকাশিত, তবে ইতিমধ্যে পরিপক্ক।
  • 8 বিবিটি এভিআর সমর্থন করে।

তবে এটিতে এভিআর-এর সীমাবদ্ধ বাসপ সমর্থন ছিল, এর অভাব: - এভিআর জিপিআইওগুলির জন্য ড্রাইভারকে বাধা দেয় (যুক্ত)। - এভিআর স্লেভ মোডের (কাস্টম) জন্য আই 2 সি সমর্থন। যা এভিআরের জন্য ড্রোন এসডাব্লু এর অংশ হিসাবে আলাদাভাবে বিকাশ করতে হয়েছিল ।


যোগাযোগের পরামিতিগুলি সংজ্ঞায়িত করা হচ্ছে

প্রতিটি চাকা জন্য:

  • এটি চালানোর জন্য ব্যবহৃত পিডব্লিউএম সিগন্যালের ডিউটি ​​সাইকেল - 1 বাইট। 0xFF = সর্বোচ্চ টর্ক / 0x00 = কোনও টর্ক নেই।

  • আবর্তনের দিকনির্দেশ - 1 বাইট।

    • 0x00 = অলস
    • 0x01 = বিপরীত
    • 0x02 = এগিয়ে
    • 0x03 = লক হয়েছে
  • অপটিকাল এনকোডারের স্লটগুলির মধ্যে গড় সময়কাল - 2 বাইট।

    • যে কোনও কিছু লেখা মাপকে পুনরায় সেট করে।
  • প্যারামিটার সূচক - 1 স্তন্যপান:

    • 0 = দায়িত্ব চক্র
    • 1 = দিকনির্দেশ
    • 2 = গড় সময়কাল
  • চাকা সূচকগুলি - 1 স্তন্যপান:

    • 0 = বাম পিছনে
    • 1 = ডান পিছন
    • 2 = ডান সম্মুখ
    • 3 = বামফ্রন্ট
    • 4 = সব

সাব প্রোটোকল: নিবন্ধগুলি সংজ্ঞায়িত করা হচ্ছে

রেজিস্টার ফর্ম্যাট: 0xαβ - α = পরামিতি সূচক - β = চাকা সূচক

ঠিকানা (নির্বিচারে নির্বাচিত): 0x10

বাস জলদস্যু বিন্যাস: - [= শুরু বিট -] = শেষ বিট - আর = পড়ুন বাইট - ঠিকানা বার 2 (বাম শিফট 1), আর / ডাবল বিটের জন্য


উদাহরণ - বাস পাইরেট ফর্ম্যাটে

[i2c_addr reg_addr = (পারম, চাকা) reg_value]

[0x20 0x20 0x02]  Left Rear Forward
[0x20 0x21 0x01]  Right Rear Backward
[0x20 0x22 0x01]  Right Front Backward
[0x20 0x23 0x02]  Left Front Forward
[0x20 0x14 0xFF]  Wheels set to max torque

গাড়িটি ঘড়ির কাঁটার দিকে ঘুরছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.