Mundarija:
- 1 -qadam: Plastik komponentlar
- 2 -qadam: 3D bosilmaydigan komponentlarni ajratish
- 3 -qadam: elektronika
- 4 -qadam: yig'ish
- 5 -qadam: kod
- 6 -qadam: fayllar
Video: Avtomatik telefon zaryadlovchi: 6 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
"Bu ko'rsatma Janubiy Florida universitetining Makecourse loyihasi talablarini bajarish uchun yaratilgan (www.makecourse.com)"
Loyihaning asosiy maqsadi telefonni zaryad qila oladigan qurilma yaratish va telefon 100%ga yetganda uni tarmoqdan uzish edi. Bu ortiqcha zaryad masalalarini to'xtatadi.
1 -qadam: Plastik komponentlar
3D bosma ishlatilgan ba'zi komponentlar ishlatilgan. Bu komponentlar taglik, zaryadlovchi ushlagichi, rack va pinion tishli to'plami (oddiy vites va aylanishni chiziqli harakatga o'zgartiradigan chiziqli bo'lak) va hamma narsa ishlashi uchun tayanchdan iborat edi. Bu komponentlar keyingi paragraflarda tushuntiriladi. Ko'rinish tartibida
Zaryadlovchi ushlagichi
Buning maqsadi - telefon zaryadlovchisini ushlab turish yoki hech bo'lmaganda unga yaxshiroq va tekisroq tayanch berish.
Baza
Baza telefon ushlagichi uchun uzuklar bilan bir qatorda vites qutisi uchun trekka ega.
Telefon ushlagichi
Telefonni ushlab turgani aniq
Telefon qo'li
Telefonni qimirlatadi va ushlab turadi
Rack va Pinion tishli to'plami
Telefon zaryadlovchisini oldinga va orqaga siljitish uchun ishlatiladi
2 -qadam: 3D bosilmaydigan komponentlarni ajratish
Bular loyiha uchun sotib olingan yoki allaqachon egalik qilingan komponentlar. Men ular bilan bog'langan ba'zi qismlar uchun/Amazonda shunga o'xshash narsalar, lekin ularni istalgan joydan sotib olish mumkin.
Mikro Servo:
Standart 0-180 Servo:
HC-05 Bluetooth seriyali moduli:
Telefon va telefon zaryadlovchi
Arduino
Non paneli
Baza uchun quti yoki quti
Sensorli sensor:
3 -qadam: elektronika
Ushbu loyihaning sxemasi, asosan, HC-05 moduli tufayli, biroz talab qilishi mumkin. Ushbu turdagi ko'plab modullar Arduino operatsion diapazonida bo'lgan taxminan 3,3V dan 6V gacha. Ammo ketma -ket aloqa uchun Rx pin ba'zan faqat 3.3V bilan yaxshi ishlaydi. Yuqoridagi diagrammada ko'rinib turganidek, ikkita servo Arduino -dagi Vin piniga ulangan. Bu qo'shimcha kuchlanishni hamma narsa berishi mumkin, men 9 voltli batareyani ishlatganman. Sensor sensori Arduino 5V ga ulangan. Buning sababi shundaki, barcha komponentlar bir xil kuchlanishda ishlamayapti. Sensor sensori 2 -pinga biriktirilgan, shuning uchun uni pinni uzish sifatida ishlatish mumkin. Keyin bluetooth moduli ketma -ket aloqa uchun Rx va Tx pinlariga ulanadi. Moduldagi Rx pin va Arduino -dagi Tx o'rtasida 2 kilo ohmli qarshilik, 1 kilo ohm erga ulanadi. Bu kiruvchi kuchlanishni tartibga solishga yordam beradi.
4 -qadam: yig'ish
O'rnatish juda oddiy.
- bir nechta super elim bilan servolarni o'z joylariga o'rnatib qo'ying, bittasi poydevoridagi tishli quti uchun va telefon tagligi yaqinida.
- Sensorni telefon ushlagichiga ulang, shunda u telefon qachon ekanligini bilib oladi.
- Keyin vites va qo'lni tegishli servolarga ulang
- Elektronni to'ldirayotganda simlar boshqa komponentlarga to'sqinlik qilmasligiga ishonch hosil qiling
5 -qadam: kod
Uchta kod to'plami taqdim etiladi, bittasi Arduino IDE -da yaratilgan Arduino uchun bitta kod va Android Studio -da ishlab chiqarilgan ikkita kod. Android ilovalari bir xil, faqat bitta dastur batareyaning ishlash muddatini kuzatadi, boshqasi esa yo'q. Ikkinchisi sinov uchun.
Arduino kodi
Ushbu kodning asosiy maqsadi sensorli dvigatellarni ishlatishdir, u telefondan buyruq oladi va unga amal qiladi.
#include // servo kutubxonasini chaqiradi, shunda biz ikkita servoServo servo1ni boshqarishimiz mumkin; Servo servo2; // har bir servo dvigatel uchun ikkita servo moslamani yaratadi int a = 0; // int q = 0 ni tekshirish uchun kuzatuvchi o'zgaruvchi; // o'zgaruvchini pluggin jarayonining boshlanishidan oldin kechiktirishga imkon beradi char c; // telefondan ketma -ket xabarni o'z ichiga olgan o'zgaruvchini bekor qilish sozlamalari () {attachInterrupt (digitalPinToInterrupt (2), AH, FALLING); (10); servo2.attach (9); // ikkita servo Serial.begin (9600) ni ishga tushiradi; // ketma -ket aloqani servo2.write (20) bluetooth moduliga o'xshash tezlikda boshlaydi; // avtomatik ravishda servolarni o'rnatadi boshlang'ich pozitsiyasi servo1.write (180); }
void loop () {
if (Serial.available ()) {// bu telefondan Tx va Rx c = Serial.read () ketma -ket pinlari orqali telefondan biror narsa kirib kelishini tekshiradi; // if (c == 't') {// agar ketma -ket qurilma o'qilsa, bu telefon to'liq zaryadlanganligini bildiradi, tarmoqdan uzish jarayoni servo2.write (120); // zaryadlovchining kechikishini (5000) ajratadi; // ishonch hosil qilishni kutadi o'chirish uchun vaqt bor servo1.write (110); // signal berish uchun telefonni tik holatiga o'tkazadi // Serial.println("bu erda "); attachInterrupt (digitalPinToInterrupt (2), AH, FALLING); // uzilishni qayta}} qo'shadi}} if (q == 1) {// agar plagin sharti aniq bo'lsa, zaryadlovchining kechikishini (10000) biriktirishdan boshlang; servo2.write (0); // servoni q = 0 holatiga o'tkazadi; // shartni tiklaydi}}
bo'sh AH () {
//Serial.println("in "); servo1.write (180); // telefon platformasini q = 1 zaryadlash holatiga tushiradi; // jarayonni davom ettirish uchun shartni ishga tushiradi // a = 1; detachInterrupt (digitalPinToInterrupt (2)); // uzilishni ajratadi, shuning uchun kerak bo'lmaganda uzilish bilan bog'liq muammolar bo'lmaydi}
Android ilovasi
Bu erda men faqat tegishli ilovani ko'rsataman, lekin test kodi fayli ham beriladi, faqat farq ishlaydigan va getBattery sinfini olib tashlashda bo'ladi. Modul kabi qurilmalarga ulangan telefonlar uchun standart kod ko'rsatilgan.
com.example.daniel.make to'plami; android.bluetooth. Bluetooth Adapterni import qilish; android.bluetooth. BluetoothDevice -ni import qilish; android.bluetooth. BluetoothSocket -ni import qilish; android.os. Handler -ni import qilish; android.support.v7.app. AppCompatActivity -ni import qilish; android.os. Bundle -ni import qilish; android.content. Intent -ni import qilish; android.content. IntentFilter -ni import qilish; android.os. BatteryManager -ni import qilish; java.io. IOException ni import qilish; java.io. OutputStream -ni import qilish; java.util. Set -ni import qilish; java.util. UUID -ni import qilish;
MainActivity umumiy klassi AppCompatActivity -ni kengaytiradi {
// kerakli moslamalarni yaratish Handler handler; // Runnable runnable loopiga yordam beradi; // uzluksiz ishlaydi BluetoothAdapter mBluetoothAdapter; Bluetooth soket mmSocket; Bluetooth qurilmasi mmDevice; Chiqish oqimi mmOutputStream; o'zgaruvchan boolean stopWorker; xususiy OutputStream outputStream; shaxsiy yakuniy String DEVICE_NAME = "HC-05"; shaxsiy yakuniy UUID PORT_UUID = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); shaxsiy BluetoothAdapter qurilmasi; shaxsiy Bluetooth soket rozetkasi; @Override himoyalangan void onCreate (Bundle saveInstanceState) {// - bu dastur yaratilganda bajariladigan ko'rsatmalar to'plami super.onCreate (saveInstanceState); // displya yaratish setContentView (R.layout.activity_main); runnable = new Runnable () {@Override public void run () {// qayta -qayta ishlaydi int level = (int) getBattery (); // agar batareya darajasi bo'lsa 100% urinib ko'ring {getBT (); // bluetooth moduliga ulanadi openBT (); // uni ochadi sendData (); // kerakli ma'lumotlarni yuboradi closeBT (); // ob'ektni yopadi} catch (IOException ex) { }} handler.postDelayed (ishga tushirish mumkin, 5000); // kechikish}}; ishlovchi = yangi Handler (); handler.postDelayed (runnable, 0); }
ommaviy float getBattery () {
Intent = registerReceiver (null, yangi IntentFilter (Intent. ACTION_BATTERY_CHANGED)); // akkumulyatorga ulanadigan harakatni yaratadi batteryIntent.getIntExtra (BatteryManager. EXTRA_SCALE, -1); } float batt = (level/(float) shkalasi)*100.0f; // tegishli o'lchovli qaytish jangini oladi; // darajani qaytaradi}
void getBT () {// mumkin bo'lgan bluetooth ulanishlarini oladi
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter (); // adapterni oladi, agar (! mBluetoothAdapter.isEnabled ()) {// telefonda Intent enableBluetooth = new Intent (BluetoothAdapter. ACTION_REQUEST_ENABLE); startActivityForResult bo'lmasa, yoqilgan (enableBluetooth, 0); } Set pairedDevices = mBluetoothAdapter.getBondedDevices (); // bog'langan bluetooth ro'yxatini oladi, agar (pairedDevices.size ()> 0) {// (BluetoothDevice device: pairedDevices) {// uchun ba'zi qurilmalar mavjudligini tekshiradi qurilmalar if (device.getName (). teng ("HC-05")) {// uning mos mmDevice = device; // tekshirilishini saqlaydi; }}}}
void openBT () IOException ni tashlaydi {
UUID uuid = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); // Standart // SerialPortService ID mmSocket = mmDevice.createRfcommSocketToServiceRecord (uuid); // qurilmaga mmSocket.connect () tegishli identifikatori bilan ulanadi; // mmOutputStream = mmSocket.getOutputStream () ni ulaydi; // yuborish qobiliyatini boshlaydi. ma'lumotlar arduino moduliga}
void sendData () t -ni arduino -ga yuboradigan IOException {// sinfini chiqaradi
mmOutputStream.write ('t'); }
void closeBT () IOException ni tashlaydi {// arduino bilan barcha ulanishlarni yopadi
stopWorker = rost; mmOutputStream.close (); mmSocket.close (); }}
6 -qadam: fayllar
O'qiganingiz uchun tashakkur, ushbu loyihada ishlatilgan fayllar ilova qilingan
Tavsiya:
Canon CB-2LYE zaryadlovchi NB-6L USB zaryadlovchi: 9 qadam (rasmlar bilan)
Canon CB-2LYE almashtiriladigan NB-6L USB batareyali zaryadlovchi: Menda super zum Canon SX 540HS nuqtasi va tortishish kamerasi bor, bu CB-2LYE zaryadlovchi va NB-6L batareyasi. Zaryadlovchi 240V ACda ishlaydi va uning o'lchamlari tufayli uni kamera sumkasi bilan olib o'tish mumkin emas. Yaqinda Chandga tashrif buyurganimda
Arduino Nano 4x 18650 aqlli zaryadlovchi / zaryadlovchi: 20 qadam
Arduino Nano 4x 18650 aqlli zaryadlovchi / zaryadlovchi: Bu mening Arduino Nano 4x 18650 aqlli zaryadlovchi / zaryadlovchining ochiq manbali loyihasi. Bu qurilma 12V 5A bilan ishlaydi. U kompyuter quvvat manbai bilan ta'minlanishi mumkin. LinksBatareya portali: https://portal.vortexit.co.nz/ qismlar ro'yxati: http://www.vortexit.co.nz/p
Pro Batareya zaryadlovchi/zaryadlovchi: 9 qadam
Pro Batareya zaryadlovchi/zaryadsizlantiruvchi: siz ushbu loyihani amalga oshirish uchun avval ushbu komponentlarni olishingiz kerak, shuning uchun agar siz o'zingizni saxovatli his qilsangiz, iltimos, mening havolalarimdan foydalaning, shunda men yaxshiroq va ko'proq videolarni ishlab chiqaraman
DIY SOLAR JAKET (Usb telefon zaryadlovchi): 9 qadam (rasmlar bilan)
DIY SOLAR JAKET (Usb telefon zaryadlovchisi): Quyoshli telefonlar uchun zaryadlovchi ko'ylagi va sumkasi juda oddiy va oson, hatto siz uni o'zingiz uyda qilishingiz mumkin. Telefonni zaryad qiladi, favqulodda vaziyatlarda kerak bo'lgan sharbatni to'liq ko'rish uchun. loyiha buni tekshirishni unutmang
DIY simsiz telefon zaryadlovchi qurilmasi va LEDni boshqarish: 11 qadam (rasmlar bilan)
DIY simsiz telefon zaryadlash qurilmasi va LEDni boshqarish: Bu yo'riqnomada men simsiz telefon zaryadlovchisini va faollashtirilgan LEDlarni qanday yasashni ko'rsataman. Men o'zim simsiz qilish uchun kod, PDF -lar, simlar diagrammasi va Gerber fayllarini, shuningdek materiallar ro'yxatini o'z ichiga olaman. telefon zaryadlovchi. Maxsus eslatma: Yo'q