- భాగాలు అవసరం
- MPU6050 సెన్సార్ మాడ్యూల్ - సంక్షిప్త పరిచయం
- Attiny85 స్టెప్ కౌంటర్ సర్క్యూట్ రేఖాచిత్రం
- అటిని 85 స్టెప్ కౌంటర్ కోసం పిసిబిని తయారు చేయడం
- పిసిబి వే నుండి పిసిబిని ఆర్డర్ చేస్తోంది
- ATtiny85 స్టెప్ కౌంటర్ PCB ని సమీకరించడం
- ATtiny85 స్టెప్ కౌంటర్ కోడ్ వివరణ
- ఒక నడక కోసం మా ఆర్డునో స్టెప్ కౌంటర్ తీసుకుందాం
ఈ ట్యుటోరియల్లో, మేము ATtiny85 IC, MPU6050 యాక్సిలెరోమీటర్ & గైరోస్కోప్ మరియు OLED డిస్ప్లే మాడ్యూల్ ఉపయోగించి సులభమైన మరియు చౌకైన పెడోమీటర్ను నిర్మించబోతున్నాము. ఈ సరళమైన ఆర్డునో ఆధారిత స్టెప్ కౌంటర్ 3 వి కాయిన్ సెల్ ద్వారా శక్తిని పొందుతుంది, మీరు నడక లేదా జాగ్ కోసం బయటకు వెళ్ళినప్పుడు తీసుకువెళ్ళడం సులభం చేస్తుంది. ఇది నిర్మించడానికి చాలా తక్కువ భాగాలు కూడా అవసరం మరియు కోడ్ కూడా చాలా సులభం. ఈ ప్రాజెక్ట్లోని ప్రోగ్రామ్ 3 అక్షం (X, Y, మరియు Z) వెంట త్వరణం యొక్క పరిమాణాన్ని కొలవడానికి MPU6050 ను ఉపయోగిస్తుంది. అప్పుడు ఇది మునుపటి మరియు ప్రస్తుత విలువల మధ్య త్వరణం పరిమాణం యొక్క వ్యత్యాసాన్ని లెక్కిస్తుంది. ఒక నిర్దిష్ట పరిమితి కంటే వ్యత్యాసం ఎక్కువగా ఉంటే (6 కన్నా ఎక్కువ నడవడానికి మరియు 10 కన్నా ఎక్కువ నడపడానికి), అది తదనుగుణంగా దశల సంఖ్యను పెంచుతుంది. తీసుకున్న మొత్తం దశలు OLED డిస్ప్లేలో ప్రదర్శించబడతాయి.
ఈ పోర్టబుల్ స్టెప్ కౌంటర్ను పిసిబిలో నిర్మించడానికి, మేము పిసిబి వే నుండి మా పిసిబి బోర్డులను రూపొందించాము మరియు మేము ఈ ప్రాజెక్ట్లో సమావేశమై పరీక్షించాము. మీరు మరిన్ని ఫీచర్లను జోడించాలనుకుంటే, మీరు ఈ సెటప్కు హార్ట్బీట్ మానిటర్ను కూడా జోడించవచ్చు మరియు మేము ఇంతకుముందు ADXL335 ను ఉపయోగించి ఆర్డునో యాక్సిలెరోమీటర్ స్టెప్ కౌంటర్ను కూడా నిర్మించాము, మీకు ఆసక్తి ఉంటే వాటిని తనిఖీ చేయండి.
భాగాలు అవసరం
Arduino ఉపయోగించి ఈ పెడోమీటర్ను నిర్మించడానికి , మీకు ఈ క్రింది భాగాలు అవసరం.
- అటిని 85 ఐసి
- MPU6050
- OLED డిస్ప్లే మాడ్యూల్
- 2 × పుష్ బటన్లు
- 5 × 10KΩ రెసిస్టర్లు (SMD)
MPU6050 సెన్సార్ మాడ్యూల్ - సంక్షిప్త పరిచయం
MPU6050 మైక్రో-మెకానికల్ సిస్టమ్స్ (MEMS) టెక్నాలజీపై ఆధారపడి ఉంటుంది. ఈ సెన్సార్లో 3-యాక్సిస్ యాక్సిలెరోమీటర్, 3-యాక్సిస్ గైరోస్కోప్ మరియు అంతర్నిర్మిత ఉష్ణోగ్రత సెన్సార్ ఉన్నాయి. యాక్సిలరేషన్, వెలాసిటీ, ఓరియంటేషన్, డిస్ప్లేస్మెంట్ వంటి పారామితులను కొలవడానికి దీనిని ఉపయోగించవచ్చు. మేము ఇంతకుముందు MPU6050 ను ఆర్డునో మరియు రాస్ప్బెర్రీ పైతో ఇంటర్ఫేస్ చేసాము మరియు సెల్ఫ్ బ్యాలెన్సింగ్ రోబోట్, ఆర్డునో డిజిటల్ ప్రొట్రాక్టర్ మరియు ఆర్డునో ఇంక్లినోమీటర్ వంటి కొన్ని ప్రాజెక్టులను కూడా నిర్మించాము.
MPU6050 మాడ్యూల్ పరిమాణంలో చిన్నది మరియు తక్కువ విద్యుత్ వినియోగం, అధిక పునరావృతం, అధిక షాక్ టాలరెన్స్ మరియు తక్కువ వినియోగదారు ధర పాయింట్లను కలిగి ఉంటుంది. MPU6050 I2C బస్సు మరియు సహాయక I2C బస్ ఇంటర్ఫేస్తో వస్తుంది మరియు మాగ్నెటోమీటర్లు మరియు మైక్రోకంట్రోలర్ల వంటి ఇతర సెన్సార్లతో సులభంగా జోక్యం చేసుకోగలదు.
Attiny85 స్టెప్ కౌంటర్ సర్క్యూట్ రేఖాచిత్రం
MPU6050 స్టెప్ కౌంటర్ కోసం స్కీమాటిక్ క్రింద ఇవ్వబడింది:
పైన ఉన్న చిత్రం MPU6050 మరియు OLED డిస్ప్లేని Attiny85 IC తో ఇంటర్ఫేసింగ్ కోసం సర్క్యూట్ రేఖాచిత్రాన్ని చూపిస్తుంది. MPU6050, OLED డిస్ప్లే మరియు Arduino మధ్య ఇంటర్ఫేస్ తప్పనిసరిగా I2C ప్రోటోకాల్ ఉపయోగించి అమలు చేయాలి. అందువల్ల, ATtiny85 యొక్క SCLPin (PB2) వరుసగా MPU6050 మరియు OLED డిస్ప్లే యొక్క SCLPin తో అనుసంధానించబడి ఉంది. అదేవిధంగా, ATtiny85 యొక్క SDAPin (PB0) MPU6050 మరియు OLED డిస్ప్లే యొక్క SDAPin తో అనుసంధానించబడి ఉంది. ATtiny85 IC యొక్క PB3 & PB4 పిన్కు రెండు పుష్బటన్లు అనుసంధానించబడి ఉన్నాయి. ఈ బటన్లు వచనాన్ని స్క్రోల్ చేయడానికి లేదా ప్రదర్శనలో ఉన్న వచనాన్ని మార్చడానికి ఉపయోగించవచ్చు.
గమనిక: మా మునుపటి ట్యుటోరియల్ ప్రోగ్రామింగ్ ATtiny85 IC ని నేరుగా USB ద్వారా డిజిస్పార్క్ బూట్లోడర్ ఉపయోగించి ATTiny85 IC ని USB మరియు డిజిస్పార్క్ బూట్-లోడర్ ద్వారా ప్రోగ్రామ్ చేయడానికి అనుసరించండి.
అటిని 85 స్టెప్ కౌంటర్ కోసం పిసిబిని తయారు చేయడం
స్కీమాటిక్ పూర్తయింది, మరియు మేము పిసిబిని వేయడం ద్వారా కొనసాగవచ్చు. మీకు నచ్చిన ఏదైనా పిసిబి సాఫ్ట్వేర్ను ఉపయోగించి పిసిబిని డిజైన్ చేయవచ్చు. ఈ ప్రాజెక్ట్ కోసం పిసిబిని రూపొందించడానికి మేము ఈజీఇడిఎను ఉపయోగించాము.
స్టెప్ కౌంటర్ పిసిబి యొక్క పై పొర మరియు దిగువ పొర యొక్క 3D మోడల్ వీక్షణలు క్రింద ఉన్నాయి:
పై సర్క్యూట్ కోసం పిసిబి లేఅవుట్ క్రింద ఇచ్చిన లింక్ నుండి గెర్బెర్ గా డౌన్లోడ్ చేసుకోవడానికి కూడా అందుబాటులో ఉంది:
- ATtiny85 స్టెప్ కౌంటర్ కోసం గెర్బెర్ ఫైల్
పిసిబి వే నుండి పిసిబిని ఆర్డర్ చేస్తోంది
ఇప్పుడు డిజైన్ను ఖరారు చేసిన తర్వాత, మీరు పిసిబిని ఆర్డర్తో కొనసాగించవచ్చు:
దశ 1: https://www.pcbway.com/ లోకి ప్రవేశించండి, ఇది మీ మొదటిసారి అయితే సైన్ అప్ చేయండి. అప్పుడు, పిసిబి ప్రోటోటైప్ టాబ్లో, మీ పిసిబి యొక్క కొలతలు, పొరల సంఖ్య మరియు మీకు అవసరమైన పిసిబి సంఖ్యను నమోదు చేయండి.
దశ 2: 'కోట్ నౌ' బటన్ పై క్లిక్ చేయడం ద్వారా కొనసాగండి. బోర్డు రకం, పొరలు, పిసిబి కోసం పదార్థం, మందం మరియు మరిన్ని వంటి కొన్ని అదనపు పారామితులను సెట్ చేసే పేజీకి మీరు తీసుకెళ్లబడతారు, వాటిలో ఎక్కువ భాగం అప్రమేయంగా ఎంపిక చేయబడతాయి, మీరు ఏదైనా నిర్దిష్ట పారామితులను ఎంచుకుంటే, మీరు ఎంచుకోవచ్చు ఇది ఇక్కడ ఉంది.
దశ 3: చివరి దశ గెర్బెర్ ఫైల్ను అప్లోడ్ చేసి, చెల్లింపుతో కొనసాగడం. ప్రక్రియ సజావుగా ఉందని నిర్ధారించుకోవడానికి, చెల్లింపుతో కొనసాగడానికి ముందు మీ గెర్బెర్ ఫైల్ చెల్లుబాటులో ఉందో లేదో PCBWAY ధృవీకరిస్తుంది. ఈ విధంగా, మీ పిసిబి కల్పన స్నేహపూర్వకమని మరియు నిబద్ధతతో మీకు చేరుకుంటుందని మీరు అనుకోవచ్చు.
ATtiny85 స్టెప్ కౌంటర్ PCB ని సమీకరించడం
కొన్ని రోజుల తరువాత, మేము మా పిసిబిని చక్కని ప్యాకేజీలో అందుకున్నాము మరియు పిసిబి నాణ్యత ఎప్పటిలాగే బాగుంది. ఎగువ పొర మరియు బోర్డు దిగువ పొర క్రింద చూపబడ్డాయి:
ట్రాక్లు మరియు పాదముద్రలు సరైనవని నిర్ధారించుకున్న తరువాత. నేను పిసిబిని సమీకరించడంతో ముందుకు సాగాను. పూర్తిగా టంకం ఉన్న బోర్డు క్రింద కనిపిస్తుంది:
ATtiny85 స్టెప్ కౌంటర్ కోడ్ వివరణ
పూర్తి ఆర్డునో స్టెప్ కౌంటర్ కోడ్ పత్రం చివరిలో ఇవ్వబడింది. ఇక్కడ మేము కోడ్ యొక్క కొన్ని ముఖ్యమైన భాగాలను వివరిస్తున్నాము.
కోడ్ TinyWireM.h & TinyOzOLED.h లైబ్రరీలను ఉపయోగిస్తుంది. TinyWireM లైబ్రరీని Arduino IDE లోని లైబ్రరీ మేనేజర్ నుండి డౌన్లోడ్ చేసుకోవచ్చు మరియు అక్కడ నుండి ఇన్స్టాల్ చేయవచ్చు. దాని కోసం, Arduino IDE ని తెరిచి, స్కెచ్ <లైబ్రరీని చేర్చండి <లైబ్రరీలను నిర్వహించండి . ఇప్పుడు TinyWireM.h కోసం శోధించండి మరియు Adafruit ద్వారా TinyWireM లైబ్రరీని ఇన్స్టాల్ చేయండి.
TinyOzOLED.h లైబ్రరీని ఇచ్చిన లింక్ల నుండి డౌన్లోడ్ చేసుకోవచ్చు.
Arduino IDE కి లైబ్రరీలను ఇన్స్టాల్ చేసిన తరువాత, అవసరమైన లైబ్రరీల ఫైల్లను చేర్చడం ద్వారా కోడ్ను ప్రారంభించండి.
# "TinyWireM.h" ను చేర్చండి # "TinyOzOLED.h" ను చేర్చండి
లైబ్రరీలను చేర్చిన తరువాత, యాక్సిలెరోమీటర్ రీడింగులను నిల్వ చేయడానికి వేరియబుల్స్ ను నిర్వచించండి.
intaccelX, accelY, accelZ;
సెటప్ () లూప్ లోపల, వైర్ లైబ్రరీని ప్రారంభించండి మరియు పవర్ మేనేజ్మెంట్ రిజిస్టర్ ద్వారా సెన్సార్ను రీసెట్ చేయండి కూడా OLED డిస్ప్లే కోసం I2C కమ్యూనికేషన్ను ప్రారంభించండి. తరువాత పంక్తులలో ప్రదర్శన ధోరణిని సెట్ చేయండి మరియు యాక్సిలెరోమీటర్ మరియు గైరోస్కోప్ విలువల కోసం రిజిస్టర్ చిరునామాను నమోదు చేయండి.
TinyWireM.begin (); OzOled.init (); OzOled.clearDisplay (); OzOled.setNormalDisplay (); OzOled.sendCommand (0xA1); OzOled.sendCommand (0xC8); TinyWireM.beginTransmission (mpu); TinyWireM.write (0x6B); TinyWireM.write (0b00000000); TinyWireM.write (0x1B);
లో getAccel () ఫంక్షన్, యాక్సిలరోమీటర్ డేటా చదవడం ద్వారా ప్రారంభించండి. ప్రతి అక్షం యొక్క డేటా రెండు బైట్లలో (ఎగువ & దిగువ) లేదా రిజిస్టర్లలో నిల్వ చేయబడుతుంది. అవన్నీ చదవడానికి, మొదటి రిజిస్టర్తో ప్రారంభించండి మరియు రిక్వెస్ట్ ఫ్రం () ఫంక్షన్ను ఉపయోగించి, X, Y మరియు Z అక్షాల కోసం మొత్తం 6 రిజిస్టర్లను చదవమని మేము అభ్యర్థిస్తున్నాము. అప్పుడు మేము ప్రతి రిజిస్టర్ నుండి డేటాను చదువుతాము మరియు అవుట్పుట్లు రెండు యొక్క పూరకంగా ఉన్నందున, పూర్తి యాక్సిలెరోమీటర్ విలువలను పొందడానికి వాటిని సముచితంగా మిళితం చేయండి.
voidgetAccel () {TinyWireM.beginTransmission (mpu); TinyWireM.write (0x3B); TinyWireM.endTransmission (); TinyWireM.requestFrom (mpu, 6); accelX = TinyWireM.read () << 8-TinyWireM.read (); accelY = TinyWireM.read () << 8-TinyWireM.read (); accelZ = TinyWireM.read () << 8-TinyWireM.read (); }
ఇప్పుడు లూప్ ఫంక్షన్ లోపల, మొదట X, Y మరియు Z- యాక్సిస్ విలువలను చదవండి మరియు 3-యాక్సిస్ విలువలను పొందిన తరువాత, X, Y మరియు Z- యాక్సిస్ విలువల యొక్క వర్గమూలాన్ని తీసుకొని మొత్తం త్వరణం వెక్టర్ను లెక్కించండి. ప్రస్తుత వెక్టర్ మరియు మునుపటి వెక్టర్ మధ్య వ్యత్యాసాన్ని లెక్కించండి మరియు వ్యత్యాసం 6 కన్నా ఎక్కువ ఉంటే, దశల సంఖ్యను పెంచండి.
getAccel (); vector = sqrt ((accelX * accelX) + (accelY * accelY) + (accelZ * accelZ)); totalvector = వెక్టర్ - వెక్టర్ ప్రివియస్; if (totalvector> 6) {స్టెప్స్ ++; } OzOled.printString ("స్టెప్స్", 0, 4); OzOled.printNumber (స్టెప్స్, 0, 8, 4); vectorprevious = వెక్టర్; ఆలస్యం (600);
ఒక నడక కోసం మా ఆర్డునో స్టెప్ కౌంటర్ తీసుకుందాం
మీరు పిసిబిని సమీకరించడం పూర్తయిన తర్వాత, ATtiny85 ను ప్రోగ్రామర్ బోర్డ్కు కనెక్ట్ చేసి, కోడ్ను అప్లోడ్ చేయండి. ఇప్పుడు మీ చేతుల్లో స్టెప్ కౌంటర్ సెటప్ తీసుకోండి మరియు స్టెప్ బై స్టెప్ నడవడం ప్రారంభించండి, ఇది OLED లో దశల సంఖ్యను ప్రదర్శిస్తుంది. సెటప్ చాలా వేగంగా లేదా చాలా నెమ్మదిగా కంపించేటప్పుడు కొన్నిసార్లు ఇది దశల సంఖ్యను పెంచుతుంది.
ఈ విధంగా మీరు ATtiny85 మరియు MPU6050 ఉపయోగించి మీ స్వంత స్టెప్ కౌంటర్ను నిర్మించవచ్చు. ప్రాజెక్ట్ యొక్క పూర్తి పని క్రింద లింక్ చేయబడిన వీడియోలో కూడా చూడవచ్చు. మీరు ప్రాజెక్ట్ను ఆస్వాదించారని మరియు మీ స్వంతంగా నిర్మించడం ఆసక్తికరంగా ఉందని ఆశిస్తున్నాము. మీకు ఏవైనా ప్రశ్నలు ఉంటే, దయచేసి వాటిని క్రింది వ్యాఖ్య విభాగంలో ఉంచండి.