DTMF మాడ్యూల్ ఉపయోగించి మొబైల్ ఫోన్ కంట్రోల్డ్ రోబోట్ కార్

సమస్యలను తొలగించడానికి మా పరికరాన్ని ప్రయత్నించండి





ఈ ప్రాజెక్ట్‌లో మన సెల్‌ఫోన్ ద్వారా డిటిఎంఎఫ్ మాడ్యూల్ మరియు ఆర్డునో ఉపయోగించి మాన్యువల్ రోబోట్‌ను నియంత్రించబోతున్నాం.

రచన: అంకిత్ నేగి, కనిష్క్ గోడియాల్ మరియు నవనీత్ సింగ్ సజ్వాన్



DTMF మాడ్యూల్ ఉపయోగించి మొబైల్ ఫోన్ కంట్రోల్డ్ రోబోట్ కార్

పరిచయము

ఈ ప్రాజెక్ట్‌లో రెండు సెల్ ఫోన్లు, ఒకటి కాల్ చేయడానికి మరియు కాల్ స్వీకరించడానికి ఒకటి ఉపయోగించబడతాయి. కాల్ స్వీకరించే ఫోన్ ఆడియో జాక్ ద్వారా రోబోట్‌కు కనెక్ట్ చేయబడింది.

కాల్ చేస్తున్న వ్యక్తి డయల్ ప్యాడ్ కీలను నొక్కడం ద్వారా రోబోట్‌ను నియంత్రించవచ్చు. (అనగా రోబోట్‌ను ప్రపంచంలోని ఏ మూల నుంచైనా ఆపరేట్ చేయవచ్చు).



కాంపోనెంట్స్ అవసరం

1 - ఆర్డునో UNO

2 - మాన్యువల్ రోబోట్

3 - 4 మోటార్లు (ఇక్కడ మేము ఒక్కొక్కటి 300 r.p.m ఉపయోగించాము)

4 - డిటిఎంఎఫ్ మాడ్యూల్

5 - మోటార్ డ్రైవర్

6 - 12 వోల్ట్ బ్యాటరీ

7 - మారండి

8 - హెడ్‌ఫోన్ జాక్

9 - రెండు సెల్ ఫోన్లు

10 - వైర్లను కనెక్ట్ చేస్తుంది

మాన్యువల్ రోబోట్ గురించి

మాన్యువల్ రోబోట్లో చట్రం (బాడీ) ఉంటుంది, దీనిలో మూడు లేదా నాలుగు మోటార్లు (టైర్లతో చిత్తు చేయబడతాయి) అవసరాన్ని బట్టి జతచేయబడతాయి.

ఉపయోగించాల్సిన మోటార్లు మా అవసరాన్ని బట్టి ఉంటాయి, అనగా అవి అధిక వేగం లేదా అధిక టార్క్ లేదా రెండింటి యొక్క మంచి కలయికను అందించగలవు. క్వాడ్ కాప్టర్ వంటి అనువర్తనాలకు గురుత్వాకర్షణకు వ్యతిరేకంగా ఎత్తడానికి చాలా హై స్పీడ్ మోటార్లు అవసరమవుతాయి, అయితే యాంత్రిక చేయిని కదిలించడం లేదా ఏటవాలుగా ఎక్కడం వంటి అనువర్తనాలకు అధిక టార్క్ మోటార్లు అవసరం.

రోబోట్ యొక్క ఎడమ మరియు కుడి వైపున ఉన్న రెండు మోటార్లు సమాంతరంగా విడివిడిగా అనుసంధానించబడి ఉన్నాయి. సాధారణంగా అవి డిపిడిటి (డబుల్ పిన్ డబుల్ త్రో) స్విచ్‌ల ద్వారా 12 వోల్ట్ బ్యాటరీకి అనుసంధానించబడతాయి.

కానీ ఈ ప్రాజెక్ట్‌లో బోట్‌ను నియంత్రించడానికి డిపిడిటిలకు బదులుగా మొబైల్ ఫోన్‌ను ఉపయోగిస్తాము.

మోటర్ డ్రైవర్ గురించి

ఆర్డునో GPIO (జనరల్ పర్పస్ ఇన్పుట్ అవుట్పుట్) పిన్స్ ఉపయోగించి గరిష్టంగా 40mA కరెంట్ ఇస్తుంది, అయితే ఇది Vcc మరియు గ్రౌండ్ ఉపయోగించి 200mA ఇస్తుంది.

మోటార్లు పనిచేయడానికి పెద్ద కరెంట్ అవసరం. మా మోటారులను శక్తివంతం చేయడానికి మేము నేరుగా ఆర్డునోను ఉపయోగించలేము కాబట్టి మేము మోటారు డ్రైవర్‌ను ఉపయోగిస్తాము.

మోటారు డ్రైవర్‌లో హెచ్ బ్రిడ్జ్ ఉంది (ఇది ట్రాన్సిస్టర్‌ల కలయిక). మోటారు డ్రైవర్ యొక్క IC (L298) 5v చేత నడపబడుతుంది, ఇది ఆర్డునో చేత సరఫరా చేయబడుతుంది.

మోటారులను శక్తివంతం చేయడానికి, ఇది ఆర్డునో నుండి 12v ఇన్పుట్ తీసుకుంటుంది, ఇది చివరికి 12 v బ్యాటరీ ద్వారా సరఫరా చేయబడుతుంది. కాబట్టి ఆర్డునో బ్యాటరీ నుండి శక్తిని తీసుకొని మోటారు డ్రైవర్‌కు ఇస్తుంది.

ఇది 2 ఆంపియర్ల గరిష్ట విద్యుత్తును ఇవ్వడం ద్వారా మోటారుల వేగం మరియు దిశను నియంత్రించడానికి అనుమతిస్తుంది.

DTMF మాడ్యూల్‌కు పరిచయం

DTMF అంటే డ్యూయల్ టోన్ మల్టీ ఫ్రీక్వెన్సీ. మా డయల్ ప్యాడ్ రెండు టోనర్ బహుళ పౌన frequency పున్యం, అనగా ఒక బటన్ వేర్వేరు ఫ్రీక్వెన్సీ కలిగిన రెండు టోన్ల మిశ్రమాన్ని ఇస్తుంది.

ఒక టోన్ అధిక పౌన frequency పున్య సమూహం టోన్ల నుండి ఉత్పత్తి అవుతుంది, మరొకటి తక్కువ పౌన frequency పున్య సమూహం నుండి ఉత్పత్తి అవుతుంది. ఏ రకమైన వాయిస్ అయినా స్వరాలను అనుకరించలేని విధంగా ఇది జరుగుతుంది.

కాబట్టి, ఇది ఫోన్ కీప్యాడ్ యొక్క ఇన్‌పుట్‌ను నాలుగు బిట్ బైనరీ కోడ్‌గా డీకోడ్ చేస్తుంది. మేము మా ప్రాజెక్ట్‌లో ఉపయోగించిన కీప్యాడ్ సంఖ్యల పౌన encies పున్యాలు క్రింది పట్టికలో చూపించబడ్డాయి

డిజిట్లో ఫ్రీక్వెన్సీ (హెర్ట్జ్) హై ఫ్రీక్వెన్సీ (హెర్ట్జ్) 2697133647701209677014778852133609411336

డయల్ ప్యాడ్ యొక్క అంకెల యొక్క బైనరీ డీకోడ్ క్రమం క్రింది పట్టికలో చూపబడింది.

అంకెల డి 3 డి 2 డి 1 డి 0 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

సర్క్యూట్ డైగ్రామ్

కనెక్షన్లు

మోటార్ డ్రైవర్ -

  • పిన్ ‘ఎ’ మరియు ‘బి’ ఎడమ వైపు మోటారును నియంత్రిస్తుండగా పిన్ ‘సి’ మరియు ‘డి’ మోటారు కుడి వైపున నియంత్రిస్తాయి. ఈ నాలుగు పిన్స్ నాలుగు మోటారులకు అనుసంధానించబడి ఉన్నాయి.
  • పిన్ ‘ఇ’ అనేది ఆర్డునో (5 వి) నుండి తీసుకోబడిన ఐసి (ఎల్ 298) ను శక్తివంతం చేస్తుంది.
  • పిన్ ‘ఎఫ్’ గ్రౌండ్.
  • పిన్ ‘జి’ బ్యాటరీ నుండి విన్ పిన్ ఆఫ్ ఆర్డునో ద్వారా 12 వోల్ట్ శక్తిని తీసుకుంటుంది.
  • పిన్స్ ‘H’, ‘I’, ‘J’ మరియు ‘K’ arduino నుండి తర్కాన్ని పొందుతాయి.

DTMF -

  • పిన్ ‘ఎ’ 3.5 వోల్ట్ ఆర్డునోతో అనుసంధానించబడి ఉంది (ఎస్సీ 9270 డి).
  • పిన్ ‘బి’ భూమికి అనుసంధానించబడి ఉంది.
  • DTMF యొక్క ఇన్పుట్ ఫోన్ నుండి జాక్ ద్వారా తీసుకోబడుతుంది.
  • (D0 - D3) పిన్స్ ద్వారా బైనరీ డేటా రూపంలో అవుట్పుట్ arduino కి వెళుతుంది.

అర్దునో -

  • (D0 - D3) పిన్స్ నుండి DTMF యొక్క అవుట్పుట్ arduino యొక్క డిజిటల్ పిన్స్కు వస్తుంది. ఆర్డునోలోని (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. క్రొత్త ఫంక్షన్ “శూన్య డీకోడింగ్ ()” తయారు చేయబడింది. ఈ ఫంక్షన్‌లో DTMF నుండి మనకు లభించే అన్ని బైనరీ ఇన్‌పుట్ arduino ద్వారా దశాంశానికి డీకోడ్ చేయబడుతుంది. మరియు ఈ దశాంశ విలువకు కేటాయించిన వేరియబుల్ a.
  4. “శూన్య ముద్రణ ()” అనే మరొక ఫంక్షన్ తయారు చేయబడింది. ఈ ఫంక్షన్ DTMF పిన్‌ల నుండి ఇన్‌పుట్ విలువలను ముద్రించడానికి ఉపయోగించబడుతుంది.
  5. అదేవిధంగా, ఐదు విధులు అవసరం, అవసరమైన పనిని నిర్వహించడానికి ఫంక్షన్లు అవసరం. ఈ విధులు:

void move_left () // రోబోట్ ఎడమవైపు తిరుగుతుంది

void move_right () // రోబోట్ కుడివైపుకి మారుతుంది

void move_forward () // రోబోట్ ముందుకు కదులుతుంది

void move_backward () // రోబోట్ వెనుకకు కదులుతుంది

void halt () // రోబోట్ ఆగుతుంది

  1. సెల్‌ఫోన్ డయల్‌ప్యాడ్ నుండి ఇన్‌పుట్ ప్రకారం పిలిచినప్పుడల్లా ఈ విధులు శూన్య లూప్ ఫంక్షన్‌లో ఉపయోగించబడతాయి.

ఉదాహరణకి:::

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

అందువల్ల బటన్ 2 నొక్కినప్పుడు లేదా ఇన్‌పుట్ పిన్‌లపై 0010 అందుకున్నప్పుడు, ఆర్డునో దీనిని డీకోడ్ చేస్తుంది మరియు ఈ విధులు వాటి పనిని చేస్తాయి: ముందుకు పదండి()

పఠనం ()

డీకోడింగ్ ()

ముద్రణ ()

సర్క్యూట్ వర్కింగ్

మా ప్రాజెక్ట్‌లో మేము ఉపయోగించిన నియంత్రణలు ఈ క్రింది విధంగా ఉన్నాయి -

2 - ముందుకు సాగడానికి

4 - ఎడమవైపు తిరగడానికి

6 - కుడివైపు తిరగడానికి

8 - వెనుకకు వెళ్ళటానికి

0 - ఆపడానికి

రోబోట్‌కు కనెక్ట్ చేయబడిన ఫోన్‌కు కాల్ చేసిన తర్వాత, ఆ వ్యక్తి తన డయల్ ప్యాడ్‌ను తెరుస్తాడు.

  • ‘2’ నొక్కితే. DTMF ఇన్పుట్ను అందుకుంటుంది, దానిని దాని బైనరీ సమానమైన సంఖ్యలో డీకోడ్ చేస్తుంది, అనగా ‘0010’ మరియు ఆర్డ్యునో యొక్క డిజిటల్ పిన్స్కు పంపుతుంది. కోడ్ ‘0010’ అయినప్పుడు మేము ప్రోగ్రామ్ చేసినట్లుగా ఆర్డునో ఈ కోడ్‌ను మోటారు డ్రైవర్‌కు పంపుతుంది, మోటార్లు సవ్యదిశలో తిరుగుతాయి మరియు అందువల్ల మన రోబోట్ ముందుకు కదులుతుంది.
  • ‘4’ నొక్కితే దాని సమానమైన కోడ్ ‘0100’ మరియు ప్రోగ్రామింగ్ ప్రకారం ఎడమ వైపు మోటార్లు ఆగిపోతాయి మరియు కుడి వైపు మోటార్లు మాత్రమే సవ్యదిశలో తిరుగుతాయి మరియు అందువల్ల మన రోబోట్ ఎడమవైపుకి మారుతుంది.
  • ‘6’ నొక్కితే కుడి వైపు మోటారు ఆగిపోతుంది మరియు ఎడమ వైపు మోటార్లు మాత్రమే సవ్యదిశలో తిరుగుతాయి మరియు అందువల్ల మన రోబోట్ కుడివైపుకి తిరుగుతుంది.
  • ‘8’ నొక్కితే, మన మోటార్లు యాంటిక్లాక్వైస్ దిశలో తిరుగుతాయి, తద్వారా మన రోబోట్ వెనుకకు కదులుతుంది.
  • ‘0’ నొక్కితే మన మోటార్లు అన్నీ ఆగిపోతాయి మరియు రోబోట్ కదలదు.

ఈ ప్రాజెక్ట్‌లో మేము ఐదు డయల్ ప్యాడ్ సంఖ్యలకు మాత్రమే ఒక ఫంక్షన్‌ను కేటాయించాము. ఈ ప్రాజెక్ట్ యొక్క అప్‌గ్రేడ్ వెర్షన్ చేయడానికి మేము ఏ రకమైన ఇతర యంత్రాంగాన్ని జోడించవచ్చు మరియు డయల్ ప్యాడ్ నంబర్‌ను ఆ యంత్రాంగానికి కేటాయించవచ్చు.

మనస్సులో ఉంచడానికి పాయింట్లు

1 - జాక్ వదులుగా ఉండకూడదు.

2 - ఫోన్ కీప్యాడ్ టోన్లు గరిష్టంగా ఉండాలి.

3 - జోక్యం చేసుకునే ప్రభావాలను నివారించడానికి ఫోన్‌ను స్వీకరించే ఇంటర్నెట్ / వై-ఫై మూసివేయబడాలి.

4 - DTMF యొక్క ఎడమ పిన్ (అనగా పిన్ ‘బి’) భూమి మరియు కుడి పిన్ (అనగా పిన్ ‘ఎ’) 3.3 వికి అనుసంధానించబడి ఉంది.

DTMF ఉపయోగించి సెల్‌ఫోన్ నియంత్రిత రోబోట్ కార్ సర్క్యూట్ యొక్క ప్రోటోటైప్ చిత్రాలు
DTMF ఉపయోగించి సెల్‌ఫోన్ నియంత్రిత RC కారు యొక్క వీడియో ప్రదర్శన



మునుపటి: ఆర్డునోలో EEPROM పరిచయం తర్వాత: సైన్స్ ఫెయిర్ ప్రాజెక్ట్ కోసం ఈ లైన్ ఫాలోయర్ రోబోట్ చేయండి