- अवयव आवश्यक
- MPU6050 सेंसर मॉड्यूल - एक संक्षिप्त परिचय
- Attiny85 कदम काउंटर सर्किट आरेख
- Attiny85 चरण काउंटर के लिए फैब्रिकिंग पीसीबी
- PCBWay से पीसीबी को ऑर्डर करना
- ATtiny85 कदम काउंटर पीसीबी कोडांतरण
- ATtiny85 स्टेप काउंटर कोड स्पष्टीकरण
- चलो टहलने के लिए हमारे Arduino स्टेप काउंटर लें
इस ट्यूटोरियल में, हम ATtiny85 IC, MPU6050 एक्सेलेरोमीटर और जाइरोस्कोप और OLED डिस्प्ले मॉड्यूल का उपयोग करके एक आसान और सस्ता पेडोमीटर बनाने जा रहे हैं। यह सरल Arduino आधारित कदम काउंटर एक 3V सिक्का सेल द्वारा संचालित है, जब आप टहलने या जोग के लिए बाहर जाते हैं तो इसे ले जाना आसान होता है। इसे बनाने के लिए बहुत कम घटकों की आवश्यकता होती है और कोड भी अपेक्षाकृत सरल होता है। इस परियोजना में प्रोग्राम 3 अक्ष (एक्स, वाई, और जेड) के साथ त्वरण की मात्रा को मापने के लिए MPU6050 का उपयोग करता है। फिर यह पिछले और वर्तमान मूल्यों के बीच त्वरण परिमाण के अंतर की गणना करता है। यदि अंतर एक निश्चित सीमा से अधिक है (6 से अधिक चलने के लिए और 10 से अधिक चलने के लिए), तो यह तदनुसार कदम गिनती बढ़ाता है। तब उठाए गए कुल कदम OLED डिस्प्ले पर प्रदर्शित किए जाते हैं।
PCB पर इस पोर्टेबल स्टेप काउंटर को बनाने के लिए, हमने PCBWay से हमारे PCB बोर्ड को तैयार किया है और हम इस प्रोजेक्ट में समान रूप से असेंबल और टेस्ट करेंगे। यदि आप अधिक सुविधाएँ जोड़ना चाहते हैं, तो आप इस सेटअप में एक हार्टबीट मॉनिटर भी जोड़ सकते हैं और हमने पहले ADXL335 का उपयोग करते हुए एक Arduino एक्सेलेरोमीटर स्टेप काउंटर भी बनाया है, यदि आप रुचि रखते हैं तो उन्हें देखें।
अवयव आवश्यक
Arduino का उपयोग करके इस पेडोमीटर का निर्माण करने के लिए , आपको निम्नलिखित घटकों की आवश्यकता होगी।
- Attiny85 आईसी
- MPU6050
- OLED प्रदर्शन मॉड्यूल
- 2 × पुश बटन
- 5 × 10KΩ प्रतिरोधक (SMD)
MPU6050 सेंसर मॉड्यूल - एक संक्षिप्त परिचय
MPU6050 माइक्रो-मैकेनिकल सिस्टम (एमईएमएस) तकनीक पर आधारित है। इस सेंसर में 3-एक्सिस एक्सेलेरोमीटर, 3-एक्सिस जीरोस्कोप और एक इन-बिल्ट टेम्परेचर सेंसर है । यह त्वरण, वेग, अभिविन्यास, विस्थापन, आदि जैसे मापदंडों को मापने के लिए इस्तेमाल किया जा सकता है। हमने पहले Arduino और Raspberry pi के साथ MPU6050 को इंटरफेज किया है और कुछ प्रोजेक्ट्स का भी निर्माण किया है, जैसे- सेल्फ बैलेंसिंग रोबोट, Arduino Digital Protractor, और Arduino Inclinometer।
MPU6050 मॉड्यूल आकार में छोटा है और इसमें कम बिजली की खपत, उच्च पुनरावृत्ति, उच्च सदमे सहिष्णुता और कम उपयोगकर्ता मूल्य बिंदु हैं। MPU6050 एक I2C बस और सहायक I2C बस इंटरफेस के साथ आता है और आसानी से अन्य सेंसर जैसे मैग्नेटोमीटर और माइक्रोकंट्रोलर के साथ हस्तक्षेप कर सकता है।
Attiny85 कदम काउंटर सर्किट आरेख
MPU6050 स्टेप काउंटर के लिए योजनाबद्ध नीचे दिया गया है:
उपरोक्त छवि MPU6050 और OLED डिस्प्ले को Attiny85 IC के साथ बदलने के लिए सर्किट आरेख को दर्शाती है। MP26050, OLED डिस्प्ले और Arduino के बीच इंटरफ़ेस I2C प्रोटोकॉल का उपयोग करके लागू किया जाना चाहिए। इसलिए, ATtiny85 का SCLPin (PB2) क्रमशः MPU6050 और OLED डिस्प्ले के SCLPin से जुड़ा है। इसी तरह, ATtiny85 का SDAPIN (PB0) MPU6050 और OLED डिस्प्ले के SDAPin से जुड़ा है। दो पुशबट्टन ATTiny85 IC के PB3 & PB4 पिन से भी जुड़े हैं। इन बटन का उपयोग टेक्स्ट को स्क्रॉल करने या डिस्प्ले पर टेक्स्ट को बदलने के लिए किया जा सकता है।
नोट: USB और Digispark बूट-लोडर के माध्यम से ATtiny85 आईसी प्रोग्राम करने के लिए Digispark Bootloader का उपयोग करके USB के माध्यम से सीधे हमारे पिछले ट्यूटोरियल प्रोग्रामिंग ATtiny85 आईसी का पालन करें।
Attiny85 चरण काउंटर के लिए फैब्रिकिंग पीसीबी
योजनाबद्ध किया जाता है, और हम पीसीबी बिछाने के साथ आगे बढ़ सकते हैं। आप अपनी पसंद के किसी भी पीसीबी सॉफ्टवेयर का उपयोग करके पीसीबी को डिजाइन कर सकते हैं। हमने इस परियोजना के लिए PCB को बनाने के लिए EasyEDA का उपयोग किया है।
नीचे चरण काउंटर पीसीबी की शीर्ष परत और निचली परत के 3D मॉडल दृश्य दिए गए हैं:
उपरोक्त सर्किट के लिए पीसीबी लेआउट नीचे दिए गए लिंक से Gerber के रूप में डाउनलोड के लिए भी उपलब्ध है:
- ATtiny85 स्टेप काउंटर के लिए Gerber फ़ाइल
PCBWay से पीसीबी को ऑर्डर करना
अब डिजाइन को अंतिम रूप देने के बाद, आप पीसीबी को ऑर्डर करने के साथ आगे बढ़ सकते हैं:
चरण 1: https://www.pcbway.com/ पर जाएं, साइन अप करें यदि यह आपकी पहली बार है। फिर, पीसीबी प्रोटोटाइप टैब में, अपने पीसीबी के आयाम, परतों की संख्या और आपके द्वारा आवश्यक पीसीबी की संख्या दर्ज करें।
चरण 2: 'भाव अब' बटन पर क्लिक करके आगे बढ़ें। आपको एक पृष्ठ पर ले जाया जाएगा, जहां बोर्ड प्रकार, परतें, पीसीबी के लिए सामग्री, मोटाई और अधिक जैसे कुछ अतिरिक्त पैरामीटर सेट करने के लिए, उनमें से अधिकांश डिफ़ॉल्ट रूप से चुने गए हैं, यदि आप किसी विशिष्ट पैरामीटर के लिए चयन कर रहे हैं, तो आप चयन कर सकते हैं यहाँ में है।
चरण 3: अंतिम चरण Gerber फ़ाइल अपलोड करने और भुगतान के साथ आगे बढ़ना है। यह सुनिश्चित करने के लिए कि प्रक्रिया सुचारू है, यदि आपके Gerber फ़ाइल को भुगतान के साथ आगे बढ़ने से पहले वैध है तो PCBWAY सत्यापित करता है। इस तरह, आप यह सुनिश्चित कर सकते हैं कि आपका पीसीबी फेब्रिकेशन फ्रेंडली है और आपके लिए प्रतिबद्ध होगा।
ATtiny85 कदम काउंटर पीसीबी कोडांतरण
कुछ दिनों के बाद, हमने अपने पीसीबी को एक साफ पैकेज में प्राप्त किया और पीसीबी की गुणवत्ता हमेशा की तरह अच्छी थी। शीर्ष परत और बोर्ड की निचली परत नीचे दी गई है:
यह सुनिश्चित करने के बाद कि ट्रैक और पैरों के निशान सही थे। मैं पीसीबी को असेंबल करने के साथ आगे बढ़ा। पूरी तरह से मिलाप वाला बोर्ड नीचे की तरह दिखता है:
ATtiny85 स्टेप काउंटर कोड स्पष्टीकरण
दस्तावेज़ के अंत में पूरा Arduino स्टेप काउंटर कोड दिया गया है। यहां हम कोड के कुछ महत्वपूर्ण भागों की व्याख्या कर रहे हैं।
कोड TinyWireM.h & TinyOzOLED.h पुस्तकालयों का उपयोग करता है। टाइनीवायरम लाइब्रेरी को Arduino IDE में लाइब्रेरी मैनेजर से डाउनलोड किया जा सकता है और वहां से इंस्टॉल किया जा सकता है। उसके लिए, Arduino IDE खोलें और स्केच <लाइब्रेरी शामिल करें <लाइब्रेरी प्रबंधित करें पर जाएं । अब TinyWireM.h की खोज करें और Adafruit द्वारा टाइनीवायरम लाइब्रेरी स्थापित करें ।
जबकि TinyOzOLED.h लाइब्रेरी को दिए गए लिंक से डाउनलोड किया जा सकता है।
Arduino IDE को लाइब्रेरी स्थापित करने के बाद, आवश्यक लाइब्रेरी फ़ाइलों को शामिल करके कोड शुरू करें।
#include "टाइनीवायरम.एच" #include "टाइनीओवोलड.एच"
पुस्तकालयों को शामिल करने के बाद, एक्सेलेरोमीटर रीडिंग को स्टोर करने के लिए चर को परिभाषित करें।
intaccelX, accelerY, accelerZ;
सेटअप () लूप के अंदर, वायर लाइब्रेरी को इनिशियलाइज़ करें और पावर मैनेजमेंट रजिस्टर के माध्यम से सेंसर को रीसेट करें। OLED डिस्प्ले के लिए I2C कम्युनिकेशन को भी इनिशियलाइज़ करें। फिर अगली पंक्तियों में प्रदर्शन अभिविन्यास सेट करें और एक्सेलेरोमीटर और जाइरोस्कोप मानों के लिए रजिस्टर पता दर्ज करें।
टाइनीवायरम.बेगिन (); OzOled.init (); OzOled.clearDisplay (); OzOled.setNormalDisplay (); OzOled.sendCommand (0xA1); OzOled.sendCommand (0xC8); टाइनीवायरम.बेगिनट्रांसमीशन (एमपीयू); टाइनीवायरम.राइट (0x6B); टाइनीवायरम.राइट (0b00000000); टाइनीवायरम.राइट (0x1B);
में getAccel () समारोह, एक्सीलरोमीटर डेटा को पढ़ कर शुरू करते हैं। प्रत्येक अक्ष के डेटा को दो बाइट्स (ऊपरी और निचले) या रजिस्टरों में संग्रहीत किया जाता है। उन सभी को पढ़ने के लिए, पहले रजिस्टर से शुरू करें, और अपेक्षिततम () फ़ंक्शन का उपयोग करके, हम एक्स, वाई और जेड एक्सिस के लिए सभी 6 रजिस्टर पढ़ने का अनुरोध करते हैं। फिर हम प्रत्येक रजिस्टर से डेटा पढ़ते हैं, और क्योंकि आउटपुट दो पूरक हैं, उन्हें पूरा एक्सीलेरोमीटर मान प्राप्त करने के लिए उचित रूप से संयोजित करें।
voidgetAccel () {TinyWireM.beginTransmission (mpu); टाइनीवायरम.राइट (0x3B); TinyWireM.endTransmission (); टाइनीवायरम.रेक्वेस्टफ्रॉम (एमपीयू, 6); accelerX = TinyWireM.read () << 8-TinyWireM.read (); त्वरण = TinyWireM.read () << 8-TinyWireM.read (); accelerZ = TinyWireM.read () << 8-TinyWireM.read (); }
अब लूप फ़ंक्शन के अंदर, पहले X, Y और Z- अक्ष मान पढ़ें और 3-अक्ष मान प्राप्त करने के बाद, X, Y और Z- अक्ष मानों के वर्गमूल को ले कर कुल त्वरण वेक्टर की गणना करें। फिर वर्तमान वेक्टर और पिछले वेक्टर के बीच अंतर की गणना करें और यदि अंतर 6 से अधिक है, तो चरण गणना बढ़ाएं।
getAccel (); वेक्टर = sqrt ((एक्सीलएक्स * एक्सीलएक्स) + (एक्सीवाई * एक्सीवाई) + (एक्सीलजेड * एक्सेल)); Totalvector = वेक्टर - वेक्टरप्रूफ; if (टोटलवेक्टर> 6) {स्टेप्स ++; } OzOled.printString ("चरण", 0, 4); OzOled.printNumber (चरण, 0, 8, 4); वेक्टरपरस्परे = वेक्टर; देरी (600);
चलो टहलने के लिए हमारे Arduino स्टेप काउंटर लें
एक बार जब आप पीसीबी को असेंबल करना समाप्त कर लेते हैं, तो ATtiny85 को प्रोग्रामर बोर्ड से कनेक्ट करें, और कोड अपलोड करें। अब स्टेप काउंटर सेटअप को अपने हाथों में लें और कदम से कदम मिलाकर चलना शुरू करें, इसे OLED पर चरणों की संख्या प्रदर्शित करनी चाहिए। कभी-कभी यह चरणों की संख्या को बढ़ाता है जब सेटअप बहुत तेज़ी से या बहुत धीरे से कंपन करता है।
यह आप ATtiny85 और MPU6050 का उपयोग करके अपने स्वयं के चरण काउंटर का निर्माण कर सकते हैं । परियोजना का पूरा काम नीचे दिए गए वीडियो में भी पाया जा सकता है। आशा है कि आपने इस परियोजना का आनंद लिया है और इसे अपने स्वयं के निर्माण के लिए दिलचस्प पाया। यदि आपके कोई प्रश्न हैं, तो कृपया उन्हें नीचे टिप्पणी अनुभाग में छोड़ दें।