সুচিপত্র:

রোবোটিক গাড়ি এড়ানো বাধা: 9 টি ধাপ
রোবোটিক গাড়ি এড়ানো বাধা: 9 টি ধাপ

ভিডিও: রোবোটিক গাড়ি এড়ানো বাধা: 9 টি ধাপ

ভিডিও: রোবোটিক গাড়ি এড়ানো বাধা: 9 টি ধাপ
ভিডিও: How to Win a Debate Competition | Bangla Motivational Video 2024, জুলাই
Anonim
রোবোটিক গাড়ি এড়ানো বাধা
রোবোটিক গাড়ি এড়ানো বাধা
রোবোটিক গাড়ি এড়ানো বাধা
রোবোটিক গাড়ি এড়ানো বাধা

কিভাবে রোবট এড়িয়ে একটি বাধা তৈরি করা যায়

ধাপ 1: ব্ল্যাক বক্স

ব্ল্যাক বক্স
ব্ল্যাক বক্স

প্রথম ধাপে আমি আমার রোবটের ভিত্তি হিসেবে একটি কালো বাক্স ব্যবহার করেছি।

ধাপ 2: Arduino

আরডুইনো
আরডুইনো

Arduino হল পুরো সিস্টেমের মস্তিষ্ক এবং আমাদের মোটরগুলিকে অর্কেস্ট্রেট করে

ধাপ 3: ব্ল্যাকবক্সে আরডুইনো সংযুক্ত করা

আরডুইনোকে ব্ল্যাকবক্সের সাথে সংযুক্ত করা হচ্ছে
আরডুইনোকে ব্ল্যাকবক্সের সাথে সংযুক্ত করা হচ্ছে

আমি গরম আঠালো ব্যবহার করে ব্ল্যাকবক্সে আরডুইনো সংযুক্ত করেছি

ধাপ 4: অতিস্বনক সেন্সর

অতিস্বনক সেন্সর
অতিস্বনক সেন্সর

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

ধাপ 5: আরডুইনোতে সেন্সরের ব্রেডবোর্ড সংযোগ

আরডুইনোতে সেন্সরের ব্রেডবোর্ড সংযোগ
আরডুইনোতে সেন্সরের ব্রেডবোর্ড সংযোগ
আরডুইনোতে সেন্সরের ব্রেডবোর্ড সংযোগ
আরডুইনোতে সেন্সরের ব্রেডবোর্ড সংযোগ

আমি ব্রেডবোর্ড এবং আরডুইনো এর মধ্যে সংযোগের জন্য পুরুষদের তার ব্যবহার করেছি।

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

ধাপ 6: মোটর শিল্ড

মোটর শিল্ড
মোটর শিল্ড

Arduino বোর্ডগুলি ডিসি মোটরগুলিকে নিজের দ্বারা নিয়ন্ত্রণ করতে পারে না, কারণ তারা যে স্রোত তৈরি করছে তা খুবই কম। এই সমস্যা সমাধানের জন্য আমরা মোটর ieldsাল ব্যবহার করি। stepper মোটর. … এই পিনগুলিকে সম্বোধন করে আপনি শুরু করতে একটি মোটর চ্যানেল নির্বাচন করতে পারেন, মোটরের দিকনির্দেশ (পোলারিটি) নির্দিষ্ট করতে পারেন, মোটরের গতি (PWM) সেট করতে পারেন, মোটরটি থামাতে এবং শুরু করতে পারেন এবং প্রতিটি চ্যানেলের বর্তমান শোষণ পর্যবেক্ষণ করতে পারেন।

ধাপ 7: আরডুইনোতে মোটর শিল্ড সংযুক্ত করা

আরডুইনোতে মোটর শিল্ড সংযুক্ত করা হচ্ছে
আরডুইনোতে মোটর শিল্ড সংযুক্ত করা হচ্ছে

সেন্সর তারের মধ্যে crunched সঙ্গে কেবল arduino মোটর ieldাল সংযুক্ত করুন

ধাপ 8: 4 টি মোটর এবং ব্যাটারিকে শিল্ডের সাথে সংযুক্ত করা

4 টি মোটর এবং ব্যাটারিকে শিল্ডের সাথে সংযুক্ত করা হচ্ছে
4 টি মোটর এবং ব্যাটারিকে শিল্ডের সাথে সংযুক্ত করা হচ্ছে

প্রতিটি মোটর শিল্ডে (কমপক্ষে) দুটি চ্যানেল থাকে, একটি মোটরের জন্য, এবং একটি বিদ্যুতের উৎসের জন্য, একে অপরের প্রতি শ্রদ্ধার সাথে সংযুক্ত করুন

ধাপ 9: রোবট প্রোগ্রাম করুন

এই কোডটি চালান

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

নিউপিং সোনার (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor মোটর 1 (1, MOTOR12_1KHZ); AF_DCMotor মোটর 2 (2, MOTOR12_1KHZ); AF_DCMotor মোটর 3 (3, MOTOR34_1KHZ); AF_DCMotor মোটর 4 (4, MOTOR34_1KHZ); Servo myservo;

#TRIG_PIN A2 নির্ধারণ করুন #ECHO_PIN A3 নির্ধারণ করুন #MAX_DISTANCE 150 নির্ধারিত করুন

বুলিয়ান চলে যায় = মিথ্যা; int দূরত্ব = 80; int speedSet = 0;

অকার্যকর সেটআপ() {

myservo.attach (10); myservo.write (115); বিলম্ব (2000); দূরত্ব = readPing (); বিলম্ব (100); দূরত্ব = readPing (); বিলম্ব (100); দূরত্ব = readPing (); বিলম্ব (100); দূরত্ব = readPing (); বিলম্ব (100); }

অকার্যকর লুপ () {int distanceR = 0; int দূরত্ব L = 0; বিলম্ব (40); যদি (দূরত্ব <= 15) {moveStop (); বিলম্ব (50); moveBackward (); বিলম্ব (150); moveStop (); বিলম্ব (100); distanceR = lookRight (); বিলম্ব (100); distanceL = lookLeft (); বিলম্ব (100);

যদি (distanceR> = distanceL) {turnRight (); moveStop (); } অন্য {turnLeft (); moveStop (); }} অন্য {moveForward (); } দূরত্ব = readPing (); }

int lookRight () {myservo.write (50); বিলম্ব (250); int দূরত্ব = readPing (); বিলম্ব (50); myservo.write (100); ফেরার দূরত্ব; }

int lookLeft () {myservo.write (120); বিলম্ব (300); int দূরত্ব = readPing (); বিলম্ব (100); myservo.write (115); ফেরার দূরত্ব; বিলম্ব (100); }

int readPing () {বিলম্ব (70); int cm = sonar.ping_cm (); যদি (সেমি == 0) {সেমি = 200; } রিটার্ন সেমি; }

অকার্যকর moveStop () {motor1.run (রিলিজ); motor2.run (রিলিজ); motor3.run (রিলিজ); motor4.run (রিলিজ); } অকার্যকর moveForward () {

যদি (! যায় ফরওয়ার্ড) {যায় ফরওয়ার্ড = সত্য; motor1.run (ফরওয়ার্ড); motor2.run (ফরওয়ার্ড); motor3.run (ফরওয়ার্ড); motor4.run (ফরওয়ার্ড); জন্য (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); বিলম্ব (5); }}}

অকার্যকর moveBackward () {goesForward = false; motor1.run (ব্যাকওয়ার্ড); motor2.run (ব্যাকওয়ার্ড); motor3.run (ব্যাকওয়ার্ড); motor4.run (ব্যাকওয়ার্ড); জন্য (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); বিলম্ব (5); } অকার্যকর turnLeft () {motor1.run (BACKWARD); motor2.run (ব্যাকওয়ার্ড); motor3.run (ফরওয়ার্ড); motor4.run (ফরওয়ার্ড); বিলম্ব (500); motor1.run (ফরওয়ার্ড); motor2.run (ফরওয়ার্ড); motor3.run (ফরওয়ার্ড); motor4.run (ফরওয়ার্ড); }

অকার্যকর turnLeft () {motor1.run (BACKWARD); motor2.run (ব্যাকওয়ার্ড); motor3.run (ফরওয়ার্ড); motor4.run (ফরওয়ার্ড); বিলম্ব (500); motor1.run (ফরওয়ার্ড); motor2.run (ফরওয়ার্ড); motor3.run (ফরওয়ার্ড); motor4.run (ফরওয়ার্ড); }

প্রস্তাবিত: