Indholdsfortegnelse:
- Trin 1: Plastkomponenter
- Trin 2: Opdel ikke -3D -printede komponenter
- Trin 3: Elektronik
- Trin 4: Montering
- Trin 5: Kode
- Trin 6: Filer
Video: En automatisk telefonoplader: 6 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
"Denne instruerbare blev oprettet for at opfylde projektkravet fra Makecourse ved University of South Florida (www.makecourse.com)"
Ideen bag dette projekt var at oprette en enhed, der kunne oplade en telefon, og derefter tage stikket ud, når telefonen når 100%. Dette ville stoppe spørgsmål om overopladning.
Trin 1: Plastkomponenter
Der var nogle komponenter, der blev brugt, der blev 3D -printet. Disse komponenter bestod af en base, en holder til opladeren, et tandhjuls tandhjulssæt (et normalt gear og et lineært stykke, der ændrer rotationen til lineær bevægelse), og en base for alt at arbejde på. Disse komponenter vil blive forklaret i de følgende afsnit. I rækkefølge
Opladerholder
Formålet med dette er at holde telefonopladeren eller i det mindste give den en bedre og mere stabil base at være på.
Grundlag
Basen har ringe til telefonholderen samt et spor til gearet.
Telefonholder
Holder selvfølgelig telefonen
Telefonarm
Bevæger og holder telefonen
Tandhjulsgear -sæt
Bruges til at flytte telefonopladeren frem og tilbage
Trin 2: Opdel ikke -3D -printede komponenter
Disse komponenter er enten købt til projektet eller allerede ejet. For nogle af delene linkede jeg til dem/lignende varer på amazon, men køb dem gerne overalt.
Micro Servo:
Standard 0-180 Servo:
HC-05 Bluetooth-seriemodul:
Telefon og telefon oplader
Arduino
Brødbræt
Æske eller kasse til bund
Berøringssensor:
Trin 3: Elektronik
Kredsløbet til dette projekt kan dog kræve noget, hovedsageligt på grund af HC-05-modulet. Mange af modulerne af denne type har en hastighed på omtrent 3,3V til 6V, hvilket er inden for Arduino's driftsområde. Men for seriel kommunikation fungerer Rx -stiften nogle gange bedre med kun 3,3V. Som det ses i diagrammet ovenfor, er de to servoer tilsluttet Vin -stiften på Arduino. Denne ekstra spænding kan leveres af alt, jeg brugte et 9 volt batteri. Berøringssensoren blev tilsluttet 5V på Arduino. Dette var fordi alle komponenterne havde problemer med at køre af den samme spænding. Berøringssensoren er fastgjort til pin 2, så den kan bruges som en pin -afbrydelse. Derefter forbindes bluetooth -modulet til Rx- og Tx -benene til seriel kommunikation. Mellem Rx -stiften på modulet og Tx på Arduino er der en 2 kilo ohm modstand med en 1 kilo ohm tilslutning til jorden. Dette hjælper med at regulere spændingen, der går ind.
Trin 4: Montering
Samlingen er ganske enkel.
- med noget superlim monteres dine servoer i deres positioner, en til gearet ved udskæringen på basen og en nær hvor bunden af telefonen er.
- Sæt berøringssensoren på telefonholderen, så den kan vide, hvornår telefonen er der.
- Fastgør derefter gearet og armen til deres respektive servoer
- Sørg for, at ledninger ikke forstyrrer andre komponenter, når du fylder din elektronik i
Trin 5: Kode
Der vil blive præsenteret tre sæt kode, en kode til Arduino, der blev oprettet i Arduino IDE og to koder, der blev lavet i Android Studio. Android -apps er de samme bortset fra en er den fulde app, der sporer batterilevetid, og en ikke. Den anden er til testformål.
Arduino kode
Hovedpunktet med denne kode er at betjene berøringssensoren og motorerne, den modtager en kommando fra telefonen og handler efter den.
#include // kalder servobiblioteket, så vi kan styre de to servosServo servo1; Servo servo2; // opretter to servoobjekter for hver servomotor int a = 0; // sporingsvariabel til test af int q = 0; // en variabel, der tillader, at der er en forsinkelse, før pluginprocessen begynder med char c; // variabel, der indeholder den serielle meddelelse fra telefonens hulrumsopsætning () {attachInterrupt (digitalPinToInterrupt (2), AH, FALLING); // vedhæfter en faldende afbrydelse for at vide præcis, hvornår berøringssensoren ser, når telefonen er ude på servo1.attach (10); servo2.attach (9); // initialiserer de to servoer Serial.begin (9600); // starter seriel kommunikation med en hastighed, der ligner den for bluetooth -modulet servo2.write (20); // auto indstiller servoerne til en startposition servo1.write (180); }
void loop () {
hvis (Serial.available ()) {// dette kontrollerer, om der kommer noget ind fra telefonen over de serielle ben Tx og Rx c = Serial.read (); // læser, hvad der kommer ind, hvis (c == 't') {// hvis den serielle enhed læser på det tidspunkt, betyder det, at telefonen er fuldt opladet, frakoblingsprocessen starter servo2.write (120); // afbryder opladeren forsinkelse (5000); // venter på at være sikker der er tid til fjernelse servo1.write (110); // flytter telefonen i en opretstående position for at signalere //Serial.println("here "); attachInterrupt (digitalPinToInterrupt (2), AH, FALLING); // fastgør afbrydelsen igen}} if (q == 1) {// hvis betingelsen for plug -in er ture, start derefter med at vedhæfte opladningsforsinkelsen (10000); servo2.write (0); // flytter servo til position q = 0; // nulstiller tilstand}}
ugyldig AH () {
//Serial.println("in "); servo1.write (180); // taber telefonplatformen i ladestilling q = 1; // starter betingelsen for at fortsætte processen // a = 1; detachInterrupt (digitalPinToInterrupt (2)); // fjerner afbrydelsen, så der ikke vil være problemer med afbrydelsen, der starter, når den ikke skal}
Android App
Her vil jeg kun vise den korrekte app, men testkodefilen vil også blive givet, den eneste forskel vil være fjernelse af runnable og getBattery -klassen. Den nævnte serienummer er den, der er standard for telefoner, der opretter forbindelse til enheder som modulet.
pakke com.example.daniel.make; import android.bluetooth. BluetoothAdapter; import android.bluetooth. BluetoothDevice; import android.bluetooth. BluetoothSocket; import android.os. Handler; importer android.support.v7.app. AppCompatActivity; import android.os. Bundle; import android.content. Intent; importer android.content. IntentFilter; importer android.os. BatteryManager; import java.io. IOException; import java.io. OutputStream; import java.util. Set; import java.util. UUID;
public class MainActivity udvider AppCompatActivity {
// oprettelse af nødvendige objekter Handler handler; // hjælper med sløjfen Runnable runnable; // kører kontinuerligt BluetoothAdapter mBluetoothAdapter; BluetoothSocket mmSocket; Bluetooth -enhed mmDevice; OutputStream mmOutputStream; flygtig boolsk stopWorker; private OutputStream outputStream; private final String DEVICE_NAME = "HC-05"; privat endelig UUID PORT_UUID = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); privat BluetoothAdapter enhed; privat BluetoothSocket -stik; @Override protected void onCreate (Bundle savedInstanceState) {// er et sæt instruktioner, der kører, når appen oprettes super.onCreate (saveInstanceState); // displya creation setContentView (R.layout.activity_main); runnable = new Runnable () {@Override public void run () {// kører gentagne gange int level = (int) getBattery (); // får det aktuelle batteriniveau hvis (niveau == 100) {// hvis batteriniveauet når 100% prøv {getBT (); // opretter forbindelse til bluetooth -modulet openBT (); // åbner det sendData (); // sender de nødvendige data closeBT (); // lukker objektet catch (IOException ex) { }} handler.postDelayed (kører, 5000); // en forsinkelse}}; handler = ny Handler (); handler.postDelayed (kører, 0); }
public float getBattery () {
Intent batteryIntent = registerReceiver (null, new IntentFilter (Intent. ACTION_BATTERY_CHANGED)); // opretter den handling, der forbinder til batteriets int -niveau = batteryIntent.getIntExtra (BatteryManager. EXTRA_LEVEL, -1); // får det bedre niveau int skala = batteryIntent.getIntExtra (BatteryManager. EXTRA_SCALE, -1); // får batteriets skala, hvis (niveau == -1 || skala == -1) {// i tilfælde af fejlagtigt afkast 50.0f; } float batt = (niveau/(float) skala)*100.0f; // får den korrekte skala retur batt; // returnerer niveau}
void getBT () {// får de mulige bluetooth -forbindelser
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter (); // får adapteren, hvis (! mBluetoothAdapter.isEnabled ()) {// sørger for, at telefonen har en blå tand på Intent enableBluetooth = new Intent (BluetoothAdapter. ACTION_REQUEST_ENABLE); // anmoder om, at den skal være slået til, hvis ikke startActivityForResult (enableBluetooth, 0); } Indstil pairedDevices = mBluetoothAdapter.getBondedDevices (); // får listen over bonded bluetooth, hvis (pairedDevices.size ()> 0) {// sørger for, at der er nogle enheder til (BluetoothDevice -enhed: pairedDevices) {// løber gennem enheder, hvis (device.getName (). er lig med ("HC-05")) {// kontrollerer, om den er den rigtige mmDevice = device; // gemmer den i stykker; }}}}
void openBT () kaster IOException {
UUID uuid = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); // Standard // SerialPortService ID mmSocket = mmDevice.createRfcommSocketToServiceRecord (uuid); // opretter forbindelse til enheden med den korrekte id mmSocket.connect (); // forbinder mmOutputStream = mmSocket.getOutputStream (); // starter evnen til at sende data til arduino -modulet}
void sendData () kaster IOException {// klasse, der sender t til arduinoen
mmOutputStream.write ('t'); }
void closeBT () smider IOException {// lukker alle forbindelser til arduinoen
stopWorker = sand; mmOutputStream.close (); mmSocket.close (); }}
Trin 6: Filer
Tak fordi du læste, vedhæftede er de filer, der blev brugt i dette projekt
Anbefalede:
Design og opbygning af et strømlinjefilter til en Android -telefonoplader: 5 trin
Design og opbygning af et strømlinjefilter til en Android -telefonoplader: I denne vejledning vil jeg vise, hvordan man tager en standard USB til mini USB -ledning, adskiller den i midten og indsætter et filterkredsløb, der reducerer overdreven støj eller hash produceret af en typisk android strømforsyning. Jeg har en bærbar m
Bærbar telefonoplader-En illustreret vejledning: 5 trin
Bærbar telefonoplader-En illustreret vejledning: Beskrivelse: Følgende er en illustreret vejledning i, hvordan du omdanner en almindelig Altoids-beholder til en bærbar mobiltelefonoplader i et par enkle trin. Dette batteri er perfekt til studerende, professionelle eller udendørs mænd, der er på farten. Time N
Kinetic telefonoplader: 9 trin
Kinetic Phone Charger: 2020 har været et virkelig dårligt år for alle, det eneste der skal ske er et globalt strømafbrydelse. Jeg vil vise dig, hvordan du laver din egen telefonoplader med bevægelse. I dette projekt bruges pap til at lave omslaget
Cykeldrevet telefonoplader: 6 trin (med billeder)
Cykeldrevet telefonoplader: Dette er en cykeldrevet telefonoplader, der er billig, 3D -udskrivbar, let at lave og installere, og telefonopladeren er universel. Det er en nyttig ting at have, hvis du cykler meget og skal oplade din telefon. Opladeren blev designet og bygget
DIY trådløs telefonoplader og LED -kontrol: 11 trin (med billeder)
DIY trådløs telefonoplader og LED -kontrol: I denne instruks vil jeg demonstrere, hvordan du laver en trådløs telefonoplader og aktiverede lysdioder. Jeg vil inkludere kode, PDF'er, ledningsdiagrammer og Gerber -filer samt en regning af materialer til at lave din egen trådløse telefon oplader. Særlig bemærkning: Ikke