সুচিপত্র:

রোবট অনুসরণ করে উন্নত লাইন: 22 টি ধাপ (ছবি সহ)
রোবট অনুসরণ করে উন্নত লাইন: 22 টি ধাপ (ছবি সহ)

ভিডিও: রোবট অনুসরণ করে উন্নত লাইন: 22 টি ধাপ (ছবি সহ)

ভিডিও: রোবট অনুসরণ করে উন্নত লাইন: 22 টি ধাপ (ছবি সহ)
ভিডিও: আমার সোনার বাংলা- দেশাত্মবোধক-জাতীয় সংগীত- ২১ শে ফেব্রুয়ারী || #shorts #জাতীয়_সংগীত 2024, জুলাই
Anonim
Image
Image
প্রোটোটাইপিং - পারফোর্ড
প্রোটোটাইপিং - পারফোর্ড

এটি Teensy 3.6 এবং QTRX লাইন সেন্সরের উপর ভিত্তি করে রোবট অনুসরণ করে একটি উন্নত লাইন যা আমি তৈরি করেছি এবং বেশ কিছুদিন ধরে কাজ করছি। আমার আগের লাইন থেকে রোবোটের নকশা এবং পারফরম্যান্সে কিছু বড় উন্নতি আছে। রোবটের গতি এবং প্রতিক্রিয়া উন্নত হয়েছে। সামগ্রিক গঠন কম্প্যাক্ট এবং লাইটওয়েট। উপাদানগুলি চাকা অক্ষের কাছাকাছি সাজানো হয়েছে যাতে কৌণিক ভরবেগ কমিয়ে আনা যায়। উচ্চ ক্ষমতার মাইক্রো মেটাল গিয়ার মোটর পর্যাপ্ত টর্ক সরবরাহ করে এবং অ্যালুমিনিয়াম হাব সিলিকন চাকা উচ্চ গতিতে অত্যন্ত প্রয়োজনীয় ট্র্যাকশন প্রদান করে। প্রপ শিল্ড এবং হুইল এনকোডার রোবটটিকে তার অবস্থান এবং ওরিয়েন্টেশন নির্ধারণ করতে সক্ষম করে। Teensyview বোর্ডে মাউন্ট করা, সমস্ত প্রাসঙ্গিক তথ্য চাক্ষুষ করা যায় এবং গুরুত্বপূর্ণ প্রোগ্রাম পরামিতি pushbuttons ব্যবহার করে আপডেট করা যায়।

এই রোবট নির্মাণ শুরু করার জন্য, আপনাকে নিম্নলিখিত সরবরাহের প্রয়োজন হবে (এবং আপনার হাতে অনেক সময় এবং ধৈর্য)।

সরবরাহ

ইলেকট্রনিক্স

  • Teensy 3.6 উন্নয়ন বোর্ড
  • মোশন সেন্সর সহ প্রপ শিল্ড
  • স্পার্কফুন TeensyView
  • Pololu QTRX-MD-16A প্রতিফলন সেন্সর অ্যারে
  • 15x20cm ডাবল-সাইড প্রোটোটাইপ PCB
  • Pololu স্টেপ-আপ/স্টেপ-ডাউন ভোল্টেজ রেগুলেটর S9V11F3S5
  • Pololu নিয়মিত 4-5-20V স্টেপ-আপ ভোল্টেজ রেগুলেটর U3V70A
  • এনকোডার (x2) সহ MP12 6V 1580 rpm মাইক্রো গিয়ার মোটর
  • DRV8833 ডুয়াল মোটর ড্রাইভার ক্যারিয়ার (x2)
  • 3.7V, 750mAh লি-পো ব্যাটারি
  • চালু / বন্ধ সুইচ
  • ইলেক্ট্রোলাইটিক ক্যাপাসিটর 470uF
  • ইলেক্ট্রোলাইটিক ক্যাপাসিটর 1000uF (x2)
  • সিরামিক ক্যাপাসিটর 0.1uF (x5)
  • পুশবাটন (x3)
  • 10 মিমি সবুজ LED (x2)

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

  • পরমাণু সিলিকন চাকা 37x34 মিমি (x2)
  • 3/8”মেটাল বল সহ পোলোলু বল কাস্টার
  • N20 মোটর মাউন্ট (x2)
  • বোল্ট এবং বাদাম

কেবল এবং সংযোগকারী

  • 24AWG নমনীয় তারের
  • 24 পিন FFC থেকে DIP ব্রেকআউট এবং FFC কেবল (টাইপ A, 150mm দৈর্ঘ্য)
  • গোল মহিলা পিন হেডার
  • গোল মহিলা পিন হেডার লং টার্মিনাল
  • ডান-কোণযুক্ত দ্বৈত সারির মহিলা হেডার
  • ডান-কোণযুক্ত দ্বৈত সারির পুরুষ হেডার
  • পুরুষ পিন হেডার
  • পুরুষ সুই পিন হেডার

সরঞ্জাম

  • মাল্টিমিটার
  • তাতাল
  • ঝাল তার
  • তারের স্ট্রিপার
  • তার কর্তনকারী

ধাপ 1: সিস্টেম ওভারভিউ

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

রোবটের প্রধান সিস্টেমগুলো নিচে তুলে ধরা হলো।

মাইক্রোকন্ট্রোলার: 32-বিট 180 মেগাহার্টজ এআরএম কর্টেক্স-এম 4 প্রসেসর সমন্বিত টিনসি 3.6 ডেভেলপমেন্ট বোর্ড।

লাইন সেন্সর: পোলোলুর QTRX-MD-16A 16-চ্যানেল এনালগ আউটপুট লাইন সেন্সর অ্যারে মাঝারি ঘনত্ব বিন্যাসে (8 মিমি সেন্সর পিচ)।

ড্রাইভ: 6V, 1580rpm, উচ্চ ক্ষমতার মাইক্রো মেটাল গিয়ার মোটর যার সাথে চৌম্বকীয় চাকা এনকোডার এবং অ্যালুমিনিয়াম হাব লাগানো সিলিকন চাকা।

ওডোমেট্রি: স্থানাঙ্ক এবং দূরত্ব আবৃত করার জন্য চৌম্বকীয় চাকা এনকোডার জোড়া।

ওরিয়েন্টেশন সেন্সর: রোবটের অবস্থান এবং শিরোনাম অনুমানের জন্য মোশন সেন্সর সহ প্রপ shাল।

পাওয়ার সাপ্লাই: 3.7V, 750mAh লিপো ব্যাটারি পাওয়ার উৎস হিসেবে। 3.3V স্টেপ-আপ/ডাউন রেগুলেটর মাইক্রোকন্ট্রোলার, সেন্সর এবং ডিসপ্লে ডিভাইসকে ক্ষমতা দেয়। নিয়মিত স্টেপ-আপ নিয়ন্ত্রক দুটি মোটরকে ক্ষমতা দেয়।

ইউজার ইন্টারফেস: তথ্য প্রদর্শনের জন্য Teensyview। ব্যবহারকারীর ইনপুট গ্রহণের জন্য থ্রি-পুশবটন ব্রেকআউট। চলমান অবস্থায় স্ট্যাটাস ইঙ্গিতের জন্য 10mm ব্যাসের সবুজ LEDs এর দুটি সংখ্যা।

ধাপ 2: আসুন প্রোটোটাইপিং শুরু করি

Image
Image

আমরা পারফোর্ডে উপরের সার্কিটটি বাস্তবায়ন করব। আমাদের প্রথমে আমাদের ব্রেকআউট বোর্ডগুলিকে সোল্ডারিং হেডার দিয়ে প্রস্তুত রাখতে হবে। কোন ব্রেকআউট বোর্ডে কোন শিরোনাম বিক্রি করা উচিত সে সম্পর্কে ভিডিওটি ধারণা দেবে।

ব্রেকআউট বোর্ডে শিরোলেখের পরে, Teensyview এর উপরে Teensyview এবং pushbutton ব্রেকআউট স্ট্যাক করুন।

ধাপ 3: প্রোটোটাইপিং - পারফোর্ড

প্রোটোটাইপিং - পারফোর্ড
প্রোটোটাইপিং - পারফোর্ড

15x20cm ডাবল সাইড প্রোটোটাইপ পারফোর্ড পান এবং ছবিতে দেখানো স্থায়ী মার্কার দিয়ে সীমানা চিহ্নিত করুন। একটি সাদা বৃত্ত দিয়ে চিহ্নিত স্থানে সেন্সর অ্যারে, কাস্টার হুইল এবং মাইক্রো মেটাল গিয়ার মোটর লাগানোর জন্য M2 সাইজের গর্ত ড্রিল করুন। সোল্ডারিং এবং সমস্ত উপাদান পরীক্ষার পরে আমরা সীমানা বরাবর পারফোর্ডটি কেটে ফেলব।

আমরা পারফোর্ডে হেডার পিন এবং সকেট সোল্ডার করে আমাদের প্রোটোটাইপিং শুরু করব। ব্রেকআউট বোর্ডগুলি পরে এই শিরোনামগুলিতে োকানো হবে। পারফবোর্ডে হেডারের অবস্থানের দিকে মনোযোগ দিন। আমরা হেডারের এই লেআউটের উপর ভিত্তি করে সমস্ত তারের সংযোগ করব।

ধাপ 4: প্রোটোটাইপিং - প্রপ শিল্ড

প্রোটোটাইপিং - প্রপ শিল্ড
প্রোটোটাইপিং - প্রপ শিল্ড
প্রোটোটাইপিং - প্রপ শিল্ড
প্রোটোটাইপিং - প্রপ শিল্ড
প্রোটোটাইপিং - প্রপ শিল্ড
প্রোটোটাইপিং - প্রপ শিল্ড
প্রোটোটাইপিং - প্রপ শিল্ড
প্রোটোটাইপিং - প্রপ শিল্ড

আমরা প্রথমে প্রপ shালের সাথে সংযোগগুলি বিক্রি করব। যেহেতু আমরা শুধুমাত্র প্রপ শিল্ডের মোশন সেন্সর ব্যবহার করছি, তাই আমাদের প্রোপ শিল্ডের 3V এবং গ্রাউন্ড পিন ছাড়া শুধুমাত্র এসসিএল, এসডিএ এবং আইআরকিউ পিন সংযুক্ত করতে হবে।

একবার সংযোগ সম্পূর্ণ হলে, Teensy এবং প্রপ shাল সন্নিবেশ করান এবং এখানে উল্লিখিত ধাপগুলি অনুসরণ করে মোশন সেন্সরগুলি ক্যালিব্রেট করুন।

ধাপ 5: প্রোটোটাইপিং - পাওয়ার এবং গ্রাউন্ড

প্রোটোটাইপিং - পাওয়ার এবং গ্রাউন্ড
প্রোটোটাইপিং - পাওয়ার এবং গ্রাউন্ড

ছবিটি উল্লেখ করে সমস্ত শক্তি এবং স্থল সংযোগগুলি বিক্রি করুন। সমস্ত ব্রেকআউট বোর্ড placeোকান এবং মাল্টিমিটার ব্যবহার করে ধারাবাহিকতা নিশ্চিত করুন। বোর্ডে বিভিন্ন ভোল্টেজ স্তর যাচাই করুন।

  • লি-পো আউটপুট ভোল্টেজ (সাধারণত 3V এবং 4.2V এর মধ্যে)
  • স্টেপ-আপ/ডাউন রেগুলেটর আউটপুট ভোল্টেজ (3.3V)
  • নিয়মিত স্টেপ-আপ রেগুলেটর আউটপুট ভোল্টেজ (6V এ সেট)

ধাপ 6: প্রোটোটাইপিং - মোটর ড্রাইভার ক্যারিয়ার

প্রোটোটাইপিং - মোটর ড্রাইভার ক্যারিয়ার
প্রোটোটাইপিং - মোটর ড্রাইভার ক্যারিয়ার
প্রোটোটাইপিং - মোটর ড্রাইভার ক্যারিয়ার
প্রোটোটাইপিং - মোটর ড্রাইভার ক্যারিয়ার
প্রোটোটাইপিং - মোটর ড্রাইভার ক্যারিয়ার
প্রোটোটাইপিং - মোটর ড্রাইভার ক্যারিয়ার

DRV8833 ডুয়াল মোটর ড্রাইভার ক্যারিয়ার বোর্ড প্রতি চ্যানেলে 1.2A একটানা এবং 2A পিক কারেন্ট দিতে পারে। আমরা একটি মোটর চালানোর জন্য দুটি চ্যানেল সমান্তরালভাবে সংযুক্ত করব। নিচের ধাপগুলি অনুসরণ করে সংযোগগুলি বিক্রি করুন।

  • ছবিতে দেখানো হিসাবে মোটর ড্রাইভার ক্যারিয়ারের দুটি ইনপুট এবং দুটি আউটপুট সমান্তরাল।
  • মোটর ড্রাইভারের সাথে ইনপুট কন্ট্রোল তারের সংযোগ করুন।
  • দুটি ক্যারিয়ার বোর্ডের Vin এবং Gnd টার্মিনাল জুড়ে 1000uF ইলেক্ট্রোলাইটিক ক্যাপাসিটর এবং 0.1uF সিরামিক ক্যাপাসিটর সংযুক্ত করুন।
  • মোটর ড্রাইভার আউটপুট টার্মিনাল জুড়ে একটি 0.1uF সিরামিক ক্যাপাসিটর সংযুক্ত করুন।

ধাপ 7: প্রোটোটাইপিং - লাইন সেন্সর অ্যারে হেডার

প্রোটোটাইপিং - লাইন সেন্সর অ্যারে হেডার
প্রোটোটাইপিং - লাইন সেন্সর অ্যারে হেডার
প্রোটোটাইপিং - লাইন সেন্সর অ্যারে হেডার
প্রোটোটাইপিং - লাইন সেন্সর অ্যারে হেডার
প্রোটোটাইপিং - লাইন সেন্সর অ্যারে হেডার
প্রোটোটাইপিং - লাইন সেন্সর অ্যারে হেডার
প্রোটোটাইপিং - লাইন সেন্সর অ্যারে হেডার
প্রোটোটাইপিং - লাইন সেন্সর অ্যারে হেডার

Teensy 3.6 এর দুটি ADC- ADC0 এবং ADC1 রয়েছে যা 25 টি অ্যাক্সেসযোগ্য পিনগুলিতে মাল্টিপ্লেক্সেড। আমরা একই সাথে দুটি এডিসি থেকে যেকোনো দুটি পিন অ্যাক্সেস করতে পারি। আমরা আটটি লাইন সেন্সরকে ADC0 এবং ADC1 এর সাথে সংযুক্ত করব। জোড় সংখ্যা সেন্সরগুলি ADC1 এবং বিজোড় সংখ্যার সেন্সরগুলি ADC0 এর সাথে সংযুক্ত হবে। নিচের ধাপগুলি অনুসরণ করে সংযোগগুলি বিক্রি করুন। আমরা পরে FFC ব্যবহার করে লাইন সেন্সরকে DIP অ্যাডাপ্টার এবং তারের সাথে সংযুক্ত করব।

  • ছবিতে দেখানো সমস্ত সেন্সর পিন (16, 14, 12, 10, 8, 6, 4, 2) সংযুক্ত করুন। পারফোর্ডের বিপরীত দিক দিয়ে সেন্সর পিন 12 সংযোগের জন্য তারের পথ।
  • টিমসি পিন 30 এর সাথে এমিটার কন্ট্রোল পিন (EVEN) সংযুক্ত করুন।
  • ছবিতে দেখানো সমস্ত বিজোড় সেন্সর পিন (15, 13, 11, 9, 7, 5, 3, 1) সংযুক্ত করুন।
  • Vcc এবং Gnd জুড়ে একটি 470uF ইলেক্ট্রোলাইটিক ক্যাপাসিটর সংযুক্ত করুন।

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

ধাপ 8: প্রোটোটাইপিং - মাইক্রো গিয়ার মোটর এবং এনকোডার

প্রোটোটাইপিং - মাইক্রো গিয়ার মোটর এবং এনকোডার
প্রোটোটাইপিং - মাইক্রো গিয়ার মোটর এবং এনকোডার
  • এন 20 মোটর মাউন্ট ব্যবহার করে এনকোডার সহ মাইক্রো মেটাল গিয়ার মোটর ঠিক করুন।
  • ছবিতে দেখানো হিসাবে মোটর এবং এনকোডার তারগুলি সংযুক্ত করুন।
  • বাম এনকোডার - Teensy পিন 4 এবং 0
  • ডান এনকোডার - Teensy পিন 9 এবং 27

ধাপ 9: প্রোটোটাইপিং - LEDs

প্রোটোটাইপিং - এলইডি
প্রোটোটাইপিং - এলইডি
প্রোটোটাইপিং - এলইডি
প্রোটোটাইপিং - এলইডি

দুটি এলইডি ইঙ্গিত দেয় যে রোবটটি মোড় সনাক্ত করেছে কি না। LEDs কে Teensy এর সাথে সংযুক্ত করতে আমি একটি 470-ohm সিরিজের রোধক ব্যবহার করেছি।

  • বাম LED অ্যানোড থেকে Teensy পিন 6
  • Teensy পিন 8 ডান LED anode

ধাপ 10: প্রোটোটাইপিং - ব্রেকআউট

Image
Image
প্রোটোটাইপিং - ব্রেকআউট
প্রোটোটাইপিং - ব্রেকআউট

এখন যেহেতু আমরা পারফবোর্ডে আমাদের সমস্ত সোল্ডারিং সম্পন্ন করেছি, আমরা পারফবোর্ডে চিহ্নিত সীমানা বরাবর সাবধানে কাটা এবং পারফবোর্ডের অতিরিক্ত বিটগুলি সরিয়ে ফেলতে পারি। এছাড়াও, দুটি চাকা এবং কাস্টার চাকা সংযুক্ত করুন।

সকল ব্রেকআউট বোর্ড নিজ নিজ সকেটে োকান। FFC-DIP ব্রেকআউট andোকাতে এবং QTRX-MD-16A লাইন সেন্সর ঠিক করার জন্য, ভিডিওটি দেখুন।

ধাপ 11: সফ্টওয়্যার লাইব্রেরি ওভারভিউ

সফটওয়্যার লাইব্রেরি ওভারভিউ
সফটওয়্যার লাইব্রেরি ওভারভিউ

আমরা Arduino IDE তে Teensy প্রোগ্রাম করব। শুরু করার আগে আমাদের কিছু লাইব্রেরির প্রয়োজন হবে। যে লাইব্রেরিগুলো আমরা ব্যবহার করব সেগুলো হল:

  • এনকোডার
  • Teensyview
  • EEPROM
  • এডিসি
  • NXPMotionSense

এবং কিছু যা এই রোবটের জন্য বিশেষভাবে লেখা হয়েছে,

  • বোতাম চাপা
  • লাইনসেন্সর
  • TeensyviewMenu
  • মোটর

এই রোবটের জন্য নির্দিষ্ট লাইব্রেরিগুলি বিস্তারিতভাবে আলোচনা করা হয়েছে এবং পরবর্তী ধাপে ডাউনলোডের জন্য উপলব্ধ।

ধাপ 12: লাইব্রেরি ব্যাখ্যা - PushButton

এই লাইব্রেরিটি টিনসির সাথে পুশবাটন ব্রেকআউট বোর্ডকে ইন্টারফেস করার জন্য। ফাংশন ব্যবহার করা হয়

PushButton (int leftButtonPin, int centreButtonPin, int rightButtonPin);

একটি অবজেক্ট তৈরি করে এই কনস্ট্রাক্টরকে কল করা pushbutton পিনগুলিকে INPUT_PULLUP মোডে কনফিগার করে।

int8_t waitForButtonPress (অকার্যকর);

এই ফাংশনটি অপেক্ষা করে যতক্ষণ না একটি বোতাম টিপে এবং মুক্তি পায় এবং কী কোডটি ফেরত দেয়।

int8_t getSingleButtonPress (অকার্যকর);

এই ফাংশনটি পরীক্ষা করে যে একটি বোতাম টিপে এবং ছেড়ে দেওয়া হয়েছে কিনা। যদি হ্যাঁ হয়, কী কোডটি ফেরত দেয় অন্যটি শূন্য প্রদান করে।

ধাপ 13: লাইব্রেরি ব্যাখ্যা - লাইন সেন্সর

লাইনসেন্সর হল টিনসির সাথে লাইন সেন্সর অ্যারে ইন্টারফেস করার জন্য লাইব্রেরি। নিম্নলিখিত ফাংশন ব্যবহার করা হয়।

লাইনসেন্সর (অকার্যকর);

একটি অবজেক্ট তৈরি করে এই কনস্ট্রাক্টরকে কল করা ADC0 এবং ADC1 আরম্ভ করে, EEPROM থেকে থ্রেশহোল্ড, সর্বনিম্ন এবং সর্বাধিক মান পড়ে এবং সেন্সর পিনগুলিকে ইনপুট মোডে এবং এমিটার কন্ট্রোল পিনকে আউটপুট মোডে কনফিগার করে।

অকার্যকর ক্রমাঙ্কন (uint8_t calibrationMode);

এই ফাংশনটি লাইন সেন্সরকে ক্যালিব্রেট করে। CalibrationMode MIN_MAX অথবা MEDIAN_FILTER হতে পারে। এই ফাংশনটি পরবর্তী ধাপে বিস্তারিতভাবে ব্যাখ্যা করা হয়েছে।

অকার্যকর getSensorsAnalog (uint16_t *sensorValue, uint8_t mode);

আর্গুমেন্ট হিসাবে পাস করা তিনটি মোডের যেকোনো একটিতে সেন্সর অ্যারে পড়ে। মোড emitters এর অবস্থা এবং চালু, বন্ধ বা টগল হতে পারে। টগল মোড পরিবেষ্টিত আলোর কারণে প্রতিফলনের সেন্সর রিডিংগুলিকে ক্ষতিপূরণ দেয়। ADC0 এবং ADC1 এর সাথে সংযুক্ত সেন্সরগুলি সমকালীনভাবে পড়া হয়।

int getLinePosition (uint16_t *sensorValue);

ওজনযুক্ত গড় পদ্ধতি দ্বারা লাইনের উপরে সেন্সর অ্যারের অবস্থান গণনা করে।

uint16_t getSensorsBinary (uint16_t *sensorValue);

সেন্সরের অবস্থা 16-বিট উপস্থাপনা প্রদান করে। একটি বাইনারি ইঙ্গিত দেয় যে সেন্সরটি লাইনের উপরে এবং একটি বাইনারি শূন্য ইঙ্গিত দেয় যে সেন্সরটি লাইনের বাইরে।

uint8_t countBinary (uint16_t binaryValue);

এই ফাংশনে সেন্সর মানগুলির 16-বিট উপস্থাপনা পাস করা লাইনের উপরে থাকা সেন্সরের সংখ্যা প্রদান করে।

অকার্যকর getSensorsNormalized (uint16_t *sensorValue, uint8_t mode);

সেন্সরের মানগুলি পড়ে এবং প্রতিটি সেন্সরের মানকে তার ন্যূনতম এবং সর্বোচ্চ মানগুলিতে সীমাবদ্ধ করে। সেন্সরের মানগুলি তখন তাদের সংশ্লিষ্ট ন্যূনতম থেকে সর্বোচ্চ পরিসরে 0 থেকে 1000 পরিসরে ম্যাপ করা হয়।

ধাপ 14: লাইব্রেরি ব্যাখ্যা - TeensyviewMenu

TeensyviewMenu হল লাইব্রেরি যেখানে ডিসপ্লে মেনুর ফাংশন অ্যাক্সেস করা যায়। নিম্নলিখিত ফাংশন ব্যবহার করা হয়।

TeensyViewMenu (অকার্যকর);

এই কনস্ট্রাক্টরকে ডেকে ক্লাস লাইনসেন্সর, PushButton এবং TeensyView একটি বস্তু তৈরি করে।

অকার্যকর ভূমিকা (অকার্যকর);

এটি মেনু নেভিগেট করার জন্য।

অকার্যকর পরীক্ষা (অকার্যকর);

এটিকে অভ্যন্তরীণভাবে মেনুতে বলা হয় যখন লাইন সেন্সরের মান পরীক্ষার জন্য Teensyview- এ প্রদর্শিত হবে।

ধাপ 15: লাইব্রেরি ব্যাখ্যা - মোটর

মোটর হলো দুটি মোটর চালানোর জন্য ব্যবহৃত লাইব্রেরি। নিম্নলিখিত ফাংশন ব্যবহার করা হয়।

মোটর (অকার্যকর);

একটি অবজেক্ট তৈরি করে এই কনস্ট্রাক্টরকে কল করা মোটর দিক নিয়ন্ত্রণ এবং PWM কন্ট্রোল পিনগুলিকে আউটপুট মোডে কনফিগার করে।

অকার্যকর সেটস্পিড (int leftMotorSpeed, int rightMotorSpeed);

এই ফাংশনটি কল করা দুটি মোটরকে যুক্তি হিসাবে পাস করা গতিতে চালিত করে। গতির মান -255 থেকে +255 পর্যন্ত হতে পারে একটি নেতিবাচক চিহ্ন দিয়ে যা নির্দেশ করে যে ঘূর্ণনের দিক উল্টো।

ধাপ 16: পরীক্ষা - এনকোডার ওডোমেট্রি

আমরা চৌম্বকীয় চাকা এনকোডারগুলি পরীক্ষা করব এবং রোবট দ্বারা আবৃত অবস্থান এবং দূরত্ব প্রদর্শন করব।

DualEncoderTeensyview.ino আপলোড করুন। প্রোগ্রাম Teensyview এ এনকোডার টিক প্রদর্শন করে। আপনি যদি রোবটটিকে সামনের দিকে নিয়ে যান তাহলে এনকোডার টিক ইনক্রিমেন্ট এবং যদি আপনি এটিকে পিছনে নিয়ে যান তবে হ্রাস।

এখন EncoderOdometry.ino আপলোড করুন। এই প্রোগ্রামটি x-y স্থানাঙ্কের দিক থেকে রোবটের অবস্থান প্রদর্শন করে, সেন্টিমিটারে আচ্ছাদিত মোট দূরত্ব এবং কোণটি ডিগ্রিতে পরিণত করে।

এনকোডার টিক থেকে অবস্থান নির্ধারণের জন্য আমি সিয়াটেল রোবোটিক্স সোসাইটির R/C Servo ডিফারেনশিয়াল ড্রাইভ সহ একটি রোবটে ওডোমেট্রি দ্বারা ইমপ্লিমেন্টিং ডেড রিকোনিং উল্লেখ করেছি।

ধাপ 17: পরীক্ষা - প্রপ শিল্ড মোশন সেন্সর

এখানে উল্লিখিত ধাপগুলি অনুসরণ করে নিশ্চিত করুন যে আপনি মোশন সেন্সরগুলি ক্যালিব্রেট করেছেন।

এখন PropShieldTeensyView.ino আপলোড করুন। আপনি Teensyview এ তিনটি অক্ষের অ্যাকসিলরোমিটার, গাইরো এবং ম্যাগনেটোমিটার মান দেখতে সক্ষম হবেন।

ধাপ 18: প্রোগ্রাম ওভারভিউ

অ্যাডভান্সড লাইন ফলোয়ারের জন্য প্রোগ্রামটি Arduino IDE তে লেখা আছে। প্রোগ্রামটি নীচে বর্ণিত নিম্নলিখিত ক্রমে কাজ করে।

  • EEPROM- এ সংরক্ষিত মানগুলি পড়ে এবং মেনু প্রদর্শিত হয়।
  • LAUNCH টিপে প্রোগ্রাম লুপে প্রবেশ করে।
  • সাধারণ লাইন সেন্সর মানগুলি পড়া হয়।
  • লাইন পজিশনের বাইনারি ভ্যালু নরমালাইজড সেন্সর ভ্যালু ব্যবহার করে পাওয়া যায়।
  • লাইনের ওপরে থাকা সেন্সরের সংখ্যা গণনা করা হয় লাইনের অবস্থানের বাইনারি মান থেকে।
  • এনকোডার টিক আপডেট করা হয় এবং মোট দূরত্ব কভার করা হয়, x-y স্থানাঙ্ক এবং কোণ আপডেট করা হয়।
  • 0 থেকে 16 পর্যন্ত বাইনারি গণনার বিভিন্ন মানগুলির জন্য, নির্দেশাবলীর একটি সেট কার্যকর করা হয়। যদি বাইনারি কাউন্ট 1 থেকে 5 রেঞ্জে থাকে এবং যদি লাইনের ওপরে থাকা সেন্সরগুলি একে অপরের পাশে থাকে তবে পিআইডি রুটিন বলা হয়। ঘূর্ণন বাইনারি মান এবং বাইনারি গণনার অন্যান্য সংমিশ্রণে সঞ্চালিত হয়।
  • পিআইডি রুটিনে (যা আসলে একটি পিডি রুটিন), মোটরগুলি ত্রুটি, ত্রুটির পরিবর্তন, কেপি এবং কেডি মানগুলির উপর ভিত্তি করে গণনা করা গতিতে চালিত হয়।

বর্তমানে প্রোগ্রামটি প্রপ শিল্ড থেকে ওরিয়েন্টেশন মান পরিমাপ করে না। এটি একটি কাজ চলছে এবং আপডেট করা হচ্ছে।

TestRun20.ino আপলোড করুন। আমরা দেখব কিভাবে মেনু নেভিগেট করতে হয়, সেটিংস সামঞ্জস্য করতে হয় এবং পরবর্তী ধাপে লাইন সেন্সরগুলিকে কীভাবে ক্যালিব্রেট করতে হয় যার পরে আমরা আমাদের রোবট পরীক্ষা করব।

ধাপ 19: মেনু এবং সেটিংস নেভিগেট করা

মেনুতে নিম্নলিখিত সেটিংস রয়েছে যা বাম এবং ডান পুশবাটন ব্যবহার করে নেভিগেট করা যায় এবং কেন্দ্র পুশবটন ব্যবহার করে নির্বাচন করা যায়। সেটিংস এবং তাদের ফাংশন নীচে বর্ণিত হয়েছে।

  1. ক্যালিব্রেট: লাইন সেন্সরকে ক্যালিব্রেট করতে।
  2. পরীক্ষা: লাইন সেন্সর মান প্রদর্শন করতে।
  3. লঞ্চ: নিম্নলিখিত লাইন শুরু করতে।
  4. সর্বোচ্চ গতি: রোবটের গতির limitর্ধ্ব সীমা নির্ধারণ করা।
  5. গতি ঘোরান: রোবটের গতির limitর্ধ্ব সীমা নির্ধারণ করা যখন এটি একটি পালা করে অর্থাৎ যখন উভয় চাকা বিপরীত দিকে সমান গতিতে ঘুরবে।
  6. কেপি: আনুপাতিক ধ্রুবক।
  7. KD: ডেরিভেটিভ ধ্রুবক।
  8. রান মোড: দুটি অপারেটিং মোডের মধ্যে নির্বাচন করতে - সাধারণ এবং ACCL। নরমাল মোডে, রোবটটি লাইন পজিশনের মান অনুসারে পূর্বনির্ধারিত গতিতে চলে। ACCL মোডে, রোবটের MAX SPEED ট্র্যাকের পূর্বনির্ধারিত পর্যায়ে ACCL SPEED দ্বারা প্রতিস্থাপিত হয়। এটি ট্র্যাকের সোজা অংশে রোবটকে গতি বাড়ানোর জন্য ব্যবহার করা যেতে পারে। RUN মোড ACCL হিসাবে সেট করা থাকলেই নিম্নলিখিত সেটিংস অ্যাক্সেসযোগ্য।
  9. ল্যাপ দূরত্ব: রেস ট্র্যাকের মোট দৈর্ঘ্য নির্ধারণ করতে।
  10. ACCL গতি: রোবটের ত্বরণ গতি নির্ধারণ করতে। এই গতি নীচের সংজ্ঞায়িত ট্র্যাকের বিভিন্ন পর্যায়ে MAX SPEED প্রতিস্থাপন করে।
  11. না। পর্যায়ের সংখ্যা: ACCL SPEED ব্যবহার করা হয় এমন পর্যায়ের সংখ্যা নির্ধারণ করতে।
  12. স্টেজ 1: মঞ্চের শুরু এবং শেষের দূরত্ব সেট করতে যেখানে ACCL SPEED দ্বারা ম্যাক্স স্পিড প্রতিস্থাপিত হয়। প্রতিটি পর্যায়ের জন্য, শুরু এবং শেষের দূরত্বগুলি আলাদাভাবে সেট করা যেতে পারে।

ধাপ 20: লাইন সেন্সর ক্রমাঙ্কন

Image
Image

লাইন সেন্সর ক্রমাঙ্কন হল সেই প্রক্রিয়া যার দ্বারা 16 টি সেন্সরের প্রত্যেকটির থ্রেশহোল্ড মান নির্ধারিত হয়। এই থ্রেশহোল্ড মানটি একটি নির্দিষ্ট সেন্সর লাইনের উপরে আছে কিনা তা নির্ধারণ করতে ব্যবহৃত হয়। 16 টি সেন্সরের থ্রেশহোল্ড মান নির্ধারণ করতে, আমরা দুটি পদ্ধতির যে কোন একটি ব্যবহার করি।

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

MIN MAX: এই পদ্ধতিতে, সেন্সর মানগুলি বারবার পড়া হয় যতক্ষণ না ব্যবহারকারী স্টপ করার অনুরোধ জানায়। প্রতিটি সেন্সরের সম্মুখীন সর্বোচ্চ এবং সর্বনিম্ন মান সংরক্ষণ করা হয়। থ্রেশহোল্ড মান হল সর্বনিম্ন এবং সর্বোচ্চ মানের গড়।

এইভাবে প্রাপ্ত থ্রেশহোল্ড মান 0 থেকে 1000 পরিসরে ম্যাপ করা হয়।

MIN MAX পদ্ধতিতে লাইন সেন্সরের ক্রমাঙ্কন ভিডিওতে দেখানো হয়েছে। লাইন সেন্সরগুলি ক্যালিব্রেট করার পরে, ছবিতে দেখানো হিসাবে ডেটা ভিজ্যুয়ালাইজ করা যায়। নিম্নলিখিত তথ্য প্রদর্শিত হয়।

  • বাইনারি 1 সহ লাইন পজিশনের একটি 16-বিট বাইনারি উপস্থাপনা নির্দেশ করে যে সংশ্লিষ্ট লাইন সেন্সরটি লাইনের উপরে এবং একটি বাইনারি 0 ইঙ্গিত করে যে লাইন সেন্সরটি লাইন বন্ধ।
  • লাইনের ওপরে থাকা সেন্সরের মোট সংখ্যার একটি গণনা।
  • 16 টি সেন্সরের ন্যূনতম, সর্বোচ্চ এবং সেন্সর মান (কাঁচা এবং স্বাভাবিকীকরণ), এক সময়ে একটি সেন্সর।
  • রেঞ্জের অবস্থান -7500 থেকে +7500 এর মধ্যে।

সর্বনিম্ন এবং সর্বাধিক লাইন সেন্সর মানগুলি EEPROM এ সংরক্ষণ করা হয়।

ধাপ 21: টেস্ট রান

Image
Image

ভিডিওটি একটি পরীক্ষামূলক রান যা রোবটটি একটি ল্যাপ সম্পন্ন করার পর থামানোর জন্য প্রোগ্রাম করা হয়েছে।

ধাপ 22: চূড়ান্ত চিন্তাভাবনা এবং উন্নতি

রোবট প্রতিযোগিতা
রোবট প্রতিযোগিতা

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

শুভকামনা রইল।

রোবট প্রতিযোগিতা
রোবট প্রতিযোগিতা

রোবট প্রতিযোগিতায় দ্বিতীয় পুরস্কার

প্রস্তাবিত: