ఆర్డునో రోబోట్ ప్రాథమిక విధులను నిర్వహించగలిగినందున, మేము ఇప్పుడు దాన్ని మరో ఫీచర్తో అప్గ్రేడ్ చేసాము - బ్లూటూత్ ద్వారా రోమోట్ కంట్రోల్.
ఇతర ‘హౌ టు బిల్డ్ ఎ రోబోట్’ ట్యుటోరియల్స్ మాదిరిగానే, ఆర్డునో రోబోట్ కిట్ (పైరేట్: బ్లూటూత్ 4.0 తో 4WD ఆర్డునో మొబైల్ రోబోట్ కిట్) ఇక్కడ ఉదాహరణగా ఉపయోగించబడుతుంది. అంతేకాకుండా, మీ మొబైల్ పరికరాలతో బ్లూటూత్ ద్వారా రోబోట్లు, మొబైల్ ప్లాట్ఫారమ్లు, డ్రోన్లు లేదా మానవరహిత వైమానిక వాహనం (యుఎవి) వంటి దేనినైనా కనెక్ట్ చేయడానికి మరియు నియంత్రించడానికి మిమ్మల్ని అనుమతించే గోబ్లే (ఎ జెనరిక్ బిఎల్ఇ ఎపిపి కంట్రోలర్) సహాయం కూడా మాకు అవసరం.
పాఠాల మెను:
పాఠం 1: పరిచయం
పాఠం 2: ప్రాథమిక ఆర్డునో రోబోట్ను రూపొందించండి
పాఠం 3: లైన్ ట్రాకింగ్ ఆర్డునో రోబోట్ను రూపొందించండి
పాఠం 4: అడ్డంకులను నివారించగల ఆర్డునో రోబోట్ను రూపొందించండి
పాఠం 5: కాంతి మరియు ధ్వని ప్రభావాలతో ఆర్డునో రోబోట్ను రూపొందించండి
పాఠం 6: పర్యావరణాన్ని పర్యవేక్షించగల ఆర్డునో రోబోట్ను రూపొందించండి
పాఠం 7: బ్లూటూత్-నియంత్రిత ఆర్డునో రోబోట్ను రూపొందించండి
తయారీ
ఐఫోన్ లేదా ఐప్యాడ్ × 1
GoBLE APP × 1
సామాగ్రి:
దశ 1:
గమనిక: ప్రస్తుతం, GoBLE iOS పరికరాల్లో మాత్రమే ఉపయోగించబడుతుంది మరియు ఇది కనీసం ఇన్స్టాల్ చేసిన iOS 8.1 ని అడుగుతుంది.
IOS వినియోగదారుల కోసం: దయచేసి App Store నుండి GoBLE ని డౌన్లోడ్ చేయండి.
దశ 2:
పరీక్ష కోడ్ను అప్లోడ్ చేయండి
దయచేసి రోమియో BLE ని కంప్యూటర్తో కనెక్ట్ చేయండి. పరీక్షా కోడ్ ‘GoBLE_Test.ino’ సాఫ్ట్వేర్ ప్యాకేజీలో చూడవచ్చు. ఇది మీ పరికరాల నుండి సిగ్నల్ అవుట్పుట్ను తనిఖీ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. దీన్ని డౌన్లోడ్ చేయండి మరియు దాన్ని తనిఖీ చేయండి. పరీక్ష కోడ్ను డౌన్లోడ్ చేయడానికి ముందు గోబుల్ లైబ్రరీని లోడ్ చేయడం మర్చిపోవద్దు.
దశ 3:
బ్లూటూత్ టెస్ట్
ఇప్పుడు బ్లూటూత్ జత చేయడం ప్రారంభిద్దాం. మొబైల్ బ్లూటూత్ను ఆన్ చేసి, ఆపై GoBLE అనువర్తనాన్ని తెరవండి. మీ స్క్రీన్ ఇలా ఉంటుంది!
దశ 4:
బ్లూటూత్ శోధన కీని క్లిక్ చేయండి (ఇది ఎరుపు భూతద్దంలా కనిపిస్తుంది). అప్పుడు, రోమియో BLE పేరుకు అనుగుణంగా ఉండే బ్లూటూత్ పరికరాల్లో ఒకదాన్ని ఎంచుకోండి. UUID క్లిక్ చేయండి మరియు అవి జత చేయడం ప్రారంభిస్తాయి.
దశ 5:
కనెక్ట్ అయిన తర్వాత, బ్లూటూత్ సెర్చ్ కీ యొక్క రంగు ఎరుపు నుండి ఆకుపచ్చగా మారుతుంది.
దశ 6:
అదే సమయంలో, బోర్డులో నడిచే LINK ఆన్ అవుతుంది, అంటే మీ ఐఫోన్ రోమియో BLE (బ్లూటూత్ 4.0 తో ఆర్డునో రోబోట్ కంట్రోల్ బోర్డ్) తో అనుసంధానించబడి ఉంది.
దశ 7:
నియంత్రిక మీ ఐఫోన్ నుండి విజయవంతంగా సిగ్నల్ పొందగలదా అని ఇప్పుడు పరీక్షించుకుందాం. Arduino IDE ఇంటర్ఫేస్కు తిరిగి వెళ్లి, కుడి ఎగువ మూలలో ఉన్న సీరియల్ మానిటర్ క్లిక్ చేయండి.
దశ 8:
దిగువ చిత్రంలో చూపిన విధంగా సంభాషణ పాపప్ అవుతుంది. మొదట, సీరియల్ పోర్ట్ యొక్క బాడ్ రేటు 115200 గా సెట్ చేయబడుతుంది, ఎందుకంటే ఇది దిగువ ఎరుపు వృత్తంలో చూపబడింది.
దశ 9:
ఇప్పుడు మీరు మీ ఐఫోన్ను తీయవచ్చు మరియు వర్చువల్ జాయ్స్టిక్ను యాదృచ్చికంగా స్వైప్ చేయవచ్చు లేదా స్క్రీన్పై ఉన్న బటన్ను క్లిక్ చేయండి. మరేమీ కాకపోతే, మీరు సీరియల్ మానిటర్లో సంబంధిత విలువను చూస్తారు. మీరు స్క్రీన్పై వర్చువల్ జాయ్స్టిక్ను స్వైప్ చేసినప్పుడు సీరియల్ మానిటర్లోని జాయ్ స్టిక్ విలువ మార్చబడుతుంది. జాయ్ స్టిక్ పైకి స్వైప్ చేసినప్పుడు విలువ పెరుగుతుందని లేదా జాయ్ స్టిక్ క్రిందికి స్వైప్ చేసినప్పుడు విలువ తగ్గుతుందని మీరు కనుగొంటారు.
బటన్ ID అంటే మీరు ఏ బటన్ క్లిక్ చేస్తున్నారో అర్థం.
దశ 10:
రిమోట్ కంట్రోల్ కోసం కోడ్ను అప్లోడ్ చేయండి
ప్రతిదీ సరిగ్గా ఉంటే, ఆర్డునో బోర్డ్కు రిమోట్ కంట్రోలింగ్ కోసం కోడ్ను అప్లోడ్ చేద్దాం. మీ మనస్సులో ఉంచడానికి చాలా ముఖ్యమైన విషయం ఉంది!
మీ ఐఫోన్ ఇప్పటికే చివరి పరీక్ష దశలో రోమియో BLE బోర్డ్కు కనెక్ట్ చేయబడింది. అయినప్పటికీ, మీ ఫోన్ మరియు బోర్డు మధ్య బ్లూటూత్ స్థాపించబడినప్పుడు మీరు కోడ్ను రోమియో BLE బోర్డుకి అప్లోడ్ చేయలేరు. అందువలన, మీరు మొదట బ్లూటూత్ జతచేయడం BREAK అయి ఉండాలి. అదనంగా, ఫోన్ నుండి బోర్డు డిస్కనెక్ట్ చేయబడితే మీరు మళ్లీ కోడ్ను అప్లోడ్ చేయవచ్చు. ఇది చాలా ముఖ్యమైనది!
కనెక్షన్కు అంతరాయం కలిగించడానికి రెండు పద్ధతులు ఉన్నాయి. ఒక మార్గం ఏమిటంటే, మీరు రెమియో BLE శక్తిని ఆపివేసి, ఆపై దాన్ని మళ్లీ ఆన్ చేయవచ్చు. మరొక మార్గం ఏమిటంటే, మీ ఫోన్లోని బ్లూటూత్ను ఆపివేయండి.
డిస్కనెక్ట్ చేసిన తర్వాత, మీరు ఉదాహరణ కోడ్ను మళ్లీ అప్లోడ్ చేయవచ్చు. కోడ్ ప్యాకేజీలో కోడ్కు GoBLE_APP.ino అని పేరు పెట్టారు.
దశ 11:
విజయవంతంగా అప్లోడ్ చేసిన తర్వాత, మీరు క్రింది చిత్రంలోని ఎరుపు బాణాన్ని అనుసరించవచ్చు మరియు మీ రోబోట్ను నియంత్రించడానికి జాయ్స్టిక్ను స్వైప్ చేయవచ్చు. అలాగే, మీరు PIN13 తో అనుసంధానించబడిన బోర్డులో LED ని ఆన్ చేయడానికి లేదా ఆపివేయడానికి ఎరుపు బటన్ను క్లిక్ చేయవచ్చు.
దశ 12:
కోడ్ సారాంశం
రోబోట్ ప్లే చేసిన తర్వాత, కోడ్ను ఎలా ఉపయోగించాలో నేర్చుకుందాం. GoBLE పరీక్ష కోసం పరీక్ష కోడ్ కోసం ఎక్కువ పదాలు లేవు. అప్పుడు మేము GoBLE APP కి ముందుకు వెళ్తాము.
ప్రాథమిక కోడ్ గురించి చర్చించాల్సిన అవసరం లేదు - బ్లూథూత్ నియంత్రణతో కూడిన భాగాన్ని పరిశీలిద్దాం. మీరు రోబోట్ను రిమోట్ కంట్రోల్ చేయాలనుకుంటే, మెట్రో మరియు గోబ్లే అనే రెండు లైబ్రరీలు ఉపయోగించబడతాయి.
# "మెట్రో.హెచ్" చేర్చండి
# చేర్చండి "GoBLE.h"
int జాయ్ స్టిక్ఎక్స్, జాయ్ స్టిక్ వై;
పూర్ణాంక బటన్ స్టేట్ 6;
జాయ్ స్టిక్ఎక్స్, జాయ్ స్టిక్ వై మరియు బటన్ స్టేట్ 6, మూడు వేరియబుల్స్, గోబుల్ లైబ్రరీ కోసం నిర్వచించబడ్డాయి. X- అక్షం, Y- అక్షం మరియు ఆరు బటన్ల విలువలకు రాష్ట్ర విలువను నిల్వ చేయడానికి ఇవి ఉపయోగించబడతాయి.
దిగువ మ్యాప్ అన్ని బటన్ల లేఅవుట్ను చూపుతుంది. మీరు రాష్ట్ర విలువల మార్పును విశ్లేషించినట్లయితే + X, -X, + Y మరియు –Y యొక్క అర్ధాలు మీకు తెలిసి ఉండవచ్చు.
X & Y అనేది జాయ్ స్టిక్ యొక్క కదలిక దిశలు. ”+, -“ విలువ యొక్క పోకడలను చూపించు. “+” అంటే రాష్ట్ర విలువ పెరుగుతోంది. మరియు “-” అంటే రాష్ట్ర విలువ తగ్గుతోంది.
దశ 13:
ప్రారంభ అమరిక సెటప్ () యొక్క ఫంక్షన్లో వ్రాయబడుతుంది.
Goble.begin ();
బ్లూటూత్ సెటప్ను ప్రారంభించడానికి ఈ లైన్ ఉపయోగించబడుతుంది. మరియు మీరు మీ బోర్డులో బ్లూటూత్ కోడ్ను ఉపయోగించినప్పుడు దాన్ని కోల్పోలేరు.
Serial.begin (115200);
వాస్తవానికి, ఈ పంక్తి పరీక్ష దశలో ఉపయోగించబడింది. ఇది సీరియల్ పోర్టును ప్రారంభించడానికి ఉపయోగించబడుతుంది. మీరు సీరియల్ మానిటర్ నుండి విలువను చదవాలనుకుంటే, మీరు ఈ ప్రకటనను సెటప్ ఫంక్షన్లో వ్రాయాలి. మరియు, బాడ్ రేటును కూడా సెట్ చేయాలి.
బ్లూటూత్ యొక్క బాడ్ రేటు ప్రత్యేకమైనది కాబట్టి, మీరు 115200 కు సెట్ చేయాలి. బాడ్ రేటు సెటప్ చేయబడిందని నిర్ధారించుకోండి, లేకుంటే అది కొన్ని సమస్యలను కలిగిస్తుంది.
దయచేసి క్రిందికి చూడండి. తదుపరి పంక్తి Goble.available () యొక్క ఫంక్షన్
if (Goble.available ()) something ఏదైనా చేయండి; }
బ్లూటూత్ ద్వారా ఫిగర్ అందుకున్న తర్వాత తదుపరి చర్య ఏమిటో అర్థం.
బ్రాకెట్లలో వ్రాయబడినవి మా తదుపరి చర్య. మొదట, మేము అందుకున్న సంఖ్యను విశ్లేషించాలి. కింది రెండు స్టేట్మెంట్ X మరియు Y అక్షంపై విలువను చదవడం.
joystickX = Goble.readJoystickX ();
joystickY = Goble.readJoystickY ();
// సీరియల్.ప్రింట్ ("జాయ్ స్టిక్ ఎక్స్:");
// సీరియల్.ప్రింట్ (జాయ్ స్టిక్ ఎక్స్);
// సీరియల్.ప్రింట్ ("జాయ్ స్టిక్ వై:");
// సీరియల్.ప్రింట్ల్న్ (జాయ్ స్టిక్ఎక్స్);
పైన పేర్కొన్న సీరియల్.ప్రింట్ () అనే నాలుగు స్టేట్మెంట్ల అర్థం ఏమిటో ess హించండి. ఇది సీరియల్కు సంబంధించినది. కోడ్ డీబగ్ మరియు ఆప్టిమైజేషన్ కోసం సౌకర్యవంతంగా ఉన్న డేటాను ప్రింట్ చేయడం సీరియల్ కోసం.
”//” అంటే కింది కంటెంట్ యొక్క ఉల్లేఖనం. కోడ్ను కంపైల్ చేసేటప్పుడు ఈ నాలుగు వాక్యాలు చేర్చబడవు. అవి, మేము ఈ నాలుగు స్టేట్మెంట్ల కోసం ఉల్లేఖనాన్ని ఉపయోగించిన తర్వాత సీరియల్కు డేటా పంపబడదు.
మరింత సమాచారం కోసం అరుడినో వెబ్సైట్ (www.arduino.cc) యొక్క రిఫరెన్స్ పేజీని చూడండి.
buttonState SWITCH_UP = Goble.readSwitchUp ();
buttonState SWITCH_DOWN = Goble.readSwitchDown ();
buttonState SWITCH_LEFT = Goble.readSwitchLeft ();
buttonState SWITCH_RIGHT = Goble.readSwitchRight ();
buttonState SWITCH_SELECT = Goble.readSwitchSelect ();
buttonState SWITCH_START = Goble.readSwitchStart ();
బటన్ల స్థితి గురించి సమాచారాన్ని లోడ్ చేయడానికి పైన ఉన్న అన్ని విషయాలు ఉపయోగించబడతాయి.
బటన్ల లేఅవుట్ ఈ క్రింది విధంగా ఉంటుంది.
SWITCH_UP - 1 SWITCH_RIGHT - 2
SWITCH_DOWN - 3
SWITCH_LEFT - 4
SWITCH_SELECT - 5
SWITCH_START - 6
దశ 14:
మేము చదివిన మొత్తం డేటాను ఉపయోగించడం ప్రారంభించటానికి ముందు వాటిని ప్రాసెస్ చేయాలి.
జాయ్స్టిక్పై చదివిన విలువ మా రోబోట్ యొక్క చక్రాల భ్రమణ వేగంతో మ్యాప్ చేయబడుతుంది. ఈ విధంగా, చక్రాల భ్రమణ వేగం -255 మరియు 255 మధ్య ఉంటుంది.
int స్పీడ్ఎక్స్ = 2 * జాయ్ స్టిక్ ఎక్స్ -256;
int స్పీడ్వై = 2 * జాయ్ స్టిక్ వై -256;
సీరియల్.ప్రింట్ ("వేగం:");
Serial.print (SpeedX);
సీరియల్.ప్రింట్ ("");
Serial.println (స్పీడీ);
సీరియల్ వేగాన్ని ప్రింట్ చేస్తుంది. అనవసరంగా ఉంటే, దాన్ని తొలగించడానికి మీరు ప్రారంభంలో ”//” ను జోడించవచ్చు.
ఇప్పుడు రోబోట్ను నియంత్రించి దానిని కదిలించుకుందాం.
(జాయ్ స్టిక్ పైకి లేదా (||) క్రిందికి) ఉంటే {రోబోట్ ముందుకు లేదా వెనుకకు కదులుతుంది; }
(జాయ్స్టిక్ను కుడి వైపుకు లేదా (||) ఎడమకు తరలించినట్లయితే) {రోబోట్ కుడి లేదా ఎడమ వైపుకు కదులుతుంది}
(జాయ్ స్టిక్ యొక్క X- అక్షం మధ్యలో ఉంచితే మరియు (&&) జాయ్ స్టిక్ యొక్క Y- అక్షం మధ్యలో ఉంచుకుంటే) {రోబోట్ ఆగుతుంది; }
కరస్పాండెంట్ సంకేతాలు క్రింది విధంగా ఉన్నాయి:
if (SpeedX> 200 || SpeedX <-200) {LeftWheelSpeed = SpeedX; RightWheelSpeed = SpeedX; రోబోట్.స్పీడ్ (లెఫ్ట్వీల్స్పీడ్, రైట్వీల్స్పీడ్); }
else if (SpeedY> 200 || SpeedY <-200) {LeftWheelSpeed = SpeedY-80; RightWheelSpeed = SpeedY-80; Robot.Speed (LeftWheelSpeed, RightWheelSpeed);}.
else if (SpeedX == 0 && SpeedY == 0) {Robot.Speed (0,0); }
PIN13 కి కనెక్ట్ చేయబడిన బోర్డులోని LED ని నియంత్రించడానికి చివరి కోడ్ ఉపయోగించబడుతుంది.
int ledPin = 13;
పిన్ 13 ను కోడ్ ప్రారంభంలో నిర్వచించాలి.
pinMode (ledPin, అవుట్పుట్);
సెటప్ () యొక్క ఫంక్షన్ను వ్రాయడం ద్వారా LED కోసం అవుట్పుట్ మోడ్ను సెటప్ చేయండి. Arduino వెబ్సైట్ (www.arduino.cc) లోని పిన్మోడ్ () యొక్క ఫంక్షన్ కోసం సూచనలను చూడండి.
కింది వ్యక్తీకరణలు బటన్ల స్థితిని చూపుతాయి. బటన్ నెం .1 నొక్కిన తర్వాత, ఎల్ఈడీ ఆన్ అవుతుంది. LED పిన్ HIGH గా సెట్ చేయబడిందని అర్థం.
if (బటన్ స్టేట్ 1 == ప్రెస్డ్) {డిజిటల్ రైట్ (లెడ్ పిన్, హై); }
బటన్ నెం .1 విడుదలైన తర్వాత, ఎల్ఈడీ ఆపివేయబడుతుంది. LED పిన్ తక్కువ అని సెట్ చేయబడింది.
if (buttonState 1 == విడుదల చేయబడింది) {DigitalWrite (ledPin, LOW); }
ఈ రోజు కోడింగ్ కోసం అంతే. ఇది ఫన్ కాదా? SO, మీ కోసం కోడ్ రాయడం అసాధ్యం కాదు, సరియైనదా? కోడ్ను సవరించడం ద్వారా LED కాంతిని నియంత్రించడానికి మీరు ఒక బటన్ను మార్చడానికి ప్రయత్నించవచ్చు. మీరు దీన్ని మీ కోడ్తో నియంత్రించగలిగినప్పుడు ఇది ఖచ్చితంగా మరింత ఆసక్తికరంగా ఉంటుంది. ఇప్పుడు, మీ రోబోతో సరదాగా ప్రారంభించండి !!!