Taula de continguts:
- Pas 1: components de plàstic
- Pas 2: desglosseu components no impresos en 3D
- Pas 3: electrònica
- Pas 4: Muntatge
- Pas 5: Codi
- Pas 6: fitxers
Vídeo: Un carregador de telèfon automàtic: 6 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:16
"Aquesta instrucció es va crear per complir els requisits del projecte del Makecourse de la Universitat del Sud de Florida (www.makecourse.com)"
La idea d’aquest projecte era crear un dispositiu que pogués carregar un telèfon i després desconnectar-lo quan el telèfon arribés al 100%. Això aturaria problemes de sobrecàrrega.
Pas 1: components de plàstic
Es van utilitzar alguns components que es van imprimir en 3D. Aquests components comprenien una base, un suport per al carregador, un conjunt d'engranatges de pinyó i cremallera (un engranatge normal i una peça lineal que canvia la rotació al moviment lineal) i una base per a què tot pugui funcionar. Aquests components s’explicaran als paràgrafs següents. Per ordre d’aparició
Porta carregador
El propòsit d’això és mantenir el carregador del telèfon o, com a mínim, donar-li una base millor i anivellada.
Base
La base té anells per al suport del telèfon, així com una pista per al conjunt d’engranatges.
Suport del telèfon
Sosté el telèfon, òbviament
Braç del telèfon
Es mou i sosté el telèfon
Conjunt de cremallera i cremallera
S'utilitza per moure el carregador del telèfon cap endavant i cap enrere
Pas 2: desglosseu components no impresos en 3D
Aquests són els components que es van comprar per al projecte o que ja eren propietat. Per a algunes de les parts que hi he enllaçat / articles similars a Amazon, però no dubteu a adquirir-los en qualsevol lloc.
Micro Servo:
Servo estàndard 0-180:
Mòdul de sèrie Bluetooth HC-05:
Telèfon i carregador de telèfon
Arduino
Taula de pa
Caixa o paperera per a la base
Sensor tàctil:
Pas 3: electrònica
El circuit per a aquest projecte pot requerir-ne alguns, principalment a causa del mòdul HC-05. Molts dels mòduls d’aquest tipus tenen una velocitat d’aproximadament 3,3V a 6V, que es troba en el rang de funcionament de l’Arduino. Però, per a la comunicació en sèrie, el pin Rx de vegades funciona millor amb només 3,3 V. Com es veu al diagrama anterior, els dos servos estan connectats al pin Vin de l'Arduino. Aquest voltatge addicional el pot subministrar qualsevol cosa, he utilitzat una bateria de 9 volts. El sensor tàctil es va connectar al 5V de l’Arduino. Això es deu al fet que tots els components tenien problemes per sortir del mateix voltatge. El sensor tàctil està connectat al pin 2, de manera que es pot utilitzar com a interrupció del pin. A continuació, el mòdul bluetooth es connecta als pins Rx i Tx per a la comunicació en sèrie. Entre el pin Rx del mòdul i Tx de l’Arduino hi ha una resistència de 2 quilos d’ohm amb un ohm de 1 quilo que es connecta a terra. Això ajuda a regular la tensió que entra.
Pas 4: Muntatge
El muntatge és força senzill.
- amb una mica de super cola, munteu els vostres servos a les seves posicions, un per a l’engranatge per la retallada de la base i un altre a prop de la base del telèfon.
- Connecteu el sensor tàctil al suport del telèfon perquè pugui saber quan hi ha el telèfon.
- A continuació, fixeu l’engranatge i el braç als seus servos respectius
- Assegureu-vos que els cables no interfereixen amb altres components a mesura que ompliu els aparells electrònics
Pas 5: Codi
Es presentaran tres conjunts de codi, un codi per a l’Arduino, que es va crear a l’IDE Arduino i dos codis que es van fer a Android Studio. Les aplicacions d’Android són les mateixes, tret que una és l’aplicació completa que fa un seguiment de la durada de la bateria i una no. El segon és per a proves.
Codi Arduino
El punt principal d’aquest codi és fer funcionar el sensor tàctil i els motors, rep una ordre del telèfon i actua sobre ell.
#include // truca a la biblioteca de servo perquè puguem controlar els dos servos Servo servo1; Servo servo2; // crea dos servoobjectes per cada servo motor int a = 0; // variable de seguiment per provar int q = 0; // una variable que permet que hi hagi un retard abans que comenci el procés de connexió; variable que conté el missatge en sèrie de la configuració del buit del telèfon () {attachInterrupt (digitalPinToInterrupt (2), AH, FALLING); // adjunta una interrupció que cau per saber exactament quan el sensor tàctil veu quan el telèfon surt a servo1.attach (10); servo2.attach (9); // inicialitza els dos servos Serial.begin (9600); // inicia la comunicació serial a una velocitat similar a la del mòdul bluetooth servo2.write (20); // auto defineix els servos a una posició inicial servo1.write (180); }
bucle buit () {
if (Serial.available ()) {// això comprova si hi ha alguna cosa que entra del telèfon a través dels pins sèrie Tx i Rx c = Serial.read (); // llegeix el que entra de if (c == 't') {// si el dispositiu sèrie es llegeix aleshores, vol dir que el telèfon està completament carregat, s'inicia el procés de desconnexió servo2.write (120); // desconnecta el retard del carregador (5000); // espera per assegurar-se que hi ha temps per a l'eliminació servo1.write (110); // mou el telèfon en posició vertical per indicar //Serial.println("aquí "); attachInterrupt (digitalPinToInterrupt (2), AH, FALLING); // torna a adjuntar la interrupció}} si (q == 1) {// si la condició del connector és actual, comenceu per connectar el retard del carregador (10000); servo2.write (0); // mou el servo a la posició q = 0; // restableix la condició}}
buida AH () {
//Serial.println("in "); servo1.write (180); // deixa caure la plataforma del telèfon a la posició de càrrega q = 1; // inicia la condició per continuar el procés // a = 1; detachInterrupt (digitalPinToInterrupt (2)); // desconnecta la interrupció, de manera que no hi haurà problemes amb la interrupció que comenci quan no ho hauria de fer}
Aplicació per a Android
Aquí només mostraré l'aplicació adequada, però també es mostrarà el fitxer de codi de prova, l'única diferència serà l'eliminació de la classe runnable i getBattery. El codi sèrie esmentat és el que estàndard per als telèfons que es connecten a dispositius com el mòdul.
paquet com.example.daniel.make; importar android.bluetooth. BluetoothAdapter; importar android.bluetooth. BluetoothDevice; importar android.bluetooth. BluetoothSocket; importar android.os. Handler; importa android.support.v7.app. AppCompatActivity; importar android.os. Bundle; importa android.content. Intent; importa android.content. IntentFilter; importa android.os. BatteryManager; importació java.io. IOException; importació java.io. OutputStream; importa java.util. Set; importa java.util. UUID;
MainActivity de classe pública amplia AppCompatActivity {
// creació d'objectes necessaris Handler Handler; // ajuda amb el bucle Runnable runnable; // s'executa contínuament BluetoothAdapter mBluetoothAdapter; BluetoothSocket mmSocket; BluetoothDevice mmDevice; OutputStream mmOutputStream; volàtil booleà stopWorker; private OutputStream outputStream; private final String DEVICE_NAME = "HC-05"; UUID final privat PORT_UUID = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); dispositiu privat BluetoothAdapter; endoll privat BluetoothSocket; @Override protected void onCreate (Bundle savedInstanceState) {// és un conjunt d'instruccions que s'executen quan es crea l'aplicació super.onCreate (savedInstanceState); // displya creation setContentView (R.layout.activity_main); runnable = new Runnable () {@Override public void run () {// s'executa repetidament int level = (int) getBattery (); // obté el nivell actual de bateria si (nivell == 100) {// si el nivell de bateria arriba al 100% prova {getBT (); // es connecta al mòdul bluetooth openBT (); // l’obre sendData (); // envia les dades necessàries closeBT (); // tanca l’objecte} catch (IOException ex) { }} handler.postDelayed (executable, 5000); // un retard}}; handler = nou Handler (); handler.postDelayed (executable, 0); }
flotador públic getBattery () {
Intent batteryIntent = registerReceiver (nul, nou IntentFilter (Intent. ACTION_BATTERY_CHANGED)); // crea l'acció que es connecta a la bateria int level = batteryIntent.getIntExtra (BatteryManager. EXTRA_LEVEL, -1); // obté el millor nivell int scale = batteryIntent.getIntExtra (BatteryManager. EXTRA_SCALE, -1); // obté l’escala de la bateria if (nivell == -1 || escala == -1) {// en cas de pas erroni torneu 50.0f; } float batt = (nivell / escala (float)) * 100.0f; // obté la escala de retorn adequada; // retorna el nivell}
void getBT () {// obté les possibles connexions bluetooth
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter (); // obté l'adaptador si (! mBluetoothAdapter.isEnabled ()) {// s'assegura que el telèfon tingui la dent blava a Intent enableBluetooth = Intenció nova (BluetoothAdapter. ACTION_REQUEST_ENABLE); // sol·licita que sigui activat si no startActivityForResult (enableBluetooth, 0); } Establir pairedDevices = mBluetoothAdapter.getBondedDevices (); // obté la llista de bluetooth vinculats si (pairedDevices.size ()> 0) {// assegura que hi hagi alguns dispositius per a (BluetoothDevice device: pairedDevices) {// bucles a través del dispositius if (device.getName (). equals ("HC-05")) {// comprova si és el correcte mmDevice = dispositiu; // el guarda trencat; }}}}
void openBT () llança IOException {
UUID uuid = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); // Estàndard // SerialPortService ID mmSocket = mmDevice.createRfcommSocketToServiceRecord (uuid); // es connecta al dispositiu amb l’identificador mmSocket.connect (); // connecta mmOutputStream = mmSocket.getOutputStream (); // inicia la capacitat d’enviar dades al mòdul arduino}
void sendData () llança IOException {// classe que envia la t a l'arduino
mmOutputStream.write ('t'); }
void closeBT () llança IOException {// tanca totes les connexions a l'arduino
stopWorker = cert; mmOutputStream.close (); mmSocket.close (); }}
Pas 6: fitxers
Gràcies per llegir, adjuntem els fitxers que s’han utilitzat en aquest projecte
Recomanat:
Carregador de telèfon amb bicicleta: 6 passos (amb imatges)
Carregador de telèfon amb bicicleta: és un carregador de telèfon amb bicicleta que és barat, es pot imprimir en 3D, és fàcil de fabricar i instal·lar i el carregador de telèfon és universal. És útil si aneu molt en bicicleta i necessiteu carregar el telèfon. El carregador va ser dissenyat i construït
Com fer un carregador de bateria automàtic de 12V: 16 passos (amb imatges)
Com fer un carregador de bateria automàtic de 12V: Ei! tothom Em dic Steve.Avui us mostraré com fer un carregador de bateria de 12v Feu clic aquí per veure el vídeo Comencem
Carregador de telèfon Iron Throne: 17 passos (amb imatges)
Carregador de telèfons Iron Throne: estic tan enganxat per la sortida de la setena temporada de Game of Thrones, que vaig haver de fer un projecte relacionat: un carregador de telèfon Iron Throne
Carregador USB fàcil de 5 minuts / carregador USB de supervivència: 6 passos (amb imatges)
Fàcil carregador solar USB de 5 minuts / carregador USB de supervivència: Hola nois! Avui acabo de fabricar (probablement) el carregador de panells solars usb més fàcil! En primer lloc, em sap greu que no n’hagi penjat cap cosa instructiva … He rebut alguns exàmens en els darrers mesos (en realitat, pocs potser una setmana més o menys ..). Però
Com fer un carregador de bateria automàtic de 12v: 6 passos (amb imatges)
Com fer un carregador de bateria automàtic de 12v: Hola a tots els instructius que us mostraré, us mostraré com fer un carregador de bateries automàtic