Sisällysluettelo:
- Vaihe 1: Kerää materiaalit
- Vaihe 2: Kokoa piiri
- Vaihe 3: Määritä PWM MCU: lle
- Vaihe 4: Ohjelmoi mikrokontrolleri
- Vaihe 5: Sarjaporttiviestintä
Video: Servo Squirter - USB -vesipistooli: 5 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:04
USB -ohjattu servovesipistooli. Tämä projekti on pieni vesipumppu, joka on asennettu servon päälle suunnattavaan ampumiseen. Koko hommaa ohjaa mikro -ohjain, ja sitä ohjataan näppäimistöllä USB: n kautta.
Vaihe 1: Kerää materiaalit
Tämä projekti perustuu mikrokontrolleriin. Muu kuin USB NerdKitin mukana toimitettu ATmega168 -mikrokontrolleri. Tässä projektissa käytimme seuraavia: 1 Hobby Servo, Hitec HS-501 Pienjännitemäntävesipumppu 1 Pieni n-kanavainen MOSFET, 2N7000
Vaihe 2: Kokoa piiri
Piirimme ensimmäinen osa kytkeytyy vain servoon. Tämä on yksinkertaista: yksi johto mikrokontrollerista servoon. Valmistajasta riippuen on olemassa muutamia eri värimerkintöjä, joten tarkista ennen kuin yrität tätä. Itse ATmega168 -siru sallii vain 40 mA: n maksimin minkä tahansa tapin sisään tai ulos, mutta pumppumme vaatii lähemmäs 1000 mA: ta! Joten hallitaksemme tätä suurempaa kuormitusta, olemme päättäneet käyttää isompaa transistoria, 2N7000. Ensin selitämme perusasiat MOSFETien (metallioksidipuolijohdekenttitransistorit) käyttämisestä kytkiminä: kun portin jännite saadaan lähteen yläpuolelle, voimme antaa virran kulkea tyhjennyksestä lähteeseen. Olemme poimineet 2N7000-tietolomakkeesta kuvan 1, joka näyttää tyhjennysvirran ja tyhjennyslähteen jännitteen välisen suhteen eri porttilähdejänniteasetuksissa. Tästä kaaviosta voi oppia muutamia tärkeitä asioita: 1. Jos VGS on alle noin 3,0 volttia, virta ei saa virrata. Tämä on pois päältä -tila, jota kutsutaan myös "katkaisuksi". 2. Pienillä VDS -laitteilla käyrä näyttää suunnilleen lineaariselta lähtökohdan läpi - mikä tarkoittaa, että se "näyttää sähköisesti" vastukselta. Vastaava vastus on käyrän käänteinen kaltevuus. Tätä MOSFET -toiminnan aluetta kutsutaan "triodeksi". 3. Suuremmille VDS -laitteille saavutetaan jokin virran maksimitaso. Tätä kutsutaan "kylläiseksi". 4. Kun lisäämme VGS: ää, enemmän virtaa saa virrata sekä triodi- että kyllästystilassa. Ja nyt olet todella oppinut kaikista kolmesta MOSFET -toimintatilasta: katkaisun, triodin ja kylläisyyden. +5 tai 0), olemme huolissamme vain keltaisella korostetusta käyrästä, VGS = 5V. Normaalisti MOSFETin käyttö kytkimenä sisältää yleensä triodin toimintatilan, koska MOSFET hajottaa virran PD = ID*VDS, ja hyvän kytkimen pitäisi tuhlata vähän virtaa itse kytkimessä. Mutta tässä tapauksessa on kyse moottorista, ja moottorit vaativat yleensä paljon virtaa (pienellä jännitehäviöllä) ensimmäisen käynnistyksen yhteydessä. Joten ensimmäisen sekunnin tai kahden aikana MOSFET toimii korkealla VDS: llä, ja sitä rajoittaa sen maksimivirta - noin 800mA taulukosta piirretystä punaisesta katkoviivasta. Huomasimme, että tämä ei riittänyt pumpun käynnistämiseen, joten käytimme pientä temppua ja asetimme kaksi MOSFETia rinnakkain. Tällä tavalla ne jakavat virran ja voivat upottaa tehokkaasti noin 1600 mA yhteen. Pumpun korkeiden tehontarpeiden vuoksi käytimme myös korkeampaa virtalähtöistä muuntajaa. Jos sinulla on seinämuuntaja, jonka ulostulo on yli 5 V - ehkä 9 V tai 12 V -, niin n
Vaihe 3: Määritä PWM MCU: lle
PWM -rekisterit ja laskelmat Videossa puhumme kahdesta ajastin/laskurimoduulin käyttämästä tasosta: ylin arvo ja vertailuarvo. Molemmat ovat tärkeitä halutun PWM -signaalin muodostamisessa, mutta ATmega168: n PWM -lähdön aktivoimiseksi meidän on ensin määritettävä muutama rekisteri. Ensinnäkin valitsemme nopean PWM-tilan, jossa OCR1A on ylin arvo, jonka avulla voimme mielivaltaisesti asettaa, kuinka usein uusi pulssi käynnistetään. 1 joka 8/(14745600 Hz) = 542 nanosekuntia. Koska meillä on 16-bittiset rekisterit tälle ajastimelle, tämä tarkoittaa, että voimme asettaa kokonaissignaalijaksomme jopa 65536*542ns = 36 millisekuntia. Jos käyttäisimme suurempaa jakolukua, voisimme saada pulssimme kauemmas toisistaan (mikä ei auta tässä tilanteessa) ja menettäisimme resoluution. Jos käyttäisimme pienempää jaonumeroa (kuten 1), emme pystyisi erottamaan pulssejamme vähintään 16 millisekunnin päässä toisistaan, kuten servomme odottaa. lähtö, joka on kuvattu videossamme. Määritämme myös nastan PB2 lähtönapiksi-ei näy tässä, mutta se on koodissa. Napsauta suurentaaksesi näitä kuvia ATmega168-tietolomakkeen sivuilta 132-134, jolloin rekisteriarvovalintamme on korostettu:
Vaihe 4: Ohjelmoi mikrokontrolleri
Nyt on aika ohjelmoida MCU. Koko lähdekoodi on verkkosivustollamme https://www.nerdkits.com/videos/servosquirter Koodi määrittää ensin PWM: n ohjaamaan servoa. Koodi sitten vain istuu hetken silmukassa odottaen käyttäjän syöttöä. Merkit 1 ja 0 kytkevät pumpun transistoriin liitetyn MCU -nastan päälle tai pois päältä. Tämä kytkee pumpun päälle ja pois päältä ja antaa meille mahdollisuuden ampua haluamallasi tavalla. Koodi vastaa myös "[" ja "]" -näppäimiin. Nämä näppäimet lisäävät tai pienentävät PWM -nastan vertailuarvoa, mikä aiheuttaa moottori vaihtaa asentoa. Tämä antaa sinulle mahdollisuuden kohdistaa ennen ampumista.
Vaihe 5: Sarjaporttiviestintä
Viimeinen vaihe on määrittää tietokone, jotta voit lähettää komennot mikrokontrolleriin. NerdKitissä käytämme sarjakaapelia komentojen ja tietojen lähettämiseen tietokoneelle. On mahdollista kirjoittaa yksinkertaisia ohjelmia useimmilla ohjelmointikielillä, jotka voivat kommunikoida sarjaportin kautta NerdKitiin. On kuitenkin paljon yksinkertaisempaa käyttää pääteohjelmaa sarjaliikenteen suorittamiseen puolestamme. Tällä tavalla voit vain kirjoittaa näppäimistöllä ja nähdä NerdKitin vastauksen. WindowsJos käytät Windows XP: tä tai sitä aikaisempaa versiota, HyperTerminal sisältyy ja sen pitäisi olla Käynnistä -valikossa kohdassa "Käynnistä -> Ohjelmat -> Lisävarusteet -> Viestintä ". Kun avaat HyperTerminalin ensimmäisen kerran, se pyytää sinua muodostamaan yhteyden. Peruuta ne, kunnes olet HyperTerminal -pääkentässä. Sinun on asennettava HyperTerminal, valittava oikea COM -portti ja määritettävä porttiasetukset oikein, jotta ne toimivat NerdKitin kanssa. Seuraa alla olevia kuvakaappauksia saadaksesi oikeat HyperTerm -asetukset. Jos käytät Windows Vista -käyttöjärjestelmää, HyperTerminal ei ole enää mukana. Lataa tässä tapauksessa PuTTY (Windowsin asennusohjelma). Määritä Putty alla olevien yhteysasetusten avulla käyttämällä oikeaa COM -porttia. Mac OS X Kun olet päässyt Terminal -sovellukseen, kirjoita "screen /dev/tty. PL* 115200" aloittaaksesi kommunikoinnin sarjaportin kautta. LinuxOn Linux, käytämme " minicom "puhuaksesi sarjaportille. Aloita suorittamalla "minicom -s" konsolista päästäksesi minicomin asetusvalikkoon. Siirry kohtaan "Sarjaportin asetukset". Aseta parametrit seuraavasti: Minicom -kokoonpano Linuxissa Napsauta sitten Esc -näppäintä ja tallenna asetukset oletusasetukseksi Tallenna asetukset dfl -muodossa. Sinun pitäisi nyt voida painaa "Exit" ja käyttää minicomia puhuaksesi NerdKitille.
Suositeltava:
Yhden painikkeen servo -jousituksen lukitus: 3 vaihetta
Yhden painikkeen servo -jousituksen lukitus: Täysjousitetut maastopyörät tarjoavat tasaisen ajon, mutta vaativat usein jousituksen lukitsemisen poljettaessa ylämäkeen. Muuten jousitus puristuu, kun seisot polkimilla, tuhlaamalla tämän vaivan. Pyörävalmistajat tietävät tämän ja tarjoavat
Internet -servo: 3 vaihetta
Internet Servo: JOHDANTO Tykkään ruokkia lintuja puutarhassa, mutta valitettavasti myös musta rotta hyödyntää tätä. Joten ajattelin tapaa estää rotat syömästä lintujen ruokaa. Musta rotta on aktiivinen vain pimeässä, joten meidän on suljettava bi
Servo -ohjaimen poistaminen: 5 vaihetta (kuvien kanssa)
Servo -ohjaimen poistaminen: Servomoottorit ovat hauskoja, kun haluat liittää vaihdemoottorin helposti mikro -ohjaimeen. Joskus kuitenkin haluat mukavan pienen hammaspyörämoottorin etkä halua häiritä ohjauspiirejä sen käyttämiseksi. Tällaisina aikoina on
Äänianturi ja servo: Reaktiivinen liike: 4 vaihetta
Äänianturi ja servo: Reaktiivinen liike: Ensin sinun on kerättävä tarvittavat materiaalit tämän piirin yhdistämiseksi
Servo -robottivarsi: 4 vaihetta
Servorobottivarsi: Tämä on yksinkertainen servorobotti käsivarsi, joka pystyy poimimaan esineitä ja sijoittamaan ne määrätylle alueelle. Tämä projekti vie suurimman osan ajastaan kokoonpanoon, koska on tärkeää varmistaa, että varsi on vakaa ja pystyy suorittamaan tehtäviä ilman