- బ్లూటూత్ కమ్యూనికేషన్ కోసం అవసరమైన ప్యాకేజీలను వ్యవస్థాపించడం:
- బ్లూటూత్ ద్వారా రాస్ప్బెర్రీ పైతో పరికరాలను జత చేయడం:
- టాయ్ కారును ఎంచుకోవడం:
- సర్క్యూట్ రేఖాచిత్రం మరియు వివరణ:
- Android App బ్లూటెర్మ్తో కారును రిమోట్గా నియంత్రించడం:
- పైథాన్ ప్రోగ్రామింగ్:
రాస్ప్బెర్రీ పై ఇంటర్నెట్ ద్వారా వైర్లెస్ కమ్యూనికేషన్ యొక్క అతుకులు సామర్థ్యం కారణంగా IoT ప్రాజెక్టులకు బాగా ప్రాచుర్యం పొందింది. రాస్ప్బెర్రీ పై 3 లో అంతర్నిర్మిత వై-ఫై మరియు బ్లూటూత్ ఉన్నాయి, మరియు బ్లూటూత్ చాలా ప్రాచుర్యం పొందిన వైర్లెస్ కమ్యూనికేషన్ ప్రోటోకాల్. ఈ రోజు మనం రాస్ప్బెర్రీ పై 3 మరియు బ్లూటూత్ ఉపయోగించి రిమోట్ కంట్రోల్డ్ కారును నిర్మించబోతున్నాము , ఇక్కడ మేము కారును నియంత్రించడానికి స్మార్ట్ ఫోన్ను రిమోట్గా ఉపయోగిస్తాము. మేము ఇంతకుముందు ఆర్డునో ఉపయోగించి ఈ ఆర్సి కారును సృష్టించాము.
ఇక్కడ మేము అంతర్నిర్మిత బ్లూటూత్ కలిగి ఉన్న రాస్ప్బెర్రీ పై 3 ని ఉపయోగిస్తున్నాము, కాబట్టి మనం బాహ్య USB బ్లూటూత్ డాంగల్ ఉపయోగించాల్సిన అవసరం లేదు. ఇక్కడ మేము వైర్లెస్ కమ్యూనికేషన్ కోసం RFCOMM బ్లూటూత్ ప్రోటోకాల్ను ఉపయోగిస్తున్నాము.
పైథాన్లో బ్లూటూత్ కోసం ప్రోగ్రామింగ్ సాకెట్ ప్రోగ్రామింగ్ నమూనాను అనుసరిస్తుంది మరియు బ్లూటూత్ పరికరాల మధ్య సమాచార మార్పిడి RFCOMM సాకెట్ ద్వారా జరుగుతుంది. RFCOMM (రేడియో ఫ్రీక్వెన్సీ కమ్యూనికేషన్) అనేది బ్లూటూత్ ప్రోటోకాల్, ఇది ఎమ్యులేటెడ్ RS-232 సీరియల్ పోర్టులను అందించింది మరియు దీనిని సీరియల్ పోర్ట్ ఎమ్యులేషన్ అని కూడా పిలుస్తారు. బ్లూటూత్ సీరియల్ పోర్ట్ ప్రొఫైల్ ఈ ప్రోటోకాల్ ఆధారంగా ఉంటుంది. RFCOMM బ్లూటూత్ అనువర్తనాలలో బాగా ప్రాచుర్యం పొందింది ఎందుకంటే విస్తృత మద్దతు మరియు బహిరంగంగా అందుబాటులో ఉన్న API. ఇది L2CAP ప్రోటోకాల్కు కట్టుబడి ఉంటుంది.
మీకు రాస్ప్బెర్రీ పై 2 ఉంటే, మీరు బాహ్య బ్లూటూత్ డాంగిల్ లేదా బ్లూటూత్ మాడ్యూల్ HC-06 ను ఉపయోగించాలి. ఈ బాహ్య బ్లూటూత్ పరికరాలను ఉపయోగించడం కోసం మా మునుపటి ప్రాజెక్ట్లను తనిఖీ చేయండి: బ్లూటూత్ మరియు రాస్ప్బెర్రీ పై నియంత్రిత గృహోపకరణాల ద్వారా Android అనువర్తనాన్ని ఉపయోగించి రాస్ప్బెర్రీ పై GPIO ని నియంత్రించడం.
బ్లూటూత్ కమ్యూనికేషన్ కోసం అవసరమైన ప్యాకేజీలను వ్యవస్థాపించడం:
ప్రారంభించడానికి ముందు, రాస్ప్బెర్రీ పైలో బ్లూటూత్ కమ్యూనికేషన్ను సెటప్ చేయడానికి మేము కొన్ని సాఫ్ట్వేర్లను ఇన్స్టాల్ చేయాలి. మీరు రాస్ప్బెర్రీ పైతో రాస్పియన్ జెస్సీ వ్యవస్థాపించిన మెమరీ కార్డును కలిగి ఉండాలి. రాస్ప్బియన్ OS ని ఇన్స్టాల్ చేయడానికి మరియు రాస్ప్బెర్రీ పైతో ప్రారంభించడానికి ఈ కథనాన్ని తనిఖీ చేయండి. కాబట్టి ఇప్పుడు మనం మొదట దిగువ ఆదేశాలను ఉపయోగించి రాస్పియన్ను నవీకరించాలి:
sudo apt-get update sudo apt-get update
అప్పుడు మేము కొన్ని బ్లూటూత్ సంబంధిత ప్యాకేజీలను వ్యవస్థాపించాలి:
sudo apt-get install బ్లూటూత్ బ్లూమాన్ బ్లూజ్
అప్పుడు రాస్ప్బెర్రీ పైని రీబూట్ చేయండి:
sudo రీబూట్
బ్లూజెడ్ అనేది ఓపెన్ సోర్స్ ప్రాజెక్ట్ మరియు అధికారిక లైనక్స్ బ్లూటూత్ ప్రోటోకాల్ స్టాక్. ఇది అన్ని కోర్ బ్లూటూత్ ప్రోటోకాల్లకు మద్దతు ఇస్తుంది మరియు ఇప్పుడు అధికారిక లైనక్స్ కెర్నల్లో భాగమైంది.
బ్లూటూత్ పరికరాలను నిర్వహించడానికి మరియు నియంత్రించడానికి డెస్క్టాప్ ఇంటర్ఫేస్ను బ్లూమాన్ అందిస్తుంది.
చివరగా మాకు బ్లూటూత్ కమ్యూనికేషన్ కోసం పైథాన్ లైబ్రరీ అవసరం, తద్వారా పైథాన్ భాషను ఉపయోగించి RFCOMM ద్వారా డేటాను పంపవచ్చు మరియు స్వీకరించవచ్చు:
sudo apt-get install పైథాన్-బ్లూటూత్
రాస్ప్బెర్రీ పై కోసం GPIO మద్దతు లైబ్రరీలను కూడా వ్యవస్థాపించండి:
sudo apt-get install python-rpi.gpio
ఇప్పుడు మేము రాస్ప్బెర్రీ పైలో బ్లూటూత్ కమ్యూనికేషన్ కోసం అవసరమైన ప్యాకేజీలను వ్యవస్థాపించాము.
బ్లూటూత్ ద్వారా రాస్ప్బెర్రీ పైతో పరికరాలను జత చేయడం:
రాస్ప్బెర్రీ పైతో మొబైల్ ఫోన్ వంటి బ్లూటూత్ పరికరాలను జత చేయడం చాలా సులభం. ఇక్కడ మేము మా Android స్మార్ట్ ఫోన్ను రాస్ప్బెర్రీ పైతో జత చేసాము. మేము ఇంతకుముందు పైలో బ్లూజెడ్ను ఇన్స్టాల్ చేసాము, ఇది మా బ్లూటూత్ పరికరాలను నిర్వహించడానికి “బ్లూటూత్క్ట్ల్” అనే కమాండ్ లైన్ యుటిలిటీని అందిస్తుంది.
ఇప్పుడు దిగువ ఆదేశం ద్వారా బ్లూటూత్క్ట్ యుటిలిటీని తెరవండి:
sudo బ్లూటూత్క్ట్ల్
'సహాయం' అని టైప్ చేయడం ద్వారా మీరు బ్లూటూత్క్ట్ యుటిలిటీ యొక్క అన్ని ఆదేశాలను తనిఖీ చేయవచ్చు. ప్రస్తుతానికి మనం ఇచ్చిన క్రమంలో క్రింద ఆదేశాలను నమోదు చేయాలి:
# స్కాన్ ఆన్లో # పేరెంట్పై # కనుగొనదగిన # ఏజెంట్పై # శక్తి
చివరి ఆదేశం “స్కాన్ ఆన్” తరువాత, మీరు జాబితాలో మీ బ్లూటూత్ పరికరాన్ని (మొబైల్ ఫోన్) చూస్తారు. మీ మొబైల్ బ్లూటూత్ ఆన్ చేసి, సమీప పరికరాల ద్వారా కనిపించేలా చూసుకోండి. అప్పుడు మీ పరికరం యొక్క MAC చిరునామాను కాపీ చేసి, ఇచ్చిన ఆదేశాన్ని ఉపయోగించి జత చేయండి:
జత
అప్పుడు మీరు మీ టెర్మినల్ కన్సోల్లో పాస్కోడ్ లేదా పిన్ కోసం ప్రాంప్ట్ చేయబడతారు, ఆపై పాస్కోడ్ను టైప్ చేసి ఎంటర్ నొక్కండి. ప్రాంప్ట్ చేసినప్పుడు అదే పాస్కోడ్ను మీ మొబైల్ ఫోన్లో టైప్ చేయండి మరియు మీరు ఇప్పుడు రాస్ప్బెర్రీ పైతో విజయవంతంగా జత చేస్తారు. మునుపటి GPIO కంట్రోలింగ్ ట్యుటోరియల్లో ఇచ్చిన వీడియోలో కూడా ఈ మొత్తం ప్రక్రియను వివరించాము. ఇక్కడ ప్రత్యక్ష యూట్యూబ్ లింక్ ఉంది.
ముందే చెప్పినట్లుగా, మీరు మొబైల్ ఫోన్ను జత చేయడానికి డెస్క్టాప్ ఇంటర్ఫేస్ను కూడా ఉపయోగించవచ్చు. బ్లూమాన్ను ఇన్స్టాల్ చేసిన తర్వాత, క్రింద చూపిన విధంగా మీ రాస్ప్బెర్రీ పై డెస్క్టాప్ యొక్క కుడి వైపున బ్లూటూత్ చిహ్నాన్ని మీరు చూస్తారు, వీటిని ఉపయోగించి మీరు సులభంగా జత చేయవచ్చు.
టాయ్ కారును ఎంచుకోవడం:
ఈ రాస్ప్బెర్రీ పై కంట్రోల్డ్ కార్ ప్రాజెక్ట్ లో మేము బొమ్మ కారును ప్రదర్శన కోసం ఉపయోగించాము. ఇక్కడ మేము ఎడమ-కుడి స్టీరింగ్ ఫీచర్తో కదిలే RF బొమ్మ కారును ఎంచుకున్నాము. ఈ కారును కొనుగోలు చేసిన తరువాత మేము దాని RF సర్క్యూట్ను మా రాస్ప్బెర్రీ సర్క్యూట్తో భర్తీ చేసాము. ఈ కారులో రెండు డిసి మోటార్లు ఉన్నాయి, ఒకటి రెండు ముందు చక్రాలను తిప్పడం మరియు మరొకటి రెండు వెనుక చక్రాలను తిప్పడం. ఫ్రంట్ సైడ్ మోటారును కారుకు దిశానిర్దేశం చేయడానికి ఉపయోగిస్తారు అంటే ఎడమ లేదా కుడి వైపు తిరగడం (నిజమైన కార్ స్టీరింగ్ ఫీచర్ వంటివి). మరియు వెనుక వైపు మోటారు కారును ముందుకు మరియు వెనుకకు నడిపించడానికి ఉపయోగిస్తారు. కారును నియంత్రించడానికి ఆండ్రాయిడ్ ఫోన్ నుండి వైర్లెస్ లేకుండా ఆదేశాన్ని స్వీకరించడానికి రాస్ప్బెర్రీ యొక్క బ్లూటూత్ ఉపయోగించబడుతుంది.
ఫ్రంట్ మరియు రియర్ వీల్స్ తిప్పడానికి రెండు డిసి మోటార్స్ ఉన్న ఏదైనా బొమ్మ కారును మీరు ఉపయోగించవచ్చు.
సర్క్యూట్ రేఖాచిత్రం మరియు వివరణ:
ఈ రిమోట్ కంట్రోల్డ్ కారులో, మేము రాస్ప్బెర్రీ పైని L293D మాడ్యూల్ ఉపయోగించి రెండు మోటారులతో మాత్రమే కనెక్ట్ చేయాలి. రాస్ప్బెర్రీ పై మరియు కారును శక్తివంతం చేయడానికి మేము మొబైల్ పవర్ బ్యాంకును ఉపయోగించాము. రాస్ప్బెర్రీ పై మరియు కారు యొక్క మోటారులను శక్తివంతం చేయడానికి మొబైల్ పవర్ బ్యాంక్ సరిపోతుంది కాని మేము పవర్ బ్యాంక్ ను కారుపై ఉంచినప్పుడు మొబైల్ పవర్ బ్యాంక్ కారు యొక్క అధిక బరువు కారణంగా సరిగా కదలలేరు. కాబట్టి వ్యవస్థను శక్తివంతం చేయడానికి తక్కువ బరువు గల విద్యుత్ సరఫరా లేదా లిథియం బ్యాటరీలను ఉపయోగించమని మేము సిఫార్సు చేస్తున్నాము. అన్ని కనెక్షన్లు క్రింద సర్క్యూట్ రేఖాచిత్రంలో చూపించబడ్డాయి. విభిన్న సాంకేతిక పరిజ్ఞానాలతో మోటార్లను నియంత్రించడం గురించి మరింత తెలుసుకోవడానికి మా రోబోటిక్స్ విభాగాన్ని కూడా తనిఖీ చేయండి.
గమనిక: కోరిందకాయ పైకి 5v కన్నా ఎక్కువ ఉంచవద్దు.
ఈ ప్రాజెక్ట్ కోసం పెర్ఫ్ బోర్డులో ఈ సర్క్యూట్ తయారు చేయబడింది, తద్వారా కారుపై తక్కువ బరువు ఉంటుంది.
Android App బ్లూటెర్మ్తో కారును రిమోట్గా నియంత్రించడం:
ఇప్పుడు అన్ని విషయాలను సెటప్ చేసి, బ్లూటూత్ ద్వారా స్మార్ట్ ఫోన్ను విజయవంతంగా అన్వయించడానికి ప్రయత్నించిన తరువాత , బ్లూటూత్ సీరియల్ అడాప్టర్ను ఉపయోగించి రాస్ప్బెర్రీ పైతో కమ్యూనికేట్ చేయడానికి మేము Android అనువర్తనాన్ని ఇన్స్టాల్ చేయాలి , తద్వారా మేము రాస్ప్బెర్రీ పై యొక్క GPIO పిన్లను నియంత్రించవచ్చు. ఇంతకు ముందు చెప్పినట్లుగా RFCOMM / SPP ప్రోటోకాల్ బ్లూటూత్ ద్వారా సీరియల్ కమ్యూనికేషన్ను అనుకరిస్తుంది, కాబట్టి మేము ఈ ప్రోటోకాల్కు మద్దతు ఇచ్చే బ్లూటెర్మ్ యాప్ను ఇక్కడ ఇన్స్టాల్ చేసాము.
మీరు RFCOMM సాకెట్ ద్వారా కమ్యూనికేషన్కు మద్దతు ఇచ్చే ఇతర బ్లూటూత్ టెర్మినల్ అనువర్తనాన్ని కూడా ఉపయోగించవచ్చు.
ఇప్పుడు బ్లూటెర్మ్ యాప్ను డౌన్లోడ్ చేసి, ఇన్స్టాల్ చేసిన తర్వాత, టెర్మినల్ నుండి క్రింద ఇచ్చిన పైథాన్ ప్రోగ్రామ్ను రన్ చేయండి మరియు అదే సమయంలో బ్లూటెర్మ్ యాప్ నుండి జత చేసిన కోరిందకాయ పరికరాన్ని కనెక్ట్ చేయండి.
విజయవంతమైన కనెక్షన్ తర్వాత మీరు కనెక్ట్ చేయబడినట్లు చూస్తారు : క్రింద చూపిన విధంగా అనువర్తనం యొక్క కుడి ఎగువ మూలలో కోరిందకాయ :
కారును కావలసిన దిశలో కదిలించేలా ఇప్పుడు మీరు బ్లూటెర్మ్ అనువర్తనం నుండి క్రింది ఆదేశాలను నమోదు చేయవచ్చు. ప్రోగ్రామ్ నుండి నిష్క్రమించడానికి 'q' నొక్కండి. మీ వాయిస్ ఉపయోగించి ఈ కారును నియంత్రించడానికి మీరు Google వాయిస్ టైపింగ్ కీబోర్డ్ను ఉపయోగించవచ్చు. చివరిలో ఇచ్చిన వీడియోలో పూర్తి డెమోని తనిఖీ చేయండి.
ఆదేశాలు:
ఎఫ్ - ఫార్వర్డ్ మూవ్
బి - వెనుకబడిన కదలిక
ఎస్ - ఆపు
ఎల్ - ఫార్వర్డ్ లెఫ్ట్ మూవ్
R - ఫార్వర్డ్ రైట్ మూవ్
A - వెనుకబడిన ఎడమ కదలిక
పి - వెనుకబడిన కుడి కదలిక
ప్ర - నిష్క్రమించండి
పైథాన్ ప్రోగ్రామింగ్:
ఆండ్రాయిడ్ యాప్తో రాస్ప్బెర్రీ పై GPIO ని నియంత్రించడానికి పైథాన్ ప్రోగ్రామ్ చాలా సులభం మరియు స్వీయ వివరణాత్మకమైనది. బ్లూటూత్ RFCOMM కమ్యూనికేషన్కు సంబంధించిన కోడ్ గురించి మనం కొంచెం నేర్చుకోవాలి. లేకపోతే మోటారు పిన్ను ఎక్కువ లేదా తక్కువగా చేయడం ద్వారా ఏదైనా రోబోట్ లేదా కారును నియంత్రించడం వంటిది. పూర్తి ప్రోగ్రామ్ కోడ్ విభాగంలో క్రింద ఇవ్వబడింది.
మొదట, మేము బ్లూటూత్ సాకెట్ లైబ్రరీని దిగుమతి చేసుకోవాలి, ఇది పైథాన్ భాషతో బ్లూటూత్ను నియంత్రించగలుగుతుంది; మేము మునుపటి విభాగంలో లైబ్రరీని ఇన్స్టాల్ చేసాము.
బ్లూటూత్ దిగుమతి
అప్పుడు మేము మరికొన్ని హెడర్ ఫైళ్ళను చేర్చుకున్నాము మరియు మోటార్లు పిన్స్ డిఫాల్ట్ తక్కువగా ఉన్నాయని నిర్వచించండి.
బ్లూటూత్ దిగుమతి సమయం దిగుమతి RPi.GPIO GPIO m11 = 18 m12 = 23 m21 = 24 m22 = 25 GPIO.setwarnings (తప్పుడు) GPIO.setmode (GPIO.BCM) GPIO.setup (m11, GPIO.OUT) GPIO.setup (m12, GPIO.OUT) GPIO.setup (m21, GPIO.OUT) GPIO.setup (m22, GPIO.OUT) GPIO.output (m11, 0) GPIO.output (m12, 0) GPIO.output (m21, 0) GPIO.output (m22, 0)
బ్లూటూత్ కమ్యూనికేషన్కు బాధ్యత వహించే కోడ్ క్రింద ఉంది:
server_socket = bluetooth.BluetoothSocket (బ్లూటూత్.
ఇక్కడ మనం వాటిని పంక్తిగా అర్థం చేసుకోవచ్చు:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): బ్లూటూత్ RFCOMM కమ్యూనికేషన్ కోసం సాకెట్ను సృష్టిస్తోంది.
server_socket.bind (("", పోర్ట్): - సర్వర్ స్క్రిప్ట్ను హోస్ట్ '' పై పోర్ట్కు బంధిస్తుంది.
server_socket.listen (1): ఒక సమయంలో ఒక కనెక్షన్ను అంగీకరించడానికి సర్వర్ వింటుంది.
client_socket, address = server_socket.accept (): సర్వర్ క్లయింట్ యొక్క కనెక్షన్ అభ్యర్థనను అంగీకరిస్తుంది మరియు మాక్ చిరునామాను వేరియబుల్ చిరునామాకు కేటాయించండి, client_socket అనేది క్లయింట్ యొక్క సాకెట్
దీని తరువాత మేము కావలసిన దిశలో కారును తరలించడానికి బాధ్యత వహించే కొన్ని ఫంక్షన్లను సృష్టించాము: డెఫ్ లెఫ్ట్_సైడ్_ఫార్వర్డ్ (), డెఫ్ రైట్_సైడ్_ఫార్వర్డ్ (), డెఫ్ ఫార్వర్డ్ (), డెఫ్ లెఫ్ట్_సైడ్_ రివర్స్ (), డెఫ్ రైట్_సైడ్_ రివర్స్ (), డెఫ్ రివర్స్ () డెఫ్ స్టాప్ (). మేము మొబైల్ బ్లూటెర్మ్ అనువర్తనం నుండి ఎల్, ఆర్, ఎఫ్, ఎ, పి, బి, ఎస్ నొక్కినప్పుడు ఈ ఫంక్షన్లు వరుసగా పిలువబడతాయి మరియు కారు తదనుగుణంగా కదులుతుంది.
డేటా = "" అయితే 1: డేటా = client_socket.recv (1024) ప్రింట్ "స్వీకరించబడింది:% s"% డేటా ఉంటే (డేటా == "ఎఫ్"): ఫార్వర్డ్ () ఎలిఫ్ (డేటా == "ఎల్"): ఎడమ_సైడ్_ ఫార్వర్డ్ () elif (data == "R"): right_side_forward () elif (data == "B"): రివర్స్ () elif (data == "A"): left_side_reverse () elif (data == "P"): right_side_reverse () ఎలిఫ్ డేటా == "ఎస్": స్టాప్ () ఎలిఫ్ (డేటా == "క్యూ"): ప్రింట్ ("క్విట్") క్లయింట్_సాకెట్.క్లోస్ () సర్వర్_సాకెట్.క్లోస్ ()
data = client_socket.recv (1024): క్లయింట్ సాకెట్ client_socket ద్వారా డేటాను స్వీకరించండి మరియు దానిని వేరియబుల్ డేటాకు కేటాయించండి. ఒకేసారి గరిష్టంగా 1024 అక్షరాలను స్వీకరించవచ్చు.
చివరగా, అన్ని ప్రోగ్రామింగ్ తరువాత, దిగువ కోడ్ ఉపయోగించి క్లయింట్ మరియు సర్వర్ కనెక్షన్ను మూసివేయండి:
client_socket.close () server_socket.close ()