সুচিপত্র:

একটি স্বয়ংক্রিয় ফোন চার্জার: 6 টি ধাপ (ছবি সহ)
একটি স্বয়ংক্রিয় ফোন চার্জার: 6 টি ধাপ (ছবি সহ)

ভিডিও: একটি স্বয়ংক্রিয় ফোন চার্জার: 6 টি ধাপ (ছবি সহ)

ভিডিও: একটি স্বয়ংক্রিয় ফোন চার্জার: 6 টি ধাপ (ছবি সহ)
ভিডিও: সকল ধরনের মোবাইলের চার্জিং সমস্যা সমাধান করুন।Solve all types of mobile charging problems. 2024, নভেম্বর
Anonim
একটি স্বয়ংক্রিয় ফোন চার্জার
একটি স্বয়ংক্রিয় ফোন চার্জার

"এই নির্দেশযোগ্যটি দক্ষিণ ফ্লোরিডা বিশ্ববিদ্যালয়ে মেককোর্সের প্রকল্পের প্রয়োজনীয়তা পূরণের জন্য তৈরি করা হয়েছিল (www.makecourse.com)"

এই প্রকল্পের পিছনে ধারণা ছিল একটি ডিভাইস তৈরি করা যা একটি ফোন চার্জ করতে পারে, এবং তারপর ফোনটি 100%পৌঁছানোর পরে এটি আনপ্লাগ করুন। এটি অতিরিক্ত চার্জিংয়ের সমস্যা বন্ধ করবে।

ধাপ 1: প্লাস্টিকের উপাদান

প্লাস্টিক উপাদান
প্লাস্টিক উপাদান
প্লাস্টিক উপাদান
প্লাস্টিক উপাদান
প্লাস্টিক উপাদান
প্লাস্টিক উপাদান
প্লাস্টিক উপাদান
প্লাস্টিক উপাদান

সেখানে কিছু উপাদান ব্যবহার করা হয়েছিল যা 3D মুদ্রিত ছিল। এই উপাদানগুলির মধ্যে একটি বেস, চার্জারের জন্য একটি ধারক, একটি র্যাক এবং পিনিয়ন গিয়ার সেট (একটি সাধারণ গিয়ার এবং একটি রৈখিক টুকরা যা ঘূর্ণনকে রৈখিক চলাচলে পরিবর্তন করে), এবং সবকিছু চালানোর জন্য একটি বেস। এই উপাদানগুলি নিম্নলিখিত অনুচ্ছেদে ব্যাখ্যা করা হবে। উপস্থিতির ক্রমে

চার্জার হোল্ডার

এর উদ্দেশ্য হল ফোনের চার্জার ধরে রাখা, অথবা কমপক্ষে এটিকে আরও ভাল এবং স্তরের ভিত্তি দেওয়া।

ভিত্তি

বেসটিতে ফোন হোল্ডারের জন্য রিং এবং গিয়ার সেটের ট্র্যাক রয়েছে।

ফোন ধারক

ফোন ধরল, স্পষ্টতই

ফোন আর্ম

মুভ করে এবং ফোন ধরে রাখে

র্যাক এবং পিনিয়ন গিয়ার সেট

ফোনের চার্জারকে পেছনে সরানোর জন্য ব্যবহৃত হয়

ধাপ 2: নন -ডি প্রিন্টেড কম্পোনেন্টগুলি ভেঙে ফেলুন

এইগুলি এমন উপাদান যা প্রকল্পের জন্য কেনা হয়েছিল বা ইতিমধ্যে মালিকানাধীন ছিল। আমি অ্যামাজনে তাদের/অনুরূপ আইটেমগুলির সাথে সংযুক্ত কিছু অংশের জন্য, কিন্তু সেগুলি যেকোনো জায়গায় নির্দ্বিধায় অর্জন করতে পারি।

মাইক্রো সার্ভো:

স্ট্যান্ডার্ড 0-180 সার্ভো:

HC-05 ব্লুটুথ সিরিয়াল মডিউল:

ফোন এবং ফোন চার্জার

আরডুইনো

ব্রেডবোর্ড

বেসের জন্য বাক্স বা বিন

টাচ সেন্সর:

ধাপ 3: ইলেকট্রনিক্স

ইলেকট্রনিক্স
ইলেকট্রনিক্স

এই প্রকল্পের সার্কিটের কিছু প্রয়োজন হতে পারে, প্রধানত HC-05 মডিউলের কারণে। এই ধরনের অনেক মডিউল মোটামুটি 3.3V থেকে 6V এর জন্য রেট, যা Arduino এর অপারেটিং রেঞ্জে রয়েছে। কিন্তু, সিরিয়াল যোগাযোগের জন্য Rx পিন কখনও কখনও শুধুমাত্র 3.3V এর সাথে ভাল কাজ করে। উপরের চিত্রটিতে দেখা গেছে, দুটি সার্ভিস আরডুইনোতে ভিন পিনের সাথে সংযুক্ত। এই অতিরিক্ত ভোল্টেজ যে কোন কিছু দ্বারা সরবরাহ করা যেতে পারে, আমি একটি 9 ভোল্ট ব্যাটারি ব্যবহার করেছি। টাচ সেন্সরটি আরডুইনোতে 5V এ প্লাগ করা হয়েছিল। এটি ছিল কারণ সমস্ত উপাদান একই ভোল্টেজ বন্ধ চলতে সমস্যা ছিল। টাচ সেন্সরটি পিন 2 এর সাথে সংযুক্ত থাকে তাই এটি একটি পিন ইন্টারাপ্ট হিসাবে ব্যবহার করা যেতে পারে। তারপর ব্লুটুথ মডিউল সিরিয়াল যোগাযোগের জন্য Rx এবং Tx পিনের সাথে সংযুক্ত থাকে। মডিউলের আরএক্স পিনের মধ্যে এবং আরডুইনোতে টিএক্সের মধ্যে একটি 2 কিলো ওহম প্রতিরোধক রয়েছে যার সাথে 1 কিলো ওম মাটির সাথে সংযুক্ত। এটি ভোল্টেজকে নিয়ন্ত্রণ করতে সাহায্য করে।

ধাপ 4: সমাবেশ

সমাবেশ
সমাবেশ

সমাবেশ বেশ সহজ।

  1. কিছু সুপার আঠা দিয়ে আপনার সার্ভিসগুলিকে তাদের অবস্থানে মাউন্ট করুন, একটি বেসের কাটআউট দ্বারা গিয়ারের জন্য এবং আরেকটি যেখানে ফোনের বেস রয়েছে তার কাছাকাছি।
  2. ফোন ধারকের সাথে টাচ সেন্সর সংযুক্ত করুন, যাতে ফোনটি কখন আছে তা জানতে পারে।
  3. তারপর গিয়ার এবং হাত তাদের নিজ নিজ servos সংযুক্ত করুন
  4. আপনি আপনার ইলেকট্রনিক্স ভর্তি করার সময় তারের অন্যান্য উপাদানগুলির সাথে হস্তক্ষেপ করবেন না তা নিশ্চিত করুন

ধাপ 5: কোড

সেখানে তিনটি সেট কোড উপস্থাপন করা হবে, Arduino এর জন্য একটি কোড, যা Arduino IDE তে তৈরি করা হয়েছিল এবং দুটি কোড যা অ্যান্ড্রয়েড স্টুডিওতে তৈরি হয়েছিল। অ্যান্ড্রয়েড অ্যাপগুলি একই রকম একটি ছাড়া একটি সম্পূর্ণ অ্যাপ যা ব্যাটারি লাইফ ট্র্যাক করে এবং একটি করে না। দ্বিতীয়টি পরীক্ষার উদ্দেশ্যে।

Arduino কোড

এই কোডের মূল বিষয় হল টাচ সেন্সর এবং মোটর পরিচালনা করা, এটি ফোন থেকে একটি কমান্ড গ্রহণ করে এবং তার উপর কাজ করে।

#অন্তর্ভুক্ত // সার্ভো লাইব্রেরিকে কল করে যাতে আমরা দুটি সার্ভস সার্ভো সার্ভো 1 নিয়ন্ত্রণ করতে পারি; Servo servo2; // প্রতিটি servo মোটরের জন্য দুটি servo অবজেক্ট তৈরি করে int a = 0; // int q = 0 পরীক্ষার জন্য ট্র্যাকিং ভেরিয়েবল; // একটি ভেরিয়েবল যা প্লাগিন প্রক্রিয়া শুরু হওয়ার আগে বিলম্ব হতে দেয় চার c; // যে ভেরিয়েবলটিতে ফোন থেকে সিরিয়াল মেসেজ রয়েছে সেটি বাতিল (10); servo2.attach (9); // দুটি servos Serial.begin (9600) আরম্ভ করে; একটি শুরু অবস্থান servo1.write (180); }

অকার্যকর লুপ () {

যদি (সিরিয়াল.ভলভেড) 't') {// যদি সিরিয়াল ডিভাইসটি তখন পড়ে তাহলে এর মানে হল যে ফোনটি সম্পূর্ণ চার্জ হয়ে গেছে, আনপ্লাগিং প্রক্রিয়া শুরু হয় servo2.write (120); // চার্জার বিলম্ব (5000) আনপ্লাগ করে; // নিশ্চিত করার জন্য অপেক্ষা করে servo1.write (110) অপসারণের সময় আছে সংযুক্ত করুন servo2.write (0); // servo কে q = 0 অবস্থানে নিয়ে যায়; // রিসেট কন্ডিশন}}

অকার্যকর AH () {

//Serial.println("in "); servo1.write (180); // ফোন প্ল্যাটফর্মকে চার্জিং পজিশনে ফেলে দেয় q = 1; // প্রক্রিয়াটি চালিয়ে যাওয়ার জন্য শর্ত শুরু করে // a = 1; বিচ্ছিন্ন করে দেয়

অ্যান্ড্রয়েড অ্যাপ

এখানে আমি শুধু যথাযথ অ্যাপ প্রদর্শন করব কিন্তু টেস্ট কোড ফাইলও দেওয়া হবে, একমাত্র পার্থক্য হবে রানযোগ্য এবং গেট ব্যাটারি শ্রেণী অপসারণ। উল্লিখিত সিরিয়াল কোডটি এমন একটি যা মডিউলের মতো ডিভাইসের সাথে সংযোগকারী ফোনের জন্য আদর্শ।

প্যাকেজ 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 {

// প্রয়োজনীয় বস্তু তৈরি করা হ্যান্ডলার হ্যান্ডলার; // লুপ রাননেবল রাননেবল সহ সাহায্য করে ব্লুটুথসকেট mmSocket; ব্লুটুথ ডিভাইস এমএমডিভিস; আউটপুট স্ট্রিম mmOutputStream; উদ্বায়ী বুলিয়ান স্টপ ওয়ার্কার; ব্যক্তিগত আউটপুট স্ট্রিম আউটপুট স্ট্রিম; ব্যক্তিগত চূড়ান্ত স্ট্রিং DEVICE_NAME = "HC-05"; ব্যক্তিগত চূড়ান্ত UUID PORT_UUID = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); ব্যক্তিগত ব্লুটুথ অ্যাডাপ্টার ডিভাইস; ব্যক্তিগত ব্লুটুথ সকেট সকেট; VerOverride সুরক্ষিত অকার্যকর onCreate (বান্ডেল saveInstanceState) {// হল নির্দেশাবলীর একটি সেট যা যখন অ্যাপ তৈরি করা হয় তখন super.onCreate (savedInstanceState); // ডিসপ্লিয়া সৃষ্টি setContentView (R.layout.activity_main); runnable = new Runnable () {@Override public void run () {// বার বার int level = (int) getBattery (); // বর্তমান ব্যাটারি লেভেল পায় যদি (level == 100) {// যদি ব্যাটারি লেভেল 100% তে পৌঁছে চেষ্টা করুন }} handler.postDelayed (runnable, 5000); // a delay}}; হ্যান্ডলার = নতুন হ্যান্ডলার (); handler.postDelayed (runnable, 0); }

পাবলিক ফ্লোট getBattery () {

ইন্টেন্ট ব্যাটারি ইন্টেন্ট = রেজিস্টার রিসিভার (নাল, নতুন ইন্টেন্ট ফিল্টার (ইন্টেন্ট। ACTION_BATTERY_CHANGED)); // ব্যাটারির সাথে সংযোগকারী ক্রিয়া তৈরি করে int level = batteryIntent.getIntExtra (BatteryManager. EXTRA_LEVEL, -1); // ভালো লেভেল int স্কেল = পায় batteryIntent.getIntExtra (BatteryManager. EXTRA_SCALE, -1); // ব্যাটারির স্কেল পায় যদি (লেভেল == -1 || স্কেল == -1) {// ভুল রিটার্নের ক্ষেত্রে 50.0f; } float batt = (level/(float) স্কেল)*100.0f; // সঠিক স্কেল রিটার্ন ব্যাট পায়; // লেভেল রিটার্ন করে}

অকার্যকর getBT () {// সম্ভাব্য ব্লুটুথ সংযোগ পায়

mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter (); // যদি অ্যাডাপ্টার পায় (! startActivityForResult না হলে চালু করুন (EnableBluetooth, 0); } PairedDevices = mBluetoothAdapter.getBondedDevices () সেট করুন; // বন্ধযুক্ত ব্লুটুথের তালিকা পায় যদি (pairedDevices.size ()> 0) {// নিশ্চিত করে যে (BluetoothDevice device: pairedDevices) {// loops এর মাধ্যমে কিছু ডিভাইস আছে ডিভাইসগুলি যদি (device.getName ()। সমান ("HC-05")) {// যাচাই করে যে এটি সঠিক এক mmDevice = device; // এটি সংরক্ষণ করে বিরতি; }}}}

অকার্যকর openBT () IOException {

UUID uuid = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); // স্ট্যান্ডার্ড // SerialPortService আইডি mmSocket = mmDevice.createRfcommSocketToServiceRecord (uuid); // যথাযথ আইডি mmSocket.connect (); // সংযোগ করে mmOutputStream = mmSocket.getOutputStream (); // পাঠানোর ক্ষমতা শুরু করে arduino মডিউলের ডেটা}

অকার্যকর SendData () IOException {// বর্গ ছুঁড়ে দেয় যা arduino তে t পাঠায়

mmOutputStream.write ('t'); }

void closeBT () IOException নিক্ষেপ করে {// arduino এর সাথে সমস্ত সংযোগ বন্ধ করে দেয়

stopWorker = সত্য; mmOutputStream.close (); mmSocket.close (); }}

ধাপ 6: ফাইল

পড়ার জন্য ধন্যবাদ, এই প্রকল্পে ব্যবহৃত ফাইলগুলি সংযুক্ত করা হয়েছে

প্রস্তাবিত: