Turinys:
- 1 žingsnis: plastikiniai komponentai
- 2 veiksmas: suskaidykite ne 3D spausdintus komponentus
- 3 žingsnis: Elektronika
- 4 žingsnis: Surinkimas
- 5 žingsnis: kodas
- 6 žingsnis: failai
Video: Automatinis telefono įkroviklis: 6 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:49
„Ši instrukcija buvo sukurta vykdant Pietų Floridos universiteto„ Makecourse “projekto reikalavimą (www.makecourse.com)“
Šio projekto idėja buvo sukurti įrenginį, kuris galėtų įkrauti telefoną, o tada atjunkite jį, kai telefonas pasiekia 100%. Tai sustabdytų per didelio įkrovimo problemas.
1 žingsnis: plastikiniai komponentai
Buvo naudojami kai kurie komponentai, kurie buvo atspausdinti 3D. Šiuos komponentus sudarė pagrindas, įkroviklio laikiklis, krumpliaračių ir krumpliaračių komplektas (įprasta pavara ir linijinis gabalas, keičiantis sukimąsi tiesiniu judesiu) ir pagrindas viskam veikti. Šie komponentai bus paaiškinti kitose pastraipose. Pasirodymo tvarka
Įkroviklio laikiklis
Tikslas yra laikyti telefono įkroviklį arba bent jau suteikti jam geresnį ir lygesnį pagrindą.
Bazė
Pagrindas turi žiedus telefono laikikliui ir krumpliaračio rinkinį.
Telefono laikiklis
Telefoną, aišku, laiko
Telefono rankena
Judina ir laiko telefoną
Krumpliaračių ir krumpliaračių pavarų rinkinys
Naudojamas perkelti telefono įkroviklį pirmyn ir atgal
2 veiksmas: suskaidykite ne 3D spausdintus komponentus
Tai yra komponentai, kurie buvo įsigyti projektui arba jau priklauso. Kai kurias dalis, kurias aš susiejau su jomis/panašius elementus „Amazon“, bet galite jas įsigyti bet kur.
„Micro Servo“:
Standartinis 0-180 servo:
HC-05 „Bluetooth“serijos modulis:
Telefonas ir telefono įkroviklis
Arduino
Bandomoji Lenta
Dėžutė ar šiukšliadėžė pagrindui
Jutiklinis jutiklis:
3 žingsnis: Elektronika
Tačiau šio projekto grandinei gali prireikti, daugiausia dėl HC-05 modulio. Daugelis šio tipo modulių veikia maždaug nuo 3.3V iki 6V, o tai yra „Arduino“veikimo diapazone. Tačiau serijiniam ryšiui Rx kaištis kartais veikia geriau tik su 3.3V. Kaip matyti aukščiau esančioje diagramoje, abu servai yra prijungti prie „Arduino“„Vin“kaiščio. Šią papildomą įtampą gali tiekti bet kas, aš naudoju 9 voltų bateriją. Jutiklinis jutiklis buvo prijungtas prie „Arduino“5 V įtampos. Taip buvo todėl, kad visiems komponentams buvo sunku išjungti tą pačią įtampą. Jutiklinis jutiklis yra pritvirtintas prie 2 kaiščio, todėl jį galima naudoti kaip kaiščio pertraukimą. Tada „Bluetooth“modulis prijungiamas prie Rx ir Tx kaiščių nuosekliam ryšiui. Tarp modulio Rx kaiščio ir „Arduino“Tx yra 2 kilogramų omų rezistorius, 1 kg omo prijungtas prie žemės. Tai padeda reguliuoti įeinančią įtampą.
4 žingsnis: Surinkimas
Surinkimas yra gana paprastas.
- su kai kuriais super klijais pritvirtinkite savo servo sistemas savo vietose, viena - krumpliaračiui prie pagrindo išpjovos, o kita - šalia to, kur yra telefono pagrindas.
- Pritvirtinkite jutiklinį jutiklį prie telefono laikiklio, kad jis žinotų, kada telefonas yra.
- Tada pritvirtinkite pavarą ir svirtį prie atitinkamų servo
- Užpildydami elektroniką įsitikinkite, kad laidai netrukdo kitiems komponentams
5 žingsnis: kodas
Bus pateikti trys kodų rinkiniai, vienas „Arduino“kodas, sukurtas naudojant „Arduino IDE“, ir du kodai, sukurti naudojant „Android Studio“. „Android“programos yra tos pačios, išskyrus vieną - visa programa, kuri seka akumuliatoriaus veikimo laiką, o kita - ne. Antrasis skirtas bandymams.
Arduino kodas
Pagrindinis šio kodo tikslas yra valdyti jutiklinį jutiklį ir variklius, jis gauna komandą iš telefono ir veikia.
#include // iškviečia servo biblioteką, kad galėtume valdyti du servosServo servo1; Servo servo2; // sukuria du servo objektus kiekvienam servo varikliui int a = 0; // stebėjimo kintamasis, skirtas testavimui int q = 0; // kintamasis, leidžiantis palaukti, kol prijungimo procesas prasidės char c; // kintamasis, kuriame yra serijinis pranešimas iš telefono void setup () {attachInterrupt (digitalPinToInterrupt (2), AH, FALLING); // prideda krentantį pertraukimą, kad tiksliai žinotų, kada jutiklinis jutiklis mato, kai telefonas išjungiamas servo1.attach (10); servo2.attach (9); // inicijuoja du servus Serial.begin (9600); // pradeda nuoseklųjį ryšį tokiu pat greičiu, kaip ir „Bluetooth“modulis servo2.write (20); // automatinis servo nustatymas pradinė padėtis servo1.write (180); }
void loop () {
if (Serial.available ()) {// tai patikrina, ar iš telefono kas nors ateina per serijinius kaiščius Tx ir Rx c = Serial.read (); // skaito, kas ateina iš if (c == 't') {// jei serijinis įrenginys nuskaito tuo metu, tai reiškia, kad telefonas yra visiškai įkrautas, atjungimo procesas prasideda servo2.write (120); // atjungia įkroviklio uždelsimą (5000); // laukia, kol įsitikins yra laikas pašalinti servo1.write (110); // perkelia telefoną į vertikalią padėtį, kad signalizuotų //Serial.println("here "); attachInterrupt (digitalPinToInterrupt (2), AH, FALLING); // iš naujo pridedamas pertraukimas}} if (q == 1) {// jei įjungimo sąlyga yra tikra, pradėkite nuo įkroviklio uždelsimo (10000); servo2.write (0); // perkelia servo į poziciją q = 0; // iš naujo nustato sąlygą}}
void AH () {
//Serial.println("in "); servo1.write (180); // numeta telefono platformą į įkrovimo padėtį q = 1; // pradeda sąlygą tęsti procesą // a = 1; detachInterrupt (digitalPinToInterrupt (2)); // atjungia pertrauką, kad nebūtų jokių problemų, susijusių su pertraukimu, prasidedančiu tada, kai to neturėtų būti}
„Android“programa
Čia rodysiu tik tinkamą programą, tačiau taip pat bus pateiktas bandymo kodo failas, vienintelis skirtumas bus paleidžiamos ir „getBattery“klasės pašalinimas. Minėtas serijos kodas yra standartinis telefonams, jungiantiems prie tokių įrenginių kaip modulis.
paketas com.example.daniel.make; importuoti android.bluetooth. BluetoothAdapter; importuoti android.bluetooth. BluetoothDevice; importuoti android.bluetooth. BluetoothSocket; importuoti android.os. Handler; importuoti android.support.v7.app. AppCompatActivity; importuoti „android.os. Bundle“; importuoti android.content. Intent; importuoti android.content. IntentFilter; importuoti android.os. BatteryManager; importuoti java.io. IOException; importuoti java.io. OutputStream; importuoti java.util. Set; importuoti java.util. UUID;
public class MainActivity pratęsia „AppCompatActivity“{
// reikalingų objektų kūrimas Tvarkyklės tvarkyklė; // padeda kilpai Runnable runnable; // nuolat veikia „BluetoothAdapter“mBluetoothAdapter; „Bluetooth“lizdas mmSocket; „Bluetooth“prietaisas mmDevice; OutputStream mmOutputStream; nepastovus loginis sustojimasDarbuotojas; privatus OutputStream outputStream; privati galutinė eilutė DEVICE_NAME = "HC-05"; privatus galutinis UUID PORT_UUID = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); privatus „BluetoothAdapter“įrenginys; privatus „BluetoothSocket“lizdas; @Override protected void onCreate (Bundle savedInstanceState) {// yra instrukcijų rinkinys, kuris vykdomas sukūrus programą super.onCreate (savedInstanceState); // displya creation setContentView (R.layout.activity_main); runnable = new Runnable () {@Orride public void run () {// veikia pakartotinai int level = (int) getBattery (); // gauna dabartinį akumuliatoriaus įkrovos lygį, jei (lygis == 100) {// jei akumuliatoriaus įkrovos lygis pasiekia 100% bandymo {getBT (); // prisijungia prie „Bluetooth“modulio openBT (); // atidaro jį sendData (); // siunčia reikiamus duomenis closeBT (); // uždaro objektą} catch (IOException ex) { }} handler.postDelayed (paleidžiamas, 5000); // a delay}}; tvarkytojas = naujas tvarkytojas (); handler.postDelayed (paleidžiamas, 0); }
public float getBattery () {
Intent batteryIntent = registerReceiver (null, new IntentFilter (Intent. ACTION_BATTERY_CHANGED)); // sukuria veiksmą, kuris jungiasi prie akumuliatoriaus int level = batteryIntent.getIntExtra (BatteryManager. EXTRA_LEVEL, -1); // gauna geresnio lygio int skalę = batteryIntent.getIntExtra (BatteryManager. EXTRA_SCALE, -1); // gauna akumuliatoriaus skalę, jei (lygis == -1 || skalė == -1) {// klaidos atveju 50,0f; } float batt = (lygis/(plūdės) skalė)*100.0f; // gauna tinkamą skalės grąžinimo takelį; // grąžina lygį}
void getBT () {// gauna galimus „Bluetooth“ryšius
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter (); // gauna adapterį, jei (! mBluetoothAdapter.isEnabled ()) {// įsitikina, kad telefonas yra mėlynas, kai ketinama įgalintiBluetooth = naujas ketinimas („BluetoothAdapter. ACTION_REQUEST_ENABLE“); // prašo, kad tai būtų įjungtas, jei ne startActivityForResult (enableBluetooth, 0); } Set pairedDevices = mBluetoothAdapter.getBondedDevices (); // gauna susietų „Bluetooth“sąrašą, jei (pairedDevices.size ()> 0) {// įsitikina, kad yra keletas įrenginių, skirtų („BluetoothDevice device: pairedDevices“) {// kilpos per prietaisai if (device.getName (). lygus ("HC-05")) {// tikrina, ar jis tinkamas vienas mmDevice = device; // išsaugo pertrauką; }}}}
void openBT () meta IOException {
UUID uuid = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); // Standartinis // SerialPortService ID mmSocket = mmDevice.createRfcommSocketToServiceRecord (uuid); // prisijungia prie įrenginio su tinkamu ID mmSocket.connect (); // jungia mmOutputStream = mmSocket.getOutputStream (); // pradeda galimybę siųsti duomenys į „arduino“modulį}
void sendData () meta IOException {// klasę, kuri siunčia t į arduino
mmOutputStream.write ('t'); }
void closeBT () meta IOException {// uždaro visas jungtis prie arduino
stopWorker = tiesa; mmOutputStream.close (); mmSocket.close (); }}
6 žingsnis: failai
Dėkojame, kad perskaitėte, pridedami failai, kurie buvo naudojami šiame projekte
Rekomenduojamas:
Dviračiu varomas telefono įkroviklis: 6 žingsniai (su nuotraukomis)
Dviračiu varomas telefono įkroviklis: Tai dviračiu varomas telefono įkroviklis, kuris yra pigus, 3D spausdinamas, lengvai pagaminamas ir montuojamas, o telefono įkroviklis yra universalus. Tai naudinga turėti, jei daug važinėjate dviračiu ir reikia įkrauti telefoną. Įkroviklis buvo suprojektuotas ir pagamintas
Lengvas 5 minučių USB saulės įkroviklis/išgyvenimo USB įkroviklis: 6 žingsniai (su nuotraukomis)
Lengvas 5 minučių USB saulės įkroviklis/išgyvenimo USB įkroviklis: Sveiki vaikinai! Šiandien aš ką tik padariau (tikriausiai) paprasčiausią USB saulės baterijų įkroviklį! Pirmiausia atsiprašau, kad neįkėliau jums pamokomų dalykų, vaikinai .. Per pastaruosius kelis mėnesius (iš tikrųjų ne keletą, o gal savaitę ar daugiau) turėjau keletą egzaminų. Bet
Automobilio telefono įkroviklis sukasi-atsilaisvino: 4 žingsniai (su nuotraukomis)
Automobilinis telefono įkroviklis „Wiggle-Loose-Be-Gone“: čia yra paprastas būdas, kaip įkrauti automobilio įkroviklius prie jūsų transporto priemonės; prieš prijungdami prie jo, uždėkite maskavimo juostą
„Pasidaryk pats“saulės striukė (USB telefono įkroviklis): 9 žingsniai (su nuotraukomis)
„Pasidaryk pats“saulės kišenė („USB“telefono įkroviklis): labai paprasta ir lengvai pagaminama saulės telefonų įkrovimo striukė ir krepšys, kurį netgi galite pasigaminti savo namuose. Įkrauna telefoną, kad gautų sultis, kurių jums reikia avarinėse situacijose, kad būtų galima išsamiai peržiūrėti nepamirškite patikrinti projekto
3 išmaniojo telefono saulės įkroviklis: 4 žingsniai (su nuotraukomis)
3 išmaniojo telefono saulės įkroviklis: Sveiki, draugų rupūžė Aš padariau erdvinį nemokamos energijos mylėtojui. Visi gumbai gamina nemokamą išmaniųjų telefonų įkroviklį su nuolatinės srovės varikliu, tačiau šis projektas neveikia gerai. Saulė yra labai didelė atsinaujinančios energijos dalis. Mano saulės įkroviklis veikia su 3 įtampos re