সুচিপত্র:

WiBot: 10 টি ধাপ (ছবি সহ)
WiBot: 10 টি ধাপ (ছবি সহ)
Anonim
ওয়াইবট
ওয়াইবট

এই নির্দেশযোগ্য ZYBO প্ল্যাটফর্মে একটি ওয়াই-ফাই রোবট তৈরির প্রক্রিয়াটির বিশদ বিবরণ দেয়। এই প্রকল্পটি বস্তু সনাক্তকরণ, দূরত্ব পরিমাপ এবং প্রতিক্রিয়াশীল নিয়ন্ত্রণের জন্য একটি রিয়েল-টাইম অপারেটিং সিস্টেম ব্যবহার করে। এই গাইডটি ZYBO কে পেরিফেরাল দিয়ে ইন্টারফেস করা, কাস্টম ফার্মওয়্যার চালানো এবং জাভা অ্যাপ্লিকেশনের মাধ্যমে যোগাযোগ করবে। এই প্রকল্পের জন্য প্রয়োজনীয় সমস্ত মূল উপাদানগুলির একটি তালিকা নিম্নরূপ:

  • 1 ZYBO উন্নয়ন বোর্ড
  • 1 TL-WR802N ওয়্যারলেস রাউটার
  • 1 শ্যাডো চ্যাসি
  • 2 65 মিমি চাকা
  • 2 140rpm গিয়ারমোটর
  • 2 চাকা এনকোডার
  • 1 HC-SR04 অতিস্বনক সেন্সর
  • 1 BSS138 লজিক লেভেল কনভার্টার
  • 1 L293 H-Bridge মোটর ড্রাইভার
  • 1 12V থেকে 5V ডিসি/ডিসি কনভার্টার
  • 1 2200mAh LiPo ব্যাটারি
  • 1 ইথারনেট কেবল
  • 1 ইউএসবি মাইক্রো-বি কেবল
  • 1 মহিলা XT60 সংযোগকারী
  • 2 পুরুষ থেকে মহিলা জাম্পার তারের
  • 30 পুরুষ থেকে পুরুষ জাম্পার তারের
  • 2 10kΩ প্রতিরোধক
  • 1 ব্রেডবোর্ড

উপরন্তু, নিম্নলিখিত সফ্টওয়্যার লক্ষ্য কম্পিউটারে ইনস্টল করা আবশ্যক:

  • Xilinx Vivado ডিজাইন স্যুট 2018.2
  • ডিজিলেন্ট পারদর্শী 2.19.2
  • ফ্রিআরটিওএস 10.1.1
  • জাভা এসই ডেভেলপমেন্ট কিট 8.191

ধাপ 1: রোবট চ্যাসি একত্রিত করুন

রোবট চ্যাসি একত্রিত করুন
রোবট চ্যাসি একত্রিত করুন
রোবট চ্যাসি একত্রিত করুন
রোবট চ্যাসি একত্রিত করুন
রোবট চ্যাসি একত্রিত করুন
রোবট চ্যাসি একত্রিত করুন

ছায়া চ্যাসি একত্রিত করুন এবং নীচের ফ্রেমে গিয়ারমোটর এবং এনকোডার সংযুক্ত করুন। ZYBO, ব্রেডবোর্ড, এবং অতিস্বনক সেন্সর প্রদান করা অংশগুলির সাথে মাউন্ট করা যেতে পারে যা 3D মুদ্রিত হতে পারে এবং স্ট্যান্ডঅফ এবং ডবল পার্শ্বযুক্ত টেপ ব্যবহার করে চ্যাসিগুলিতে স্থির করা যেতে পারে। নীচের ফ্রেম। ZYBO এর কাছাকাছি রাউটার এবং ব্রেডবোর্ডের কাছাকাছি ডিসি/ডিসি কনভার্টার মাউন্ট করুন। একেবারে শেষে গিয়ারমোটরগুলিতে চাকা সংযুক্ত করুন।

ধাপ 2: ওয়্যার ইলেকট্রনিক্স

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

DC/DC কনভার্টারের ইনপুট এবং আউটপুটকে যথাক্রমে ব্রেডবোর্ডের দুটি পাওয়ার রেলের সাথে সংযুক্ত করুন। এইগুলি সিস্টেমের জন্য 12V এবং 5V সরবরাহ হিসাবে কাজ করবে। ছবিতে দেখানো হিসাবে ZYBO কে 5V রেলের সাথে সংযুক্ত করুন। রাউটারকে 5V রেলের সাথে সংযুক্ত করতে একটি USB মাইক্রো-বি সাপ্লাই কেবল ব্যবহার করুন। XT60 কেবল 12V রেলের সাথে সংযুক্ত করা উচিত। বাকি ইলেকট্রনিক্স যথাযথভাবে তারযুক্ত না হওয়া পর্যন্ত ব্যাটারি প্লাগ করবেন না। অতিস্বনক সেন্সর 5V রেল তারযুক্ত করা উচিত। ZYBO তে Pmod পোর্ট JC এর পিন 6 ব্যবহার করে ব্রেডবোর্ডে একটি 3.3V রেল তৈরি করুন। লজিক কনভার্টারের উচ্চ ভোল্টেজ ইনপুটটি 5V রেলের সাথে যুক্ত করা উচিত এবং লজিক কনভার্টারের কম ভোল্টেজের ইনপুটটি 3.3V রেলের সাথে তারযুক্ত করা উচিত। মোটর এনকোডারগুলিকে 3.3V রেলের সাথে সংযুক্ত করুন। মোটর চালকের VCC1 কে 5V রেলের সাথে সংযুক্ত করুন এবং VCC2 কে 12V রেলের সাথে সংযুক্ত করুন। সমস্ত EN পিন 5V এবং সমস্ত GND পিন স্থল।

অতিস্বনক সেন্সরের TRIG এবং ECHO পিনগুলিকে যথাক্রমে লজিক কনভার্টারের HV1 এবং HV2 এর সাথে সংযুক্ত করুন। LV1 কে JC4 তে এবং LV2 কে JC3 এ যুক্ত করতে হবে। Pmod pinouts এর জন্য চার্ট পড়ুন। মোটর চালকের সাথে মোটর সংযুক্ত করুন। Y1 ডান মোটরের পজিটিভ টার্মিনালে এবং Y2 ডান মোটরের নেগেটিভ টার্মিনালে যুক্ত হওয়া উচিত। একইভাবে, Y3 কে বাম মোটরের পজিটিভ টার্মিনালে এবং Y4 কে বাম মোটরের নেগেটিভ টার্মিনালের সাথে সংযুক্ত করা উচিত। A1, A2, A3, এবং A4 যথাক্রমে JB2, JB1, JB4, এবং JB3 এ ম্যাপ করা উচিত। পিন সংখ্যার জন্য পরিকল্পিত দেখুন। ডান এনকোডারে ওয়্যার JC2 এবং বাম এনকোডারে JC1। এই সিগন্যালগুলিকে 3.3 ভি রেলের সাথে বাঁধতে পুল-আপ প্রতিরোধক ব্যবহার করা হয় তা নিশ্চিত করুন। শেষ পর্যন্ত, ZYBO কে রাউটারের সাথে সংযুক্ত করতে ইথারনেট কেবল ব্যবহার করুন।

ধাপ 3: ভিভাদোতে ব্লক ডায়াগ্রাম তৈরি করুন

ভিভাদোতে ব্লক ডায়াগ্রাম তৈরি করুন
ভিভাদোতে ব্লক ডায়াগ্রাম তৈরি করুন

ভিভাদোতে একটি নতুন আরটিএল প্রকল্প তৈরি করুন। এই মুহুর্তে কোনও উত্স নির্দিষ্ট না করার বিষয়ে নিশ্চিত হন। "Xc7z010clg400-1" সার্চ করুন এবং ফিনিশ চাপুন। Encoder_driver.sv এবং ultrasonic_driver.sv ডাউনলোড করুন। তাদের নিজস্ব ফোল্ডারে রাখুন। "টুলস" এর অধীনে আইপি প্যাকেজারটি খুলুন এবং একটি নির্দিষ্ট ডিরেক্টরি প্যাকেজ করা বেছে নিন। এনকোডার ড্রাইভার ধারণকারী ফোল্ডারে পথ আটকান এবং "পরবর্তী" টিপুন। "প্যাকেজ আইপি" ক্লিক করুন এবং অতিস্বনক সেন্সর ড্রাইভারের জন্য প্রক্রিয়াগুলি পুনরাবৃত্তি করুন। তারপরে, সেটিংস মেনুতে আইপি সাবসেকশনের অধীনে রিপোজিটরি ম্যানেজারে নেভিগেট করুন। ড্রাইভার ফোল্ডারে পাথ যোগ করুন এবং আইপি লাইব্রেরিতে তাদের অন্তর্ভুক্ত করার জন্য প্রয়োগ চাপুন।

একটি নতুন ব্লক ডায়াগ্রাম তৈরি করুন এবং "ZYNQ7 প্রসেসিং সিস্টেম" যোগ করুন। ব্লকে ডাবল ক্লিক করুন এবং প্রদত্ত ZYBO_zynq_def.xml ফাইলটি আমদানি করুন। "MIO কনফিগারেশন" এর অধীনে, টাইমার 0 এবং GPIO MIO সক্ষম করুন। কনফিগারেশন সংরক্ষণ করতে "ঠিক আছে" টিপুন। 3 "AXI GPIO" ব্লক এবং 4 "AXI টাইমার" ব্লক যুক্ত করুন। S_AXI এর জন্য সংযোগ অটোমেশন অনুসরণ করে ব্লক অটোমেশন চালান। GPIO ব্লকগুলিকে কনফিগার করতে ডাবল ক্লিক করুন। একটি ব্লক 4-বিট ইনপুট এবং 4-বিট আউটপুট সহ দ্বৈত চ্যানেল হওয়া উচিত। এই সংযোগগুলিকে বাহ্যিক করুন এবং ইনপুটের জন্য তাদের SW এবং আউটপুটের জন্য LED লেবেল করুন। দ্বিতীয় ব্লকটি 2 32-বিট ইনপুট সহ দ্বৈত চ্যানেল হওয়া উচিত। শেষ GPIO ব্লক হবে একটি একক 32-বিট ইনপুট। প্রতিটি টাইমার ব্লক এক্সটার্নাল থেকে pwm0 আউটপুট তৈরি করুন। তাদের PWM0, PWM1, PWM2, এবং PWM3 লেবেল করুন।

ব্লক ডায়াগ্রামে এনকোডার ড্রাইভার যুক্ত করুন এবং CLK কে FCLK_CLK0 এর সাথে সংযুক্ত করুন। OD0 এবং OD1 কে দ্বিতীয় GPIO ব্লকের ইনপুট চ্যানেলে সংযুক্ত করুন। ENC বাহ্যিক করুন এবং ENC_0 এর নাম পরিবর্তন করে ENC করুন। অতিস্বনক সেন্সর ব্লক যোগ করুন এবং CLK কে FCLK_CLK0 এর সাথে সংযুক্ত করুন। TRIG এবং ECHO কে বাহ্যিক করুন এবং TRIG_0 এর নাম পরিবর্তন করে TRIG এবং ECHO_0 কে ECHO করুন। RF কে তৃতীয় GPIO ব্লকের সাথে সংযুক্ত করুন। রেফারেন্সের জন্য প্রদত্ত ব্লক ডায়াগ্রাম দেখুন।

সোর্স প্যানেলে আপনার ব্লক ডায়াগ্রাম ফাইলে ডান ক্লিক করুন এবং একটি এইচডিএল রেপার তৈরি করুন। ব্যবহারকারীর সম্পাদনার অনুমতি দিতে ভুলবেন না। একটি সীমাবদ্ধতা হিসাবে প্রদত্ত ZYBO_Master.xdc ফাইল যোগ করুন। "জেনারেট বিটস্ট্রিম" টিপুন এবং একটি কফি বিরতি নিন।

ধাপ 4: সফটওয়্যার ডেভেলপমেন্ট এনভায়রনমেন্ট সেটআপ করুন

ভিভাদো এসডিকে হার্ডওয়্যার রপ্তানি করতে "ফাইল" এর অধীনে যান। বিটস্ট্রিম অন্তর্ভুক্ত করতে ভুলবেন না। "CORTEX_A9_Zynq_ZC702" এর ভিতরে RTOSDemo প্রকল্পটি আমদানি করুন। এটি FreeRTOS ইনস্টলেশন ডিরেক্টরিতে অবস্থিত হবে। একটি নতুন বোর্ড সাপোর্ট প্যাকেজ তৈরি করুন lwip202 লাইব্রেরি নির্বাচন করুন। RTOSDemo প্রকল্পের রেফারেন্সযুক্ত BSP কে আপনার তৈরি করা BSP তে পরিবর্তন করুন*।

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

ধাপ 5: ডেমো প্রোগ্রাম পরিবর্তন করুন

RTOSDemo এর "src" ডিরেক্টরিতে "ড্রাইভার" নামে একটি নতুন ফোল্ডার তৈরি করুন। প্রদত্ত gpio.h কপি করুন। gpio.c, pwm.h, pwm.c, odometer.h, odometer.c, rangefinder.c, rangefinder.h, motor.h, এবং motor.c ফাইলগুলি "ড্রাইভার" ডিরেক্টরিতে।

Main.c খুলুন এবং mainSELECTED_APPLICATION 2 তে সেট করুন। আপডেট হওয়া সংস্করণ দিয়ে "lwIP_Demo" এর অধীনে main_lwIP.c প্রতিস্থাপন করুন। "LwIP_Demo/apps/BasicSocketCommandServer" এর অধীনে BasicSocketCommandServer.c- কেও নতুন সংস্করণ দিয়ে আপডেট করতে হবে। শেষ পর্যন্ত, "FreeRTOSv10.1.1/FreeRTOS-Plus/Demo/Common/FreeRTOS_Plus_CLI_Demos" এ নেভিগেট করুন এবং প্রদত্ত সংস্করণ দিয়ে Sample-CLI-commands.c প্রতিস্থাপন করুন। প্রকল্পটি তৈরি করুন এবং নিশ্চিত করুন যে সবকিছু সফলভাবে সংকলিত হয়েছে।

ধাপ 6: কিউএসপিআইতে ফ্ল্যাশ ফার্মওয়্যার

কিউএসপিআইতে ফ্ল্যাশ ফার্মওয়্যার
কিউএসপিআইতে ফ্ল্যাশ ফার্মওয়্যার
কিউএসপিআইতে ফ্ল্যাশ ফার্মওয়্যার
কিউএসপিআইতে ফ্ল্যাশ ফার্মওয়্যার
কিউএসপিআইতে ফ্ল্যাশ ফার্মওয়্যার
কিউএসপিআইতে ফ্ল্যাশ ফার্মওয়্যার

"Zynq FSBL" টেমপ্লেট ব্যবহার করে "FSBL" নামে একটি নতুন অ্যাপ্লিকেশন প্রকল্প তৈরি করুন। FSBL প্রজেক্ট কম্পাইল করার পর RTOSDemo প্রজেক্টের বুট ইমেজ তৈরি করুন। নিশ্চিত করুন যে "FSBL/Debug/FSBL.elf" "বুট ইমেজ পার্টিশন" এর অধীনে বুটলোডার হিসাবে নির্বাচিত হয়েছে। তালিকাভুক্ত না হলে ম্যানুয়ালি এই ফাইলটিতে পাথ যোগ করুন।

ZYBO- এ JP5 জাম্পারকে "JTAG" -এ সরান। আপনার কম্পিউটারকে ZYBO এর সাথে সংযুক্ত করতে একটি USB মাইক্রো-বি কেবল ব্যবহার করুন। ব্যাটারি সংযুক্ত করুন এবং ZYBO চালু করুন। কম্পিউটার দ্বারা ZYBO সঠিকভাবে চিহ্নিত করা হয়েছে তা নিশ্চিত করার জন্য দক্ষ চালান। ভিভাদো এসডিকে "প্রোগ্রাম ফ্ল্যাশ" এ ক্লিক করুন এবং RTOSDemo- এ BOOT.bin ফাইলের পথ এবং FSBL.elf ফাইলে FSBL- এ পাথ প্রদান করুন। "প্রোগ্রাম" আঘাত করার আগে "ফ্ল্যাশের পরে যাচাই করুন" নির্বাচন করতে ভুলবেন না। ফ্ল্যাশিং অপারেশন সফলভাবে সম্পন্ন হয়েছে তা নিশ্চিত করতে কনসোলটি দেখুন। পরে, ZYBO বন্ধ করুন এবং USB তারের সংযোগ বিচ্ছিন্ন করুন। JP5 জাম্পারকে "QSPI" এ সরান।

ধাপ 7: ওয়্যারলেস অ্যাক্সেস পয়েন্ট কনফিগার করুন

ব্যাটারি এখনও সংযুক্ত আছে, রাউটারের ওয়াই-ফাই নেটওয়ার্কের সাথে সংযোগ করুন। ডিফল্ট SSID এবং পাসওয়ার্ড রাউটারের নীচে থাকা উচিত। পরে, https://tplinkwifi.net এ নেভিগেট করুন এবং ব্যবহারকারীর নাম এবং পাসওয়ার্ডের জন্য "অ্যাডমিন" ব্যবহার করে লগইন করুন। DHCP সক্ষম করে অ্যাক্সেস পয়েন্ট মোডে রাউটার কনফিগার করতে দ্রুত সেটআপ উইজার্ড চালান। ডিভাইসের জন্য ডিফল্ট ব্যবহারকারীর নাম এবং পাসওয়ার্ড আপডেট করতে ভুলবেন না। আপনার কাজ শেষ হওয়ার পর রাউটার অ্যাক্সেস পয়েন্ট মোডে স্বয়ংক্রিয়ভাবে পুনরায় বুট করা উচিত।

ZYBO চালু করুন এবং আপনার নির্ধারিত SSID ব্যবহার করে রাউটারের সাথে সংযোগ স্থাপন করুন। রাউটার সম্ভবত আইপি ঠিকানা 192.168.0.100 অথবা 192.160.0.101 এ আসবে। ZYBO রাউটারের যে ঠিকানাটি নেই তার জন্য নির্ধারিত হবে। রাউটারের আইপি ঠিকানা দ্রুত নির্ধারণ করতে, আপনি উইন্ডোতে কমান্ড প্রম্পট থেকে "ipconfig" বা লিনাক্স বা ম্যাকওএসের টার্মিনাল থেকে "ifconfig" চালাতে পারেন। আপনি যদি এখনও রাউটারের সাথে সংযুক্ত থাকেন, তাহলে আপনি দেখতে পাবেন তার আইপি ঠিকানাটি আপনার ওয়্যারলেস ইন্টারফেসের পাশে প্রদর্শিত হবে। ZYBO এর IP ঠিকানা নির্ধারণ করতে এই তথ্য ব্যবহার করুন। ZYBO এর IP ঠিকানা নিশ্চিত করার জন্য, আপনি এটি কমান্ড লাইন থেকে পিং করতে পারেন অথবা টেলনেটের মাধ্যমে এর সাথে সংযোগ করতে পারেন।

ধাপ 8: জাভা প্রোগ্রাম চালান

জাভা প্রোগ্রাম চালান
জাভা প্রোগ্রাম চালান

RobotClient.java ডাউনলোড করুন এবং কমান্ড লাইন থেকে "javac RobotClient.java" কমান্ড ব্যবহার করে ফাইল কম্পাইল করুন। "Java RobotClient" কমান্ডটি চালান যেখানে "ip_address" হল ZYBO এর IP ঠিকানা। কম্পিউটার এবং ZYBO- এর মধ্যে একটি সফল সংযোগ স্থাপন করা হলে নিয়ন্ত্রণ GUI পপআপ করবে। জানালাকে ফোকাস করার পর, কীবোর্ডের তীরচিহ্নগুলি ব্যবহার করে রোবটটি নিয়ন্ত্রণযোগ্য হওয়া উচিত। সেশন শেষ করতে এসকেপ বোতাম টিপুন এবং রোবট থেকে সংযোগ বিচ্ছিন্ন করুন।

GUI চাবিগুলি হাইলাইট করবে এবং উপরের ডানদিকে মোটর আউটপুট দেখাবে। বাম দিকের দূরত্বের মিটারটি প্রতি 2 মিটারে সর্বোচ্চ 10 মিটার পর্যন্ত একটি বার পূরণ করে।

ধাপ 9: রেঞ্জফাইন্ডার ক্যালিব্রেট করুন

ZYBO তে থাকা সুইচগুলি অনবোর্ড রেঞ্জফাইন্ডার কনফিগার করতে ব্যবহার করা যেতে পারে। ন্যূনতম সনাক্তকরণ দূরত্ব d সুইচ ইনপুট i এর একটি ফাংশন হিসাবে দেওয়া হয়:

d = 50i + 250

পূর্ণসংখ্যা ধাপে ইনপুট 0 থেকে 15 এর মধ্যে পরিবর্তিত হতে পারে। এটি 0.25 মিটার থেকে 1 মিটার দূরত্বের পরিসরে অনুবাদ করে। সর্বনিম্ন দূরত্বে, প্রথম এলইডি জ্বলজ্বল শুরু করবে। যে এলইডিগুলি সক্রিয় আছে তা বস্তুর নৈকট্যের সমানুপাতিক।

ধাপ 10: অ্যাক্সেসযোগ্যতা

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

প্রস্তাবিত: