- అవసరమైన భాగాలు:
- సర్క్యూట్ రేఖాచిత్రం:
- 8051 మైక్రోకంట్రోలర్:
- HC-05 బ్లూటూత్ మాడ్యూల్:
- ఎల్ 293 డి మోటార్ డ్రైవర్ ఐసి:
- Android ఫోన్ నియంత్రిత రోబోట్ యొక్క పని:
- కోడ్ వివరణ:
ఈ ప్రాజెక్ట్లో మేము 8051 మైక్రోకంట్రోలర్లు మరియు బ్లూటూత్ మాడ్యూల్ ఉపయోగించి ఆండ్రాయిడ్ ఫోన్ నియంత్రిత రోబోట్ను నిర్మించబోతున్నాం. రోబోట్ DC మోటార్లు ఉపయోగించి రూపొందించబడింది మరియు ఆండ్రాయిడ్ అప్లికేషన్ నుండి అందుకున్న ఆదేశాల ద్వారా DC మోటార్లు దిశ నియంత్రించబడతాయి. రోబోట్ యొక్క స్థితి Android అనువర్తనానికి తిరిగి పంపబడుతుంది. ఈ ప్రాజెక్ట్ 8051 మైక్రోకంట్రోలర్లతో హెచ్సి -05 బ్లూటూత్ మాడ్యూల్ను ఇంటర్ఫేసింగ్ చేయడానికి సహాయపడుతుంది. 8051 తో గృహోపకరణాలను నియంత్రించడానికి మేము ఇప్పటికే బ్లూటూత్ మాడ్యూల్ని ఉపయోగించాము.
అవసరమైన భాగాలు:
- 8051 మైక్రోకంట్రోలర్ (AT89S52)
- HC-05 బ్లూటూత్ మాడ్యూల్
- ఎల్ 293 డి మోటార్ డ్రైవర్
- రోబోట్ చట్రం
- డిసి మోటార్స్ (2)
- చక్రాలు (2)
- కాస్టర్ వీల్
- జంపర్ వైర్లు
- బ్లూటూత్ టెర్మినల్ ఆండ్రాయిడ్ అనువర్తనం
సర్క్యూట్ రేఖాచిత్రం:
8051 మైక్రోకంట్రోలర్:
8051 మైక్రోకంట్రోలర్ 8-బిట్ మైక్రోకంట్రోలర్, ఇది చిప్ ర్యామ్లో 128 బైట్లు, చిప్ రామ్లో 4 కె బైట్లు, రెండు టైమర్లు, ఒక సీరియల్ పోర్ట్ మరియు నాలుగు 8 బిట్ పోర్ట్లను కలిగి ఉంది. 8052 మైక్రోకంట్రోలర్ 8051 మైక్రోకంట్రోలర్ యొక్క పొడిగింపు. ఈ ప్రాజెక్ట్లో మేము AT89S52 మైక్రోకంట్రోలర్ను ఉపయోగిస్తున్నాము. 8051 కుటుంబ సభ్యుల పోలికను క్రింది పట్టిక చూపిస్తుంది.
ఫీచర్ |
8051 |
8052 |
ROM (బైట్లలో) |
4 కె |
8 కె |
RAM (బైట్లు) |
128 |
256 |
టైమర్లు |
2 |
3 |
I / O పిన్స్ |
32 |
32 |
సీరియల్ పోర్ట్ |
1 |
1 |
అంతరాయ మూలాలు |
6 |
8 |
HC-05 బ్లూటూత్ మాడ్యూల్:
HC-05 ఒక సీరియల్ బ్లూటూత్ మాడ్యూల్. ఇది AT ఆదేశాలను ఉపయోగించి కాన్ఫిగర్ చేయవచ్చు. ఇది మూడు వేర్వేరు కాన్ఫిగరేషన్లలో (మాస్టర్, స్లేవ్, లూప్ బ్యాక్) పనిచేయగలదు. మా ప్రాజెక్ట్లో మేము దానిని బానిసగా ఉపయోగిస్తాము. HC-05 మాడ్యూల్ యొక్క లక్షణాలు,
- సాధారణ -80 డిబిఎమ్ సున్నితత్వం.
- డిఫాల్ట్ బాడ్ రేటు: 9600 బిపిఎస్, 8 డేటా బిట్స్, 1 స్టాప్ బిట్, పారిటీ లేదు.
- ఆటో-జత పిన్ కోడ్: “1234” డిఫాల్ట్ పిన్ కోడ్
- దీనికి 6 పిన్స్ ఉన్నాయి.
- HC-05 ను శక్తివంతం చేయడానికి Vcc మరియు Gnd పిన్లను ఉపయోగిస్తారు.
- మైక్రోకంట్రోలర్తో కమ్యూనికేట్ చేయడానికి Tx మరియు Rx పిన్లను ఉపయోగిస్తారు.
- HC-05 మాడ్యూల్ను సక్రియం చేయడానికి పిన్ను ప్రారంభించండి. అది తక్కువగా ఉన్నప్పుడు, మాడ్యూల్ నిలిపివేయబడుతుంది
- స్టేట్ పిన్ స్థితి సూచికగా పనిచేస్తుంది. ఇది ఇతర బ్లూటూత్ పరికరంతో జత చేయనప్పుడు / కనెక్ట్ కానప్పుడు, LED నిరంతరం వెలుగుతుంది. ఇది ఏదైనా ఇతర బ్లూటూత్ పరికరంతో అనుసంధానించబడినప్పుడు / జత చేసినప్పుడు, LED 2 సెకన్ల ఆలస్యం తో మెరుస్తుంది.
ఎల్ 293 డి మోటార్ డ్రైవర్ ఐసి:
ఎల్ 293 డి డ్యూయల్ హెచ్-బ్రిడ్జ్ మోటార్ డ్రైవర్ ఐసి. ఇది ప్రస్తుత యాంప్లిఫైయర్గా పనిచేస్తుంది, L293D యొక్క అవుట్పుట్ DC మోటార్స్ను నడుపుతుంది. ఇది రెండు అంతర్నిర్మిత హెచ్-బ్రిడ్జ్ సర్క్యూట్లను కలిగి ఉంది. సాధారణ ఆపరేషన్ మోడ్లో, ఇది రెండు దిశలలో ఒకేసారి రెండు డిసి మోటార్లు నడపగలదు. దిగువ పట్టిక L293D IC యొక్క పిన్ వివరణను చూపుతుంది. L293D మోటార్ డ్రైవర్ ఉపయోగించి కొన్ని ప్రాజెక్టులు ఇక్కడ ఉన్నాయి.
పిన్ వివరణ
పిన్ నం. |
పేరు |
ఫంక్షన్ |
1 |
1,2 ని ప్రారంభించండి |
మోటారు 1 కోసం పిన్ను ప్రారంభించండి |
2 |
ఇన్పుట్ 1 |
మోటారు 1 కోసం ఇన్పుట్ 1 |
3 |
అవుట్పుట్ 1 |
మోటారు 1 కోసం అవుట్పుట్ 1 |
4 |
Gnd |
గ్రౌండ్ (0 వి) |
5 |
Gnd |
గ్రౌండ్ (0 వి) |
6 |
అవుట్పుట్ 2 |
మోటారు 1 కోసం అవుట్పుట్ 2 |
7 |
ఇన్పుట్ 2 |
మోటారు 1 కోసం ఇన్పుట్ 2 |
8 |
Vcc 2 |
మోటార్లు (5 వి) కోసం సరఫరా వోల్టేజ్ |
9 |
3,4 ని ప్రారంభించండి |
మోటారు 1 కోసం పిన్ను ప్రారంభించండి |
10 |
ఇన్పుట్ 3 |
మోటారు 2 కోసం ఇన్పుట్ 1 |
11 |
అవుట్పుట్ 4 |
మోటారు 2 కోసం అవుట్పుట్ 1 |
12 |
Gnd |
గ్రౌండ్ (0 వి) |
13 |
Gnd |
గ్రౌండ్ (0 వి) |
14 |
అవుట్పుట్ 4 |
మోటారు 2 కోసం అవుట్పుట్ 2 |
15 |
ఇన్పుట్ 4 |
మోటారు 2 కోసం ఇన్పుట్ 2 |
16 |
Vcc 1 |
సరఫరా వోల్టేజ్ (5 వి) |
Android ఫోన్ నియంత్రిత రోబోట్ యొక్క పని:
ఈ స్మార్ట్ ఫోన్ నియంత్రిత రోబోట్లో, ఆండ్రాయిడ్ యాప్ యూజర్ హెచ్సి -05 మాడ్యూల్ ద్వారా డేటాను 8051 మైక్రోకంట్రోలర్కు పంపుతుంది. అందుకున్న డేటాను 8051 మైక్రోకంట్రోలర్లో పోల్చారు మరియు తదనుగుణంగా నిర్ణయం తీసుకుంటారు. దిగువ పట్టిక వేర్వేరు స్వీకరించిన అక్షరాల కోసం మోటార్లు మరియు రోబోట్ యొక్క స్థితిని చూపుతుంది.
అందుకున్న పాత్ర |
మోటార్ 1 |
మోటార్ 2 |
రోబోట్ యొక్క స్థితి |
f |
ముందుకు |
ముందుకు |
ముందుకు కదులుతుంది |
బి |
వెనుకబడిన |
వెనుకబడిన |
వెనుకకు కదులుతుంది |
r |
ముందుకు |
వెనుకబడిన |
కుడివైపుకి కదులుతుంది |
l |
వెనుకబడిన |
ముందుకు |
ఎడమవైపుకి కదులుతుంది |
s |
ఆఫ్ |
ఆఫ్ |
ఆగిపోయింది |
Bluetooth టెర్మినల్ అనువర్తనం మాకు బ్లూటూత్ టెర్మినల్ అనుకరించే అనుమతిస్తుంది. ఈ అనువర్తనం ద్వి దిశాత్మక సమాచార మార్పిడికి మద్దతు ఇస్తుంది మరియు ఈ అనువర్తనం చాలా పరికరాలకు అనుకూలంగా ఉంటుంది.
దిగువ దశలు ఈ అనువర్తనాన్ని ఎలా ఇన్స్టాల్ చేయాలో మరియు ఉపయోగించాలో చూపుతాయి.
1. మీ Android ఫోన్లో బ్లూటూత్ టెర్మినల్ అనువర్తనాన్ని డౌన్లోడ్ చేసి, ఇన్స్టాల్ చేయండి. అనువర్తనం క్రింది లింక్ నుండి డౌన్లోడ్ చేసుకోవచ్చు.
play.google.com/store/apps/details?id=ptah.apps.bluetoothterminal
2. అనువర్తనాన్ని ఇన్స్టాల్ చేసిన తర్వాత, అనువర్తనాన్ని తెరిచి బ్లూటూత్ను ఆన్ చేయండి.
3. పరికరాన్ని ఎంచుకోండి మరియు కనెక్ట్ ఎంపికపై క్లిక్ చేయండి. విజయవంతమైన కనెక్షన్ తరువాత, మేము HC-05 మాడ్యూల్కు డేటాను పంపడం ప్రారంభించవచ్చు.
అవసరమైన మోటార్లు తిప్పడానికి 8051 మైక్రోకంట్రోలర్ చేత అక్షరం ఎలా పంపబడి, స్వీకరించబడిందో చూడటానికి ఈ క్రింది కోడ్ వివరణను తనిఖీ చేయండి.
కోడ్ వివరణ:
ఈ ప్రాజెక్ట్ కోసం పూర్తి సి ప్రోగ్రామ్ మరియు ప్రదర్శన వీడియో ఈ ప్రాజెక్ట్ చివరిలో ఇవ్వబడింది. కోడ్ చిన్న అర్ధవంతమైన భాగాలుగా విభజించబడింది మరియు క్రింద వివరించబడింది.
8051 మైక్రోకంట్రోలర్లతో L293D ఇంటర్ఫేసింగ్ కోసం, L293D 8051 మైక్రోకంట్రోలర్కు అనుసంధానించబడిన పిన్లను మేము నిర్వచించాలి. మోటారు 1 యొక్క In1 పిన్ P2.0 కి, మోటారు 1 యొక్క In2 పిన్ P2.1 కి అనుసంధానించబడి ఉంది, మోటారు 2 యొక్క In1 పిన్ P2.2 కి అనుసంధానించబడి ఉంది, మోటారు 2 యొక్క In2 పిన్ P2.3 కి అనుసంధానించబడి ఉంది
sbit m1f = P2 ^ 0; మోటారు 1 sbit // in1 పిన్ m1b = P2 ^ 1; మోటారు 1 sbit // in2 పిన్ m2f = P2 ^ 2; మోటారు 2 యొక్క // ఇన్ 1 పిన్ sbit m2b = P2 ^ 3; మోటారు 2 యొక్క // ఇన్ 2 పిన్
తరువాత మనం ప్రోగ్రామ్లో ఉపయోగించే కొన్ని ఫంక్షన్లను నిర్వచించాలి. పేర్కొన్న సమయం ఆలస్యాన్ని సృష్టించడానికి ఆలస్యం ఫంక్షన్ ఉపయోగించబడుతుంది. Txdata ఫంక్షన్ సీరియల్ పోర్ట్ ద్వారా డేటాను ప్రసారం చేయడానికి ఉపయోగించబడుతుంది. Rxdata ఫంక్షన్ సీరియల్ పోర్ట్ నుండి డేటాను స్వీకరించడానికి ఉపయోగించబడుతుంది.
శూన్య ఆలస్యం (సంతకం చేయని పూర్ణాంకం); ఆలస్యం చార్ rxdata (శూన్యమైనది) సృష్టించడానికి // ఫంక్షన్; 8051 శూన్యమైన txdata (సంతకం చేయని చార్) యొక్క సీరియల్ పోర్ట్ ద్వారా అక్షరాన్ని స్వీకరించడానికి // ఫంక్షన్; 8051 యొక్క సీరియల్ పోర్ట్ ద్వారా అక్షరాన్ని పంపే // ఫంక్షన్
కోడ్ యొక్క ఈ భాగంలో మేము సీరియల్ కమ్యూనికేషన్ కోసం 8051 మైక్రోకంట్రోలర్ను కాన్ఫిగర్ చేయబోతున్నాము. TMOD రిజిస్టర్ టైమర్ 1, మోడ్ 2 (ఆటో రీలోడ్) కోసం 0x20 తో లోడ్ చేయబడింది. SCON రిజిస్టర్ 8 డేటా బిట్స్, 1 స్టాప్ బిట్ మరియు ఎనేబుల్డ్ కోసం 0x50 తో లోడ్ చేయబడింది. TH1 రిజిస్టర్ 0xfd తో బాడ్ రేటుకు సెకనుకు 9600 బిట్స్ లోడ్ అవుతుంది. టైమర్ ప్రారంభించడానికి TR1 = 1 ఉపయోగించబడుతుంది.
TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; టిఆర్ 1 = 1; కోడ్ యొక్క ఈ భాగంలో, rxdata ఫంక్షన్ యొక్క తిరిగి వచ్చిన అక్షరం మరింత ఉపయోగం కోసం వేరియబుల్ 's' లో నిల్వ చేయబడుతుంది.
s = rxdata (); // hc-05 బ్లూటూత్ మాడ్యూల్ నుండి సీరియల్ డేటాను స్వీకరించండి
కోడ్ యొక్క ఈ భాగంలో, మేము అందుకున్న అక్షరాన్ని వేర్వేరు దిశల కోసం ముందుగా కేటాయించిన అక్షరాలతో పోల్చాలి. అందుకున్న అక్షరం 'f' అయితే, రోబోట్ ముందుకు వెళ్ళాలి. M1f, m2f పిన్లను అధికంగా మరియు m1b, m2b పిన్లను తక్కువగా చేయడం ద్వారా ఇది సాధించబడుతుంది. ఇది పూర్తయిన తర్వాత, మేము రోబోట్ యొక్క స్థితిని Android అనువర్తనానికి పంపాలి. ఇది txdata ఫంక్షన్ సహాయంతో జరుగుతుంది. అందుకున్న వేర్వేరు అక్షరాల కోసం ఒకే ప్రక్రియ పునరావృతమవుతుంది మరియు తదనుగుణంగా నిర్ణయం తీసుకోబడుతుంది. రోబోట్ యొక్క కదలిక యొక్క వివిధ దిశల కొరకు టేబుల్ 1 m1f, m1b, m2f, m2b యొక్క విభిన్న విలువలను చూపుతుంది.
if (s == 'f') // రెండు మోటార్లు ముందుకు దిశలో కదిలిస్తే {m1f = 1; ఆలస్యం (1); m1b = 0; ఆలస్యం (1); m2f = 1; ఆలస్యం (1); m2b = 0; ఆలస్యం (1); (i = 0; msg1! = '\ 0'; i ++) // బ్లూటూత్ {txdata (msg1) ద్వారా ఆండ్రాయిడ్ అనువర్తనానికి రోబోట్ స్థితిని పంపండి; }}
m1f |
m1 బి |
m2f |
m2b |
మోటార్ 1 భ్రమణం |
మోటార్ 2 భ్రమణం |
రోబోట్ యొక్క స్థితి |
1 |
0 |
1 |
0 |
ముందుకు |
ముందుకు |
ముందుకు కదిలే |
0 |
1 |
0 |
1 |
రివర్స్ |
రివర్స్ |
వెనుకకు కదులుతోంది |
1 |
0 |
0 |
1 |
ముందుకు |
రివర్స్ |
కుడివైపుకి కదులుతోంది |
0 |
1 |
1 |
0 |
రివర్స్ |
ముందుకు |
ఎడమవైపుకి కదులుతోంది |
0 |
0 |
0 |
0 |
ఆగిపోయింది |
ఆగిపోయింది |
ఆగిపోయింది |
8051 మైక్రోకంట్రోలర్ ఉపయోగించి నాలుగు మోటార్లు నియంత్రించడం ద్వారా మీరు రోబోట్ కారును ఏ దిశలోనైనా తిప్పవచ్చు. మీకు ఆండ్రాయిడ్ ఫోన్ లేకపోతే 8051 తో డిటిఎంఎఫ్ ఉపయోగించి కూడా ఈ రోబోట్ను నియంత్రించవచ్చు.
ఇక్కడ అన్ని రోబోటిక్స్ ప్రాజెక్టులను కూడా తనిఖీ చేయండి.