ডিটিএমএফ মডিউলটি ব্যবহার করে মোবাইল ফোন নিয়ন্ত্রিত রোবট গাড়ি

সমস্যাগুলি দূর করার জন্য আমাদের উপকরণটি ব্যবহার করে দেখুন





এই প্রকল্পে আমরা আমাদের সেলফোনের মাধ্যমে ডিটিএমএফ মডিউল এবং আরডুইনো ব্যবহার করে একটি ম্যানুয়াল রোবট নিয়ন্ত্রণ করতে চলেছি।

লিখেছেন: অঙ্কিত নেগী, কনিষ্ক গডিয়াল এবং নবনিত সিং সাজওয়ান



ডিটিএমএফ মডিউলটি ব্যবহার করে মোবাইল ফোন নিয়ন্ত্রিত রোবট গাড়ি

ভূমিকা

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

যে ব্যক্তি কল করছেন তিনি কেবল ডায়াল প্যাড কীগুলি টিপে রোবটটি নিয়ন্ত্রণ করতে পারেন। (অর্থাত পৃথিবীর যে কোনও কোণ থেকে রোবট পরিচালনা করা যায়)।



প্রয়োজনীয় সামগ্রীগুলি

1 - আরডুইনো ইউএনও

2 - ম্যানুয়াল রোবট

3 - 4 মোটর (এখানে আমরা প্রতি 300 r.p.m ব্যবহার করেছি)

4 - ডিটিএমএফ মডিউল

5 - মোটর ড্রাইভার

6 - 12 ভোল্ট ব্যাটারি

7 - স্যুইচ করুন

8 - হেডফোন জ্যাক

9 - দুটি সেল ফোন

10 - তারের সংযোগ স্থাপন

ম্যানুয়াল রবোট সম্পর্কে

একটি ম্যানুয়াল রোবট চ্যাসিস (দেহ) নিয়ে গঠিত যার মধ্যে তিন বা চারটি মোটর (যা টায়ারের সাথে স্ক্রুযুক্ত) প্রয়োজনের উপর নির্ভর করে সংযুক্ত হতে পারে।

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

রোবটের বাম এবং ডানদিকে উভয় মোটর পৃথকভাবে সমান্তরালে সংযুক্ত। সাধারণত এগুলি ডিপিডিটি (ডাবল পিন ডাবল থ্রো) সুইচগুলির মাধ্যমে 12 ভোল্ট ব্যাটারির সাথে সংযুক্ত থাকে।

তবে এই প্রকল্পে আমরা বট নিয়ন্ত্রণ করতে ডিপিডিটিগুলির পরিবর্তে মোবাইল ফোন ব্যবহার করব।

মোটর চালক সম্পর্কে

আরডুইনো জিপিআইও (সাধারণ উদ্দেশ্য ইনপুট আউটপুট) পিন ব্যবহার করে সর্বাধিক 40mA স্রোত দেয়, যখন এটি ভিসি এবং গ্রাউন্ড ব্যবহার করে 200 এমএ দেয়।

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

মোটর চালকগুলিতে এইচ ব্রিজ থাকে (এটি ট্রানজিস্টরের সংমিশ্রণ)। মোটর চালকের আইসি (L298) 5 ভি চালিত যা আরডুইনো সরবরাহ করে।

মোটরগুলিকে পাওয়ার করতে, এটি আরডুইনো থেকে 12 ভি ইনপুট নেয় যা শেষ পর্যন্ত 12 ভি ব্যাটারি সরবরাহ করে। সুতরাং আরডুইনো কেবল ব্যাটারি থেকে শক্তি নেয় এবং মোটর ড্রাইভারকে দেয়।

এটি আমাদের সর্বাধিক 2 অ্যাম্পিয়ারের বর্তমান দিয়ে মোটরের গতি এবং দিক নিয়ন্ত্রণ করতে দেয়।

ডিটিএমএফ মডুলের পরিচিতি

ডিটিএমএফ এর অর্থ ডুয়াল টোন মাল্টি ফ্রিকোয়েন্সি। আমাদের ডায়াল প্যাড দুটি টোনারের একাধিক ফ্রিকোয়েন্সি i অর্থাত্ একটি বোতামে দুটি ফ্রনের বিভিন্ন ফ্রিকোয়েন্সি রয়েছে of

একটি স্বন উচ্চ ফ্রিকোয়েন্সি গ্রুপ থেকে অন্যদিকে নিম্ন ফ্রিকোয়েন্সি গ্রুপ থেকে তৈরি করা হয়। এটি এমনভাবে করা হয়েছে যাতে কোনও ধরণের ভয়েস সুরগুলি অনুকরণ করতে না পারে।

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

ডিজিটলও ফ্রিকোয়েন্সি (হার্টজ) উচ্চ ফ্রিকোয়েন্সি (হার্টজ) 2697133647701209677014778852133609411336

ডায়াল প্যাডের অঙ্কগুলির বাইনারি ডিকোডেড ক্রমটি নীচে সারণীতে প্রদর্শিত হয়েছে।

অঙ্ক ডি 3 ডি 2 ডি 1 ডি 0 0 0 0 দুই 0 0 0 0 0 0 0 0 0 0 0 0 7 0 8 0 0 0 9 0 0 0 0 0 * 0 # 0 0

বর্তনী চিত্র

সংযোগগুলি

মোটর ড্রাইভার -

  • পিন ‘এ’ এবং ‘বি’ বাম দিকের মোটর নিয়ন্ত্রণ করে যখন পিন ‘সি’ এবং ‘ডি’ মোটরের ডানদিকে নিয়ন্ত্রণ করে। এই চারটি পিন চারটি মোটরের সাথে সংযুক্ত রয়েছে।
  • পিন ‘ই’ পাওয়ার আইসি (L298) এ যা আরডুইনো (5 ভি) থেকে নেওয়া হয়েছে।
  • পিন ‘এফ’ গ্রাউন্ড।
  • পিন ‘জি’ আর্টুইনোর ভিন পিনের মাধ্যমে ব্যাটারি থেকে 12 ভোল্টের শক্তি নেয়।
  • পিনগুলি ‘এইচ’, ‘আমি’, ‘জে’ এবং ‘কে’ আরডুইনোর কাছ থেকে যুক্তি গ্রহণ করে।

ডিটিএমএফ -

  • পিন ‘এ’ আইসি (এসসি9270 ডি) পাওয়ার জন্য 3.5 ভোল্টের আরডুইনোর সাথে সংযুক্ত রয়েছে।
  • পিন ‘বি’ স্থলভাগের সাথে সংযুক্ত।
  • ডিটিএমএফের ইনপুটটি জ্যাকের মাধ্যমে ফোন থেকে নেওয়া হয়।
  • (D0 - D3) পিনের মাধ্যমে বাইনারি ডেটা আকারে আউটপুট আর্ডুইনোতে যায়।

আরডিনো -

  • (D0 - D3) পিন থেকে ডিটিএমএফের আউটপুট আসে আরডুইনোর ডিজিটাল পিনগুলিতে। আমরা এই আউটপুটটিকে আরডুইনোর (2 - 13) থেকে পৃথক চারটি ডিজিটাল পিনের যে কোনওটির সাথে সংযুক্ত করতে পারি। এখানে আমরা 8, 9, 10 এবং 11 পিন ব্যবহার করেছি।
  • আরডুইনোর 2 এবং 3 ডিজিটাল পিনগুলি মোটর চালকের পিন নম্বর ‘এইচ’ এবং ‘আমি’ সংযুক্ত এবং আরডুইনোর 12 এবং 13 পিনগুলি ‘জে’ এবং ‘কে’ এর সাথে সংযুক্ত থাকে।
  • আরডুইনো একটি 12 ভোল্টের ব্যাটারির সাথে সংযুক্ত।

প্রোগ্রাম কোড -

int x // initialising variables
int y
int z
int w
int a=20
void setup()
{
pinMode(2,OUTPUT) //left motor
pinMode(3,OUTPUT) //left
pinMode(8,INPUT) // output from DO pin of DTMF
pinMode(9,INPUT) //output from D1 pin of DTMF
pinMode(10,INPUT) //output from D2 pin of DTMF
pinMode(11,INPUT) // output from D3 pin of DTMF
pinMode(12,OUTPUT) //right motor
pinMode(13,OUTPUT) //right
Serial.begin(9600)// begin serial communication between arduino and laptop
}
void decoding()// decodes the 4 bit binary number into decimal number
{
if((x==0)&&(y==0)&&(z==0)&&(w==0))
{
a=0
}
if((x==0)&&(y==0)&&(z==1)&&(w==0))
{
a=2
}
if((x==0)&&(y==1)&&(z==0)&&(w==0))
{
a=4
}
if((x==0)&&(y==1)&&(z==1)&&(w==0))
{
a=6
}
if((x==1)&&(y==0)&&(z==0)&&(w==0))
{
a=8
}
}
void printing()// prints the value received from input pins 8,9,10 and 11 respectively
{
Serial.print(' x ')
Serial.print( x )
Serial.print(' y ')
Serial.print( y )
Serial.print(' z ')
Serial.print( z )
Serial.print(' w ')
Serial.print( w )
Serial.print(' a ')
Serial.print(a)
Serial.println()
}
void move_forward()// both side tyres of bot moves forward
{
digitalWrite(2,HIGH)
digitalWrite(3,LOW)
digitalWrite(12,HIGH)
digitalWrite(13,LOW)
}
void move_backward()//both side tyres of bot moves backward
{
digitalWrite(3,HIGH)
digitalWrite(2,LOW)
digitalWrite(13,HIGH)
digitalWrite(12,LOW)
}
void move_left()// only left side tyres move forward
{
digitalWrite(2,HIGH)
digitalWrite(3,LOW)
digitalWrite(12,LOW)
digitalWrite(13,HIGH)
}
void move_right()//only right side tyres move forward
{
digitalWrite(2,LOW)
digitalWrite(3,HIGH)
digitalWrite(12,HIGH)
digitalWrite(13,LOW)
}
void halt()// all motor stops
{
digitalWrite(2,LOW)
digitalWrite(3,LOW)
digitalWrite(12,LOW)
digitalWrite(13,LOW)
}
void reading()// take readings from input pins that are connected to DTMF D0, D1, D2 and D3 PINS.
{
x=digitalRead(8)
y=digitalRead(9)
z=digitalRead(10)
w=digitalRead(11)
}
void loop()
{
reading()
decoding()
if((x==0)&&(y==0)&&(z==1)&&(w==0))
{
move_forward()
reading()
decoding()
printing()
}
if((x==1)&&(y==0)&&(z==0)&&(w==0))
{
move_backward()
reading()
decoding()
printing()
}
if((x==0)&&(y==1)&&(z==0)&&(w==0))
{
move_left()
reading()
decoding()
printing()
}
if((x==0)&&(y==1)&&(z==1)&&(w==0))
{
move_right()
reading()
decoding()
printing()
}
if((x==0)&&(y==0)&&(z==0)&&(w==0))
{
halt()
reading()
decoding()
printing()
}
a=20
printing()
}

কোড ব্যাখ্যা

  1. প্রথমত, আমরা অকার্যকর সেটআপ করার আগে সমস্ত পরিবর্তনশীল সূচনা করি।
  2. অকার্যকর সেটআপে, ব্যবহারযোগ্য সমস্ত পিনগুলি তাদের উদ্দেশ্য অনুযায়ী ইনপুট বা আউটপুট হিসাবে নির্ধারিত হয়।
  3. একটি নতুন ফাংশন 'অকার্যকর ডিকোডিং ()' তৈরি হয়েছে। এই ফাংশনে ডিটিএমএফ থেকে আমরা যে সমস্ত বাইনারি ইনপুট পাই তা আরডুইনো দ্বারা ডিকোডাল হয়। এই দশমিক মানটির জন্য নির্ধারিত ভেরিয়েবল হ'ল ক।
  4. আরেকটি ফাংশন 'শূন্য প্রিন্টিং ()' তৈরি হয়েছে। এই ফাংশনটি ডিটিএমএফ পিনগুলি থেকে ইনপুট মানগুলি প্রিন্ট করতে ব্যবহৃত হয়।
  5. একইভাবে, প্রয়োজনীয় কার্য সম্পাদনের জন্য পাঁচটি ফাংশন প্রয়োজনীয় ফাংশন প্রয়োজন। এই ফাংশনগুলি হ'ল:

অকার্যকর সরানো (বাম) () // রোবট বাম দিকে পরিণত হয়

অকার্যকর মুভি_আরাইট () // রোবট ডান দিকে মোড় নেয়

অকার্যকর মুভি_ফরোয়ার্ড () // রোবট এগিয়ে যায়

অকার্যকর মুভি_ব্যাকওয়ার্ড () // রোবট পিছনে সরে যায়

অকার্যকর স্থগিত () // রোবট থামে

  1. এখন এই ফাংশনগুলি অকার্যকর লুপ ফাংশনে ব্যবহৃত হয় যখনই তাদের সেলফোনের ডায়ালপ্যাড থেকে ইনপুট অনুযায়ী ডাকা হয় their

উদাহরণ স্বরূপ:::

if((x==0)&&(y==0)&&(z==1)&&(w==0))
{
move_forward()
reading()
decoding()
printing()
}

অতএব যখন ইনপুট পিনগুলিতে বোতাম 2 টিপে বা 0010 পাওয়া যায়, আরডুইনো এটি ডিকোড করে এবং এই ফাংশনগুলি তাদের কাজটি করে: সামনে যাও()

পড়া ()

ডিকোডিং ()

মুদ্রণ ()

সার্কিট কাজ

আমাদের প্রকল্পে আমরা যে নিয়ন্ত্রণগুলি ব্যবহার করেছি সেগুলি নিম্নরূপ -

2 - এগিয়ে যেতে

4 - বাম দিকে ঘুরতে

6 - ডান দিকে ঘুরতে

8 - পিছনে সরানো

0 - থামাতে

রোবটের সাথে সংযুক্ত ফোনে কল করার পরে, ব্যক্তি তার ডায়াল প্যাডটি খুলবে।

  • ‘2’ চাপলে। ডিটিএমএফ ইনপুটটি গ্রহণ করে, এটির বাইনারি সমতুল্য সংখ্যায় অর্থাৎ ডেসোড করে ‘0010’ এবং এটি আরডুইনোর ডিজিটাল পিনগুলিতে প্রেরণ করে। আরডুইনো তখন এই কোডটি মোটর ড্রাইভারকে প্রেরণ করে যেমনটি আমরা প্রোগ্রাম করেছিলাম যখন কোডটি ‘0010’ হবে, মোটরগুলি ঘড়ির কাঁটার দিকে ঘুরবে এবং তাই আমাদের রোবটটি এগিয়ে যাবে।
  • যদি ‘4’ টিপে থাকে তবে এর সমতুল্য কোডটি ‘0100’ এবং প্রোগ্রামিং অনুসারে বাম পাশের মোটরগুলি বন্ধ হয়ে যাবে এবং কেবল ডান পাশের মোটরগুলি ঘড়ির কাঁটার দিকে ঘুরবে এবং তাই আমাদের রোবটটি বাম দিকে ঘুরবে।
  • যদি ‘6’ টিপানো হয় তবে ডান পাশের মোটরটি থামবে এবং কেবল বাম দিকের মোটরগুলি ঘড়ির কাঁটার দিকে ঘোরবে এবং তাই আমাদের রোবটটি ডানদিকে ঘুরবে।
  • যদি ‘8’ টিপানো হয় তবে আমাদের মোটরগুলি অ্যান্টলিক দিকের দিকে ঘোরবে এবং এইভাবে আমাদের রোবট পিছনে চলে যাবে।
  • যদি ‘0’ টিপিত হয় তবে আমাদের সমস্ত মোটর বন্ধ হয়ে যাবে এবং রোবট চলাচল করবে না।

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

মনে রাখার জন্য পয়েন্টস

1 - জ্যাকটি আলগা হওয়া উচিত নয়।

2 - ফোন কীপ্যাড টোন সর্বাধিক হওয়া উচিত।

3 - হস্তক্ষেপের প্রভাব এড়ানোর জন্য ফোন গ্রহণের ইন্টারনেট / ওয়াই-ফাই বন্ধ করা উচিত।

4 - ডিটিএমএফের বাম পিন (অর্থাত্ পিন ‘বি’) গ্রাউন্ড এবং ডান পিন (অর্থাত্ পিন ‘এ’) 3.3v এর সাথে সংযুক্ত রয়েছে।

ডিটিএমএফ ব্যবহার করে সেলফোন নিয়ন্ত্রিত রোবট গাড়ি সার্কিটের প্রোটোটাইপ চিত্রগুলি
ডিটিএমএফ ব্যবহার করে সেলফোন নিয়ন্ত্রিত আরসি কারের ভিডিও বিক্ষোভ



পূর্ববর্তী: আরডুইনোতে ইপ্রোমের পরিচিতি পরবর্তী: বিজ্ঞান মেলা প্রকল্পের জন্য এই লাইনকে অনুসরণকারী রোবট করুন