Kazalo:
- Korak: Plastične komponente
- 2. korak: Razčlenite komponente, ki niso natisnjene s 3D
- 3. korak: Elektronika
- 4. korak: Montaža
- 5. korak: Koda
- 6. korak: Datoteke
Video: Samodejni polnilec telefona: 6 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:08
"Ta navodila so nastala v skladu s projektnimi zahtevami Makecourseja na Univerzi v Južni Floridi (www.makecourse.com)"
Ideja tega projekta je bila ustvariti napravo, ki bi lahko polnila telefon, in jo nato odklopila, ko telefon doseže 100%. To bi ustavilo težave s prekomernim polnjenjem.
Korak: Plastične komponente
Uporabljene so bile nekatere komponente, ki so bile 3D natisnjene. Te komponente so obsegale podlago, držalo za polnilnik, komplet zobnikov in zobnikov (običajno orodje in linearni kos, ki spreminja vrtenje v linearno gibanje) ter podlago za vse, na kar lahko delujejo. Te komponente bodo razložene v naslednjih odstavkih. Po vrstnem redu
Držalo za polnilnik
Namen tega je, da držite polnilec telefona ali pa mu vsaj zagotovite boljšo in ravno podlago.
Baza
Podstavek ima obroče za držalo telefona, kot tudi sledi za komplet prestav.
Nosilec telefona
Očitno drži telefon
Roka za telefon
Premika in drži telefon
Komplet zobnikov in opornikov
Uporablja se za premikanje polnilnika telefona naprej in nazaj
2. korak: Razčlenite komponente, ki niso natisnjene s 3D
To so komponente, ki so bile bodisi kupljene za projekt ali so že v lasti. Za nekatere dele, ki sem jih povezal z njimi/podobnimi izdelki na amazonu, jih lahko kupite kjer koli.
Mikro servo:
Standardni servo 0-180:
Serijski modul HC-05 Bluetooth:
Telefon in polnilec za telefon
Arduino
Ogledna plošča
Škatla ali zaboj za podlago
Senzor na dotik:
3. korak: Elektronika
Vezje za ta projekt bo morda zahtevalo nekaj, predvsem zaradi modula HC-05. Mnogi moduli te vrste so za približno 3,3 V do 6 V, kar je v območju delovanja Arduina. Toda za serijsko komunikacijo pin Rx včasih deluje bolje s samo 3,3 V. Kot je prikazano na zgornjem diagramu, sta dva servomotorja priključena na pin Pin na Arduinu. To dodatno napetost lahko napaja karkoli, uporabil sem 9 -voltno baterijo. Senzor na dotik je bil priključen na 5V na Arduinu. To je bilo zato, ker so imele vse komponente težave pri odvajanju iste napetosti. Senzor na dotik je pritrjen na pin 2, tako da ga lahko uporabite kot prekinitev z zatičem. Nato je modul bluetooth priključen na zatiča Rx in Tx za serijsko komunikacijo. Med Rx zatičem na modulu in Tx na Arduinu je 2 kilo ohmski upor z 1 kilo ohmom, ki je povezan z maso. To pomaga uravnavati vhodno napetost.
4. korak: Montaža
Montaža je precej preprosta.
- z nekaj super lepila namestite svoje servomotorje v njihove položaje, enega za orodje ob izrezu na dnu in enega blizu mesta, kjer je osnova telefona.
- Senzor dotika pritrdite na držalo telefona, da bo lahko vedel, kdaj je telefon tam.
- Nato priključite orodje in roko na ustrezne servomotorje
- Pri polnjenju elektronike pazite, da žice ne vplivajo na druge komponente
5. korak: Koda
Predstavljeni bodo trije sklopi kode, ena koda za Arduino, ki je bila ustvarjena v Arduino IDE, in dve kodi, ki sta bili narejeni v Android Studiu. Aplikacije za Android so enake, le ena je celotna aplikacija, ki spremlja življenjsko dobo baterije, druga pa ne. Drugi je namenjen testiranju.
Koda Arduino
Glavna točka te kode je upravljanje senzorja na dotik in motorjev, sprejme ukaz iz telefona in nanj deluje.
#include // kliče servo knjižnico, da lahko nadzorujemo dva servomotorja Servo servo1; Servo servo2; // ustvari dva servo objekta za vsak servo motor int a = 0; // spremenljivka za sledenje za preskušanje int q = 0; // spremenljivka, ki omogoča zakasnitev, preden se postopek vtičnika prične char c; // spremenljivka, ki vsebuje serijsko sporočilo iz telefona void setup () {attachInterrupt (digitalPinToInterrupt (2), AH, FALLING); // pritrdi padajočo prekinitev, da natančno ve, kdaj senzor na dotik vidi, ko je telefon zunaj servo1.attach (10); servo2.attach (9); // inicializira dva servomotorja Serial.begin (9600); // začne serijsko komunikacijo s hitrostjo, ki je podobna hitrosti modula bluetooth servo2.write (20); // samodejno nastavi strežnike na servo1.write začetni položaj (180); }
void loop () {
if (Serial.available ()) {// to preveri, ali kaj prihaja iz telefona prek zaporednih zatičev Tx in Rx c = Serial.read (); // bere, kaj prihaja iz if (c == 't') {// če serijska naprava bere takrat, to pomeni, da je telefon popolnoma napolnjen, se začne postopek odklopa servo2.write (120); // odklopi zakasnitev polnilnika (5000); // počaka, da se prepriča čas je za odstranitev servo1.write (110); // premakne telefon v pokončen položaj, da signalizira //Serial.println(" tukaj "); attachInterrupt (digitalPinToInterrupt (2), AH, FALLING); // ponovno priklopi prekinitev}} if (q == 1) {// če je pogoj za vtičnik vklopljen, začnite s priklopom zakasnitve polnilnika (10000); servo2.write (0); // premakne servo v položaj q = 0; // ponastavi stanje}}
void AH () {
//Serial.println("in "); servo1.write (180); // spusti telefonsko platformo v polnilni položaj q = 1; // zažene pogoj za nadaljevanje postopka // a = 1; detachInterrupt (digitalPinToInterrupt (2)); // loči prekinitev, tako da ne bo težav z zagonom prekinitve, ko se ne bi smelo}
Aplikacija za Android
Tukaj bom prikazal samo ustrezno aplikacijo, podana pa bo tudi preskusna koda, edina razlika bo odstranitev razreda runnable in getBattery. Omenjena serijska koda je standardna za telefone, ki se povezujejo z napravami, kot je modul.
paket com.example.daniel.make; uvoz android.bluetooth. BluetoothAdapter; uvoz android.bluetooth. BluetoothDevice; uvoz android.bluetooth. BluetoothSocket; uvoz android.os. Handler; uvoz android.support.v7.app. AppCompatActivity; uvoz android.os. Bundle; uvoz android.content. Intent; uvoz android.content. IntentFilter; uvoz android.os. BatteryManager; uvoz java.io. IOException; uvoz java.io. OutputStream; uvoz java.util. Set; uvoz java.util. UUID;
javni razred MainActivity razširja AppCompatActivity {
// ustvarjanje potrebnih predmetov Handler handler; // pomaga pri zanki Runnable runnable; // neprekinjeno deluje BluetoothAdapter mBluetoothAdapter; Vtičnica Bluetooth mm vtičnica; Naprava Bluetooth mm Naprava; OutputStream mmOutputStream; hlapne logične stopWorker; zasebni OutputStream outputStream; zasebni zaključni niz DEVICE_NAME = "HC-05"; zasebni končni UUID PORT_UUID = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); zasebna naprava BluetoothAdapter; zasebna vtičnica BluetoothSocket; @Override protected void onCreate (Bundle savedInstanceState) {// je niz navodil, ki se izvajajo, ko je aplikacija ustvarjena super.onCreate (savedInstanceState); // displya ustvarjanje setContentView (R.layout.activity_main); runnable = new Runnable () {@Override public void run () {// teče večkrat int level = (int) getBattery (); // dobi trenutno raven napolnjenosti baterije, če (level == 100) {// če je napolnjenost baterije doseže 100% try {getBT (); // se poveže z modulom bluetooth openBT (); // odpre sendData (); // pošlje potrebne podatke closeBT (); // zapre objekt} catch (IOException ex) { }} handler.postDelayed (runnable, 5000); // zakasnitev}}; handler = nov Handler (); handler.postDelayed (teče, 0); }
public float getBattery () {
Intent batteryIntent = registerReceiver (null, new IntentFilter (Intent. ACTION_BATTERY_CHANGED)); // ustvari dejanje, ki se poveže z nivojem baterije int = batteryIntent.getIntExtra (BatteryManager. EXTRA_LEVEL, -1); // dobi stopnjo boljše vrednosti int scale = batteryIntent.getIntExtra (BatteryManager. EXTRA_SCALE, -1); // dobi lestvico baterije, če (raven == -1 || lestvica == -1) {// v primeru napačnega vračila 50,0f; } float batt = (level/(float) scale)*100.0f; // dobi ustrezno lestvico return batt; // vrne raven}
void getBT () {// pridobi možne povezave bluetooth
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter (); // dobi adapter, če (! mBluetoothAdapter.isEnabled ()) {// poskrbi, da ima telefon modri zob pri namenu enableBluetooth = nov namen (BluetoothAdapter. ACTION_REQUEST_ENABLE); // zahteva, da je vklopljeno, če ni startActivityForResult (enableBluetooth, 0); } Set pairedDevices = mBluetoothAdapter.getBondedDevices (); // dobi seznam povezanega bluetootha, če (pairedDevices.size ()> 0) {// poskrbi, da obstaja nekaj naprav za (naprava BluetoothDevice: pairedDevices) {// se vrti skozi naprave if (device.getName (). equals ("HC-05")) {// preveri, če je ustrezna mmDevice = device; // shrani prekinitev; }}}}
void openBT () vrže IOException {
UUID uuid = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); // Standardno // SerialPortService ID mmSocket = mmDevice.createRfcommSocketToServiceRecord (uuid); // se poveže z napravo z ustreznim id mmSocket.connect (); // poveže mmOutputStream = mmSocket.getOutputStream (); // zažene možnost pošiljanja podatki v modul arduino}
void sendData () vrže razred IOException {//, ki pošlje t v arduino
mmOutputStream.write ('t'); }
void closeBT () vrže IOException {// zapre vse povezave z arduinom
stopWorker = res; mmOutputStream.close (); mmSocket.close (); }}
6. korak: Datoteke
Hvala za branje, v prilogi so datoteke, ki so bile uporabljene v tem projektu
Priporočena:
Stari polnilec? Ne, to je celovit kitarski ojačevalnik in pedal za RealTube18: 8 korakov (s slikami)
Stari polnilec? Ne, gre za ojačevalnik in pedal za vse-cevne kitarske slušalke RealTube18: PREGLED: Kaj storiti v času pandemije z zastarelim polnilnikom baterij iz niklja-kadmija in 60-letnimi zastarelimi vakuumskimi cevmi za avtoradio, ki jih je treba reciklirati? Kaj pa načrtovanje in izdelava nizkonapetostne, običajne baterije za orodje samo za cevi
Canon CB-2LYE nadomestni polnilec USB NB-6L USB: 9 korakov (s slikami)
Canon CB-2LYE nadomestni polnilnik USB NB-6L USB: Imam fotoaparat Canon SX 540HS s super povečavo in to njegov polnilnik CB-2LYE in baterijo NB-6L. Polnilnik deluje na 240V AC in ga zaradi velikosti ni mogoče nositi s torbo za fotoaparat. Med mojim nedavnim obiskom postaje na Chandu
Kako narediti samodejni 12V polnilec baterije: 16 korakov (s slikami)
Kako narediti avtomatski 12V polnilec baterij: Hej! vsi moje ime je Steve.Danes vam bom pokazal, kako narediti 12v polnilec baterij Kliknite tukaj, če si želite ogledati video Začnimo
Polnilec za telefon Iron Throne: 17 korakov (s slikami)
Polnilec za telefon Iron Throne: Tako sem navdušen, da bo izšla sedma sezona igre prestolov, zato sem moral narediti soroden projekt - polnilec za telefon Iron Throne!
Kako narediti samodejni polnilec 12V: 6 korakov (s slikami)
Kako narediti avtomatski polnilnik baterij 12V: Pozdravljeni vsi v tem navodilu, pokazal vam bom, kako narediti samodejni polnilnik baterij