Orodha ya maudhui:

Chaja ya Simu ya Moja kwa Moja: Hatua 6 (na Picha)
Chaja ya Simu ya Moja kwa Moja: Hatua 6 (na Picha)

Video: Chaja ya Simu ya Moja kwa Moja: Hatua 6 (na Picha)

Video: Chaja ya Simu ya Moja kwa Moja: Hatua 6 (na Picha)
Video: Jinsi ya kufanya simu itunze charge kwa muda mrefu /how to increase battery life 2024, Desemba
Anonim
Chaja ya Simu ya Moja kwa Moja
Chaja ya Simu ya Moja kwa Moja

"Hii inaweza kufundishwa iliundwa kutimiza mahitaji ya mradi wa Makecourse katika Chuo Kikuu cha Florida Kusini (www.makecourse.com)"

Wazo la mradi huu lilikuwa kuunda kifaa ambacho kinaweza kuchaji simu, na kisha uiondoe wakati simu inafikia 100%. Hii ingesimamisha maswala ya malipo zaidi.

Hatua ya 1: Vipengele vya plastiki

Vipengele vya plastiki
Vipengele vya plastiki
Vipengele vya plastiki
Vipengele vya plastiki
Vipengele vya plastiki
Vipengele vya plastiki
Vipengele vya plastiki
Vipengele vya plastiki

Kulikuwa na vifaa ambavyo vilitumiwa ambavyo vilichapishwa na 3D. Vipengele hivi vilikuwa na msingi, mmiliki wa chaja, rack na seti ya gia ya pinion (gia ya kawaida na kipande cha laini ambacho hubadilisha mzunguko kuwa harakati laini), na msingi wa kila kitu cha kufanya kazi. Vipengele hivi vitaelezewa katika aya zifuatazo. Kwa utaratibu wa kuonekana

Mmiliki wa Chaja

Kusudi la hii ni kushikilia chaja ya simu, au angalau ipatie msingi bora na wa kiwango.

Msingi

Msingi una pete kwa mmiliki wa simu na pia wimbo wa seti ya gia.

Mmiliki wa Simu

Anashikilia simu, ni wazi

Simu ya Simu

Husogea na kushikilia simu

Rack na Pinion Set Gear

Inatumika kuhamisha chaja ya simu nyuma na mbele

Hatua ya 2: Kuvunja Vitu visivyochapishwa vya 3D

Hizi ndizo vifaa ambavyo vilinunuliwa kwa mradi au tayari inamilikiwa. Kwa sehemu zingine nilizoziunganisha / vitu sawa kwenye amazon, lakini jisikie huru kuzipata mahali popote.

Servo ndogo: https://www.amazon.com/J-Deal-Micro-Helicopter-Air …….

Kiwango 0-180 Servo: https://www.amazon.com/Futaba-FUTM0031-S3003-Stand …….

Moduli ya Serial ya HC-05 ya Bluetooth:

Chaja ya simu na simu

Arduino

Bodi ya mkate

Sanduku au pipa kwa msingi

Sensor ya Kugusa:

Hatua ya 3: Elektroniki

Umeme
Umeme

Mzunguko wa mradi huu unaweza kuhitaji hata hivyo, haswa kwa sababu ya moduli ya HC-05. Moduli nyingi za aina hii ni kiwango cha takriban 3.3V hadi 6V, ambayo iko katika anuwai ya kazi ya Arduino. Lakini, kwa mawasiliano ya serial pini ya Rx wakati mwingine inafanya kazi vizuri na 3.3V tu. Kama inavyoonekana kwenye mchoro hapo juu, servos mbili zimeunganishwa kwenye pini ya Vin kwenye Arduino. Voltage hii ya ziada inaweza kutolewa na chochote, nilitumia betri 9 ya volt. Sensor ya kugusa ilikuwa imeingizwa kwenye 5V kwenye Arduino. Hii ilikuwa kwa sababu vifaa vyote vilikuwa na shida kukimbia kwa voltage sawa. Sensor ya kugusa imeambatanishwa na pini 2 ili iweze kutumiwa kama pingamizi la pini. Kisha moduli ya bluetooth imeunganishwa na pini za Rx na Tx kwa mawasiliano ya serial. Kati ya pini ya Rx kwenye moduli na Tx kwenye Arduino kuna kipimaji cha kilo 2 ohm na kilo 1 ohm inayounganisha ardhini. Hii inasaidia kudhibiti voltage inayoingia.

Hatua ya 4: Mkutano

Mkutano
Mkutano

Mkutano ni rahisi sana.

  1. ukiwa na gundi moja kubwa panda servos zako katika nafasi zao, moja kwa gia kwa njia ya kukata kwenye msingi na moja karibu na mahali msingi wa simu ulipo.
  2. Ambatisha sensa ya kugusa kwa mmiliki wa simu, ili iweze kujua wakati simu iko.
  3. Kisha ambatisha gia na mkono kwa servos zao
  4. Hakikisha waya haziingilii na vifaa vingine unapojaza vifaa vyako vya elektroniki

Hatua ya 5: Kanuni

Kuna seti tatu za nambari ambazo zitawasilishwa, nambari moja ya Arduino, ambayo iliundwa katika IDE ya Arduino na nambari mbili ambazo zilifanywa katika Studio ya Android. Programu za Android ni sawa isipokuwa moja ni programu kamili inayofuatilia maisha ya betri na moja haina. Ya pili ni kwa madhumuni ya kupima.

Msimbo wa Arduino

Jambo kuu la nambari hii ni kutumia sensorer ya kugusa na motors, inapokea amri kutoka kwa simu na kuifanya.

# pamoja na // inaita maktaba ya servo ili tuweze kudhibiti servosServo servo1 mbili; Servo servo2; // huunda vitu viwili vya servo kwa kila servo motor int a = 0; // kutofautisha kwa kupima int q = 0; variable ambayo ina ujumbe wa serial kutoka kwa usanidi batili wa simu () {attachInterrupt (digitalPinToInterrupt (2), AH, FALLING); (10); // Servo2.attach (9); // inazindua servos mbili Serial.begin (9600); nafasi ya kuanza servo1. andika (180); }

kitanzi batili () {

ikiwa (Serial haipatikani ()) {// hii inachunguza ikiwa kuna kitu chochote kinachoingia kutoka kwa simu juu ya pini za serial Tx na Rx c = Serial.read (); // inasoma kile kinachokuja kutoka ikiwa (c == 't') {// ikiwa kifaa cha serial kinasomeka wakati huo hiyo inamaanisha kuwa simu imeshtakiwa kabisa, mchakato wa kufungulia huanza servo2. andika (120); kuna wakati wa kuondolewa kwa servo1.write (110); ambatanishaInterrupt (digitalPinToInterrupt (2), AH, FALLING); // servo2.write (0); // inahamasisha servo katika nafasi q = 0;

utupu AH () {

//Serial.println ("ndani"); servo1.write (180); // anatupa jukwaa la simu kwenye nafasi ya kuchaji q = 1; // huanza hali ya kuendelea na mchakato // a = 1; detachInterrupt (digitalPinToInterrupt (2));

Programu ya Android

Hapa nitaonyesha programu inayofaa tu lakini faili ya nambari ya majaribio pia itapewa, tofauti pekee itakuwa kuondolewa kwa darasa linaloweza kukimbia na kupataBattery. Nambari ya nambari iliyotajwa ni ile ambayo ni ya kawaida kwa simu zinazounganishwa na vifaa kama moduli.

kifurushi com.mfano.daniel.make; kuagiza android.bluetooth. BluetoothAdapter; kuagiza android.bluetooth. BluetoothDevice; kuagiza android.bluetooth. BluetoothSocket; kuagiza android.os. Handler; kuagiza android.support.v7.app. AppCompatActivity; kuagiza android.os. Bundle; kuagiza android.content. Intent; kuagiza android.content. IntentFilter; kuagiza android.os. BatteryManager; kuagiza java.io. IOException; kuagiza java.io. OutputStream; kuagiza java.util. Set; kuagiza java.util. UUID;

darasa la umma MainActivity inaongeza AppCompatActivity {

// kuunda vitu vya lazima Handler handler; BluetoothSocket mmSocket; Kifaa cha Bluetooth mmDevice; PatoStream mmOutputStream; stop boolean stopWorker; Pato la kibinafsiStream outputStream; Kamba ya mwisho ya faragha DEVICE_NAME = "HC-05"; mwisho wa kibinafsi UUID PORT_UUID = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); kifaa cha kibinafsi cha BluetoothAdapter; tundu la kibinafsi la BluetoothSocket; @Override ililindwa tupu onCreate (Bundle savedInstanceState) {// ni seti ya maagizo ambayo hutumika wakati programu imeundwa super.onCreate (savedInstanceState); // dislya creation setContentView (R.layout.activity_main); runnable = new Runnable () {@Override public void run () {// inaendesha mara kwa mara int level = (int) getBattery (); // anapata kiwango cha sasa cha betri ikiwa (level == 100) {// ikiwa kiwango cha betri ifikia 100% jaribu {getBT (); // inaunganisha kwa moduli ya bluetooth openBT (); // inafungua sendData (); // inapeleka data muhimu karibuBT (); }} kishikaji.chapisho Imecheleweshwa (inayoweza kuendeshwa, 5000); // kucheleweshwa}}; handler = mshughulikiaji mpya (); iliyobebwa (postnable, 0); }

kuelea kwa umma kupataBattery () {

Nia ya betriIntent = rejista Mpokeaji (null, IntentFilter mpya (Intent. ACTION_BATTERY_CHANGED)); batteryIntent.getIntExtra (BatteryManager. EXTRA_SCALE, -1); } batt ya kuelea = (kiwango / (kuelea) kiwango) * 100.0f; // anapata kipigo cha kurudisha mizani; // anarudisha kiwango}

batili GetBT () {// inapata muunganisho wa bluetooth

mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter (); // anapata adapta ikiwa (! mBluetoothAdapter.isEnabled ()) {// inahakikisha simu ina jino la samawati kwenye Intent enableBluetooth = Intent mpya (BluetoothAdapter. ACTION_REQUEST_ENABLE); // inaomba iwe imewashwa ikiwa sio startActivityForResult (wezeshaBluetooth, 0); } Weka pairedDevices = mBluetoothAdapter.getBondedDevices (); // hupata orodha ya Bluetooth iliyofungwa ikiwa (pairedDevices.size ()> 0) {// inahakikisha kuwa kuna vifaa vya vifaa kama }}}}

batili openBT () inatupa IOException {

UUID uuid = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); // Standard // SerialPortService ID mmSocket = mmDevice.createRfcommSocketToServiceRecord (uuid); // inaunganisha kwenye kifaa na id sahihi mmSocket.connect (); data kwa moduli ya arduino}

batili sendData () hutupa IOException {// darasa linalotuma t kwa arduino

mmOutputStream.write ('t'); }

batili karibuBT () inatupa IOException {// inafunga viunganisho vyote kwa arduino

stopWorker = kweli; mmOutputStream. karibu (); mmSocket. karibu (); }}

Hatua ya 6: Faili

Asante kwa kusoma, zimeambatanishwa na faili ambazo zilitumika katika mradi huu

Ilipendekeza: