Мазмұны:

Телефонды автоматты түрде зарядтау: 6 қадам (суреттермен)
Телефонды автоматты түрде зарядтау: 6 қадам (суреттермен)
Anonim
Автоматты телефон зарядтағыш
Автоматты телефон зарядтағыш

«Бұл нұсқаулық Оңтүстік Флорида университетінің (www.makecourse.com) Makecourse жобасының талаптарын орындау үшін жасалған».

Бұл жобаның идеясы телефонды зарядтай алатын құрылғыны құру болды, содан кейін телефон 100%жеткенде оны ажыратыңыз. Бұл артық зарядтау мәселелерін тоқтатады.

1 -қадам: Пластикалық компоненттер

Пластикалық компоненттер
Пластикалық компоненттер
Пластикалық компоненттер
Пластикалық компоненттер
Пластикалық компоненттер
Пластикалық компоненттер
Пластикалық компоненттер
Пластикалық компоненттер

3D басып шығарылған кейбір компоненттер қолданылды. Бұл компоненттер негізден, зарядтағышқа арналған ұстағыштан, тірек пен тісті доңғалақ жиынтығынан (қалыпты беріліс пен айналуды сызықты қозғалысқа өзгертетін сызықтық бөлік) және барлық жұмыс істеуге арналған негізден тұрады. Бұл компоненттер келесі абзацтарда түсіндіріледі. Пайда болу реті бойынша

Зарядтағыш ұстағыш

Мұның мақсаты - телефон зарядтағышын ұстап тұру, немесе, ең болмағанда, оған жақсы және тегіс негіз беру.

Негіз

Негізде телефон ұстағышқа арналған сақиналар, сондай -ақ беріліс жинағына арналған жол бар.

Телефон ұстағыш

Телефонды ұстайтыны анық

Телефон қолы

Телефонды жылжытады және ұстайды

Тіректер мен тісті доңғалақтар жиынтығы

Телефон зарядтағышын алға -артқа жылжыту үшін қолданылады

2 -қадам: 3D басып шығарылмаған компоненттерді бөлшектеу

Бұл жобаға сатып алынған немесе қазірдің өзінде тиесілі компоненттер. Кейбір бөлшектер үшін мен оларға Amazon -дағы ұқсас элементтерді сілтеме жасадым, бірақ оларды кез келген жерден сатып алуға болады.

Микросерво:

0-180 стандартты сервисі:

HC-05 Bluetooth сериялық модулі:

Телефон мен телефон зарядтағыш

Ардуино

Нан тақтасы

Негізге арналған қорап немесе қоқыс жәшігі

Сенсорлық сенсор:

3 -қадам: электроника

Электроника
Электроника

Бұл жобаның схемасы HC-05 модулінің арқасында қажет болуы мүмкін. Бұл түрдегі көптеген модульдер Arduino жұмыс диапазонында болатын шамамен 3,3 В -тан 6 В -қа дейінгі жылдамдыққа ие. Бірақ сериялық байланыс үшін Rx түйреуіші кейде тек 3,3 В -пен жақсы жұмыс істейді. Жоғарыда көрсетілген диаграммада көрсетілгендей, екі серво Arduino -дағы Вин түйреуішіне қосылған. Бұл қосымша кернеуді кез келген нәрсе бере алады, мен 9 вольтты батареяны қолдандым. Сенсор сенсор Arduino 5V -ге қосылды. Бұл барлық компоненттер бірдей кернеуді өшіруде қиындықтарға байланысты болды. Сенсор сенсор 2 түйреуге бекітілген, сондықтан оны түйреуіш ретінде пайдалануға болады. Содан кейін Bluetooth модулі сериялық байланыс үшін Rx және Tx түйреуіштеріне қосылады. Модульдегі Rx түйреуіші мен Arduino -дағы Tx арасында жерге қосылатын 1 кило Ом бар 2 кило Ом резисторы бар. Бұл кернеуді реттеуге көмектеседі.

4 -қадам: құрастыру

Ассамблея
Ассамблея

Құрастыру өте қарапайым.

  1. кейбір супер желіммен сервоприводтарды өз орындарына орнатады, біреуі негіздегі тісті беріліс үшін, екіншісі телефон негізі орналасқан жерге жақын.
  2. Сенсорды телефон ұстағышына бекітіңіз, сонда ол телефонның қашан екенін біледі.
  3. Содан кейін редуктор мен қолды тиісті сервоприводтарға бекітіңіз
  4. Электрониканы толтырған кезде сымдар басқа компоненттерге кедергі жасамайтынына көз жеткізіңіз

5 -қадам: код

Ұсынылатын үш код жиынтығы бар, Arduino IDE -де жасалған Arduino үшін бір код және Android Studio -да жасалған екі код. Android қосымшалары бірдей, тек біреуі - батареяның қызмет ету мерзімін бақылайтын, ал біреуі жоқ. Екіншісі тестілеуге арналған.

Arduino коды

Бұл кодтың негізгі мәні сенсор мен қозғалтқышты басқару болып табылады, ол телефоннан команданы қабылдайды және оған әрекет етеді.

#include // servo кітапханасына қоңырау шалады, осылайша біз екі servosServo servo1 басқара аламыз; Servo servo2; // әрбір servo қозғалтқыш үшін екі серво объектісін жасайды int a = 0; // int q = 0 тестілеу үшін бақылау айнымалысы; // pluggin процесінің басталуына дейін кешігуге мүмкіндік беретін айнымалы char c; // телефонның сериялық хабарын қамтитын айнымалы мәні () {attachInterrupt (digitalPinToInterrupt (2), AH, FALLING); (10); servo2.attach (9); // Serial.begin (9600) екі сервосын инициализациялайды; // сериялық байланысты servo2.write (20) bluetooth модуліне ұқсас жылдамдықпен бастайды; // автоматты түрде серводы орнатады бастапқы ұстаным servo1.write (180); }

void loop () {

if (Serial.available ()) {// бұл телефоннан Tx және Rx c = Serial.read () сериялық түйреуіштері арқылы телефоннан бірдеңе кіретінін тексереді; // if (c == 't') {// егер бұл кезде сериялық құрылғы оқылса, бұл телефонның толық зарядталғанын білдіреді, ажырату процесі servo2.write (120) басталады; // зарядтағыштың кешігуін ажыратады (5000); // көз жеткізу үшін күтеді жоюға уақыт бар servo1.write (110); // сигнал беру үшін телефонды тік күйге жылжытады //Serial.println( осында «); attachInterrupt (digitalPinToInterrupt (2), AH, FALLING); // үзілісті қайта қосады}} if (q == 1) {// егер қосылу шарты қате болса, онда зарядтағыштың кідірісін (10000) тіркеуден бастаңыз; servo2.write (0); // сервоны q = 0 күйіне жылжытады; // шартты қалпына келтіреді}}

жарамсыз AH () {

//Serial.println( in «); servo1.write (180); // телефон платформасын q = 1 зарядтау күйіне түсіреді; // процесті жалғастыру үшін шартты бастайды // a = 1; detachInterrupt (digitalPinToInterrupt (2)); // үзілісті ажыратады, осылайша қажет болмаған кезде үзіліс кезінде ешқандай проблемалар болмайды}

Android қолданбасы

Мұнда мен тек тиісті қосымшаны көрсетемін, бірақ тест кодының файлы да беріледі, тек айырмашылығы іске қосылатын және getBattery класын жоюда болады. Аталған сериялық код - бұл модуль сияқты құрылғыларға қосылатын телефондар үшін стандартты код.

com.example.daniel.make пакеті; android.bluetooth. Bluetooth адаптерін импорттау; 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 кеңейтеді {

// қажетті объектілерді жасау Handler өңдегіші; // Runnable runnable цикліне көмектеседі; // үздіксіз жұмыс істейді BluetoothAdapter mBluetoothAdapter; BluetoothSocket mmSocket; BluetoothDevice mmDevice; OutputStream mmOutputStream; тұрақсыз логикалық stopWorker; жеке OutputStream outputStream; жеке соңғы DEVICE_NAME String = «HC-05»; жеке соңғы UUID PORT_UUID = UUID.fromString («00001101-0000-1000-8000-00805f9b34fb»); Bluetooth адаптерінің жеке құрылғысы; BluetoothSocket жеке ұясы; @Override қорғалған void onCreate (Bundle saveInstanceState) {// - бұл бағдарлама жасалған кезде іске қосылатын нұсқаулар жиынтығы super.onCreate (saveInstanceState); // displya құру setContentView (R.layout.activity_main); runnable = new Runnable () {@Override public void run () {// бірнеше рет орындалады int level = (int) getBattery (); // егер батарея деңгейі болса, ағымдағы батарея деңгейін алады (// = 100% тырысады {getBT (); // bluetooth модуліне қосылады openBT (); // оны ашады sendData (); // қажетті деректерді жібереді closeBT (); // нысанды жабады} аулау (IOException ex) { }} handler.postDelayed (іске қосуға болады, 5000); // кешігу}}; өңдегіш = жаңа өңдегіш (); handler.postDelayed (іске қосылатын, 0); }

public float getBattery () {

Intent = registerReceiver (null, new IntentFilter (Intent. ACTION_BATTERY_CHANGED)); // аккумуляторға қосылатын әрекетті жасайды int level = batteryIntent.getIntExtra (BatteryManager. EXTRA_LEVEL, -1); batteryIntent.getIntExtra (BatteryManager. EXTRA_SCALE, -1); // аккумулятордың масштабын алады, егер (деңгей == -1 || шкала == -1) {// қате қайтарылған жағдайда 50.0f; } float batt = (level/(float) масштабы)*100.0f; // тиісті масштабты қайтару батысын алады; // деңгейді қайтарады}

void getBT () {// мүмкін Bluetooth байланыстарын алады

mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter (); // адаптерді алады, егер! startActivityForResult болмаса қосылады (enableBluetooth, 0); } Set pairedDevices = mBluetoothAdapter.getBondedDevices (); // байланыстырылған bluetooth тізімін алады, егер (pairedDevices.size ()> 0) {// (BluetoothDevice device: pairedDevices) {// үшін кейбір құрылғылардың бар екеніне көз жеткізеді. devices if (device.getName (). equals («HC-05»)) {// оның дұрыс mmDevice = құрылғы екенін тексереді; // үзілісті сақтайды; }}}}

void openBT () IOException шығарады {

UUID uuid = UUID.fromString («00001101-0000-1000-8000-00805f9b34fb»); // Standard // SerialPortService ID mmSocket = mmDevice.createRfcommSocketToServiceRecord (uuid); // құрылғыға mmSocket.connect () идентификаторымен қосылады; // mmOutputStream = mmSocket.getOutputStream () қосады; // жіберу мүмкіндігін бастайды. arduino модуліне деректер}

void sendData () tunu arduino -ға жіберетін IOException {// сыныбын шығарады

mmOutputStream.write ('t'); }

void closeBT () IOException шығарады {// arduino -мен барлық байланыстарды жабады

stopWorker = ақиқат; mmOutputStream.close (); mmSocket.close (); }}

6 -қадам: файлдар

Оқығаныңызға рахмет, осы жобада қолданылған файлдар қоса берілді

Ұсынылған: