
Мазмұны:
2025 Автор: John Day | [email protected]. Соңғы өзгертілген: 2025-01-23 14:51

«Бұл нұсқаулық Оңтүстік Флорида университетінің (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 -қадам: құрастыру

Құрастыру өте қарапайым.
- кейбір супер желіммен сервоприводтарды өз орындарына орнатады, біреуі негіздегі тісті беріліс үшін, екіншісі телефон негізі орналасқан жерге жақын.
- Сенсорды телефон ұстағышына бекітіңіз, сонда ол телефонның қашан екенін біледі.
- Содан кейін редуктор мен қолды тиісті сервоприводтарға бекітіңіз
- Электрониканы толтырған кезде сымдар басқа компоненттерге кедергі жасамайтынына көз жеткізіңіз
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 -қадам: файлдар
Оқығаныңызға рахмет, осы жобада қолданылған файлдар қоса берілді
Ұсынылған:
Ли-ион телефонды қоқыс жәшігінен зарядтау: 4 қадам

Ли-ион телефонды қоқыс жәшігінен зарядтау: бұл адамдардың көпшілігінің үйінде жатқан заттардың тез және қарапайым қуат банкі
WiFi резервуарлы өсімдіктерді автоматты түрде беру - жабық/ашық ауада өсіру - су қондырғылары қашықтан бақылаумен автоматты түрде: 21 қадам

Резервуарлы WiFi автоматты өсімдік қоректендіргіші - жабық/ашық өсіру қондырғысы - су қондырғылары қашықтан бақылаумен автоматты түрде: Бұл оқулықта біз өсімдіктерді автоматты түрде суаратын және Adosia платформасы арқылы қашықтан бақыланатын жабық/ашық өсімдіктерді тамақтандыратын жүйені қалай орнату керектігін көрсетеміз
Үйде ұялы телефонды зарядтау қазына оқулығы: 7 қадам

Үйде ұялы телефонды зарядтау қазына оқулығы: Менің ойымша, көптеген шағын серіктестер ұялы телефондардың ауыр пайдаланушылары. Ұялы телефонның кенеттен қуатының жоғалуын болдырмау үшін өзіңізге ұялы телефонды зарядтау қазынасын дайындау қажет! Телефонды зарядтай алатын құрылғыны бөлісіңіз
Жоғалған ұялы телефонды немесе сымсыз телефонды қалай табуға болады: 6 қадам

Жоғалған ұялы телефонды немесе сымсыз телефонды қалай табуға болады: сценарий: Әйелім екеуіміздің ұялы телефондарымыз бар. Біз енді үй телефонын қолданбаймыз, өйткені біз үнемі жүреміз. Неге сіз әрең қолданатын қалалық телефон үшін төлейсіз
Ретро телефонды зарядтау станциясы: 10 қадам (суреттермен)

Ретро телефонды зарядтау станциясы: Мен винтажды айналмалы телефонның келбетін жақсы көремін және олардың бірнешеуін қайта тірілтуді сұрап жатып қалдым. Шабыттану үшін мен форма мен қызметке үйленуді шештім. Осылайша ретро телефонды зарядтау станциясы пайда болады