সুচিপত্র:

ম্যাজিকবিট থেকে সহজ রাডার সিস্টেম: 6 টি ধাপ
ম্যাজিকবিট থেকে সহজ রাডার সিস্টেম: 6 টি ধাপ

ভিডিও: ম্যাজিকবিট থেকে সহজ রাডার সিস্টেম: 6 টি ধাপ

ভিডিও: ম্যাজিকবিট থেকে সহজ রাডার সিস্টেম: 6 টি ধাপ
ভিডিও: ✨The Melee Mage EP 01 - 13 Full Version [MULTI SUB] 2024, জুলাই
Anonim

এই টিউটোরিয়াল দেখায় কিভাবে HC-SR04 সেন্সর এবং মাইক্রোবিট ডেভ বোর্ড ব্যবহার করে একটি সহজ রাডার সিস্টেম তৈরি করা যায় প্রক্রিয়াকরণ এবং Arduino IDE এর সাথে।

সরবরাহ:

  • SG90 মাইক্রো-সার্ভো মোটর
  • জাম্পার তার (জেনেরিক)
  • ব্রেডবোর্ড (জেনেরিক)
  • ম্যাজিকবিট
  • ইউএসবি-এ থেকে মাইক্রো-ইউএসবি কেবল
  • অতিস্বনক সেন্সর - HC -SR04 (জেনেরিক)

ধাপ 1: গল্প

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

ধাপ 2: তত্ত্ব এবং পদ্ধতি

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

ধাপ 3: হার্ডওয়্যার সেটআপ

হার্ডওয়্যার সেটআপ
হার্ডওয়্যার সেটআপ
হার্ডওয়্যার সেটআপ
হার্ডওয়্যার সেটআপ

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

আল্ট্রাসোনিক সেন্সর পাওয়ার আপের জন্য 3.3 v ব্যবহার করেছে। অতএব আমরা ম্যাজিকবিট বোর্ডের ডান নিচের পোর্টটি ব্যবহার করেছি যাতে অতিস্বনক সেন্সরকে ম্যাজিকবিটের সাথে সংযুক্ত করা যায়। কিন্তু সঠিকভাবে কাজ করার জন্য সার্ভো মোটর 5V ব্যবহার করা হয়, সেজন্য আমরা ম্যাজিকবিটের সাথে সার্ভো মোটরকে সংযুক্ত করতে বাম নীচের পোর্ট ব্যবহার করেছি। এই ক্ষেত্রে, আমরা ম্যাজিক বিট সার্ভো সংযোগকারী মডিউল ব্যবহার করি। কিন্তু যদি আপনার সেই মডিউলটি না থাকে তবে আপনি 5V থেকে 5V, Gnd থেকে Gnd এবং Magicalbit- এ 26 পিনের সংকেত দেওয়ার জন্য তিনটি জাম্পার তার ব্যবহার করতে পারেন।

সার্কিট তৈরির পরে আমাদের তৈরি করার জন্য ছোট যান্ত্রিক অংশ রয়েছে। ছোট বাদাম ব্যবহার করে servo মোটর একক পার্শ্ব servo সংযোগকারী সেট করুন। তারপর কিছু এল আকৃতির বন্ধনী বা সঠিক উপায় ব্যবহার করে সেই সংযোগকারীতে সেন্সর ঠিক করুন। পুরো সিস্টেমের পরে আমরা ব্রেডবোর্ডে ঠিক করেছি। কিন্তু আপনি servo এবং Magicbit মাউন্ট করতে অন্যান্য পৃষ্ঠ ব্যবহার করতে পারেন।

ধাপ 4: সফটওয়্যার সেটআপ

সফটওয়্যার সেটআপ
সফটওয়্যার সেটআপ
সফটওয়্যার সেটআপ
সফটওয়্যার সেটআপ

সফটওয়্যারের দিকটি সামান্য জটিল। সঠিক বোঝার জন্য আপনি পরবর্তী অংশে যাওয়ার আগে নিম্নলিখিত লিঙ্কগুলি উল্লেখ করতে পারেন।

magicbit-arduino.readthedocs.io/en/latest/

hello.processing.org/editor/

আসুন Arduino IDE কোডটি দেখি এবং সেই কোডটি কীভাবে কাজ করে।

সার্ভার চালানোর জন্য আমরা ESP32 servo লাইব্রেরি ব্যবহার করি। এই লাইব্রেরিটি প্রায় Arduino IDE তে ম্যাজিক বিট বোর্ড ম্যানেজারের অন্তর্ভুক্ত। অতিস্বনক সেন্সর মোকাবেলা করার জন্য আমরা নিউপিং লাইব্রেরি ব্যবহার করি। এটি নিচের লিঙ্ক থেকে ডাউনলোড করা যাবে।

bitbucket.org/teckel12/arduino-new-ping/do…

জিপ ফাইলটি ডাউনলোড করুন এবং যান সরঞ্জামগুলি> লাইব্রেরি অন্তর্ভুক্ত করুন> আরডুইনোতে জিপ লাইব্রেরি যুক্ত করুন। এখন আপনার নতুন পিন লাইব্রেরির ডাউনলোড করা জিপ ফাইলটি নির্বাচন করুন। প্রক্রিয়াকরণের সাথে যোগাযোগের জন্য আমরা 115200 বড রেটের সাথে সিরিয়াল যোগাযোগ ব্যবহার করেছি। এটি ESP32 এর জন্য সবচেয়ে সঠিক ফ্রিকোয়েন্সি। প্রতিটি কোণে আমরা এই প্রোটোকল ব্যবহার করে কম্পিউটারে আমাদের ডেটা পাঠাই। সেন্সর থেকে নিকটতম সামনের বস্তুর দূরত্ব, ঘূর্ণনের দিক এবং ঘোরানো কোণ এই তথ্যের অন্তর্ভুক্ত। লুপের জন্য দুটি ব্যবহার করে আমরা আমাদের সার্ভোকে দুই দিকে ঘুরিয়ে দিই। এক ডিগ্রি ঘূর্ণনের সময় আমরা 4 বার সিরিয়াল ডেটা পাঠিয়েছি। এর কারণ আপনি অংশ ব্যাখ্যা প্রক্রিয়াকরণে বুঝতে পারেন।

এখন সময় এসেছে প্রক্রিয়াকরণের পরিবেশ দেখার। এটি জাভা ভিত্তিক প্রোগ্রামিং সফটওয়্যার। IDE প্রক্রিয়াকরণে আমরা এই স্কেচে আমাদের প্রোগ্রামের স্কেচ লিখতে পারি। আমরা আমাদের প্রোগ্রাম চালানো থেকে ভিজ্যুয়াল আউটপুট তৈরি করতে পারি। এছাড়াও আপনি 2D এবং 3d বস্তু হিসাবে আউটপুট নিতে পারেন। শুধু তাই নয়, এটি ইমেজ প্রসেসিং এবং আরো অনেক কিছুর জন্য ব্যবহার করা যেতে পারে।

প্রসেসিং স্কেচে প্রথমে আমরা সাধারণ গ্রাফিক ফাংশন ব্যবহার করে আমাদের ডেটা ডিসপ্লে ইন্টারফেস ডিজাইন করি। কোডের শুরুতে আমরা সিরিয়াল লাইব্রেরি অন্তর্ভুক্ত করে আমাদের সিরিয়াল যোগাযোগ স্থাপন করি। সেটআপ ফাংশনে আপনাকে কিছু পরিবর্তন করতে হবে যা আপনি ইউএসবি পোর্ট ব্যবহার করেছেন যা আপনি ম্যাজিকবিটকে কম্পিউটারের সাথে সংযুক্ত করতে ব্যবহার করেছিলেন। যখন আপনি কোডটি আপলোড করার জন্য Arduino IDE সেটআপ করেন তখন আপনি Arduino IDE ব্যবহার করে আপনার পোর্টটি পরীক্ষা করতে পারেন। তারপর প্রসেসিং স্কেচ সেটআপ অংশে com পোর্ট নাম পরিবর্তন করুন। যখন সিরিয়াল ডেটা পাওয়া যায়, সিরিয়ালভেন্ট ফাংশন স্বয়ংক্রিয়ভাবে ট্রিগার হয়। এজন্য কোডের মূল যুক্তি কোণ এবং ডেটা অনুপস্থিত প্রতিরোধের জন্য সিরিয়াল ইভেন্টে অন্তর্ভুক্ত। যখন নতুন ডেটা পাওয়া যায়, তখন আমরা আমাদের কোণ অনুযায়ী পর্দায় একটি রেখা আঁকতে থাকি that সময় যদি কোন বস্তু সনাক্ত না হয়, তাহলে সম্পূর্ণ লাইন সবুজ রঙের। যদি তা না হয় তবে সেন্সর থেকে বস্তুর দূরত্ব অনুসারে লাইনের কিছু অংশ লাল হবে। এছাড়াও ঘূর্ণন দিক অনুযায়ী আমরা সবুজ রঙের ক্রমবর্ধমান স্তরের সাথে সেই রেখার কাছাকাছি আরও 200 টি লাইন আঁকব। প্রতিটি প্রধানের মধ্যে আমাদের 0.25 ডিগ্রী পার্থক্য আছে। এজন্য আমরা প্রতিটি ডিগ্রী ঘূর্ণনে ম্যাজিকবিট থেকে একবারে 4 টি রিডিং পাই। যার কারণে আমরা পর্দায় সুন্দর অনুসন্ধান হাত তৈরি করতে পারি।

কোড সাফল্য সম্পূর্ণরূপে জাদুতে আপলোড করার পরে এবং হার্ডওয়্যার অংশ সফলভাবে প্রসেসিং আইডিই খুলুন এবং রান বাটনে ক্লিক করে কোডটি চালান। এখন আপনার কাছে খুব সহজ রাডার সিস্টেম আছে।

আপনি যা প্রদর্শন করতে চান তা আপনি কোডগুলি কাস্টমাইজ করতে পারেন।

ধাপ 5: সমস্যা সমাধান।

প্রসেসিং স্কেচ চলছে না।

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

Servo কাজ করছে না।

  • চেক করুন ইউএসবি কানেকশন ঠিক আছে কিনা।
  • তারের চেক করুন।
  • চেক করুন সার্ভো ভাল অবস্থায় আছে।

ধাপ 6: Arduino কোড

#অন্তর্ভুক্ত

#TRIGGER_PIN 21 ডিফাইন করুন #অন্তর্ভুক্ত // সার্ভো লাইব্রেরি int দূরত্ব অন্তর্ভুক্ত; Servo RadarServo; অকার্যকর সেটআপ () {Serial.begin (115200); RadarServo.attach (26); // কোন পিনে সার্ভো মোটর সংযুক্ত বিলম্ব (3000) নির্ধারণ করে; } অকার্যকর লুপ () {// সার্ভার মোটরকে 15 থেকে 165 ডিগ্রী পর্যন্ত (int i = 0; i <= 180; i ++) {RadarServo.write (i); বিলম্ব (50); দূরত্ব = sonar.ping_cm (); // (int j = 0; j0) {break; } সিরিয়াল.প্রিন্ট (i); // সিরিয়াল পোর্ট Serial.print (",") এ বর্তমান ডিগ্রী পাঠায়; // Serial.print (j) ইনডেক্স করার জন্য প্রসেসিং IDE- এর পরে প্রয়োজনীয় পূর্ববর্তী মানটির ঠিক পরে অতিরিক্ত অক্ষর পাঠায়; // সিরিয়াল পোর্ট Serial.print ("*") এ বর্তমান ডিগ্রী পাঠায়; সিরিয়াল.প্রিন্ট (1); // সিরিয়াল পোর্ট Serial.print ("/") এ দূরত্বের মান পাঠায়; // সিরিয়াল.প্রিন্ট (দূরত্ব) ইনডেক্স করার জন্য প্রসেসিং আইডিই -তে পরবর্তীতে প্রয়োজনীয় আগের মানটির ঠিক পরে অতিরিক্ত অক্ষর পাঠায়; // সিরিয়াল পোর্ট Serial.print ("।") এ দূরত্বের মান পাঠায়; // ইনডেক্সিংয়ের জন্য প্রসেসিং আইডিই-তে পরবর্তী প্রয়োজনীয় মানটির ঠিক পরে সংযোজন অক্ষর পাঠায়}} // (int i = 180; i> = 0; i-) {RadarServo লিখুন (i); বিলম্ব (50); দূরত্ব = sonar.ping_cm (); জন্য (int j = 75; j> = 0; j- = 25) {যদি (i == 180 && (j == 75 || j == 50 || j == 25)) {চালিয়ে যান; } সিরিয়াল.প্রিন্ট (i); // সিরিয়াল পোর্ট Serial.print (",") এ বর্তমান ডিগ্রী পাঠায়; // Serial.print (j) ইনডেক্স করার জন্য প্রসেসিং আইডিই -তে পরবর্তীতে প্রয়োজনীয় আগের মানটির ঠিক পরে অতিরিক্ত অক্ষর পাঠায়; // সিরিয়াল পোর্ট Serial.print ("*") এ বর্তমান ডিগ্রী পাঠায়; সিরিয়াল.প্রিন্ট (-1); // সিরিয়াল পোর্ট Serial.print ("/") এ দূরত্বের মান পাঠায়; // Serial.print (দূরত্ব) ইনডেক্স করার জন্য প্রসেসিং IDE- এর পরে প্রয়োজনীয় পূর্ববর্তী মানটির ঠিক পরে অতিরিক্ত অক্ষর পাঠায়; // সিরিয়াল পোর্ট Serial.print ("।") এ দূরত্বের মান পাঠায়; // ইনডেক্সিংয়ের জন্য প্রসেসিং আইডিই -তে পরবর্তীতে প্রয়োজনীয় আগের মানটির ঠিক পরে অতিরিক্ত অক্ষর পাঠায়}}

}

প্রস্তাবিত: