ڈی ٹی ایم ایف ماڈیول کا استعمال کرتے ہوئے موبائل فون کنٹرول روبوٹ کار

مسائل کو ختم کرنے کے لئے ہمارے آلے کو آزمائیں





اس پروجیکٹ میں ہم ڈی ٹی ایم ایف ماڈیول اور ارڈینو کا استعمال کرتے ہوئے اپنے سیل فون کے ذریعے دستی روبوٹ کو کنٹرول کرنے جا رہے ہیں۔

منجانب: انکیت نیگی ، کنیشک گوڈیال اور نونیت سنگھ سجوان



ڈی ٹی ایم ایف ماڈیول کا استعمال کرتے ہوئے موبائل فون کنٹرول روبوٹ کار

تعارف

اس پروجیکٹ میں دو سیل فون ، ایک کال کرنے کے لئے اور ایک کال وصول کرنے کے لئے استعمال کیا گیا ہے۔ کال موصول ہونے والا فون آڈیو جیک کے ذریعہ روبوٹ سے منسلک ہے۔

جو شخص کال کر رہا ہے وہ صرف ڈائل پیڈ کی بٹنوں کو دبانے سے ہی روبوٹ کو کنٹرول کرسکتا ہے۔ (یعنی روبوٹ دنیا کے کسی بھی کونے سے چل سکتا ہے)۔



مطلوبہ اجزاء

1 - ارڈینو یو این او

2 - دستی روبوٹ

3 - 4 موٹرز (یہاں ہم نے 300 r.p.m استعمال کیا ہے)

4 - ڈیٹی ایم ایف ماڈیول

5 - موٹر ڈرائیور

6 - 12 وولٹ بیٹری

7 - سوئچ

8 - ہیڈ فون جیک

9 - دو سیل فون

10 - تاروں سے منسلک ہونا

دستی روبوٹ کے بارے میں

ایک دستی روبوٹ چیسیس (باڈی) پر مشتمل ہوتا ہے جس میں تین یا چار موٹرز (جو ٹائر سے خراب ہوتی ہیں) ضرورت کے مطابق منسلک ہوسکتی ہیں۔

استعمال ہونے والی موٹریں ہماری ضرورت پر منحصر ہیں یعنی وہ یا تو تیز رفتار یا تیز ٹورک یا دونوں کا اچھا مجموعہ فراہم کرسکتی ہیں۔ کواڈ کاپٹر جیسی ایپلی کیشنز کو کشش ثقل کے خلاف اٹھنے کے لئے بہت تیز رفتار موٹرز کی ضرورت ہوتی ہے جب کہ میکانکی بازو کو حرکت دینے یا کھڑی ڈھال پر چڑھنے جیسی درخواست میں تیز ٹورک موٹرز کی ضرورت ہوتی ہے۔

روبوٹ کے بائیں اور دائیں جانب دونوں موٹریں متوازی طور پر جڑے ہوئے ہیں۔ عام طور پر وہ ڈی پی ڈی ٹی (ڈبل پن ڈبل تھرو) سوئچ کے توسط سے 12 وولٹ بیٹری سے منسلک ہوتے ہیں۔

لیکن اس پروجیکٹ میں ہم بوٹ پر قابو پانے کیلئے ڈی پی ڈی ٹی کی بجائے موبائل فون استعمال کریں گے۔

موٹر ڈرائیور کے بارے میں

ارڈینوو GPIO (عام مقصد کے ان پٹ آؤٹ پٹ) پنوں کا استعمال کرتے ہوئے 40mA کا زیادہ سے زیادہ موجودہ دیتا ہے ، جبکہ یہ Vcc اور گراؤنڈ کا استعمال کرکے 200mA دیتا ہے۔

موٹروں کو چلانے کے ل large بڑے موجودہ کی ضرورت ہوتی ہے۔ ہم اپنی موٹروں کو چلانے کے لئے براہ راست ارڈوینو استعمال نہیں کرسکتے ہیں تاکہ ہم موٹر ڈرائیور استعمال کریں۔

موٹر ڈرائیور میں ایچ برج (جو ٹرانجسٹروں کا مرکب ہے) پر مشتمل ہے۔ موٹر ڈرائیور کی آئی سی (L298) 5v کے ذریعہ چلتی ہے جو ارڈوینو فراہم کرتی ہے۔

موٹروں کو طاقت دینے کے ل it ، یہ آرڈینو سے 12v ان پٹ لیتا ہے جو بالآخر 12 وی بیٹری فراہم کرتا ہے۔ لہذا آرڈوینو صرف بیٹری سے طاقت لیتا ہے اور موٹر ڈرائیور کو دیتا ہے۔

یہ ہمیں زیادہ سے زیادہ 2 ایمپیئر دے کر موٹروں کی رفتار اور سمت کو کنٹرول کرنے کی اجازت دیتا ہے۔

ڈیٹی ایم ایف ماڈیول کا تعارف

ڈیٹی ایم ایف کا مطلب ہے ڈوئل ٹون ملٹی فریکوئینسی۔ ہمارا ڈائل پیڈ ایک دو ٹونر متعدد تعدد ہے یعنی ایک بٹن دو ٹنوں کا مرکب دیتا ہے جس میں مختلف تعدد ہے۔

ایک ٹون اعلی تعدد گروپ سے پیدا ہوتا ہے جبکہ دوسرا کم تعدد گروپ سے ہوتا ہے۔ یہ ایسا کیا گیا ہے تاکہ کسی بھی قسم کی آواز ٹونوں کی نقل نہ کر سکے۔

لہذا ، یہ فون کیپیڈ کے ان پٹ کو چار بائنری کوڈ میں آسانی سے ڈی کوڈ کرتا ہے۔ کیپیڈ نمبروں کی تعدد جو ہم نے اپنے پروجیکٹ میں استعمال کی ہیں وہ نیچے دیئے گئے ٹیبل میں دکھایا گیا ہے

ڈجیٹ لا فریکونسی (ہرٹز) اعلی تعدد (ہرٹز) 2697133647701209677014778852133609411336

ڈائل پیڈ کے ہندسوں کا بائنری ضابطہ ربط ترتیب نیچے دیئے گئے جدول میں دکھایا گیا ہے۔

ہندسہ ڈی 3 ڈی 2 ڈی 1 D0 1 0 0 0 1 دو 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 9 1 0 0 1 0 1 0 1 0 * 1 0 1 1 # 1 1 0 0

سرکٹ ڈایاگرام

کنکشن

موٹر ڈرائیور -

  • پن ‘A’ اور ‘B’ بائیں طرف کی موٹر کو کنٹرول کرتا ہے جبکہ پن ‘C’ اور ‘D’ موٹر کے دائیں طرف کو کنٹرول کرتا ہے۔ یہ چار پن چار موٹروں سے جڑے ہوئے ہیں۔
  • پن ‘ای‘ پاور آایسی (L298) ہے جو ارڈینو (5v) سے لیا گیا ہے۔
  • پن ‘ایف’ گراؤنڈ ہے۔
  • پن ‘جی’ ارڈوینو کے ون پن کے ذریعے بیٹری سے 12 وولٹ بجلی لیتا ہے۔
  • پنوں ‘ایچ’ ، ‘میں’ ، ‘جے’ اور ‘کے’ ارڈینو سے منطق حاصل کرتے ہیں۔

ڈیٹی ایم ایف۔

  • پن ‘a’ 3.5 وولٹ آرڈوینو سے آئی سی (SC9270D) کو پاور کرنے کے لئے مربوط ہے۔
  • پن ‘بی’ زمین سے منسلک ہے۔
  • ڈی ٹی ایم ایف کا ان پٹ جیک کے ذریعے فون سے لیا جاتا ہے۔
  • (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. اسی طرح ، ضروری کام انجام دینے کے لئے پانچ افعال ضروری ہیں۔ یہ کام یہ ہیں:

باطل اقدام_ بائیں () // روبوٹ بائیں مڑ جاتا ہے

باطل مووright رائٹ () // روبوٹ دائیں مڑ جاتا ہے

باطل اقدام_فورورڈ () // روبوٹ آگے بڑھتا ہے

باطل حرکت_بیکورڈ () // روبوٹ پیچھے ہٹتا ہے

باطل رکنا () // روبوٹ رک جاتا ہے

  1. اب ان افعال کو باطل لوپ فنکشن میں اپنا کام انجام دینے کے لئے استعمال کیا جاتا ہے جب بھی انہیں سیل فون کے ڈائل پیڈ سے ان پٹ کے مطابق بلایا جاتا ہے۔

مثال کے طور پر:::

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 - مداخلت کے اثرات سے بچنے کے ل phone فون / وصول کرنے والے انٹرنیٹ / وائی فائی کو بند کرنا چاہئے۔

4 - ڈیٹی ایم ایف کا بایاں پن (یعنی پن ‘بی’) گراؤنڈ ہے اور دائیں پن (یعنی پن ‘ا’) 3.3v سے جڑا ہوا ہے۔

ڈیٹی ایم ایف کا استعمال کرتے ہوئے سیل فون پر قابو پانے والی روبوٹ کار سرکٹ کی پروٹو ٹائپ تصاویر
ڈی ٹی ایم ایف کا استعمال کرتے ہوئے سیل فون کے زیر کنٹرول آر سی کار کا ویڈیو مظاہرہ



پچھلا: اردوینو میں EEPROM کا تعارف اگلا: سائنس میلے پروجیکٹ کے لئے اس لائن فالوور روبوٹ کو بنائیں