Innholdsfortegnelse:

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

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

Video: Nerf Chronograph and Rate of Fire Barrel: 7 trinn
Video: [REVIEW] Nerf Modulus Chronobarrel | Velocity + Ammo Counting! HOLY TACTICS, BATMAN! 2024, Juli
Anonim
Image
Image
Nerf Chronograph and Rate of Fire Fat
Nerf Chronograph and Rate of Fire Fat

Introduksjon

Som tinkerer er det alltid veldig tilfredsstillende å se de numeriske resultatene av tinkeringen din. Mange av oss har modifisert Nerf -våpen før, og hvem liker ikke å kaste skumstykker over huset med over 100 fps?

Etter å ha modifisert mange Nerf -kanoner gjennom hele mitt liv, fra jeg var rundt 10 år med faren min til jeg og romkameratene mine fortsatte å kaste skum over leiligheten til hverandre, har jeg alltid ønsket å vite nøyaktig hvor fort pilene flyr, og hvor mange pil i sekundet skyter romkameratene mine Rapid-Strike. Det er kommersielle kronografer tilgjengelig for Nerf og Airsoft, men de med høy presisjon er dyre, og det er morsomt å bygge en på egen hånd. Hvis du vil kjøpe en, ga Nerf ut en tønne som er nesten identisk med den som er omtalt i dette prosjektet (med bedre industriell design), og den finner du her:

Nerf Modulus Ghost-Ops Chrono Barrel

Nerf -versjonen er også batteridrevet, og viser en teller for dart avfyrt. Instruerbare her inkluderer også en skjerm og en tilbakestillingsknapp, men er avhengig av pilelengde for hastighetsberegning, og ser ikke ut til å bruke avbrudd. Hovedfokuset for dette prosjektet vil være på seriell kommunikasjon (som et enkelt eksempel som dette var ikke det enkleste å finne på nettet), og bruk av avbrudd for nøyaktig timing. Dette kan sannsynligvis enkelt konverteres til en airsoft -kronograf av de samme grunnene med et strammere kabinett og et bedre monteringssystem for airsoft -våpen. Uten å bruke avbrudd kan koden være tregere og mindre effektiv, det er også mye vanskeligere å ta tiden nøyaktig når det gjelder mikrosekunder, ettersom millisekunder ikke vil produsere nøyaktige verdier for darthastighet.

Jeg vil ikke fokusere for mye på kabinettdesignet selv om STL -filer er tilgjengelige i GitHub, fordi hvem som helst kan kjøpe Nerf -versjonen som definitivt er bedre for faktisk spill, men en fremtidig versjon av dette kan redusere resultatene.

Grunnleggende prinsipper (læringsutbytte):

  • Har form av et standard Nerf fat
  • Bruk av fototransistorer som tidsporter for pilen.
  • Viser bruk av Adruino -avbrudd for timing
  • Bruk av behandling med Arduino for seriell kommunikasjon

Prosjektomfang:

Jeg planlegger å gå over det meste spesifikke for dette prosjektet med noen korte oversikter og anbefale å lese referansene for Arduino og Processsing for mer spesifikk info. Dette vil ikke lære deg hvordan du lodder, men mer hvordan du integrerer Arduino og prosessering og bruker avbrudd. Mye av denne læringen vil være gjennom å lese den faktiske kommenterte koden, så sørg for at du leser gjennom hele koden før du laster opp blindt og prøver å få den til å fungere.

Fordeler i forhold til lignende prosjekter:

  • Bruk av interrupts for nøyaktig måling av høy hastighet
  • Omfattende feilsøkingsseksjon for fototransistorer
  • Brannhastighet (ROF) Beregning som sender ut runder per sekund (RPS)
  • Datamaskingrensesnitt i fullskjerm - ikke nyttig under kamp, men flott hvis du vil vise andre resultatene på stream eller Youtube med en skjermopptaker.
  • Mulighet for å bli tilpasset Airsoft eller Paintball ved å endre bare kabinettet
  • Ingen behov for tilpassede PCB -er (ville vært fint i en fremtidig oppdatering, men hvem som helst kan lage dette til relativt lave kostnader
  • Total kostnad på under $ 10 når deler deles ut og hvis en 3D -skriver er tilgjengelig - På lik linje med kommersielle kostnader, med ROF -tillegg

Trinn 1: Nødvendige deler og verktøy

Nødvendige deler og verktøy
Nødvendige deler og verktøy

Hvis du har en 3D -skriver, vil dette være et flott prosjekt for deg, ettersom jeg vil levere filene til kabinettet. Oppdater gjerne vedlegget. Jeg hadde ingen LCD -skjermer for hånden, men en andre versjon vil forhåpentligvis ha en LCD -skjerm og bruke et WEMOS D1 eller lignende WiFi/BT -aktivert kort og et batteri. Dette vil tillate datalogging på mobil og tilbakemelding i sanntid - for eksempel hvor mange piler som er igjen i pistolen. Noen loddeopplevelser anbefales. Hvis du ikke føler deg komfortabel, anbefaler jeg å følge en instruksjonsboks for lodding og sannsynligvis kjøpe ekstra elektroniske komponenter for sikkerhets skyld.

Nødvendige verktøy:

  1. Loddejern
  2. Varmluftsblåser/ varmepistol/ lighter (hvis du bruker varmekrymping)
  3. Wire strippere
  4. Mini - B USB -kabel (eller hvilken kabel som kreves for mikrokontrolleren)
  5. Hot Glue Gun eller lignende (jeg brukte en 3D -utskriftspenn for å feste alle komponentene til 3D -trykte kabinettet)

Nødvendige materialer:

  1. 22AWG Solid-core wire ex: Solid Core Wire Set 22AWG
  2. Arduino Nano (eller lignende, jeg brukte en klon) eks: 3 x Arduino Nano (klon)
  3. Motstandssett (2 x 220 ohm, 2 x 220 k ohm) Du kan kanskje bruke nedtrekksmotstander med lavere verdi, for eksempel 47k med suksess, jeg fant tilfeldigvis ut at jeg trengte denne verdien for at den skulle fungere. Feilsøkingsguiden beskriver hvordan du kan avgjøre om nedtrekksmotstanden er riktig verdi for din spesifikke fototransistor og LED -sett. På grunn av dette anbefaler jeg å få et sett: eks: Motstandssett
  4. 2 x IR LED ex: IR LED og PhotoTransistor Set
  5. 2 x PhotoTransistor
  6. 1 x 3D -trykt kabinett - I et IR ugjennomsiktig filament (Hatchbox Silver fungerte og var den eneste fargen jeg testet)
  7. Fullstendige prosjektfiler er tilgjengelige her på GitHub så vel som i den vedlagte zip -filen. STL -er er også tilgjengelig på Thingiverse her.

Trinn 2: Testing av brødbrett

Testing av brødbrett
Testing av brødbrett
Testing av brødbrett
Testing av brødbrett

Når elektronikken har kommet, fører loddetinn til fototransistorer og IR-lysdioder ~ 20-30cm for feilsøking, jeg anbefaler å krympe disse. Jeg hadde ikke varmekrymping i riktig størrelse og måtte bruke elektrisk tape til denne prototypen. Dette lar deg bruke dem til testing i kabinettet. Hvis du har skrevet ut kabinettet og har lysdioder og fototransistorer i riktige posisjoner, kan du begynne å teste.

Sørg for at du har Arduino og prosessering installert.

ZIP -filen i begynnelsen har all koden, så vel som STL -filene for utskrift av kabinettet.

Bruk Arduino til å feilsøke først, og bare bruk behandling for siste testing (du kan se alt i seriell skjerm fra Arduino).

Du kan prøve å skyte en Nerf -pil gjennom kronografen med Chronogrpah_Updated.ino installert på Arduino. Hvis dette fungerer, er du klar. Hvis dette ikke fungerer, må du sannsynligvis justere motstandsverdiene. Dette diskuteres i neste trinn.

Litt om hvordan koden fungerer:

  1. Interrupst stopper koden når en pil går gjennom en port og bestemmer tiden i mikrosekunder
  2. Hastigheten beregnes med dette og tiden lagres
  3. Tiden mellom skudd beregnes og konverteres til runder per sekund
  4. Tiden mellom portene beregnes og omregnes til fot per sekund basert på portavstand.

    Bruk av to porter gir bedre resultater med identisk timing (hvor mye av sensoren må dekkes) og reduserer hysterese

  5. Hastigheten og brannhastigheten sendes via en serie som er atskilt med et komma til enten den serielle skjermen i arduino eller behandlingsskissen, noe som gir en fin brukergrensesnitt (fokus på behandling når alt annet fungerer!).

Trinn 3: Testing og feilsøking

Hvis du ikke lyktes med den første testen, må vi finne ut hva som gikk galt.

Åpne Arduino-eksempelet AnalogReadSerial som finnes i Fil-> Eksempler-> 0.1 Grunnleggende-> AnalogReadSerial

Vi ønsker å sikre at fototransistorene fungerer som vi forventer at de skal gjøre. Vi vil at de skal lese HIGH når pilen ikke blokkerer dem, og LOW når pilen ikke er det. Dette er fordi koden bruker Interrupts for å registrere tiden da pilen passerer sensoren, og typen avbrudd som brukes er FALLING, noe som betyr at den vil utløse når du går fra HIGH til LOW. For å sikre at pinnen er HØY kan vi bruke de analoge pinnene til å bestemme verdien av disse pinnene.

Last opp Arduino -eksempelet AnalogReadSerial og hopp fra den digitale pinnen D2 eller D3 til A0.

D2 skal være den første sensoren og D3 den andre sensoren. Velg 1 for å lese og begynn der. Følg veiledningen nedenfor for å finne riktig løsning basert på avlesningene:

Verdien er 0 eller veldig lav:

Verdien bør være rundt 1000 i utgangspunktet, hvis den leser en veldig lav verdi eller null, må du sørge for at lysdiodene dine er koblet riktig og ikke er brent ut, så vel som de er justert godt. Jeg brente ut lysdiodene mine under testing når jeg brukte en 100 ohm motstand i stedet for 220 ohm. Det er best å referere til databladet for lysdiodene for å bestemme riktig motstandsverdi, men de fleste lysdioder vil sannsynligvis fungere med 220 ohm motstand.

Lysdioder fungerer, og verdien er fortsatt 0 eller veldig lav:

Problemet er sannsynligvis at nedtrekksmotstanden er for lav i motstand. Hvis du har et problem med 220k -motstanden, kan du kanskje øke den høyere enn dette, men det kan oppstå støy. Du bør sørge for at fototransistoren din ikke er utbrent.

Verdien er et mellomområde:

Dette vil forårsake mange problemer, for det meste falske utløsere, eller aldri forårsake høye. Vi må sørge for at en HØY blir mottatt. For å gjøre dette trenger vi en verdi ~ 600, men la oss sikte på at 900+ skal være trygge. Å være for nær denne terskelen kan forårsake falske utløsere, så vi vil unngå falske positive. For å justere denne verdien, ønsker vi å øke nedtrekksmotstanden (220K). Jeg har allerede gjort dette et par ganger i mitt design, og du trenger sannsynligvis ikke å gjøre dette, da dette er en veldig stor verdi for en nedtrekksmotstand.

Verdien er veldig bråkete (hopper mye uten eksterne stimuli):

Sørg for at ledningene er riktige med nedtrekksmotstanden. Hvis dette er riktig, må du kanskje øke verdien til motstanden.

Verdien sitter fast på 1000+, selv når sensoren blokkeres:

Sørg for at nedtrekksmotstanden er koblet til riktig, dette vil sannsynligvis skje hvis det ikke er noen nedtrekkbarhet. Hvis dette fortsatt er et problem, kan du prøve å redusere nedtrekksmotstandsverdien.

Verdien er høy og går til null når lyset blokkeres:

Dette bør være tilstrekkelig til at sensoren fungerer, men det er ikke sikkert at vi reagerer raskt nok når pilen krysser banen. Det er litt kapasitans i kretsen, og med 220K -motstanden kan det ta litt tid før spenningen faller under den nødvendige terskelen. Hvis dette er tilfelle, må du redusere denne motstanden til 100K og se hvordan testene fungerer.

SIKR deg om eventuelle motstandsendringer er konsistente mellom begge sensorer

Å sikre identiske kretser for begge sensorene opprettholder samme ventetid mellom motstandene, noe som gir best mulig nøyaktighet i målinger.

Legg igjen en kommentar nedenfor hvis du har flere problemer, så skal jeg gjøre mitt beste for å hjelpe deg.

Trinn 4: Maskinvaremontasje

Maskinvare montering
Maskinvare montering
Maskinvare montering
Maskinvare montering
Maskinvare montering
Maskinvare montering

Lodd komponentene til det lille kretskortet som vist her:

Ledningene til lysdiodene og fototransistorene skal kuttes i lengde, omtrent _.

Lodd Arduino på brettet, og led motstandene fra bakken til tilgjengelige pinner. Sørg i tillegg for at de fire positive ledningene enkelt kan festes sammen. Hvis du har problemer med dette, kan du fjerne en bit av ledningen og lodde den over alle lederne på slutten.

Jeg koblet sensorene til den motsatte siden av kabinettet, men du kan gjerne koble den enten så lenge du holder sidene konsistente. Jeg kuttet ledningene til lengde og loddet ledningene til hver av dioder sist. Jeg oppdaterte kabelføringen litt for å gi mer plass og mindre bekymring for å ha noen ledninger under kretskortet og andre over den for enkel bruk. STL -er er i full zip -fil for prosjektet i begynnelsen av prosjektet.

Trinn 5: Sluttmontering

Sluttmontering
Sluttmontering
Sluttmontering
Sluttmontering
Sluttmontering
Sluttmontering

Hvis PCB-hullene ikke stemmer overens med hullene på hovedkronografhuset, kan du sannsynligvis feste elektronikken i kabinettet med litt tape eller varmt lim. Jeg fant ut at den ikke trengte å være sikret etter ledningen og USB var på plass, men resultatene kan variere. Den er designet for å presse 1,75 mm filament inn i skruehullene for varmestaking, men kretskortet kan også skrus fast eller limes. Den viktigste delen her er å sikre at USB -porten er tilgjengelig.

Dekk elektronikken med elektronikkdekselet. De oppdaterte filene skal passe bedre enn mine, og vil forhåpentligvis trykke på plass, men jeg brukte en 3D -utskriftspenn til å sveise dekslene på plass. Du er nå klar til å skyte noen dart!

En fremtidig oppdatering kan bruke intern ruting for ledningene, men dekslene gir i dette tilfellet noe til Nerf -estetikken.

Trinn 6: Kronograf i aksjon

Image
Image
Kronograf i aksjon
Kronograf i aksjon

Åpne behandlingsfilen: Chronograph_Intitial_Release gir et veldig fint brukergrensesnitt for kronografen som viser både FPS og RPS (Runder per sekund). Hvis du har problemer med å koble til, må du kontrollere at du har lukket din Arduino serielle skjerm. Du må kanskje også endre serieporten i koden, men dette er kommentert og bør være enkelt. Trykk på mellomromstasten på datamaskinen for å tilbakestille maksverdiene.

Litt om hvordan koden fungerer (Bilde av brukergrensesnittet kan sees ovenfor):

  1. Mottar innspill fra Arduino
  2. Sammenligner dette med tidligere inndata for å finne maksverdien
  3. Viser gjeldende og maksverdier i fullskjerm for enkel visuell tilbakemelding
  4. Tilbakestiller maks verdi når du trykker på mellomrom

Trinn 7: Fremtidsplaner

En fremtidig oppdatering for dette vil inneholde følgende forbedringer. Gi meg beskjed hvis du har flere funksjoner du vil ha, så skal jeg prøve å implementere dem.

  1. Inkluder LCD -skjerm
  2. Inkluder batterier
  3. Nerf -kompatible festepunkter
  4. Oppdatert vedlegg
  5. Iron Sights

Anbefalt: