Servoprits - USB veepüstol: 5 sammu
Servoprits - USB veepüstol: 5 sammu
Anonim

USB juhitav servo veepüstol. Suurepärane, et tulistada pahaaimamatute möödujate suunas või hoida inimesi tüütute küsimustega eemal. See projekt on väike veepump, mis on paigaldatud servo peale suunamiseks. Kogu asja juhib mikrokontroller ja seda juhitakse klaviatuurilt USB kaudu. Rohkemate meie projektide ja tasuta videoõpetuste nägemiseks vaadake meie veebisaiti

Samm: koguge materjalid kokku

See projekt põhineb mikrokontrolleril. Välja arvatud USB NerdKit'i komplekti kuuluv mikrokontroller ATmega168. Selle projekti jaoks kasutasime järgmist: 1 Hobby Servo, Hitec HS-501 Madalpinge kolbveepump 1 Väike n-kanaliga MOSFET, 2N7000

Samm: pange vooluring kokku

Meie vooluahela esimene osa ühendub lihtsalt servoga. Siin on see lihtne: üks juhe mikrokontrollerist servosse. Sõltuvalt tootjast on mõned erinevad värvimärgistused, seega kontrollige enne selle proovimist. Skemaatiline foto ServoSquirteri vooluringist NerdKits leivaplaadil Ahela teine osa võimaldab mikrokontrolleril pumba mootori sisse ja välja lülitada. ATmega168 kiip ise lubab suvalisse tihvti sisse või välja ainult 40 mA, kuid meie pump vajab 1000 mA lähemale! Nii et selle suurema koormuse juhtimiseks oleme otsustanud kasutada suuremat transistorit, 2N7000. Kõigepealt selgitame MOSFET -ide (metallioksiid -pooljuhtväljatransistorid) lülititena kasutamise põhitõdesid: tõstes värava pinge allikast kõrgemale, saame lasta voolul voolata äravoolust allikasse. 2N7000 andmelehelt oleme välja joonistanud joonise 1, mis näitab äravoolu ja äravooluallika pinge vahelist seost erinevate väravaallika pingeseadete korral. Sellest graafikust saate õppida mõningaid olulisi asju: 1. VGS -i puhul, mis on alla 3,0 volti, ei tohi voolu voolata. See on väljalülitatud olek, mida nimetatakse ka "katkestuseks". 2. Väikeste VDS -ide puhul näeb kõver läbi lähtepunkti ligikaudu lineaarne - see tähendab, et see näeb elektriliselt välja nagu takisti. Ekvivalentne takistus on kõvera pöördkalle. Seda MOSFETi tööpiirkonda nimetatakse "trioodiks". 3. Suurema VDS -i puhul saavutatakse teatud voolu maksimaalne tase. Seda nimetatakse "küllastumiseks". 4. Kui suurendame VGS -i, lubatakse rohkem voolu voolata nii triood- kui ka küllastusrežiimis. Ja nüüd olete tegelikult õppinud tundma kõiki kolme MOSFET -i töörežiimi: katkestus, triood ja küllastus. Kuna meie värava juhtimine on digitaalne (+5 või 0), oleme mures ainult kollasega esile tõstetud kõvera pärast, kui VGS = 5V. Tavaliselt hõlmab MOSFET -i lülitina kasutamine tavaliselt trioodrežiimi, kuna MOSFET hajutab toite PD = ID*VDS ja hea lüliti peaks lülitist endast vähe energiat hajutama. Kuid sel juhul tegeleme mootoriga ja mootorid nõuavad esmakordsel käivitamisel palju voolu (väikese pingelangusega). Nii et esimese sekundi või kahe jooksul töötab MOSFET kõrge VDS -iga ja seda piirab selle maksimaalne vool - umbes 800mA andmelehele tõmmatud punasest katkendjoonest. Leidsime, et sellest ei piisa pumba käivitamiseks, seega kasutasime väikest nippi ja panime paralleelselt kaks MOSFET -i. Sel viisil jagavad nad voolu ja suudavad tõhusalt kokku vajuda umbes 1600 mA. Ka pumba suurte võimsusvajaduste tõttu kasutasime suurema voolutarbega seintrafot. Kui teil on seina trafo, mille väljundvõimsus on suurem kui 5 V - võib -olla 9 V või 12 V -, siis umbes

3. samm: seadistage PWM MCU -s

PWM -registrid ja arvutused Videol räägime kahest taimer/loenduri mooduli kasutatavast tasemest: ülemine väärtus ja võrdlusväärtus. Mõlemad on olulised soovitud PWM -signaali genereerimisel. Kuid selleks, et aktiveerida oma ATmega168 PWM -väljund, peame kõigepealt seadistama mõned registrid. Esiteks valime kiireks PWM-režiimiks, mille ülemine väärtus on OCR1A, mis võimaldab meil meelevaldselt määrata uue impulsi käivitamise sageduse. Seejärel seadistame kella töötama eeljaotusega 8, mis tähendab, et loendur suureneb 1 võrra iga 8/(14745600 Hz) = 542 nanosekundi kohta. Kuna meil on selle taimeriga 16-bitised registrid, tähendab see, et saame määrata üldise signaaliperioodi 65536*542ns = 36 millisekundit. Kui kasutaksime suuremat jagunumbrit, võiksime oma impulsid üksteisest kaugemale ajada (mis selles olukorras ei aita) ja kaotaksime eraldusvõime. Kui kasutaksime väiksemat jaotusnumbrit (näiteks 1), ei saaks me oma impulsse vähemalt 16 millisekundi kaugusele, nagu meie servo eeldab. Lõpuks seadsime väljundi võrdlusrežiimi "mitte-inverteeriva" PWM-i jaoks väljund, mida on kirjeldatud meie videos. Samuti määrasime tihvti PB2 väljundnõelaks-siin pole näidatud, kuid see on koodis. Klõpsake nende piltide suurendamiseks ATmega168 andmelehekülgedelt 132-134, kusjuures meie registriväärtuste valikud on esile tõstetud:

Samm: programmeerige mikrokontroller

Nüüd on aeg MCU tegelikult programmeerida. Täielik lähtekood on saadaval meie veebisaidil https://www.nerdkits.com/videos/servosquirter. Kood seadistab esmalt PWM -i servo juhtimiseks. Kood jääb siis mõneks ajaks ahelasse ja ootab kasutaja sisestust. Märgid 1 ja 0 lülitavad pumba transistoriga ühendatud MCU tihvti sisse või välja. See lülitab pumba sisse ja välja, andes meile võimaluse oma äranägemise järgi tulistada. Kood reageerib ka „[” ja „]” klahvidele, need klahvid suurendavad või vähendavad PWM -i tihvti võrdlusväärtust, mis põhjustab servo mootor asendit vahetama. See annab teile võimaluse enne laskmist sihtida.

Samm 5: jadapordi side

Viimane samm on arvuti seadistamine, et saaksite käsud mikrokontrollerile saata. NerdKitis kasutame käskude ja teabe arvutisse saatmiseks jadakaablit. Enamikus programmeerimiskeeltes on võimalik kirjutada lihtsaid programme, mis suudavad jadapordi kaudu NerdKitiga suhelda. Siiski on palju lihtsam kasutada terminaliprogrammi meie jaoks jadaühenduse tegemiseks. Nii saate lihtsalt klaviatuuril tippida ja vaadata NerdKiti vastust. WindowsKui kasutate Windows XP või varasemat versiooni, on HyperTerminal kaasas ja see peaks olema teie menüü Start all "Start -> Programmid -> Accessories -> Kommunikatsioonid ". HyperTerminali esmakordsel avamisel palub see teil ühenduse luua. Loobuge nendest, kuni olete HyperTerminali põhipildil. Peate seadistama HyperTerminali, valides õige COM -pordi ja määrama pordi seaded NerdKitiga töötamiseks sobivaks. HyperTermi õigeks seadistamiseks järgige allolevaid ekraanipilte. Kui kasutate operatsioonisüsteemi Windows Vista, pole HyperTerminal enam kaasas. Sel juhul laadige alla PuTTY (Windowsi installer). Kasutage Putty seadistamiseks allolevaid ühenduse seadeid, kasutades õiget COM -porti. Mac OS X Pärast terminalirakenduse sisenemist tippige jadaporti kaudu suhtlemise alustamiseks "screen /dev/tty. PL* 115200". Linuxis kasutame " minicom "jadaportiga rääkimiseks. Alustamiseks käivitage minicomi seadistusmenüüsse sisenemiseks konsoolil "minicom -s". Minge jaotisse "Jadapordi seadistamine". Seadistage parameetrid järgmiselt: Minicomi konfiguratsioon Linuxis Seejärel klõpsake nuppu Escape ja kasutage sätete salvestamiseks vaikimisi nuppu „Salvesta seadistus dfl -na”. Nüüd peaksite saama vajutada nuppu "Välju" ja kasutada minikomplekti NerdKitiga rääkimiseks.