- అవసరమైన భాగాలు:
- అల్ట్రాసోనిక్ సెన్సార్ మాడ్యూల్:
- సర్క్యూట్ వివరణ:
- అది ఎలా పని చేస్తుంది:
- ప్రోగ్రామింగ్ వివరణ:
పరిశ్రమలు, కర్మాగారాలు, ఆసుపత్రులలోని పనులను ఆటోమేట్ చేయడం ద్వారా భారీ పనులలో మానవ ప్రయత్నాలను తగ్గించే యంత్రాలు రోబోట్లు. చాలా కంట్రోల్ యూనిట్ లేదా పుష్ బటన్, రిమోట్, జాయ్ స్టిక్, పిసి, హావభావాలు వంటి భాగాలను ఉపయోగించడం ద్వారా రోబోలు చాలా వరకు నడుస్తాయి. నియంత్రిక లేదా ప్రాసెసర్ ఉపయోగించి కొంత ఆదేశాన్ని అమలు చేస్తుంది. కానీ ఈ రోజు మనం ఆటోమేటిక్ రోబోతో ఇక్కడ ఉన్నాము, ఇది ఎటువంటి బాహ్య సంఘటనలు లేకుండా స్వయంచాలకంగా కదులుతుంది, దాని మార్గంలో ఉన్న అన్ని అడ్డంకులను తప్పించుకుంటుంది, అవును మేము రోబోట్ను నివారించడం గురించి మాట్లాడుతున్నాము. ఈ ప్రాజెక్ట్లో, రోబోట్ మార్గంలో వస్తువులను గుర్తించడానికి రోబోట్ మరియు అల్ట్రాసోనిక్ సెన్సార్ను నడపడానికి మేము రాస్ప్బెర్రీ పై మరియు మోటార్ డ్రైవర్ను ఉపయోగించాము.
ఇంతకుముందు మేము చాలా ఉపయోగకరమైన రోబోట్లను కవర్ చేసాము, మీరు వాటిని మా రోబోటిక్స్ ప్రాజెక్టుల విభాగంలో కనుగొనవచ్చు.
అవసరమైన భాగాలు:
- రాస్ప్బెర్రీ పై
- అల్ట్రాసోనిక్ సెన్సార్ మాడ్యూల్ HC-SR04
- రోబోట్ చట్రం స్క్రూతో పూర్తయింది
- డిసి మోటార్స్
- ఎల్ 293 డి ఐసి
- చక్రాలు
- బ్రెడ్ బోర్డు
- రెసిస్టర్ (1 కే)
- కెపాసిటర్ (100 ఎన్ఎఫ్)
- వైర్లను కనెక్ట్ చేస్తోంది
- విద్యుత్ సరఫరా లేదా పవర్ బ్యాంక్
అల్ట్రాసోనిక్ సెన్సార్ మాడ్యూల్:
ఒక అడ్డంకి తప్పించువాడు రోబోట్ ఆటోమేటెడ్ రోబోట్ ఉంది మరియు అది ఏ రిమోట్ ఉపయోగించి నియంత్రణలో ఉండవలసిన అవసరం లేదు. ఈ రకమైన ఆటోమేటెడ్ రోబోట్లకు అడ్డంకి డిటెక్టర్లు, సౌండ్ డిటెక్టర్, హీట్ డిటెక్టర్ లేదా మెటల్ డిటెక్టర్లు వంటి కొన్ని 'సిక్స్త్ సెన్స్' సెన్సార్లు ఉన్నాయి. ఇక్కడ మేము అల్ట్రాసౌండ్ సిగ్నల్స్ ఉపయోగించి అడ్డంకిని గుర్తించాము. ఈ ప్రయోజనం కోసం, మేము అల్ట్రాసోనిక్ సెన్సార్ మాడ్యూల్ని ఉపయోగించాము.
అల్ట్రాసోనిక్ సెన్సార్లను సాధారణంగా వస్తువులను గుర్తించడానికి మరియు సెన్సార్ నుండి అడ్డంకి యొక్క దూరాన్ని నిర్ణయించడానికి ఉపయోగిస్తారు. ట్యాంక్లో నీటి స్థాయి కొలత, దూర కొలత, అడ్డంకి ఎవిడెర్ రోబోట్ వంటి శారీరక సంబంధం లేకుండా దూరాన్ని కొలవడానికి ఇది ఒక గొప్ప సాధనం. కాబట్టి ఇక్కడ, మేము వస్తువును గుర్తించాము మరియు అల్ట్రాసోనిక్ సెన్సార్ మరియు రాస్ప్బెర్రీ పై ఉపయోగించి దూరాన్ని కొలిచాము.
అల్ట్రాసోనిక్ సెన్సార్ HC-SR04 ను 3 మిమీ ఖచ్చితత్వంతో 2 సెం.మీ -400 సెం.మీ పరిధిలో దూరాన్ని కొలవడానికి ఉపయోగిస్తారు. సెన్సార్ మాడ్యూల్లో అల్ట్రాసోనిక్ ట్రాన్స్మిటర్, రిసీవర్ మరియు కంట్రోల్ సర్క్యూట్ ఉంటాయి. అల్ట్రాసోనిక్ సెన్సార్ రెండు వృత్తాకార కళ్ళను కలిగి ఉంటుంది, వీటిలో ఒకటి అల్ట్రాసోనిక్ తరంగాన్ని ప్రసారం చేయడానికి మరియు మరొకటి దానిని స్వీకరించడానికి ఉపయోగిస్తారు.
సెన్సార్కి తిరిగి రావడానికి అల్ట్రాసోనిక్ వేవ్ తీసుకున్న సమయం ఆధారంగా మనం వస్తువు యొక్క దూరాన్ని లెక్కించవచ్చు. ధ్వని యొక్క సమయం మరియు వేగం తెలిసినందున మనం ఈ క్రింది సూత్రాల ద్వారా దూరాన్ని లెక్కించవచ్చు.
- దూరం = (సమయం x గాలిలో ధ్వని వేగం (343 మీ / సె)) / 2.
వేవ్ ఒకే దూరాన్ని కప్పి ముందుకు మరియు వెనుకకు ప్రయాణిస్తున్నందున విలువను రెండుగా విభజించారు. కాబట్టి అడ్డంకిని చేరుకోవడానికి సమయం తీసుకున్న మొత్తం సమయం సగం మాత్రమే.
కాబట్టి మేము క్రింద ఉన్న అడ్డంకి నుండి దూరాన్ని (సెంటీమీటర్లో) లెక్కించాము:
pulse_start = time.time () అయితే GPIO.input (ECHO) == 1: # ECHO HIGH GPIO.output (led, False) pulse_end = time.time () pulse_duration = pulse_end - pulse_start distance = pulse_duration * 17150 దూరం = రౌండ్ (దూరం, 2) avgDistance = avgDistance + దూరం
ఎక్కడ pulse_duration పంపడం మరియు అతిదైర్ఘ్య సిగ్నల్ స్వీకరించడానికి మధ్య సమయం ఉంది.
సర్క్యూట్ వివరణ:
రాస్ప్బెర్రీ పై ఉపయోగించి రోబోట్ను నివారించే ఈ అడ్డంకికి సర్క్యూట్ చాలా సులభం. ఒక అల్ట్రా సెన్సార్ మాడ్యూల్ గుర్తించే వస్తువులు ఉపయోగిస్తారు, GPIO పిన్ 17 మరియు రాస్ప్బెర్రీ పై 27 వద్ద అనుసంధానించబడి ఉంది. ఒక మోటార్ డ్రైవర్ IC L293D రోబోట్ యొక్క మోటార్లు డ్రైవింగ్ కోసం రాస్ప్బెర్రీ పై 3 అనుసంధానించబడింది. మోటారు డ్రైవర్ యొక్క ఇన్పుట్ పిన్స్ 2, 7, 10 మరియు 15 వరుసగా రాస్ప్బెర్రీ పై GPIO పిన్ నంబర్ 12, 16, 20 మరియు 21 లకు అనుసంధానించబడి ఉన్నాయి. రోబోట్ను నడపడానికి ఇక్కడ మేము రెండు డిసి మోటార్లు ఉపయోగించాము, దీనిలో ఒక మోటారు మోటారు డ్రైవర్ ఐసి యొక్క అవుట్పుట్ పిన్ 3 & 6 కు అనుసంధానించబడి ఉంది మరియు మరొక మోటారు మోటారు డ్రైవర్ ఐసి యొక్క పిన్ 11 & 14 వద్ద అనుసంధానించబడి ఉంది.
అది ఎలా పని చేస్తుంది:
ఈ అటానమస్ రోబోట్ యొక్క పని చాలా సులభం. రోబోట్ శక్తితో నడుస్తున్నప్పుడు మరియు నడుస్తున్నప్పుడు, రాస్ప్బెర్రీ పై వస్తువుల దూరాన్ని, దాని ముందు, అల్ట్రాసోనిక్ సెన్సార్ మాడ్యూల్ ఉపయోగించి మరియు వేరియబుల్ లో నిల్వ చేస్తుంది. అప్పుడు RPi ఈ విలువను ముందే నిర్వచించిన విలువలతో పోల్చి, రోబోట్ ఎడమ, కుడి, ముందుకు లేదా వెనుకకు తరలించడానికి నిర్ణయాలు తీసుకోండి.
ఇక్కడ ఈ ప్రాజెక్ట్లో, రాస్ప్బెర్రీ పై ఏదైనా నిర్ణయం తీసుకోవడానికి మేము 15 సెం.మీ దూరాన్ని ఎంచుకున్నాము. ఇప్పుడు రాస్ప్బెర్రీ పై ఏదైనా వస్తువు నుండి 15 సెం.మీ దూరం కన్నా తక్కువ వచ్చినప్పుడు రాస్ప్బెర్రీ పై రోబోట్ను ఆపి వెనక్కి కదిలి, ఆపై ఎడమ లేదా కుడికి మారుస్తుంది. ఇప్పుడు దాన్ని మళ్ళీ ముందుకు కదిలించే ముందు, రాస్ప్బెర్రీ పై 15 సెంటీమీటర్ల దూరం పరిధిలో ఏదైనా అడ్డంకి ఉందో లేదో మళ్ళీ తనిఖీ చేస్తుంది, అవును, మునుపటి ప్రక్రియను మళ్ళీ పునరావృతం చేస్తే, రోబోట్ ఏదైనా అడ్డంకి లేదా వస్తువును గుర్తించే వరకు ముందుకు సాగండి.
ప్రోగ్రామింగ్ వివరణ:
మేము ప్రోగ్రామ్ కోసం ఇక్కడ పైథాన్ భాషను ఉపయోగిస్తున్నాము. కోడింగ్ చేయడానికి ముందు, వినియోగదారు రాస్ప్బెర్రీ పైని కాన్ఫిగర్ చేయాలి. రాస్ప్బెర్రీ పైతో ప్రారంభించడానికి మరియు పైలో రాస్పియన్ జెస్సీ OS ని ఇన్స్టాల్ చేయడం మరియు కాన్ఫిగర్ చేయడం కోసం మీరు మా మునుపటి ట్యుటోరియల్లను తనిఖీ చేయవచ్చు.
ఈ ప్రాజెక్ట్ యొక్క ప్రోగ్రామింగ్ భాగం అన్ని కార్యకలాపాలను నిర్వహించడానికి చాలా ముఖ్యమైన పాత్ర పోషిస్తుంది. అన్నింటిలో మొదటిది, మేము అవసరమైన లైబ్రరీలను చేర్చుతాము, వేరియబుల్స్ ప్రారంభించండి మరియు అల్ట్రాసోనిక్ సెన్సార్, మోటారు మరియు భాగాల కోసం పిన్లను నిర్వచించాము.
RPi.GPIO ను GPIO దిగుమతి సమయం # దిగుమతి సమయ లైబ్రరీ GPIO.setwarnings (తప్పుడు) GPIO.setmode (GPIO.BCM) TRIG = 17 ECHO = 27……………..
దాని తరువాత, రోబోట్ను ముందుకు, వెనుకకు, ఎడమ లేదా కుడి దిశలో వరుసగా తరలించడానికి డెఫ్ ఫార్వర్డ్ (), డెఫ్ బ్యాక్ (), డెఫ్ లెఫ్ట్ (), డెఫ్ రైట్ () మరియు రోబోట్ను ఆపడానికి డెఫ్ స్టాప్ () , క్రింద ఇచ్చిన కోడ్లోని విధులను తనిఖీ చేయండి.
అప్పుడు, ప్రధాన కార్యక్రమంలో, మేము అల్ట్రాసోనిక్ సెన్సార్ను ప్రారంభించాము మరియు సిగ్నల్ యొక్క ప్రసారం మరియు రిసెప్షన్ మధ్య సమయాన్ని చదివి దూరాన్ని లెక్కించాము. మెరుగైన ఖచ్చితత్వం కోసం ఇక్కడ మేము 5 సార్లు ఈ విధానాన్ని పునరావృతం చేసాము. అల్ట్రాసోనిక్ సెన్సార్ ఉపయోగించి దూరాన్ని లెక్కించే విధానాన్ని మేము ఇప్పటికే వివరించాము.
i (0) పరిధిలో i = 0 avgDistance = 0: GPIO.output (TRIG, False) time.sleep (0.1) GPIO.output (TRIG, True) time.sleep (0.00001) GPIO.output (TRIG, False) GPIO.input (ECHO) == 0: GPIO.output (led, False) pulse_start = time.time () అయితే GPIO.input (ECHO) == 1: # ECHO HIGH GPIO.output (led, తప్పుడు) పల్స్_ఎండ్ = సమయం.టైమ్ () పల్స్_ వ్యవధి = పల్స్_ఎండ్ - పల్స్_స్టార్ట్ దూరం = పల్స్_ వ్యవధి * 17150 దూరం = రౌండ్ (దూరం, 2) avgDistance = avgDistance + దూరం
చివరగా రోబోట్ దాని ముందు ఏదైనా అడ్డంకిని కనుగొంటే, ఆ అడ్డంకి నుండి దూరం వచ్చిన తరువాత, మేము రోబోను వేరే మార్గంలో వెళ్ళడానికి ప్రోగ్రామ్ చేసాము.
avgDistance <15: count = count + 1 stop () time.sleep (1) back () time.sleep (1.5) if (count% 3 == 1) & (flag == 0): right () flag = 1 వేరే: ఎడమ () ఫ్లాగ్ = 0 సమయం.స్లీప్ (1.5) స్టాప్ () టైమ్.స్లీప్ (1) వేరే: ఫార్వర్డ్ () ఫ్లాగ్ = 0
ఈ రాస్ప్బెర్రీ పై అడ్డంకి రోబోట్ను నివారించడం కోసం పూర్తి కోడ్ ఒక ప్రదర్శన వీడియోతో క్రింద ఇవ్వబడింది.