Isi kandungan:
- Langkah 1: Komponen Plastik
- Langkah 2: Pecahan Komponen Bercetak Bukan 3D
- Langkah 3: Elektronik
- Langkah 4: Perhimpunan
- Langkah 5: Kod
- Langkah 6: Fail
Video: Pengecas Telefon Automatik: 6 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:12
"Instruksional ini dibuat untuk memenuhi keperluan projek Makecourse di University of South Florida (www.makecourse.com)"
Idea di sebalik projek ini adalah untuk membuat peranti yang boleh mengecas telefon, dan kemudian mencabutnya apabila telefon mencapai 100%. Ini akan menghentikan masalah pengecasan berlebihan.
Langkah 1: Komponen Plastik
Terdapat beberapa komponen yang digunakan yang dicetak 3D. Komponen-komponen ini terdiri dari alas, pemegang untuk pengecas, rak dan set roda gigi pinion (roda gigi normal dan sekeping linier yang mengubah putaran menjadi pergerakan linier), dan pangkalan untuk semuanya beroperasi. Komponen-komponen ini akan dijelaskan dalam perenggan berikut. Dalam susunan penampilan
Pemegang Pengecas
Tujuannya adalah untuk memegang pengecas telefon, atau sekurang-kurangnya memberikan asas yang lebih baik dan rata.
Pangkalan
Pangkalannya mempunyai cincin untuk pemegang telefon serta trek untuk set gear.
Pemegang Telefon
Memegang telefon, jelas
Lengan Telefon
Bergerak dan memegang telefon
Set Rak dan Pinion
Digunakan untuk menggerakkan pengecas telefon ke belakang
Langkah 2: Pecahan Komponen Bercetak Bukan 3D
Ini adalah komponen yang dibeli untuk projek itu atau sudah dimiliki. Untuk beberapa bahagian yang saya pautkan kepada mereka / item serupa di amazon, tetapi jangan ragu untuk mendapatkannya di mana sahaja.
Servo Mikro:
Servo Standard 0-180:
Modul Bersiri Bluetooth HC-05:
Pengecas Telefon dan Telefon
Arduino
Papan roti
Kotak atau tong untuk asas
Sensor Sentuh:
Langkah 3: Elektronik
Litar untuk projek ini mungkin memerlukan beberapa, terutamanya kerana modul HC-05. Sebilangan besar modul jenis ini mempunyai kadar sekitar 3.3V hingga 6V, yang terdapat dalam julat operasi Arduino. Tetapi, untuk komunikasi bersiri pin Rx kadang-kadang berfungsi lebih baik dengan hanya 3.3V. Seperti yang ditunjukkan dalam rajah di atas, dua servo disambungkan ke pin Vin di Arduino. Voltan tambahan ini dapat dibekalkan oleh apa sahaja, saya menggunakan bateri 9 volt. Sensor sentuh dipasang ke 5V di Arduino. Ini kerana semua komponen mengalami masalah dengan voltan yang sama. Sensor sentuh dipasang pada pin 2 sehingga dapat digunakan sebagai pin interrupt. Kemudian modul bluetooth disambungkan ke pin Rx dan Tx untuk komunikasi bersiri. Di antara pin Rx pada modul dan Tx pada Arduino adalah perintang 2 kilo ohm dengan 1 kilo ohm menyambung ke tanah. Ini membantu mengatur voltan yang masuk.
Langkah 4: Perhimpunan
Pemasangannya agak sederhana.
- dengan beberapa gam super pasangkan servo anda pada kedudukan mereka, satu untuk gear dengan potongan di pangkalan dan yang lain di dekat pangkalan telefon.
- Pasang sensor sentuh ke pemegang telefon, sehingga dapat mengetahui kapan telefon itu ada.
- Kemudian pasangkan gear dan lengan ke servo masing-masing
- Pastikan wayar tidak mengganggu komponen lain semasa anda mengisi elektronik anda
Langkah 5: Kod
Ada tiga set kod yang akan disajikan, satu kod untuk Arduino, yang dibuat di Arduino IDE dan dua kod yang dibuat di Android Studio. Aplikasi Android adalah sama kecuali satu adalah aplikasi penuh yang mengesan hayat bateri dan satu tidak. Yang kedua adalah untuk tujuan ujian.
Kod Arduino
Titik utama kod ini adalah untuk mengendalikan sensor sentuh dan motor, ia menerima perintah dari telefon dan bertindak di atasnya.
#include // memanggil servo library supaya kita dapat mengawal dua servoServo servo1; Servo servo2; // membuat dua objek servo untuk setiap motor servo int a = 0; // pemboleh ubah penjejakan untuk menguji int q = 0; // pemboleh ubah yang memungkinkan berlakunya kelewatan sebelum proses pemalam bermula char; // pemboleh ubah yang mengandungi mesej bersiri dari penyediaan void telefon () {attachInterrupt (digitalPinToInterrupt (2), AH, FALLING); // melampirkan gangguan jatuh untuk mengetahui dengan tepat kapan sensor sentuh melihat ketika telefon sedang keluar pada servo1.attach (10); servo2.attach (9); // menginisialisasi dua servo Serial.begin (9600); // memulakan komunikasi bersiri pada kadar yang serupa dengan servo2.write modul bluetooth (20); // auto menetapkan servos menjadi servo1.write kedudukan permulaan (180); }
gelung kosong () {
jika (Serial.available ()) {// ini memeriksa apakah ada sesuatu yang masuk dari telefon melalui pin siri Tx dan Rx c = Serial.read (); // membaca apa yang masuk dari jika (c == 't') {// jika peranti bersiri berbunyi pada masa itu bermakna telefon sudah terisi penuh, proses mencabut palam bermula servo2.write (120); // mencabut penangguhan pengecas (5000); // menunggu untuk memastikan ada masa untuk penghapusan servo1.write (110); // menggerakkan telefon ke kedudukan tegak untuk memberi isyarat //Serial.println("here "); attachInterrupt (digitalPinToInterrupt (2), AH, FALLING); // pasang semula gangguan}} jika (q == 1) {// jika syarat untuk plugin dalam keadaan sudah tentu, mulailah dengan memasang kelewatan pengecas (10000); servo2.write (0); // memindahkan servo ke kedudukan q = 0; // menetapkan semula keadaan}}
batal AH () {
//Serial.println("in "); servo1.write (180); // menjatuhkan platform telefon ke kedudukan pengecasan q = 1; // memulakan keadaan untuk meneruskan proses // a = 1; detachInterrupt (digitalPinToInterrupt (2)); // melepaskan interupsi, sehingga tidak akan ada masalah dengan gangguan bermula apabila tidak seharusnya}
Aplikasi Android
Di sini saya hanya akan memaparkan aplikasi yang betul tetapi fail kod ujian juga akan diberikan, satu-satunya perbezaan adalah penghapusan kelas yang dapat dijalankan dan getBattery. Kod siri yang disebutkan adalah yang standard untuk telefon yang menyambung ke peranti seperti modul.
pakej com.example.daniel.make; import android.bluetooth. BluetoothAdapter; import android.bluetooth. BluetoothDevice; import android.bluetooth. BluetoothSocket; import android.os. Handler; import android.support.v7.app. AppCompatActivity; import android.os. Bundle; import android.content. Intent; import android.content. IntentFilter; import android.os. BatteryManager; import java.io. IOException; import java.io. OutputStream; import java.util. Set; import java.util. UUID;
MainActivity kelas awam memperluas AppCompatActivity {
// membuat objek yang diperlukan Pengendali pengendali; // membantu dengan gelung Runnable runnable; // berjalan berterusan BluetoothAdapter mBluetoothAdapter; BluetoothSocket mmSocket; BluetoothDevice mmDevice; OutputStream mmOutputStream; StopWorker boolean yang tidak menentu; OutputStream outputStream peribadi; rentetan akhir persendirian DEVICE_NAME = "HC-05"; UUID akhir peribadi PORT_UUID = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); peranti BluetoothAdapter peribadi; soket BluetoothSocket peribadi; @Override dilindungi void onCreate (Bundle saveInstanceState) {// adalah sekumpulan arahan yang dijalankan semasa aplikasi dibuat super.onCreate (saveInstanceState); // displya create setContentView (R.layout.activity_main); runnable = new Runnable () {@ Override public void run () {// berjalan berulang kali int level = (int) getBattery (); // mendapat tahap bateri semasa jika (level == 100) {// jika tahap bateri mencapai 100% cuba {getBT (); // menyambung ke modul bluetooth openBT (); // membukanya sendData (); // menghantar data yang diperlukan closeBT (); // menutup objek} tangkapan (IOException ex) { }} handler.postDelayed (runnable, 5000); // kelewatan}}; pengendali = Pengendali baru (); handler.postDelayed (runnable, 0); }
public float getBattery () {
Intent batteryIntent = registerReceiver (null, IntentFilter baru (Intent. ACTION_BATTERY_CHANGED)); // membuat tindakan yang menghubungkan ke tahap int bateri = batteryIntent.getIntExtra (BatteryManager. EXTRA_LEVEL, -1); // mendapat skala int tahap yang lebih baik = batteryIntent.getIntExtra (BatteryManager. EXTRA_SCALE, -1); // mendapat skala bateri jika (level == -1 || skala == -1) {// sekiranya berlaku salah langkah 50.0f; } skala float batt = (level / (float)) * 100.0f; // mendapat skala return batt yang betul; // mengembalikan level}
batal getBT () {// mendapat kemungkinan sambungan Bluetooth
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter (); // mendapat penyesuai jika (! mBluetoothAdapter.isEnabled ()) {// memastikan telefon mempunyai gigi biru pada Intent enabledBluetooth = new Intent (BluetoothAdapter. ACTION_REQUEST_ENABLE); // memintanya dihidupkan jika tidak startActivityForResult (enabledBluetooth, 0); } Tetapkan pairedDevices = mBluetoothAdapter.getBondedDevices (); // mendapat senarai bluetooth terikat jika (pairedDevices.size ()> 0) {// memastikan ada beberapa peranti untuk (BluetoothDevice device: pairedDevices) {// gelung melalui peranti jika (device.getName (). sama dengan ("HC-05")) {// memeriksa sama ada yang sesuai mmDevice = device; // menyimpannya rosak; }}}}
batal openBT () membuang IOException {
UUID uuid = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); // Standard // SerialPortService ID mmSocket = mmDevice.createRfcommSocketToServiceRecord (uuid); // menyambung ke peranti dengan id yang sesuai mmSocket.connect (); // menghubungkan mmOutputStream = mmSocket.getOutputStream (); // memulakan kemampuan untuk menghantar data ke modul arduino}
void sendData () melemparkan kelas IOException {// yang menghantar t ke arduino
mmOutputStream.write ('t'); }
void closeBT () membuang IOException {// menutup semua sambungan ke arduino
stopWorker = benar; mmOutputStream.close (); mmSocket.close (); }}
Langkah 6: Fail
Terima kasih kerana membaca, dilampirkan fail yang digunakan dalam projek ini
Disyorkan:
Pengumpan Tumbuhan Automatik WiFi Dengan Takungan - Persediaan Penanaman Dalaman / Luaran - Tumbuhan Air Secara Automatik Dengan Pemantauan Jauh: 21 Langkah
Pengumpan Tanaman Automatik WiFi Dengan Takungan - Persediaan Penanaman Dalaman / Luaran - Tumbuhan Air Secara Automatik Dengan Pemantauan Jauh: Dalam tutorial ini kita akan menunjukkan cara mengatur sistem pengumpan tanaman dalaman / luaran khusus yang menyiram tanaman secara automatik dan dapat dipantau dari jarak jauh menggunakan platform Adosia
Pengecas / Pengecas Pintar Arduino Nano 4x 18650: 20 Langkah
Arduino Nano 4x 18650 Smart Charger / Discharger: Ini adalah Projek Sumber Terbuka Smart Charger / Discharger Arduino Nano 4x 18650 saya. Unit ini dikuasakan oleh 12V 5A. Ia boleh dikuasakan oleh bekalan kuasa komputer.LinksBattery Portal: https://portal.vortexit.co.nz/Senarai Bahagian: http://www.vortexit.co.nz/p
Cara Membuat Pengecas Bateri 12V Automatik: 16 Langkah (dengan Gambar)
Cara Membuat Pengecas Bateri 12V Automatik: Hei! semua orang Nama saya Steve. Hari ini saya akan menunjukkan kepada anda Cara Membuat Pengecas Bateri 12v Klik Di Sini untuk Melihat Permulaan Video
Pengecas Suria / Survival USB Pengecas USB Mudah 5 Minit: 6 Langkah (dengan Gambar)
Pengecas Suria / Survival USB Pengecas USB Mudah 5 Minit: Helo guys! Hari ini saya baru sahaja membuat (mungkin) pengecas panel solar usb termudah! Mula-mula saya minta maaf kerana saya tidak memuat naik beberapa arahan untuk anda .. Saya mendapat beberapa peperiksaan dalam beberapa bulan kebelakangan ini (sebenarnya tidak sedikit mungkin seminggu atau lebih ..). Tetapi
Cara Membuat Pengecas Bateri 12v Automatik: 6 Langkah (dengan Gambar)
Cara Membuat Pengecas Bateri 12v Automatik: Halo semua dalam arahan ini saya akan menunjukkan kepada anda cara membuat pengecas bateri automatik