Indholdsfortegnelse:

Nerf Chronograph and Rate of Fire Barrel: 7 trin
Nerf Chronograph and Rate of Fire Barrel: 7 trin

Video: Nerf Chronograph and Rate of Fire Barrel: 7 trin

Video: Nerf Chronograph and Rate of Fire Barrel: 7 trin
Video: Will A Nerf Dart Fit Into A Real Gun? 2024, Juli
Anonim
Image
Image
Nerf Chronograph og Rate of Fire Barrel
Nerf Chronograph og Rate of Fire Barrel

Introduktion

Som tinkerer er det altid meget tilfredsstillende at se de numeriske resultater af din tinkering. Mange af os har modificeret Nerf -kanoner før, og hvem elsker ikke at kaste stykker skum hen over huset med over 100 fps?

Efter at have ændret mange Nerf -kanoner i hele mit liv, startede da jeg var ~ 10 med min far indtil nu, da jeg og mine værelseskammerater fortsætter med at kaste skum hen over lejligheden til hinanden, har jeg altid ønsket at vide, hvor hurtigt pilene flyver, og hvor mange dart i sekundet skyder mine roommates Rapid-Strike. Der er kommercielle kronografer til rådighed for Nerf og Airsoft, men dem med høj præcision er dyre, og det er sjovt at bygge en på egen hånd. Hvis du vil købe en, frigav Nerf en tønde, der var næsten identisk med den, der er omtalt i dette projekt (med noget bedre industrielt design), og den kan findes her:

Nerf Modulus Ghost-Ops Chrono Barrel

Nerf -versionen er også batteridrevet og viser en tæller til dart affyret. Instructable her indeholder også en skærm og en nulstillingsknap, men afhænger dog af pilelængde til hastighedsberegning og ser ikke ud til at bruge afbrydelser. Hovedfokus for dette projekt vil være på den serielle kommunikation (som et simpelt eksempel som dette var ikke det nemmeste at finde online) og brugen af afbrydelser til nøjagtig timing. Dette kan sandsynligvis let konverteres til en airsoft -kronograf af samme årsager med et strammere kabinet og et bedre monteringssystem til airsoft -kanoner. Uden at bruge afbrydelser kan koden være langsommere og mindre effektiv, det er også meget vanskeligere at time med hensyn til mikrosekunder præcist, da millisekunder ikke vil producere nøjagtige værdier for darthastighed.

Jeg vil ikke fokusere for meget på kabinetdesignet, selvom STL -filer er tilgængelige i GitHub, fordi hvem som helst bare kan købe Nerf -versionen, som bestemt er bedre til faktisk spil, men en fremtidig version af dette kan formindske resultaterne.

Grundprincipper (læringsresultater):

  • Har form af en standard Nerf tønde
  • Brug af fototransistorer som timingporte til pilen.
  • Viser brugen af Adruino -afbrydelser til timing
  • Brug af behandling med Arduino til seriel kommunikation

Projektets omfang:

Jeg planlægger at gå over det meste detaljer til dette projekt med nogle korte oversigter og anbefale at læse referencerne til Arduino og Processsing for mere specifik information. Dette vil ikke lære dig at lodde, men mere hvordan man integrerer Arduino og forarbejdning og bruger afbrydelser. Meget af denne læring vil være ved at læse den faktiske kommenterede kode, så sørg for at du læser hele koden igennem, før du uploader blindt og prøver at få den til at fungere.

Fordele i forhold til lignende projekter:

  • Brug af afbrydelser til nøjagtig måling af høj hastighed
  • Omfattende fejlfindingsafdeling til fototransistorer
  • Brandhastighed (ROF) Beregning, der udsender runder pr. Sekund (RPS)
  • Fuldskærms computergrænseflade - ikke nyttig under kamp, men fantastisk, hvis du vil vise andre resultaterne på stream eller Youtube med en skærmoptager.
  • Mulighed for at blive tilpasset til Airsoft eller Paintball ved ændring af kun kabinettet
  • Intet behov for brugerdefinerede printkort (Ville være rart i en fremtidig opdatering, men enhver kan lave dette til relativt lave omkostninger
  • Samlede omkostninger på under $ 10, når dele deles ud, og hvis en 3D -printer er tilgængelig - På niveau med de kommercielle omkostninger, med ROF -tilføjelse

Trin 1: Påkrævede dele og værktøjer

Nødvendige dele og værktøjer
Nødvendige dele og værktøjer

Hvis du har en 3D -printer, vil dette være et godt projekt for dig, da jeg vil levere filerne til kabinettet. Opdater gerne kabinettet. Jeg havde ikke nogen LCD'er til rådighed, men en anden version vil forhåbentlig have en LCD og bruge et WEMOS D1 eller lignende WiFi/BT -aktiveret kort og et batteri. Dette giver mulighed for datalogning på mobil og feedback i realtid - for eksempel hvor mange dart der er tilbage i pistolen. En vis lodningserfaring anbefales, hvis du ikke føler dig godt tilpas, anbefaler jeg at følge en Instructable til lodning og sandsynligvis købe ekstra elektroniske komponenter for sikkerheds skyld.

Påkrævede værktøjer:

  1. Loddekolbe
  2. Varmluftsblæser/ varmepistol/ lighter (Hvis du bruger varmekrymp)
  3. Wire Strippers
  4. Mini - B USB -kabel (eller hvilket kabel der kræves til din mikrokontroller)
  5. Hot Glue Gun eller lignende (jeg brugte en 3D -printpen til at fastgøre alle komponenter til det 3D -trykte kabinet)

Nødvendige materialer:

  1. 22AWG Solid-core wire ex: Solid Core Wire Set 22AWG
  2. Arduino Nano (eller lignende, jeg brugte en klon) eks: 3 x Arduino Nano (klon)
  3. Modstandssæt (2 x 220 ohm, 2 x 220 k ohm) Du kan muligvis bruge nedtrapningsmodstande med lavere værdi, f.eks. 47k med succes, jeg fandt tilfældigvis ud af, at jeg havde brug for denne værdi for at den kunne fungere. Vejledningen til fejlfinding beskriver, hvordan du afgør, om pulldown -modstanden er den korrekte værdi for din specifikke fototransistor og LED -sæt. På grund af dette anbefaler jeg at få et sæt: eks: Modstandssæt
  4. 2 x IR LED ex: IR LED og PhotoTransistor Set
  5. 2 x PhotoTransistor
  6. 1 x 3D -trykt kabinet - I et IR uigennemsigtigt filament (Hatchbox Silver fungerede og var den eneste farve jeg testede)
  7. Fuldstændige projektfiler er tilgængelige her på GitHub såvel som i den vedhæftede zip -fil. STL'erne er også tilgængelige på Thingiverse her.

Trin 2: Test af brødbræt

Test af brødbræt
Test af brødbræt
Test af brødbræt
Test af brødbræt

Når elektronikken er ankommet, fører lodning til fototransistorer og IR-lysdioder ~ 20-30cm til fejlfinding, jeg anbefaler varmekrympning af disse. Jeg havde ikke den korrekte størrelse varmekrympning og måtte bruge elektrisk tape til denne prototype. Dette giver dig mulighed for at bruge dem til test i kabinettet. Hvis du har udskrevet kabinettet og har lysdioder og fototransistorer i de korrekte positioner, kan du begynde at teste.

Sørg for, at du har Arduino og Processing installeret.

Zip -filen i begyndelsen har alle koder samt STL -filer til udskrivning af kabinettet.

Brug Arduino til først at fejlsøge, og brug kun behandling til afsluttende test (du kan se alt i seriel skærm fra Arduino).

Du kan prøve at affyre en Nerf -dart gennem kronografen med Chronogrpah_Updated.ino installeret på Arduino. Hvis dette virker, er du klar. Hvis dette ikke virker, skal du sandsynligvis justere modstandsværdierne. Dette diskuteres i det næste trin.

Lidt om hvordan koden fungerer:

  1. Interrupst stopper koden, når en pil går gennem en port og bestemmer tiden i mikrosekunder
  2. Hastigheden beregnes med dette, og tiden gemmes
  3. Tiden mellem skud beregnes og konverteres til runder i sekundet
  4. Tiden mellem porte beregnes og konverteres til fod pr. Sekund baseret på portens afstand.

    Brug af to porte giver bedre resultater med identisk timing (hvor meget af sensoren skal være dækket) og reducerer hysterese

  5. Hastighed og brandhastighed sendes via seriel adskilt af et komma til enten den serielle skærm i arduino eller behandlingsskitsen, der muliggør en flot brugergrænseflade (fokus på behandling, når alt andet virker!).

Trin 3: Test og fejlfinding

Hvis du ikke havde succes med den første test, skal vi finde ud af, hvad der gik galt.

Åbn Arduino-eksemplet AnalogReadSerial fundet i Fil-> Eksempler-> 0.1 Basics-> AnalogReadSerial

Vi vil sikre, at fototransistorer fungerer, som vi forventer, at de gør. Vi vil have dem til at læse HØJ, når pilen ikke blokerer dem, og LAV når pilen ikke er det. Dette skyldes, at koden bruger Interrupts til at registrere det tidspunkt, hvor pilen passerer sensoren, og den type afbrydelse, der bruges, er FALLING, hvilket betyder, at den udløses, når den går fra HIGH til LOW. For at sikre, at stiften er HØJ, kan vi bruge de analoge ben til at bestemme værdien af disse stifter.

Upload Arduino -eksemplet AnalogReadSerial, og hop fra den digitale pin D2 eller D3 til A0.

D2 skal være den første sensor og D3 skal være den anden sensor. Vælg 1 for at læse og begynde der. Følg vejledningen herunder for at bestemme den korrekte løsning baseret på målingerne:

Værdien er 0 eller meget lav:

Værdien skal i første omgang være omkring 1000, hvis den læser en meget lav værdi eller nul, skal du sikre, at dine lysdioder er korrekt forbundet og ikke brændt ud, samt at de er justeret godt. Jeg brændte mine lysdioder ud i test, når jeg brugte en 100 ohm modstand i stedet for 220 ohm. Det er bedst at henvise til databladet for lysdioderne for at bestemme den korrekte modstandsværdi, men de fleste lysdioder vil sandsynligvis fungere med 220 ohm modstanden.

Lysdioder fungerer, og værdien er stadig 0 eller meget lav:

Problemet er sandsynligvis i, at pull down -modstanden er for lav i modstand. Hvis du har et problem med 220k modstanden, kan du måske øge den højere end dette, men kan få støj. Du skal sikre, at din fototransistor ikke er brændt ud.

Værdi er et mellemområde:

Dette vil medføre mange problemer, hovedsageligt falske udløsere eller aldrig forårsage høj. Vi skal sikre, at der modtages et HØJT. For at gøre dette har vi brug for en værdi ~ 600, men lad os sigte mod 900+ for at være sikre. At være for tæt på denne tærskel kan forårsage falske udløsere, så vi vil undgå falske positive. For at justere denne værdi ønsker vi at øge nedtrapningsmodstanden (220K). Jeg har allerede gjort dette et par gange i mit design, og du skal sandsynligvis ikke gøre dette, da dette er en meget stor værdi for en pull-down modstand.

Værdien er meget støjende (hopper meget rundt uden eksterne stimuli):

Sørg for, at din ledning er korrekt med pull-down-modstanden. Hvis dette er korrekt, skal du muligvis øge værdien af modstanden.

Værdien sidder fast på 1000+, selv når sensoren blokeres:

Sørg for, at din pull-down-modstand er korrekt forbundet, dette vil sandsynligvis ske, hvis der ikke er nogen pull-down. Hvis dette stadig er et problem, kan du prøve at reducere pull-down-modstandsværdien.

Værdien er høj og går til nul, når lyset blokeres:

Dette bør være tilstrækkeligt til, at sensoren fungerer, men vi er muligvis ikke hurtig nok, da pilen krydser stien. Der er en vis kapacitans i kredsløbet, og med 220K modstanden kan det tage noget tid, før spændingen falder under den krævede tærskel. Hvis dette er tilfældet, skal du reducere denne modstand til 100K og se, hvordan testene fungerer.

SIKR ALLE RESISTORÆNDRINGER ER KONSEKVENTE MELLEM BÅDE SENSORER

Ved at sikre identiske kredsløb for begge sensorer opretholdes den samme latens mellem modstandene, hvilket giver den bedste nøjagtighed i målinger.

Hvis du har yderligere problemer, slip en kommentar herunder, og jeg vil gøre mit bedste for at hjælpe dig.

Trin 4: Hardware samling

Hardware samling
Hardware samling
Hardware samling
Hardware samling
Hardware samling
Hardware samling

Loddet komponenterne til det lille print som det ses her:

Ledningerne til lysdioderne og PhotoTransistors skal skære i længden, cirka _.

Lod Arduino'en på brættet, og led modstandene fra jorden til tilgængelige stifter. Sørg desuden for, at de 4 Positive ledninger let kan fastgøres sammen. Hvis du har problemer med dette, kan du fjerne et stykke af ledningen og lodde det på tværs af alle elektroderne i slutningen.

Jeg tilsluttede sensorerne til den modsatte side af kabinettet, men du er velkommen til at koble enten så længe du holder siderne konsekvente. Jeg skar ledningerne til længde og loddet ledningerne til hver af dioderne sidst. Jeg opdaterede wire routing lidt for at give mere plads og mindre bekymring for at have nogle ledninger under printkortet og andre over det for let at bruge. STL'erne er i den fulde projekt zip -fil i starten af projektet.

Trin 5: Endelig samling

Endelig forsamling
Endelig forsamling
Endelig forsamling
Endelig forsamling
Endelig forsamling
Endelig forsamling

Hvis dine PCB-huller ikke matcher hullerne på hovedkronografhuset, kan du sandsynligvis sikre elektronikken i kabinettet med lidt tape eller varm lim. Jeg fandt ud af, at det ikke behøvede at være sikret efter ledningen og USB var på plads, men dine resultater kan variere. Det er designet til at tillade presning af 1,75 mm filament i skruehullerne til varmestøbning, men printkortet kan også skrues i eller limes. Den vigtigste del her er at sikre, at USB -porten er tilgængelig.

Dæk elektronikken med elektronikdækslet. De opdaterede filer skulle passe bedre end mine gjorde og forhåbentlig trykke på plads, men jeg brugte en 3D -printpen til at svejse dækslerne på plads. Du er nu klar til at affyre nogle dart!

En fremtidig opdatering kan bruge intern routing til ledningerne, men dækslerne giver i dette tilfælde en smule Nerf -æstetik.

Trin 6: Kronograf i aktion

Image
Image
Kronograf i aktion
Kronograf i aktion

Åbning af behandlingsfilen: Chronograph_Intitial_Release giver mulighed for en virkelig flot brugergrænseflade til kronografen, der viser både FPS og RPS (runder pr. Sekund). Hvis du har problemer med at oprette forbindelse, skal du sørge for at lukke din Arduino serielle skærm, du skal muligvis også ændre den serielle port i koden, men dette kommenteres og skal være enkelt. For at nulstille max-værdierne skal du blot trykke på mellemrumstasten på din computer.

Lidt om hvordan koden fungerer (Foto af UI kan ses ovenfor):

  1. Modtager input fra Arduino
  2. Sammenligner dette med tidligere input for at finde den maksimale værdi
  3. Viser de nuværende og maks. Værdier i fuld skærm for let visuel feedback
  4. Nulstiller maks. Værdi, når der trykkes på mellemrum

Trin 7: Fremtidsplaner

En fremtidig opdatering til dette vil indeholde følgende forbedringer. Hvis du har yderligere funktioner, som du gerne vil have, så lad mig det vide, så prøver jeg at implementere dem.

  1. Inkluder LCD -skærm
  2. Inkluder batterier
  3. Nerf -kompatible fastgørelsespunkter
  4. Opdateret bilag
  5. Iron Seværdigheder

Anbefalede: