Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Servo vodní pistole ovládaná USB. Skvělé pro střelbu na nic netušící kolemjdoucí nebo udržování lidí s nepříjemnými otázkami na uzdě. Tento projekt je malé vodní čerpadlo namontované na servu pro směrovou palbu. Celá věc je řízena mikrokontrolérem a ovládána z vaší klávesnice přes USB. Chcete -li zobrazit další naše projekty a bezplatné video návody, podívejte se na naše webové stránky
Krok 1: Shromážděte materiály
Tento projekt je založen na mikrokontroléru. Jiné než mikrokontrolér ATmega168 obsažený v USB NerdKit. Pro tento projekt jsme použili následující: 1 Hobby Servo, Hitec HS-501 Nízkonapěťové pístové vodní čerpadlo 1 Malý n-kanálový MOSFET, 2N7000
Krok 2: Sestavte obvod
První část našeho okruhu se připojuje k servu. Zde je to jednoduché: jeden vodič od mikrokontroléru k servu. V závislosti na výrobci existuje několik různých barevných označení, takže než to vyzkoušíte, zkontrolujte to. Schematická fotografie obvodu ServoSquirter na prkénku NerdKits Druhá část obvodu umožňuje mikrokontroléru zapínat a vypínat motor čerpadla. Samotný čip ATmega168 umožňuje max. 40mA do nebo z jakéhokoli pinu, ale naše čerpadlo vyžaduje blíže 1000mA! Abychom mohli toto větší zatížení ovládat, rozhodli jsme se použít větší tranzistor 2N7000. Nejprve vysvětlíme základy používání tranzistorů s efektem pole s polovodičovým efektem MOSFET (Metal Oxide Semiconductor Field Effect): přivedením napětí brány nad zdroj můžeme nechat proud protékat od odtoku ke zdroji. Z datového listu 2N7000 jsme extrahovali obrázek 1, který ukazuje vztah mezi vypouštěcím proudem a napětím odtokového zdroje pro různá nastavení napětí hradlového zdroje. Z tohoto grafu se můžete naučit několik důležitých věcí: 1. Pro VGS pod přibližně 3,0 voltů nesmí proudit žádný proud. Toto je vypnutý stav, nazývaný také „cutoff“. 2. U malých VDS vypadá křivka počátkem zhruba lineárně - což znamená, že elektricky „vypadá“jako odpor. Ekvivalentní odpor je inverzní sklon křivky. Tato oblast provozu MOSFET se nazývá „trioda“. 3. U větších VDS je dosaženo určité maximální úrovně proudu. Tomu se říká „nasycení“. 4. Jak zvyšujeme VGS, může proudit více proudu v režimech triody i saturace. A nyní jste se vlastně dozvěděli o všech třech režimech provozu MOSFET: cutoff, triode a saturation. Protože naše ovládání brány je digitální (+5 nebo 0), znepokojuje nás pouze křivka zvýrazněná žlutě pro VGS = 5V. Používání MOSFET jako přepínače obvykle zahrnuje triodový provozní režim, protože MOSFET rozptyluje výkon PD = ID*VDS a dobrý přepínač by měl rozptýlit malý výkon v samotném přepínači. Ale v tomto případě máme co do činění s motorem a motory obvykle vyžadují při prvním spuštění hodně proudu (s malým poklesem napětí). První nebo dvě sekundy bude MOSFET pracovat s vysokým VDS a bude omezen svým maximálním proudem - asi 800 mA z červené čárkované čáry, kterou jsme nakreslili v datovém listu. Zjistili jsme, že to nestačilo na spuštění pumpy, a tak jsme použili malý trik a zapojili dva MOSFETy paralelně. Tímto způsobem sdílejí proud a mohou účinně pohltit přibližně 1600 mA dohromady. Také kvůli vysokým požadavkům na výkon čerpadla jsme použili nástěnný transformátor s vyšším proudovým výstupem. Pokud máte nástěnný transformátor s výstupem vyšším než 5 V - možná 9 V nebo 12 V -, můžete ca
Krok 3: Nastavte PWM na MCU
Registry a výpočty PWM Ve videu hovoříme o dvou úrovních používaných modulem časovač/čítač: nejvyšší hodnota a porovnávací hodnota. Obojí je důležité při generování požadovaného signálu PWM. Abychom však na prvním místě aktivovali výstup PWM vašeho ATmega168, musíme nastavit několik registrů. Nejprve vybereme režim Fast PWM s OCR1A jako nejvyšší hodnotou, což nám umožní libovolně nastavit, jak často se má spustit nový puls. Poté nastavíme hodiny tak, aby běžely s předdělením 8, což znamená, že se čítač zvýší o 1 každých 8/(14745600 Hz) = 542 nanosekund. Protože pro tento časovač máme 16bitové registry, znamená to, že můžeme nastavit celkovou periodu signálu až na 65536*542ns = 36 milisekund. Pokud bychom použili větší číslo divize, mohli bychom naše pulsy dále od sebe (což v této situaci nepomůže) a ztratili bychom rozlišení. Pokud bychom použili menší číslo divize (například 1), nemohli bychom naše pulsy od sebe dělit alespoň 16 milisekund, jak naše servo očekává. Nakonec jsme nastavili režim porovnávání výstupu pro „neinvertující“PWM výstup, který je popsán v našem videu. Také jsme nastavili pin PB2 jako výstupní pin-zde není zobrazen, ale je v kódu. Kliknutím zvětšíte tyto záběry ze stránek 132-134 datového listu ATmega168 se zvýrazněným výběrem hodnoty registru:
Krok 4: Naprogramujte mikrokontrolér
Nyní je čas skutečně naprogramovat MCU. Úplný zdrojový kód je k dispozici na našich webových stránkách https://www.nerdkits.com/videos/servosquirterKód nejprve nastavuje PWM pro pohon serva. Kód pak jen sedí ve smyčce while a čeká na vstup uživatele. Znaky 1 a 0 zapínají nebo vypínají pin MCU, který je připojen k tranzistoru pumpy. Tím se čerpadlo zapne a vypne, což nám dává možnost libovolně střílet. Kód také reaguje na klávesy '[' a '], které tyto klávesy zvýší nebo sníží porovnávací hodnotu na pinu PWM, což způsobí servo motor pro změnu polohy. To vám dává možnost zaměřit se před střelbou.
Krok 5: Komunikace přes sériový port
Posledním krokem je nastavení počítače, abyste mohli příkazy odesílat do mikrokontroléru. V NerdKit používáme sériový kabel k odesílání příkazů a informací do počítače. Ve většině programovacích jazyků je možné psát jednoduché programy, které mohou komunikovat přes NerdKit přes sériový port. Je však mnohem jednodušší použít k provedení sériové komunikace terminálový program. Tímto způsobem můžete jednoduše psát na klávesnici a zobrazit odpověď od NerdKit. Windows Pokud používáte Windows XP nebo starší, je součástí HyperTerminal, který by měl být v nabídce Start v části „Start -> Programy -> Příslušenství -> Komunikace". Když poprvé otevřete HyperTerminal, požádá vás o nastavení připojení. Zrušte je, dokud nejste v hlavní obrazovce HyperTerminal. Abyste mohli pracovat s NerdKitem, budete muset nastavit HyperTerminal, vybrat správný port COM a správně nastavit port. Pro správné nastavení HyperTermu postupujte podle níže uvedených snímků. Pokud používáte Windows Vista, HyperTerminal již není součástí. V takovém případě si stáhněte PuTTY (instalační program Windows). Pomocí níže uvedeného nastavení připojení nastavte Putty pomocí správného portu COM. Mac OS X Po vstupu do aplikace Terminal zadejte „screen /dev/tty. PL* 115200“a začněte komunikovat přes sériový port. Linux V systému Linux používáme „ minicom “mluvit se sériovým portem. Chcete -li začít, spusťte na konzole příkaz „minicom -s“a otevřete nabídku nastavení minicomu. Přejděte na „Nastavení sériového portu“. Nastavte parametry následovně: Konfigurace Minicomu v Linuxu Poté stiskněte Escape a pomocí „Uložit nastavení jako dfl“uložte nastavení jako výchozí. Nyní byste měli být schopni stisknout „Exit“a použít minicom k rozhovoru s NerdKit.