Innehållsförteckning:
- Steg 1: Samla material
- Steg 2: Montera kretsen
- Steg 3: Konfigurera PWM på MCU
- Steg 4: Programmera mikrokontrollern
- Steg 5: Seriell portkommunikation
Video: Servo Squirter - USB Water Gun: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:47
En USB -kontrollerad servovattenpistol. Perfekt för att skjuta mot intet ont anande förbipasserande, eller för att hålla människor med irriterande frågor på avstånd. Detta projekt är en liten vattenpump monterad ovanpå en servo för riktad eldning. Det hela drivs av en mikrokontroller och styrs från tangentbordet via USB. För att se fler av våra projekt och gratis videohandledning, kolla in vår webbplats
Steg 1: Samla material
Detta projekt är mikrokontrollerbaserat. Annat än ATmega168 mikrokontroller som ingår i USB NerdKit. För detta projekt använde vi följande: 1 Hobby Servo, Hitec HS-501 Lågspänningskolvvattenpump1 Liten n-kanal MOSFET, 2N7000
Steg 2: Montera kretsen
Den första delen av vår krets ansluter bara till servon. Detta är enkelt här: en ledning från mikrokontrollern till servon. Det finns några olika färgmärken beroende på tillverkare, så kontrollera innan du försöker detta. Schematisk bild av ServoSquirter -kretsen på NerdKits -brödbrädan Den andra delen av kretsen gör att mikrokontrollern kan slå på och stänga av pumpmotorn. Själva ATmega168 -chipet tillåter bara 40mA max in eller ut ur alla stift, men vår pump kräver närmare 1000mA! Så för att kontrollera denna större belastning har vi valt att använda en större transistor, 2N7000. Först förklarar vi grunderna för att använda MOSFETs (Metal Oxide Semiconductor Field Effect Transistors) som switchar: genom att föra Gate -spänningen över källan kan vi tillåta ström att strömma från Drain till Source. Från 2N7000-databladet har vi extraherat figur 1, som visar förhållandet mellan dräneringsström och dräneringskällspänning för olika grindkällspänningsinställningar. Det finns några viktiga saker du kan lära dig av denna graf: 1. För VGS under cirka 3,0 volt får ingen ström flöda. Detta är avstängt tillstånd, även kallat "cutoff". 2. För små VDS ser kurvan ungefär linjär ut genom ursprunget - vilket betyder att den elektriskt "ser ut" som ett motstånd. Motsvarande motstånd är kurvens inversa lutning. Denna region för MOSFET -operation kallas "triode". 3. För större VDS nås en viss maximal strömnivå. Detta kallas "mättnad". 4. När vi ökar VGS får mer ström flöda i både trioden och mättnadslägen. Och nu har du faktiskt lärt dig om alla tre lägen för MOSFET -drift: cutoff, triode och saturation. För att vår gate control är digital (+5 eller 0), vi är bara bekymrade över kurvan markerad med gult, för VGS = 5V. Normalt innebär användning av en MOSFET som omkopplare i allmänhet triodens driftsätt, eftersom MOSFET avlägsnar kraft PD = ID*VDS, och en bra strömbrytare bör leda ut lite ström i själva omkopplaren. Men i det här fallet har vi att göra med en motor, och motorer tenderar att kräva mycket ström (med litet spänningsfall) när de startar första gången. Så under den första sekunden eller två kommer MOSFET att fungera med hög VDS, och kommer att begränsas av sin maximala ström - cirka 800mA från den röda streckade linjen som vi har ritat på databladet. Vi fann att detta inte var tillräckligt för att få igång pumpen, så vi använde ett litet trick och satte två MOSFET parallellt. På så sätt delar de strömmen och kan effektivt sjunka cirka 1600mA tillsammans. På grund av pumpens höga effektbehov använde vi en väggtransformator med högre strömeffekt. Om du har en väggtransformator med större än 5V utgång - kanske 9V eller 12V - då kan du ca.
Steg 3: Konfigurera PWM på MCU
PWM -register och beräkningar I videon talar vi om två nivåer som används av timer/räknemodulen: toppvärdet och jämförelsevärdet. Båda dessa är viktiga för att generera den PWM -signal du vill ha. Men för att aktivera din ATmega168s PWM -utgång i första hand måste vi skapa några register. Först väljer vi Fast PWM-läge med OCR1A som toppvärde, vilket gör att vi godtyckligt kan ställa in hur ofta en ny puls ska startas. Sedan ställer vi in klockan för att gå med en fördelning på 8, vilket innebär att räknaren kommer att öka med 1 var 8/(14745600 Hz) = 542 nanosekunder. Eftersom vi har 16-bitars register för denna timer, betyder det att vi kan ställa in vår totala signalperiod till så hög som 65536*542ns = 36 millisekunder. Om vi använde ett större divisionsnummer kunde vi göra våra pulser längre ifrån varandra (vilket inte hjälper i den här situationen), och vi skulle förlora upplösning. Om vi använde ett mindre divisionsnummer (t.ex. 1), skulle vi inte kunna göra våra pulser minst 16 millisekunder från varandra, som vår servo förväntar sig. Slutligen ställer vi in läget Jämför utmatning för en "icke-inverterande" PWM utmatning, som beskrivs i vår video. Vi ställde också in stiftet PB2 som en utgångsstift-visas inte här, men det är i koden. Klicka för att förstora dessa bilder från sidorna 132-134 i ATmega168-databladet, med våra registervärdesval markerade:
Steg 4: Programmera mikrokontrollern
Nu är det dags att faktiskt programmera MCU. Den fullständiga källkoden finns på vår webbplats https://www.nerdkits.com/videos/servosquirter Koden ställer först in PWM för att driva servon. Koden sitter sedan bara i en stundslinga och väntar på användarinmatning. Tecknen 1 och 0 slår på eller av MCU -stiftet som är anslutet till pumptransistorn. Detta kommer att slå på och stänga av pumpen vilket ger oss möjlighet att avfyra efter behag. Koden svarar också på tangenterna
Steg 5: Seriell portkommunikation
Det sista steget är att konfigurera datorn så att du kan skicka kommandona till mikrokontrollern. I NerdKit använder vi seriekabeln för att skicka kommandon och information till datorn. Det är möjligt att skriva enkla program på de flesta programmeringsspråk som kan kommunicera över serieporten till NerdKit. Det är dock mycket enklare att använda ett terminalprogram för att göra seriekommunikation åt oss. På så sätt kan du bara skriva på tangentbordet och se svaret från NerdKit. Windows Om du använder Windows XP eller tidigare ingår HyperTerminal och bör finnas i din Start -meny under "Start -> Program -> Tillbehör -> Kommunikation ". När du öppnar HyperTerminal för första gången ber du dig att skapa en anslutning. Avbryt dem, tills du är i huvud HyperTerminal -scenen. Du måste konfigurera HyperTerminal, välja rätt COM -port och ställa in portinställningarna på lämpligt sätt för att fungera med NerdKit. Följ skärmdumparna nedan för att få rätt HyperTerm -inställning. Om du använder Windows Vista ingår HyperTerminal inte längre. I det här fallet, ladda ner PuTTY (Windows -installationsprogram). Använd anslutningsinställningarna nedan för att konfigurera Putty, med rätt COM -port. Mac OS X Efter att du har angett Terminal -applikationen skriver du "screen /dev/tty. PL* 115200" för att börja kommunicera över den seriella porten. Linux På Linux använder vi " minicom "för att prata med serieporten. För att starta, kör "minicom -s" på konsolen för att öppna minicoms inställningsmeny. Gå till "Serial Port Setup". Ställ in parametrarna enligt följande: Minicom -konfiguration på LinuxTryck sedan på Escape och använd "Save Setup as dfl" för att spara inställningarna som standard. Du bör nu kunna slå "Exit" och använda minicom för att prata med NerdKit.
Rekommenderad:
Oh Christmas Tree (Oh Tannenbaum) With MakeyMakey on the Water Synthesizer: 7 Steg
Oh Christmas Tree (Oh Tannenbaum) With MakeyMakey on the Water Synthesizer: Denna julsång är bra att spela med makeymakey på watersynthesizer. Du kan spela den med nio toner. För stämningen är det skönt att ha lite julbelysning :-) Njut
Switch-Adapt Toys: Water-Breathing Walking Dragon Made Accessible !: 7 steg (med bilder)
Switch-Adapt Toys: Water-Breathing Walking Dragon Made Accessible !: Leksaksanpassning öppnar nya vägar och anpassade lösningar för att låta barn med begränsade motoriska förmågor eller utvecklingsstörningar interagera med leksaker självständigt. I många fall kan barnen som behöver anpassade leksaker inte
Tillbaka till framtiden Antigravity Water Drop - Seeeduino Lotus: 5 steg
Tillbaka till framtiden Antigravity Water Drop - Seeeduino Lotus: StoryTime är som en torrent och driver människor framåt. Finns det ett ögonblick där du vill att tiden ska stå still eller gå bakåt? Titta noga på vattendroppen. Droppar det eller går det upp? Verket är inspirerat av fenomenet visuell persi
Anti-Water Waster: 4 steg
Anti-Water Waster: I vårt hus är en påstådd vattenavfall som lämnar kranen igång för mycket tid. Denna Anti-Water Waster är utformad för att vara en mild påminnelse för den person som slösar med vatten
Punch Activated Water Shooter: 5 steg
Punch Activated Water Shooter: Om du är en hel fläkt. Du måste känna Jinbe. Jinbe är en karaktär i One Piece -serien, som skapades av Eiichiro Oda. Jinbe är en exceptionellt mäktig mästare i Fishman Karate. En av hans tekniker är Five Thousand Brick Fist. Det är