Innehållsförteckning:

Nerf kronograf och eldhastighet: 7 steg
Nerf kronograf och eldhastighet: 7 steg

Video: Nerf kronograf och eldhastighet: 7 steg

Video: Nerf kronograf och eldhastighet: 7 steg
Video: V6 Dart Blaster that shoots faster than UZI 2021 Cool Toys 2024, Juli
Anonim
Image
Image
Nerf Chronograph and Rate of Fire Barrel
Nerf Chronograph and Rate of Fire Barrel

Introduktion

Som pysselare är det alltid mycket tillfredsställande att se de numeriska resultaten av din pyssel. Många av oss har modifierat Nerf -vapen tidigare och vem älskar inte att slänga skumbitar tvärs över huset med över 100 fps?

Efter att ha ändrat många Nerf -vapen under hela mitt liv, började när jag var ~ 10 med min pappa tills jag och mina rumskamrater fortsätter att slänga skum över lägenheten mot varandra, har jag alltid velat veta exakt hur snabbt dartarna flyger, och hur många pilar per sekund skjuter mina rumskamrater Rapid-Strike. Det finns kommersiella kronografer tillgängliga för Nerf och Airsoft, men de med hög precision är dyra och det är roligt att bygga en på egen hand. Om du vill köpa en släppte Nerf en fat som var nästan identisk med den som presenterades i detta projekt (med lite bättre industriell design) och den kan hittas här:

Nerf Modulus Ghost-Ops Chrono Barrel

Nerf -versionen är också batteridriven och visar en räknare för dart som avfyras. Instructable här innehåller också en skärm och en återställningsknapp, men förlitar sig på dartlängd för hastighetsberäkning och verkar inte använda avbrott. Huvudfokus för detta projekt kommer att ligga på seriekommunikation (som ett enkelt exempel som detta var inte det enklaste att hitta online), och användningen av avbrott för korrekt timing. Detta kan troligen enkelt konverteras till en airsoft -kronograf av samma skäl med ett tätare hölje och ett bättre monteringssystem för airsoft -vapen. Utan att använda avbrott kan koden vara långsammare och mindre effektiv, det är också mycket svårare att ta tid när det gäller mikrosekunder exakt eftersom millisekunder inte kommer att producera exakta värden för pilhastighet.

Jag kommer inte att fokusera för mycket på höljesdesignen även om STL -filer finns tillgängliga i GitHub, för vem som helst kan bara köpa Nerf -versionen som definitivt är bättre för det faktiska spelet, men en framtida version av detta kan mildra resultaten.

Grundprinciper (lärandemål):

  • Har formen av en standard Nerf Barrel
  • Användning av fototransistorer som timingportar för pilen.
  • Visar användningen av Adruino -avbrott för timing
  • Användning av bearbetning med Arduino för seriell kommunikation

Projektets omfattning:

Jag planerar att gå igenom mestadels detaljer om detta projekt med några korta översikter och rekommendera att läsa referenserna för Arduino och Processsing för mer specifik information. Detta kommer inte att lära dig hur man lödar, utan mer hur man integrerar Arduino och bearbetning och använder avbrott. Mycket av detta lärande kommer att vara genom att läsa den faktiska kommenterade koden, så se till att du läser igenom hela koden innan du laddar upp blindt och försöker få den att fungera.

Fördelar jämfört med liknande projekt:

  • Användning av avbrott för noggrann mätning av hög hastighet
  • Omfattande felsökningsavsnitt för fototransistorer
  • Brandhastighet (ROF) Beräkning av utgångar per sekund (RPS)
  • Datorgränssnitt i helskärm - inte användbart under strid, men bra om du vill visa andra resultaten på stream eller Youtube med en skärminspelare.
  • Möjlighet att anpassas för Airsoft eller Paintball genom att endast ändra höljet
  • Inget behov av anpassade kretskort (skulle vara trevligt i en framtida uppdatering men vem som helst kan göra detta till relativt låg kostnad
  • Total kostnad på under $ 10 när delar delas ut och om en 3D -skrivare är tillgänglig - I nivå med den kommersiella kostnaden, med ROF -tillägg

Steg 1: Obligatoriska delar och verktyg

Nödvändiga delar och verktyg
Nödvändiga delar och verktyg

Om du har en 3D -skrivare kommer detta att vara ett bra projekt för dig, eftersom jag kommer att tillhandahålla filerna för höljet. Uppdatera gärna höljet. Jag hade inga LCD -skärmar till hands, men en andra version kommer förhoppningsvis att ha en LCD -skärm och använda ett WEMOS D1 eller liknande WiFi/BT -aktiverat kort och ett batteri. Detta kommer att möjliggöra dataloggning på mobilen och feedback i realtid - till exempel hur många pilar som finns kvar i pistolen. Viss lödningserfarenhet rekommenderas, om du inte känner dig bekväm rekommenderar jag att du följer en Instructable för lödning och förmodligen köper extra elektroniska komponenter för säkerhets skull.

Nödvändiga verktyg:

  1. Lödkolv
  2. Varmluftsfläkt/ värmepistol/ tändare (om värmekrympning används)
  3. Wire Strippers
  4. Mini - B USB -kabel (eller vilken kabel som krävs för din mikrokontroller)
  5. Hot Limpistol eller liknande (jag använde en 3D -skrivarpenna för att fästa alla komponenter i det 3D -tryckta höljet)

Nödvändigt material:

  1. 22AWG Solid-core wire ex: Solid Core Wire Set 22AWG
  2. Arduino Nano (eller liknande, jag använde en klon) ex: 3 x Arduino Nano (klon)
  3. Motståndssats (2 x 220 ohm, 2 x 220 k ohm) Du kan eventuellt använda neddragningsmotstånd med lägre värde som 47k med framgång, jag råkade bara upptäcka att jag behövde detta värde för att det skulle fungera. Felsökningsguiden beskriver hur du avgör om nedrullningsmotståndet är rätt värde för din specifika fototransistor och LED -uppsättning. På grund av detta rekommenderar jag att få en uppsättning: ex: Resistor Set
  4. 2 x IR LED ex: IR LED och PhotoTransistor Set
  5. 2 x PhotoTransistor
  6. 1 x 3D -tryckt hölje - I en IR Opaque Filament (Hatchbox Silver fungerade och var den enda färgen jag testade)
  7. Fullständiga projektfiler finns både här på GitHub och i den bifogade zip -filen. STL: erna finns också på Thingiverse här.

Steg 2: Testning av brödbräda

Testning av brödbräda
Testning av brödbräda
Testning av brödbräda
Testning av brödbräda

När elektroniken väl har kommit leder lödning till fototransistorerna och IR-lamporna ~ 20-30cm för felsökning, jag rekommenderar värmekrympning av dessa. Jag hade inte värmekrympning i rätt storlek och var tvungen att använda eltejp för denna prototyp. Detta gör att du kan använda dem för att testa i höljet. Om du har skrivit ut höljet och har lysdioder och fototransistorer i rätt position kan du börja testa.

Se till att du har Arduino och Processing installerat.

Zip -filen i början har alla koder samt STL -filer för att skriva ut höljet.

Använd Arduino för att felsöka först och använd endast bearbetning för slutprovning (du kan se allt i seriell bildskärm från Arduino).

Du kan försöka helt enkelt skjuta en Nerf -pil genom kronografen med Chronogrpah_Updated.ino installerat på Arduino. Om detta fungerar är du klar. Om detta inte fungerar måste du sannolikt justera motståndsvärdena. Detta diskuteras i nästa steg.

Lite om hur koden fungerar:

  1. Interrupst stoppar koden när en pil går genom en grind och bestämmer tiden i mikrosekunder
  2. Hastigheten beräknas med detta och tiden lagras
  3. Tiden mellan skotten beräknas och omvandlas till omgångar per sekund
  4. Tiden mellan grindarna beräknas och omvandlas till fot per sekund baserat på grindavstånd.

    Användning av två portar möjliggör bättre resultat med identisk timing (hur mycket av sensorn måste täckas) och minskar hysteres

  5. Hastigheten och eldhastigheten skickas via en serie som separeras med ett kommatecken till antingen seriell bildskärm i arduino eller bearbetningsskissen som möjliggör ett trevligt användargränssnitt (fokus på bearbetning när allt annat fungerar!).

Steg 3: Testa och felsöka

Om du inte lyckades med det första testet måste vi ta reda på vad som gick fel.

Öppna Arduino-exemplet AnalogReadSerial som finns i File-> Exempel-> 0.1 Basics-> AnalogReadSerial

Vi vill se till att fototransistorerna fungerar som vi förväntar oss. Vi vill att de ska läsa HÖG när pilen inte blockerar dem och LÅG när pilen inte är det. Detta beror på att koden använder Interrupts för att registrera tiden när pilen passerar sensorn, och den typ av avbrott som används är FALLING, vilket betyder att den kommer att utlösa när den går från HIGH till LOW. För att säkerställa att stiftet är HÖG kan vi använda de analoga stiften för att bestämma värdet på dessa stift.

Ladda upp Arduino -exemplet AnalogReadSerial och hoppa från digitalpinnen D2 eller D3 till A0.

D2 ska vara den första sensorn och D3 den andra sensorn. Välj 1 för att läsa och börja där. Följ guiden nedan för att bestämma rätt lösning baserat på avläsningarna:

Värdet är 0 eller mycket lågt:

Värdet bör vara runt 1000 inledningsvis, om det läser ett mycket lågt värde eller noll, se till att dina lysdioder är korrekt anslutna och inte brända ut, så att de är väl anpassade. Jag brände ut mina lysdioder vid testning när jag använde ett 100 ohm motstånd istället för 220 ohm. Det är bäst att hänvisa till databladet för lysdioderna för att bestämma det korrekta motståndsvärdet, men de flesta lysdioder fungerar förmodligen med 220 ohm -motståndet.

Lysdioder fungerar och värdet är fortfarande 0 eller mycket lågt:

Problemet är troligtvis i att neddragningsmotståndet är för lågt i motstånd. Om du har problem med 220k -motståndet kan du kanske öka det högre än så, men det kan bli stört. Du bör se till att din fototransistor inte är utbränd.

Värdet är ett mellanområde:

Detta kommer att orsaka många problem, mestadels falska triggers, eller aldrig orsaka en hög. Vi måste se till att en HIGH tas emot, för att göra detta behöver vi ett värde ~ 600 men låter sikta på att 900+ ska vara säkra. Att vara för nära denna tröskel kan orsaka falska triggers, så vi vill undvika falska positiva. För att justera detta värde vill vi öka neddragningsmotståndet (220K). Jag har redan gjort detta några gånger i min design och du kommer sannolikt inte att behöva göra detta eftersom detta är ett mycket stort värde för ett neddragbart motstånd.

Värdet är mycket bullrigt (hoppar runt mycket utan yttre stimuli):

Se till att din ledning är korrekt med neddragningsmotståndet. Om detta är korrekt kan du behöva öka motståndets värde.

Värdet fastnar på 1000+, även när sensorn blockeras:

Se till att ditt neddragningsmotstånd är korrekt anslutet. Detta kommer sannolikt att inträffa om det inte finns någon neddragning. Om detta fortfarande är ett problem, försök minska värdet på neddragningsmotståndet.

Värdet är högt och går till noll när ljuset blockeras:

Detta bör vara tillräckligt för att sensorn ska fungera, men vi kanske inte är tillräckligt snabbt när pilen korsar vägen. Det finns en viss kapacitans i kretsen, och med 220K -motståndet kan det ta lite tid innan spänningen faller under det nödvändiga tröskelvärdet. Om så är fallet, minska detta motstånd till 100K och se hur testerna fungerar.

SÄKRA ATT ALLA RESISTORFÖRÄNDRINGAR ÄR KONSEKVENTA MELLAN BÅDA SENSORER

Att säkerställa identiska kretsar för båda sensorerna upprätthåller samma latens mellan motstånden, vilket möjliggör bästa noggrannhet i mätningarna.

Om du har ytterligare problem, lämna en kommentar nedan så ska jag göra mitt bästa för att hjälpa dig.

Steg 4: Hårdvarumontage

Hårdvara Montering
Hårdvara Montering
Hårdvara Montering
Hårdvara Montering
Hårdvara Montering
Hårdvara Montering

Lödda komponenterna till det lilla kretskortet så här:

Ledningarna för lysdioderna och fototransistorerna ska skäras i längd, ungefär _.

Löd Arduino på brädet och dra motstånden från marken till tillgängliga stift. Se också till att de fyra positiva trådarna enkelt kan fästas ihop. Om du har problem med detta kan du ta bort en bit av tråden och löda den över alla ledningar i slutet.

Jag kopplade sensorerna till den motsatta sidan av höljet, men känn dig fri att köra antingen så länge du håller sidorna konsekventa. Jag klippte ledningarna till längd och lödde ledningarna till var och en av dioderna sist. Jag uppdaterade trådledningen något för att ge mer utrymme och mindre oro för att ha några ledningar under kretskortet och andra över det för enkel användning. STL: erna finns i hela zip -filen för projektet i början av projektet.

Steg 5: Slutmontering

Slutmontering
Slutmontering
Slutmontering
Slutmontering
Slutmontering
Slutmontering

Om dina kretskortshål inte matchar hålen på huvudkronografkroppen kan du troligen fästa elektroniken i höljet med lite tejp eller varmt lim, jag fann att det inte behövde säkras efter kabeln och USB var på plats, men dina resultat kan variera. Den är konstruerad för att pressa 1,75 mm filament in i skruvhålen för värmebeständning, men kretskortet kan också skruvas in eller limas. Den viktigaste delen här är att se till att USB -porten är tillgänglig.

Täck elektroniken med elektronikskyddet, De uppdaterade filerna ska passa bättre än mina gjorde och kommer förhoppningsvis att trycka på plats, men jag använde en 3D -skrivarpenna för att svetsa omslagen. Du är nu redo att skjuta några dart!

En framtida uppdatering kan använda intern routing för trådarna, men kåporna i detta fall ger något för Nerf -estetiken.

Steg 6: Kronograf i aktion

Image
Image
Kronograf i aktion
Kronograf i aktion

Öppna bearbetningsfilen: Chronograph_Intitial_Release möjliggör ett riktigt trevligt användargränssnitt för kronografen som visar både FPS och RPS (rundor per sekund). Om du har problem med att ansluta se till att du stängde din Arduino seriella bildskärm, kan du också behöva ändra serieporten i koden, men detta kommenteras och bör vara enkelt. För att återställa maxvärdena trycker du bara på mellanslagstangenten på din dator.

Lite om hur koden fungerar (Foto av UI kan ses ovan):

  1. Tar emot input från Arduino
  2. Jämför detta med tidigare inmatning för att hitta maxvärdet
  3. Visar nuvarande och maxvärden i helskärm för enkel visuell återkoppling
  4. Återställer maxvärdet när du trycker på blanksteg

Steg 7: Framtidsplaner

En framtida uppdatering för detta kommer att innehålla följande förbättringar. Om du har ytterligare funktioner som du vill, meddela mig så ska jag försöka implementera dem.

  1. Inkludera LCD -skärm
  2. Inkludera batterier
  3. Nerf -kompatibla fästpunkter
  4. Uppdaterad bilaga
  5. Iron Sights

Rekommenderad: