Servo Squirter - Bunduki ya Maji ya USB: Hatua 5
Servo Squirter - Bunduki ya Maji ya USB: Hatua 5
Anonim

Bunduki ya maji inayodhibitiwa na USB. Kubwa kwa kurusha risasi kwa wapita njia wasio na shaka, au kuweka watu wenye maswali ya kukasirisha pembeni. Mradi huu ni pampu ndogo ya maji iliyowekwa juu ya servo kwa risasi ya mwelekeo. Jambo lote linaendeshwa na mdhibiti mdogo, na kudhibitiwa kutoka kwa kibodi yako juu ya USB. Kuona zaidi ya miradi yetu na mafunzo ya video ya bure angalia wavuti yetu

Hatua ya 1: Kusanya vifaa

Mradi huu ni msingi wa udhibiti mdogo. Nyingine zaidi ya ATmega168 microcontroller iliyojumuishwa kwenye USB NerdKit. Kwa mradi huu tulitumia yafuatayo: 1 Hobby Servo, Hitec HS-501 Pumpu ya maji ya chini ya voltage 1 ndogo n-channel MOSFET, 2N7000

Hatua ya 2: Kusanya Mzunguko

Sehemu ya kwanza ya mzunguko wetu inaunganisha tu na servo. Hii ni rahisi hapa: waya moja kutoka kwa mdhibiti mdogo hadi servo. Kuna alama chache tofauti za rangi kulingana na mtengenezaji, kwa hivyo angalia kabla ya kujaribu hii. Picha ya Mkakati ya mzunguko wa ServoSquirter kwenye ubao wa mkate wa NerdKits Sehemu ya pili ya mzunguko inaruhusu mdhibiti mdogo kuwasha na kuzima motor pampu. Chip ya ATmega168 yenyewe inaruhusu 40mA max kuingia au nje ya pini yoyote, lakini pampu yetu inahitaji karibu na 1000mA! Kwa hivyo kudhibiti mzigo huu mkubwa, tumechagua kutumia transistor kubwa, 2N7000. Kwanza tunaelezea misingi ya kutumia MOSFETs (Metal oxide Semiconductor Field Effect Transistors) kama swichi: kuleta voltage ya Lango juu ya Chanzo, tunaweza kuruhusu mtiririko wa sasa kutoka kwa Drain hadi Chanzo. Kutoka kwa hati ya data ya 2N7000, tumeondoa Kielelezo 1, ambacho kinaonyesha uhusiano kati ya bomba la chanzo cha sasa na cha chanzo kwa mipangilio tofauti ya voltage ya chanzo. Kuna mambo kadhaa muhimu unayoweza kujifunza kutoka kwa grafu hii: 1. Kwa VGS chini ya volts 3.0, hakuna sasa inayoruhusiwa kutiririka. Hii ndio hali ya mbali, pia inaitwa "cutoff". 2. Kwa VDS ndogo, curve inaonekana takriban laini kupitia asili - ambayo inamaanisha kuwa "inaonekana" kwa umeme kama kontena. Upinzani sawa ni mteremko uliobadilika wa curve. Kanda hii ya operesheni ya MOSFET inaitwa "triode". 3. Kwa VDS kubwa, kiwango cha juu cha sasa hufikiwa. Hii inaitwa "kueneza". 4. Tunapoongeza VGS, sasa zaidi inaruhusiwa kutiririka katika njia zote za utatu na uenezaji. Na sasa umejifunza juu ya njia zote tatu za operesheni ya MOSFET: cutoff, triode, na kueneza. +5 au 0), tunajali tu juu ya pinde iliyoangaziwa kwa manjano, kwa VGS = 5V. Kawaida, kutumia MOSFET kama swichi kwa ujumla inajumuisha hali ya utendaji ya triode, kwa sababu MOSFET hupunguza nguvu PD = ID * VDS, na kubadili vizuri kunapaswa kutenganisha nguvu kidogo kwenye swichi yenyewe. Lakini katika kesi hii, tunashughulika na gari, na motors huwa zinahitaji sasa nyingi (na kushuka kwa voltage kidogo) wakati wanaanza. Kwa hivyo kwa sekunde ya kwanza au mbili, MOSFET itafanya kazi na VDS ya hali ya juu, na itapunguzwa na kiwango cha juu cha sasa - karibu 800mA kutoka kwa laini nyekundu ambayo tumechora kwenye datasheet. Tuligundua kuwa hii haitoshi kuanza pampu, kwa hivyo tulitumia ujanja kidogo na kuweka MOSFET mbili sambamba. Kwa njia hii, wanashirikiana ya sasa, na wanaweza kuzama karibu 1600mA pamoja. Pia kwa sababu ya mahitaji ya nguvu ya pampu, tulitumia transformer ya ukuta na pato kubwa zaidi la sasa. Ikiwa una transformer ya ukuta yenye pato kubwa kuliko 5V - labda 9V au 12V - basi wewe ca

Hatua ya 3: Sanidi PWM kwenye MCU

Sajili na Mahesabu ya PWM Kwenye video, tunazungumza juu ya viwango viwili vinavyotumiwa na moduli ya kipima muda / kaunta: thamani ya juu, na thamani ya kulinganisha. Zote hizi ni muhimu katika kutengeneza ishara ya PWM unayotaka. Lakini ili kuamsha pato lako la PWM la ATmega168 kwanza, lazima tuanzishe sajili kadhaa. Kwanza, tunachagua hali ya haraka ya PWM na OCR1A kama dhamana ya juu, ambayo inatuwezesha kuweka kiholela mara ngapi kuanza mapigo mapya. na 1 kila 8 / (14745600 Hz) = 542 nanoseconds. Kwa kuwa tuna rejista za 16-bit kwa kipima muda hiki, hii inamaanisha tunaweza kuweka kipindi chetu cha ishara kuwa juu kama 65536 * 542ns = 36 milliseconds. Ikiwa tutatumia nambari kubwa zaidi ya mgawanyiko, tunaweza kufanya mapigo yetu kuwa mbali zaidi (ambayo hayasaidia katika hali hii), na tungepoteza azimio. Ikiwa tutatumia nambari ndogo ya mgawanyiko (kama 1), hatutaweza kutengeneza mapigo yetu angalau milisekunde 16 kando, kama servo yetu inavyotarajia. pato, ambayo inaelezewa kwenye video yetu. Pia tunaweka pini PB2 kuwa pini ya pato - ambayo haijaonyeshwa hapa, lakini iko kwenye nambari. Bonyeza kupanua shots hizi kutoka kwa kurasa 132-134 za data ya ATmega168, na chaguzi zetu za daftari zimeangaziwa:

Hatua ya 4: Panga Mdhibiti Mdogo

Sasa ni wakati wa kuandaa MCU. Nambari kamili ya chanzo hutolewa kwenye wavuti yetu https://www.nerdkits.com/videos/servosquirter Nambari ya kwanza huweka PWM kuendesha servo. Nambari hiyo inakaa kitanzi tu ikingojea uingizaji wa mtumiaji. Wahusika 1 na 0 huwasha au kuzima pini ya MCU ambayo imeunganishwa na transistor ya pampu. Hii itawasha na kuzima pampu na kutupa uwezo wa kupiga moto kwa mapenzi. Nambari pia hujibu funguo za '[' na ']' funguo hizi zitaongeza au kupunguza thamani ya kulinganisha kwenye pini ya PWM, ambayo itasababisha servo motor kubadilisha msimamo. Hii inakupa uwezo wa kulenga kabla ya kufyatua risasi.

Hatua ya 5: Mawasiliano ya Port Port

Hatua ya mwisho ni kusanidi kompyuta ili uweze kutuma amri kwa Microcontroller. Katika NerdKit, tunatumia kebo ya serial kutuma amri, na habari kwa kompyuta. Inawezekana kuandika programu rahisi katika lugha nyingi za programu ambazo zinaweza kuwasiliana juu ya bandari ya serial kwa NerdKit. Walakini ni rahisi sana kutumia programu ya terminal kufanya mawasiliano ya serial kwetu. Kwa njia hii unaweza kuandika tu kwenye kibodi, na uone majibu kutoka kwa NerdKit. Windows Ikiwa unatumia Windows XP au mapema, HyperTerminal imejumuishwa, na inapaswa kuwa kwenye Menyu ya Anza yako chini ya "Anza -> Programu -> Vifaa -> Mawasiliano ". Unapoanza kufungua HyperTerminal kwanza, inakuuliza usanidi unganisho. Ghairi kati ya hizo, hadi upo kwenye kiini kikuu cha HyperTerminal. Itabidi usanidi HyperTerminal, ukichagua bandari sahihi ya COM, na uweke mipangilio ya bandari ipasavyo kufanya kazi na NerdKit. Fuata viwambo vya skrini hapa chini kupata usanidi sahihi wa HyperTerm. Ikiwa uko kwenye Windows Vista, HyperTerminal haijajumuishwa tena. Katika kesi hii, nenda pakua PuTTY (kisakinishi cha Windows). Tumia mipangilio ya unganisho hapa chini kuweka Putty, ukitumia bandari inayofaa ya COM. Mac OS XBaada ya kuingia kwenye programu ya Terminal, andika "screen /dev/tty. PL* 115200" ili kuanza kuwasiliana juu ya bandari ya serial. LinuxLinux, tunatumia " minicom "kuzungumza na bandari ya serial. Kuanza, endesha "minicom -s" kwenye koni ili kuingiza menyu ya usanidi wa minicom. Nenda kwenye "Usanidi wa Port Port". Weka vigezo kama ifuatavyo: Usanidi wa Minicom kwenye Linux Kisha, gonga kutoroka na utumie "Hifadhi mipangilio kama dfl" kuhifadhi mipangilio kama chaguomsingi. Unapaswa sasa kuweza kupiga "Toka" na utumie minicom kwa kuzungumza na NerdKit.

Ilipendekeza: