Orodha ya maudhui:

Mzunguko wa Simu Unaozunguka: Hatua 7
Mzunguko wa Simu Unaozunguka: Hatua 7

Video: Mzunguko wa Simu Unaozunguka: Hatua 7

Video: Mzunguko wa Simu Unaozunguka: Hatua 7
Video: jinsi ya kuhesabu siku za mzunguko wa hedhi wa aina zote 2024, Julai
Anonim
Kupokezana Mlima wa Simu
Kupokezana Mlima wa Simu

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

Unataka kutengeneza mlima wa simu unaozunguka ili uweze kuona yaliyomo kwenye simu yako katika picha au mwelekeo wa mazingira bila kuishikilia? Kisha, usiangalie zaidi.

Ili kuunda mradi huu, utahitaji:

- Arduino Microcontroller na IDE

- Cable ya USB kupakia nambari

- Bodi ya mkate

- waya za Jumper

- Onyesho la LCD

- Servo

- Safu wima inayoweza kushikamana na servo

- Kijijini cha IR

- Mpokeaji wa IR

- 10k ohm kupinga

- Kenu Airframe + cha picha ya video (au kitu cha kushikilia simu mahali)

- 9 V Betri kwa nguvu inayoweza kubebeka au USB tu inayotumia Arduino

Hatua ya 1: Jenga Mzunguko wa Mpokeaji wa IR

Jenga Mzunguko wa Mpokeaji wa IR
Jenga Mzunguko wa Mpokeaji wa IR
Jenga Mzunguko wa Mpokeaji wa IR
Jenga Mzunguko wa Mpokeaji wa IR

Kwanza, ruka GND na + 5V kutoka Arduino hadi reli za umeme kwenye ubao wako wa mkate. Kisha, ruka kipinzani chako cha 10k ohm kutoka kwa reli ya umeme + 5V hadi pini ya pato la mpokeaji wako wa IR phototransistor. Ifuatayo, tumia waya ya kuruka kuungana ili kubandika 11 kwenye Arduino kutoka kwa pini ya pato la mpokeaji wa IR. Kisha, tumia waya mbili za kuruka kutuma ardhi na + 5V kwenye pini husika kwenye mpokeaji wa IR. Kichujio cha RC kilichoonyeshwa kwenye skimu hapo juu sio lazima. Mwishowe, sikufanya skimu iliyoonyeshwa katika hatua hii, na chanzo cha hiyo iko kwenye picha.

Hatua ya 2: Unganisha Servo, Column, na Mmiliki wa Simu

Unganisha Servo, Column, na Mmiliki wa Simu
Unganisha Servo, Column, na Mmiliki wa Simu
Unganisha Servo, Column, na Mmiliki wa Simu
Unganisha Servo, Column, na Mmiliki wa Simu
Unganisha Servo, Column, na Mmiliki wa Simu
Unganisha Servo, Column, na Mmiliki wa Simu

Sasa, tumia waya mbili za kuruka kuruka kutoka ardhini na + 5V ya reli za nguvu za mkate kwenye waya za hudhurungi na nyekundu za servo, mtawaliwa. Kisha, tumia waya moja ya kuruka ili kushikilia pini 9 kwenye Arduino kwenye waya wa machungwa wa servo.

Kisha, ambatisha safu kwenye kichwa cha servo kama inavyoonekana kwenye picha ya pili.

Mwishowe, ambatisha kitu cha kushikilia simu kwenye safu, kama Kenu Airframe +, kama inavyoonyeshwa kwenye picha ya tatu.

Hatua ya 3: Unganisha Uonyesho wa LCD kwa Readvo ya Servo

Unganisha Uonyesho wa LCD kwa Readvo ya Servo
Unganisha Uonyesho wa LCD kwa Readvo ya Servo

Rukia ardhi na + 5V kutoka kwa reli yako ya nguvu ya mkate kwa pini husika kwenye Uonyesho wa LCD. Pia, ruka pini za SDA na SCL kutoka LCD kwenda Ardiuno. Pini za SDA na SCL za Arduino zinaweza kutambuliwa kutoka nyuma ya bodi ya Arduino na ni pini mbili zilizo juu ya AREF na Ground juu ya pini 13. Pini ya SCL ndio ya juu zaidi. Hii inaruhusu onyesho la LCD kusoma nafasi ya sasa ya servo.

Hatua ya 4: Tumia Kanuni na Maktaba zilizowekwa kwenye Programu ya Arduino

Tumia Kanuni na Maktaba zilizoshikamana kupanga Arduino
Tumia Kanuni na Maktaba zilizoshikamana kupanga Arduino

Pakua faili ya RotatingMountCode.zip. Sakinisha IDE ya Arduino na unzip faili iliyopakuliwa kwenye Nyaraka / Arduino. Hakikisha unakili yaliyomo kwenye folda zangu za michoro na maktaba kwenye folda zako za michoro na maktaba. Fungua mchoro wa ServoIRandLCD na uipakie kwenye Arduino yako.

Angalia hatua za baadaye za ufafanuzi wa nambari.

Hatua ya 5: Unganisha Chanzo cha Nguvu cha taka kwa Arduino na Tumia Kijijini Kuzungusha Mlima

Unganisha Chanzo cha Nguvu Unayotaka kwa Arduino na Tumia Kijijini Kuzungusha Mlima!
Unganisha Chanzo cha Nguvu Unayotaka kwa Arduino na Tumia Kijijini Kuzungusha Mlima!
Unganisha Chanzo cha Nguvu Unayotaka kwa Arduino na Tumia Kijijini Kuzungusha Mlima!
Unganisha Chanzo cha Nguvu Unayotaka kwa Arduino na Tumia Kijijini Kuzungusha Mlima!

Acha kuondoka kwa Arduino kwenye kompyuta yako au uiondoe kwenye kompyuta yako na utumie betri ya 9V kutoa nguvu ya DC kwa Arduino. Mwishowe, tumia kijijini cha bei rahisi cha IR kudhibiti servo na kwa hivyo mwelekeo wa mlima wa simu!

Nambari 1 kwenye rimoti inapaswa kuweka nafasi ya servo kwa digrii 0, nambari 2 hadi digrii 90, na nambari 3 hadi 180 digrii. Wakati huo huo vifungo + na - kwenye rimoti vinapaswa kuongeza au kupunguza pembe ya servo kwa digrii 1, mtawaliwa.

Kumbuka: Ikiwa unatumia Remote ya IR tofauti na ile iliyoonyeshwa hapa, inawezekana nambari za IR zinazolingana na vifungo anuwai zilibadilishwa. Ikiwa ndivyo, rekebisha mchoro wa ServoIRandLCD ili utumie nambari hizo za IR badala yake.

Hatua ya 6: Soma Hii kwa Ufafanuzi wa Nambari ya Chanzo

Soma Hii kwa Ufafanuzi wa Nambari ya Chanzo
Soma Hii kwa Ufafanuzi wa Nambari ya Chanzo
Soma Hii kwa Ufafanuzi wa Nambari ya Chanzo
Soma Hii kwa Ufafanuzi wa Nambari ya Chanzo

Nambari ya chanzo ya mchoro wa Arduino inaweza kupatikana hapa chini au kwenye faili ya.zip iliyowekwa hapo awali. Maktaba zinazohitajika zinaweza kupatikana tu kwenye faili ya.zip iliyowekwa hapo awali katika hatua ya 4.

Jambo la kwanza nambari inafanya ni pamoja na maktaba zinazohitajika kutekeleza kazi zote kwenye mchoro. Ifuatayo, inatangaza pini 9 kwenye Arduino kuwa pini ya ishara inayowezeshwa na PWM kwa servo. Pia hufanya pini 11 kwenye Arduino pini inayotumiwa kwa mpokeaji wa IR. Ifuatayo, inatangaza anuwai ya nambari inayotumiwa kuweka msimamo wa servo kwa digrii na kuiweka kwa digrii 0, mwanzoni. Halafu, inasisitiza vitu vinavyohitajika kwa kitu cha IRrecv, kitu cha servo, na kitu cha LCD cha myDisplay (ambacho pia kimeundwa kwa laini moja) ili vitu hivi viweze kutumika baadaye.

Ifuatayo, katika kazi ya usanidi, bandari ya serial imeanzishwa kwa bits 9600 / sec ili mfuatiliaji wa serial atumike kufuatilia msimamo wa servo ikiwa inataka. Pia inaunganisha kitu cha myservo kubandika 9, inaanzisha mpokeaji wa IR, na inaanzisha onyesho la LCD.

Katika kazi kuu ya kitanzi, mwili ambao hutekelezwa tu ikiwa usafirishaji wa IR unapokelewa kutoka kwa mpokeaji wa IR, mpokeaji wa IR huamua ishara iliyotumwa kwake kutoka kwa kijijini cha IR kwa kutumia kazi ya kusimbua (& matokeo) na ikiwa taarifa zinaamua nini kuweka servo kulingana na thamani ya IR iliyopokelewa. Kazi ya kuandika hutumiwa kuweka servo kwa digrii zake zinazofaa, na kazi ya kusoma hutumiwa kupata pembe ya sasa ya servo na kuiongezea au kuipunguza kama inahitajika.

Mwishowe, pembe ya sasa ya servo inatumwa kwa mfuatiliaji wa serial na onyesho la LCD kwa kutumia kazi ya myservo.read (), na vitanzi vikuu vinazunguka kwa muda usiojulikana.

Nambari ya Chanzo:

# pamoja na // Maktaba ya kawaida ya Arduino # ni pamoja na // maktaba ya IR # pamoja na "Wire.h" //Wire.h kwa LCD (wakati mwingine inahitajika) # pamoja na "LiquidCrystal_I2C.h" // maktaba ya LCD

#fafanua servopin 9 // hii inafafanua pini 9 kama pini inayotumiwa kwa risasi ya servo (machungwa)

int RECV_PIN = 11; // IR-transistor ya picha hutuma pato kwa pin 11

int currentAngle = 0; // tangaza sasaAngle integer variable na kuweka 0

IRrecv irrecv (RECV_PIN); // kusisitiza kitu cha mpokeaji cha IR kuamua matokeo ya matokeo; // kusisitiza kitu cha matokeo ya uamuzi. Kitu hiki ni tofauti na mpokeaji wa IR.

Servo myservo; // kusisitiza kitu cha Servo kinachoitwa 'myservo' // upeo wa vitu nane vya servo vinaweza kuundwa

LiquidCrystal_I2C myDisplay (0x27, 16, 2); // tengeneza kitu cha LCD na usanidi usanidi

usanidi batili () {

Serial. Kuanza (9600); // kuanza bandari ya serial

ambatisha myservo (servopin); // inaunganisha servo kwenye pini 9 kwa kitu cha servo

irrecv.wezeshwaIRIn (); // kuanza mpokeaji

myDisplay.init (); // kuanzisha LCD

mwangaza wa mwangaza wa mwangaza (); // washa taa ya nyuma ya LCD

}

kitanzi batili () {

ikiwa (irrecv.decode (na matokeo)) // ikiwa maambukizi yamepokelewa…

{Serial.print ("Thamani ya IR imepokelewa:");

Serial.println (matokeo ya thamani); // thamani ya kuonyesha imepokelewa

// tafsiri amri zilizopokelewa… ikiwa (results.value == 16724175) // 1 {// left myservo.write (0); }

ikiwa (results.value == 16718055) // 2 {// middle myservo.write (90); }

ikiwa (results.value == 16743045) // 3 {// kulia myservo.write (180); }

ikiwa (results.value == 16754775) // + {// nyongeza ya sasaAngle = myservo.read (); andwrvo.write (sasaAngle + 1); } ikiwa (results.value == 16769055) // - {// kupungua kwa sasaAngle = myservo.read (); andwrvo.write (sasaAngle - 1); }}

kuendelea irrecv (); // Pokea thamani inayofuata

// Printa ya serial Serial Serial.print ("Msimamo wa sasa wa servo:");

Serial.println (myservo.read ()); // hii inapata nafasi ya servo na kuipeleka kwa mfuatiliaji wa serial

// LCD chapa myDisplay. clear ();

myDisplay.print ("Servo deg.:");

myDisplay.print (myservo.read ());

kuchelewesha (200); // kuchelewesha kufanya utendakazi wa servo kuwa thabiti

}

Hatua ya 7: Tazama Video Yangu ya Youtube kwa Msaada

Tazama video yangu ya YouTube ambayo haijaorodheshwa ambayo inajadili kikamilifu na inaonyesha mradi ikiwa una maswali yoyote!

Ilipendekeza: