विषयसूची:

एक स्वचालित फोन चार्जर: 6 कदम (चित्रों के साथ)
एक स्वचालित फोन चार्जर: 6 कदम (चित्रों के साथ)

वीडियो: एक स्वचालित फोन चार्जर: 6 कदम (चित्रों के साथ)

वीडियो: एक स्वचालित फोन चार्जर: 6 कदम (चित्रों के साथ)
वीडियो: क्या mobile को charge करते हुए use करना चाहिए? By Right To Shiksha 2024, नवंबर
Anonim
एक स्वचालित फोन चार्जर
एक स्वचालित फोन चार्जर

"यह निर्देश दक्षिण फ्लोरिडा विश्वविद्यालय (www.makecourse.com) में मेककोर्स की परियोजना की आवश्यकता को पूरा करने के लिए बनाया गया था"

इस परियोजना के पीछे का विचार एक ऐसा उपकरण बनाना था जो फोन को चार्ज कर सके, और जब फोन 100% तक पहुंच जाए तो इसे अनप्लग कर दें। इससे ओवर चार्जिंग की समस्या खत्म हो जाएगी।

चरण 1: प्लास्टिक अवयव

प्लास्टिक अवयव
प्लास्टिक अवयव
प्लास्टिक अवयव
प्लास्टिक अवयव
प्लास्टिक अवयव
प्लास्टिक अवयव
प्लास्टिक अवयव
प्लास्टिक अवयव

कुछ ऐसे घटक थे जिनका उपयोग किया गया था जो 3डी प्रिंटेड थे। इन घटकों में एक आधार, चार्जर के लिए एक धारक, एक रैक और पिनियन गियर सेट (एक सामान्य गियर और एक रैखिक टुकड़ा जो रोटेशन को रैखिक गति में बदलता है), और हर चीज को संचालित करने के लिए एक आधार शामिल था। इन घटकों को निम्नलिखित पैराग्राफ में समझाया जाएगा। उपस्थिति के क्रम में

चार्जर धारक

इसका उद्देश्य फोन चार्जर को पकड़ना है, या कम से कम इसे एक बेहतर और स्तरीय आधार देना है।

आधार

बेस में फोन होल्डर के लिए रिंग के साथ-साथ गियर सेट के लिए एक ट्रैक है।

फोन धारक

फोन पकड़ता है, जाहिर है

फोन शाखा

फ़ोन को हिलाता और रखता है

रैक और पिनियन गियर सेट

फ़ोन चार्जर को आगे-पीछे करने के लिए प्रयुक्त होता है

चरण 2: गैर 3D मुद्रित घटकों का टूटना

ये वे घटक हैं जो या तो परियोजना के लिए खरीदे गए थे या पहले से ही स्वामित्व में हैं। कुछ हिस्सों के लिए मैंने उनसे लिंक किया/अमेज़ॅन पर इसी तरह की वस्तुओं के लिए, लेकिन उन्हें कहीं भी हासिल करने के लिए स्वतंत्र महसूस करें।

माइक्रो सर्वो:https://www.amazon.com/J-Deal-Micro-Helicopter-Air…

मानक 0-180 सर्वो:https://www.amazon.com/Futaba-FUTM0031-S3003-Stand…

HC-05 ब्लूटूथ सीरियल मॉड्यूल:https://www.amazon.com/HC-05-Bluetooth-Pass-throug…

फोन और फोन चार्जर

अरुडिनो

ब्रेड बोर्ड

आधार के लिए बॉक्स या बिन

टच सेंसर:https://www.amazon.com/Digital-Sensor-capacitive-s…

चरण 3: इलेक्ट्रॉनिक्स

इलेक्ट्रानिक्स
इलेक्ट्रानिक्स

इस परियोजना के लिए सर्किट में कुछ की आवश्यकता हो सकती है, मुख्यतः HC-05 मॉड्यूल के कारण। इस प्रकार के कई मॉड्यूल लगभग 3.3V से 6V की दर के हैं, जो कि Arduino के ऑपरेटिंग रेंज में है। लेकिन, धारावाहिक संचार के लिए Rx पिन कभी-कभी केवल 3.3V के साथ बेहतर काम करता है। जैसा कि उपरोक्त आरेख में देखा गया है कि दो सर्वो Arduino पर विन पिन से जुड़े हुए हैं। इस अतिरिक्त वोल्टेज की आपूर्ति किसी भी चीज से की जा सकती है, मैंने 9 वोल्ट की बैटरी का उपयोग किया है। टच सेंसर को Arduino पर 5V में प्लग किया गया था। ऐसा इसलिए था क्योंकि सभी घटकों को एक ही वोल्टेज से चलने में परेशानी होती थी। टच सेंसर पिन 2 से जुड़ा हुआ है इसलिए इसे पिन इंटरप्ट के रूप में इस्तेमाल किया जा सकता है। फिर ब्लूटूथ मॉड्यूल सीरियल संचार के लिए आरएक्स और टीएक्स पिन से जुड़ा है। मॉड्यूल पर Rx पिन और Arduino पर Tx के बीच एक 2 किलो ओम अवरोधक है जिसमें 1 किलो ओम जमीन से जुड़ा है। यह अंदर जाने वाले वोल्टेज को नियंत्रित करने में मदद करता है।

चरण 4: विधानसभा

सभा
सभा

विधानसभा काफी सरल है।

  1. कुछ सुपर ग्लू के साथ अपने सर्वो को उनकी स्थिति में माउंट करें, एक आधार पर कटआउट द्वारा गियर के लिए और दूसरा जहां फोन का आधार है।
  2. फ़ोन धारक को स्पर्श संवेदक संलग्न करें, ताकि यह जान सके कि फ़ोन कब है।
  3. फिर गियर और आर्म को उनके संबंधित सर्वो से जोड़ दें
  4. सुनिश्चित करें कि जब आप अपने इलेक्ट्रॉनिक्स को भरते हैं तो तार अन्य घटकों के साथ हस्तक्षेप नहीं करते हैं

चरण 5: कोड

कोड के तीन सेट हैं जो प्रस्तुत किए जाएंगे, Arduino के लिए एक कोड, जो Arduino IDE में बनाया गया था और दो कोड जो Android Studio में बनाए गए थे। एंड्रॉइड ऐप समान हैं, एक को छोड़कर एक पूर्ण ऐप है जो बैटरी लाइफ को ट्रैक करता है और एक नहीं करता है। दूसरा परीक्षण उद्देश्यों के लिए है।

Arduino कोड

इस कोड का मुख्य बिंदु टच सेंसर और मोटर्स को संचालित करना है, यह फोन से एक कमांड प्राप्त करता है और उस पर कार्य करता है।

#include // सर्वो लाइब्रेरी को कॉल करता है ताकि हम दो सर्वो सर्वो सर्वो1 को नियंत्रित कर सकें; सर्वो सर्वो२;//प्रत्येक सर्वो मोटर के लिए दो सर्वो ऑब्जेक्ट बनाता है int a=0;//int q=0 परीक्षण के लिए ट्रैकिंग चर;//एक चर जो प्लगिन प्रक्रिया शुरू होने से पहले देरी होने की अनुमति देता है char c;// वेरिएबल जिसमें फोन से सीरियल संदेश होता है शून्य सेटअप () {संलग्नइंटरप्ट (डिजिटलपिनटोइंटरप्ट (2), एएच, फॉलिंग); // यह जानने के लिए कि टच सेंसर कब देखता है जब फोन सर्वो 1 पर आउट हो रहा है। (10); सर्वो२.अटैच(९);// दो सर्वो को इनिशियलाइज़ करता है सीरियल.बेगिन(९६००);// ब्लूटूथ मॉड्यूल के समान दर पर सीरियल संचार शुरू करता है सर्वो२.राइट(२०);//ऑटो सर्वो को इस पर सेट करता है एक प्रारंभिक स्थिति सर्वो १.लिखें (१८०); }

शून्य लूप () {

अगर (सीरियल। उपलब्ध ()) {// यह जांचता है कि सीरियल पिन टीएक्स और आरएक्स पर फोन से कुछ आ रहा है या नहीं। सी = सीरियल.रीड (); // पढ़ता है कि क्या आ रहा है अगर (सी == 't'){// अगर सीरियल डिवाइस पढ़ता है तो इसका मतलब है कि फोन पूरी तरह से चार्ज हो गया है, अनप्लगिंग प्रक्रिया सर्वो २.राइट (१२०) शुरू होती है; // चार्जर विलंब को अनप्लग करता है (५०००); // यह सुनिश्चित करने के लिए प्रतीक्षा करता है सर्वो१.राइट (११०) को हटाने का समय है;//फोन को एक सीधी स्थिति में सिग्नल करने के लिए ले जाता है //Serial.println("here"); अटैचइंटरप्ट (डिजिटलपिनटूइंटरप्ट(2), एएच, फॉलिंग);//इंटरप्ट को फिर से जोड़ता है } } अगर (क्यू==1){//अगर प्लगिन की स्थिति सही है तो चार्जर डिले (10000) संलग्न करने के साथ शुरू करें; सर्वो२.लिखें(०);//सर्वो को स्थिति q=0 में ले जाता है;//स्थिति को रीसेट करता है } }

शून्य एएच () {

// सीरियल.प्रिंट्लन ("इन"); सर्वो१.राइट(१८०);// फोन प्लेटफॉर्म को चार्जिंग पोजीशन में छोड़ देता है q=1;//प्रक्रिया जारी रखने के लिए कंडीशन शुरू करता है //a=1; डिटैचइंटरप्ट (डिजिटलपिनटोइंटरप्ट(2));//इंटरप्ट को डिटैच करता है, ताकि जब इंटरप्ट शुरू न हो तो कोई समस्या न हो }

एंड्रॉइड ऐप

यहां मैं केवल उचित ऐप प्रदर्शित करूंगा लेकिन टेस्ट कोड फ़ाइल भी दी जाएगी, केवल अंतर रननेबल और गेटबैटरी क्लास को हटाने का होगा। उल्लिखित सीरियल कोड वह है जो मॉड्यूल जैसे उपकरणों से कनेक्ट होने वाले फोन के लिए मानक है।

पैकेज com.example.daniel.make; आयात android.bluetooth. BluetoothAdapter; आयात android.bluetooth. BluetoothDevice; आयात android.bluetooth. BluetoothSocket; आयात android.os. Handler; android.support.v7.app. AppCompatActivity आयात करें; आयात android.os. Bundle; आयात android.content. Intent; आयात android.content. IntentFilter; आयात android.os. BatteryManager; java.io. IOException आयात करें; आयात java.io. OutputStream; आयात java.util. Set; आयात java.util. UUID;

सार्वजनिक वर्ग MainActivity AppCompatActivity का विस्तार करता है {

// आवश्यक वस्तुओं का निर्माण हैंडलर हैंडलर;//लूप रननेबल रननेबल के साथ मदद करता है;//लगातार ब्लूटूथ एडेप्टर mBluetoothAdapter चलाता है; ब्लूटूथसॉकेट मिमीसॉकेट; ब्लूटूथडिवाइस मिमीडिवाइस; आउटपुटस्ट्रीम मिमीऑउटपुटस्ट्रीम; अस्थिर बूलियन स्टॉपवर्कर; निजी आउटपुटस्ट्रीम आउटपुटस्ट्रीम; निजी अंतिम स्ट्रिंग DEVICE_NAME="HC-05"; निजी अंतिम UUID PORT_UUID = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); निजी ब्लूटूथ एडाप्टर डिवाइस; निजी ब्लूटूथ सॉकेट सॉकेट; @Override संरक्षित शून्य पर क्रिएट (बंडल सेव किया गया इंस्टेंसस्टेट) {// निर्देशों का एक सेट है जो ऐप बनने पर चलता है। रननेबल = नया रननेबल () {@ ओवरराइड पब्लिक शून्य रन () {// बार-बार इंट लेवल = (इंट) गेटबैटरी (); // वर्तमान बैटरी स्तर प्राप्त करता है यदि (स्तर == 100) {// यदि बैटरी स्तर 100% तक पहुँचने की कोशिश करें {getBT ();//ब्लूटूथ मॉड्यूल openBT से जुड़ता है (); // इसे खोलता है SendData (); // आवश्यक डेटा भेजता है closeBT (); // ऑब्जेक्ट को बंद करता है} पकड़ (IOException पूर्व) { } } हैंडलर.पोस्टडेलेड (चलाने योग्य, 5000);//एक देरी}}; हैंडलर = नया हैंडलर (); हैंडलर.पोस्टडेलेड (चलने योग्य, 0); }

सार्वजनिक फ्लोट गेटबैटरी () {

इंटेंट बैटरी इंटेंट = रजिस्टर रिसीवर (अशक्त, नया इंटेंटफिल्टर (इरादा। ACTION_BATTERY_CHANGED)); // बैटरी से कनेक्ट होने वाली क्रिया बनाता है int स्तर = बैटरीइन्टेंट। getIntExtra (बैटरी प्रबंधक। EXTRA_LEVEL, -1); // बेहतर स्तर प्राप्त करता है इंट स्केल = BatteryIntent.getIntExtra(BatteryManager. EXTRA_SCALE, -1);//बैटरी का पैमाना प्राप्त करता है अगर (स्तर == -1 || स्केल == -1) {//गलत वापसी के मामले में 50.0f; } फ्लोट बैट = (लेवल/(फ्लोट) स्केल)*100.0f;//उचित स्केल रिटर्न बैट प्राप्त करता है;//लेवल लौटाता है}

शून्य getBT () {// संभव ब्लूटूथ कनेक्शन प्राप्त करता है

mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter ();//एडॉप्टर प्राप्त करता है अगर(!mBluetoothAdapter.isEnabled ()) {// सुनिश्चित करता है कि फोन इंटेंट पर ब्लू टूथ है चालू नहीं हुआ तो startActivityForResult (सक्षम ब्लूटूथ, 0); } युग्मितडिवाइस सेट करें = mBluetoothAdapter.getBondedDevices ();//बंधुआ ब्लूटूथ की सूची प्राप्त करता है अगर(pairedDevices.size() > 0) {// सुनिश्चित करता है कि (ब्लूटूथडिवाइस डिवाइस: पेयरडिवाइस) के लिए कुछ डिवाइस हैं {// लूप डिवाइस if(device.getName().equals("HC-05")) {//जांचता है कि क्या यह उचित एक mmDevice = device;//सेव्स इसे तोड़ता है; } } } }

शून्य ओपनबीटी () IOException फेंकता है {

UUID uuid = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); // मानक //SerialPortService ID mmSocket = mmDevice.createRfcommSocketToServiceRecord (uuid);// उचित आईडी के साथ डिवाइस से कनेक्ट होता है mmSocket.connect (); // कनेक्ट करता है mmOutputStream = mmSocket.getOutputStream (); // भेजने की क्षमता शुरू करता है Arduino मॉड्यूल के लिए डेटा}

शून्य प्रेषण () IOException को फेंकता है {// वर्ग जो t को arduino पर भेजता है

mmOutputStream.write ('टी'); }

शून्य क्लोज़बीटी () IOException को फेंकता है {// arduino के सभी कनेक्शन बंद कर देता है

स्टॉपवर्कर = सच; mmOutputStream.close (); एमएमसॉकेट.क्लोज़ (); } }

चरण 6: फ़ाइलें

पढ़ने के लिए धन्यवाद, इस परियोजना में उपयोग की गई फाइलें संलग्न हैं

सिफारिश की: