INHOUDSOPGAWE:

Nerf chronograaf en vuurtempo: 7 stappe
Nerf chronograaf en vuurtempo: 7 stappe

Video: Nerf chronograaf en vuurtempo: 7 stappe

Video: Nerf chronograaf en vuurtempo: 7 stappe
Video: Nerf Rival Pilot Shells Chronograph Numbers 2024, Julie
Anonim
Image
Image
Nerf chronograaf en vuurtempo
Nerf chronograaf en vuurtempo

Inleiding

As 'n tinkerer is dit altyd baie bevredigend om die numeriese resultate van u tinkery te sien. Baie van ons het voorheen Nerf -gewere aangepas, en wie hou nie daarvan om stukkies skuim teen meer as 100 fps oor die huis te gooi nie?

Nadat ek my hele lewe lank baie Nerf -gewere gewysig het, vanaf my 10 -jarige ouderdom saam met my pa tot nou toe ek en my kamermaats aan mekaar skuim oor die woonstel gooi, wou ek altyd weet presies hoe vinnig die pyle vlieg., en hoeveel pyle per sekonde skiet my huisgenote Rapid-Strike. Daar is kommersiële chronograwe beskikbaar vir Nerf en Airsoft, maar die hoë presisie is duur, en dit is lekker om dit self te bou. As u wel een wil koop, het Nerf 'n vat vrygestel wat byna identies is aan die in hierdie projek (met 'n beter industriële ontwerp) en dit kan hier gevind word:

Nerf Modulus Ghost-Ops Chrono Barrel

Die Nerf -weergawe is ook battery -aangedrewe en toon 'n toonbank vir pyle wat afgevuur word. Die Instructable hier bevat ook 'n skerm en 'n reset -knoppie, maar dit is afhanklik van die pyllengte vir die snelheidsberekening en dit lyk nie asof dit onderbrekings gebruik nie. Die hoof fokus van hierdie projek is op die seriële kommunikasie (as 'n eenvoudige voorbeeld, soos dit nie die maklikste was om aanlyn te vind nie), en die gebruik van onderbrekings vir akkurate tydsberekening. Dit kan waarskynlik om dieselfde redes maklik omskep word in 'n airsoft -chronograaf met 'n strenger omhulsel en 'n beter monteerstelsel vir airsoft -gewere. Sonder om onderbrekings te gebruik, kan die kode stadiger en minder doeltreffend wees, dit is ook baie moeiliker om presies te mik ten opsigte van mikrosekondes, aangesien millisekondes nie akkurate waardes vir pylspoed sal lewer nie.

Ek sal nie te veel fokus op die omhulselontwerp nie, hoewel STL -lêers in die GitHub beskikbaar is, want almal kan net die Nerf -weergawe koop, wat beslis beter is vir die werklike spel, maar 'n toekomstige weergawe hiervan kan die resultate versag.

Basiese beginsels (leeruitkomste):

  • Het die vorm van 'n standaard Nerf -vat
  • Gebruik van fototransistors as tydhekke vir die pyl.
  • Toon die gebruik van Adruino -onderbrekings vir tydsberekening
  • Gebruik van verwerking met Arduino vir seriële kommunikasie

Projek Omvang:

Ek is van plan om oor die besonderhede van hierdie projek te kyk, met 'n paar kort oorsigte en ek beveel aan dat u die verwysings vir Arduino en Processsing lees vir meer spesifieke inligting. Dit sal u nie leer hoe om te soldeer nie, maar meer oor hoe om Arduino en verwerking te integreer en onderbrekings te gebruik. 'N Groot deel van hierdie leer is deur die lees van die werklike kode, dus maak seker dat u die hele kode deurlees voordat u dit blindelings oplaai en probeer om dit te laat werk.

Voordele bo soortgelyke projekte:

  • Gebruik van onderbrekings vir akkurate meting van hoë spoed
  • Uitgebreide ontfoutingsafdeling vir fototransistors
  • Vuurtempo (ROF) Berekening van rondtes per sekonde (RPS)
  • Rekenaarkoppelvlak op volle skerm - nie handig tydens die geveg nie, maar wonderlik as u die resultate op stroom of Youtube met 'n skermopnemer wil wys.
  • Die moontlikheid om aangepas te word vir Airsoft of Paintball deur slegs die omhulsel te verander
  • Aangepaste PCB's is nie nodig nie (dit sal goed wees in 'n toekomstige opdatering, maar almal kan dit teen 'n relatief lae koste maak
  • Totale koste van minder as $ 10 as onderdele gedeel word en as daar 'n 3D -drukker beskikbaar is - op gelyke voet met die kommersiële koste, met ROF -toevoeging

Stap 1: Vereiste onderdele en gereedskap

Vereiste onderdele en gereedskap
Vereiste onderdele en gereedskap

As u 'n 3D -drukker het, sal dit 'n uitstekende projek vir u wees, aangesien ek die lêers vir die omhulsel sal voorsien. Dateer gerus die omhulsel op. Ek het geen LCD's byderhand nie, maar 'n tweede weergawe sal hopelik 'n LCD hê en 'n WEMOS D1 of soortgelyke WiFi/BT -kaart en 'n battery gebruik. Dit laat data aan op mobiele toestelle en terugvoer in reële tyd - byvoorbeeld hoeveel pyle in die geweer oorbly. Dit word aanbeveel om soldeerervaring op te doen; as u nie gemaklik voel nie, beveel ek aan dat u 'n instruksie volg om te soldeer en waarskynlik ekstra elektroniese komponente te koop.

Vereiste gereedskap:

  1. Soldeerbout
  2. Warm lugblaser/ hittegeweer/ aansteker (as krimp gebruik word)
  3. Draadstroppers
  4. Mini - B USB -kabel (of watter kabel ook al vir u mikrobeheerder benodig word)
  5. Hot Glue Gun of soortgelyk (ek het 'n 3D -drukpen gebruik om alle komponente aan die 3D -gedrukte omhulsel te heg)

Vereiste materiaal:

  1. 22AWG Solid-core wire ex: Solid Core Wire Set 22AWG
  2. Arduino Nano (of soortgelyk, ek het 'n kloon gebruik) bv: 3 x Arduino Nano (kloon)
  3. Weerstandstel (2 x 220 ohm, 2 x 220 k ohm) U kan moontlik suksesvolle afslagweerstands, soos 47k, met 'n laer waarde gebruik, maar ek het toevallig agtergekom dat ek hierdie waarde nodig het om te werk. Die gids vir probleemoplossing gee 'n uiteensetting van hoe u kan bepaal of die weerstand teen die korrekte waarde vir u spesifieke fototransistor en LED -stel is. Daarom beveel ek aan om 'n stel te kry: byvoorbeeld: Weerstandstel
  4. 2 x IR LED ex: IR LED en PhotoTransistor Set
  5. 2 x PhotoTransistor
  6. 1 x 3D -gedrukte omhulsel - in 'n IR -ondeursigtige filament (Hatchbox Silver het gewerk en was die enigste kleur wat ek getoets het)
  7. Volledige projeklêers is hier op GitHub sowel as in die aangehegte zip -lêer beskikbaar. Die STL's is ook hier op Thingiverse beskikbaar.

Stap 2: Breadboard -toets

Broodbord toets
Broodbord toets
Broodbord toets
Broodbord toets

Sodra die elektronika aangekom het, lei soldeersel na die fototransistors en IR Leds ~ 20-30cm vir ontfouting, ek beveel aan dat hierdie hitte krimp. Ek het nie die korrekte grootte hitte krimp nie en moes elektriese band gebruik vir hierdie prototipe. Dit stel u in staat om dit te gebruik vir toetsing in die omhulsel. As u die omhulsel gedruk het en LED's en fototransistors op die regte posisies het, kan u begin toets.

Maak seker dat u Arduino en verwerking geïnstalleer het.

Die zip -lêer aan die begin bevat al die kode sowel as die STL -lêers om die omhulsel te druk.

Gebruik eers Arduino om te ontfout en gebruik slegs verwerking vir finale toetsing (u kan alles in die seriële monitor van Arduino sien).

U kan eenvoudig 'n Nerf -pyltjie deur die chronograaf afvuur met Chronogrpah_Updated.ino geïnstalleer op die Arduino. As dit werk, is u gereed. As dit nie werk nie, sal u die weerstandswaardes waarskynlik moet aanpas. Dit word in die volgende stap bespreek.

'N Bietjie oor hoe die kode werk:

  1. Interrupst stop die kode wanneer 'n pyl deur 'n hek gaan en die tyd in mikrosekondes bepaal
  2. Die snelheid word hiermee bereken en die tyd word gestoor
  3. Die tyd tussen skote word bereken en omgeskakel na rondes per sekonde
  4. Die tyd tussen hekke word bereken en omgeskakel in voet per sekonde op grond van hekafstand.

    Deur twee hekke te gebruik, kan u beter resultate kry met dieselfde tydsberekening (hoeveel van die sensor moet bedek wees) en verminder hysterese

  5. Die spoed en snelheid van die vuur word via seriële deur 'n komma geskei na die seriële monitor in arduino of die verwerkingsskets, wat 'n goeie UI moontlik maak (fokus op verwerking wanneer alles anders werk!).

Stap 3: Toets en ontfouting

As u nie met die aanvanklike toets geslaag het nie, moet ons uitvind wat skeefgeloop het.

Maak die Arduino-voorbeeld AnalogReadSerial oop in File-> Voorbeelde-> 0.1 Basics-> AnalogReadSerial

Ons wil verseker dat die fototransistors werk soos ons verwag. Ons wil hê dat hulle HOOG moet lees as die pyltjie dit nie blokkeer nie, en LAAG as die pyl nie. Dit is omdat die kode Interrupts gebruik om die tyd aan te teken wanneer die pyl die sensor verbysteek, en die tipe onderbreking wat gebruik word, is VAL, wat beteken dat dit sal aktiveer wanneer dit van HOOG na LAAG gaan. Om te verseker dat die pen HOOG is, kan ons die analoog penne gebruik om die waarde van hierdie penne te bepaal.

Laai die Arduino -voorbeeld AnalogReadSerial op en spring van die digitale pen D2 of D3 na A0.

D2 moet die eerste sensor wees en D3 die tweede sensor. Kies 1 om te lees en begin daar. Volg die onderstaande gids om die korrekte oplossing te bepaal op grond van die lesings:

Waarde is 0 of baie laag:

Die waarde moet aanvanklik ongeveer 1000 wees, as dit 'n baie lae waarde of nul het, moet u seker maak dat u LED's korrek bedraad is en nie uitgebrand is nie, sowel as dat hulle goed in lyn is. Ek het my LED's tydens die toets verbrand toe ek 'n weerstand van 100 ohm in plaas van die 220 ohm gebruik het. Dit is die beste om na die datablad van die LED's te kyk om die korrekte weerstandswaarde te bepaal, maar die meeste LED's werk waarskynlik met die 220 ohm -weerstand.

LED's werk, en die waarde is steeds 0 of baie laag:

Die probleem is waarskynlik dat die aftrekweerstand te laag is in weerstand. As u 'n probleem met die 220k -weerstand het, kan u dit hoër as dit verhoog, maar dit kan geraas veroorsaak. U moet seker maak dat u fototransistor nie uitgebrand is nie.

Waarde is 'n middelbereik:

Dit sal baie probleme veroorsaak, meestal valse snellers, of nooit 'n hoogtepunt veroorsaak nie. Ons moet seker maak dat 'n HOOG ontvang word. Om dit te kan doen, benodig ons 'n waarde ~ 600, maar laat ons streef na 900+ om veilig te wees. As u te naby hierdie drempel is, kan u vals snellers veroorsaak, daarom wil ons vals positiewe aspekte vermy. Om hierdie waarde aan te pas, wil ons die aftrekweerstand (220K) verhoog. Ek het dit al 'n paar keer in my ontwerp gedoen, en u hoef dit waarskynlik nie te doen nie, aangesien dit 'n baie groot waarde vir 'n aftrekweerstand is.

Die waarde is baie raserig (spring baie rond sonder eksterne stimuli):

Maak seker dat u bedrading korrek is met die aftrekweerstand. As dit korrek is, moet u die waarde van die weerstand moontlik verhoog.

Die waarde bly by 1000+ vas, selfs as die sensor geblokkeer word:

Maak seker dat u aftrekweerstand korrek bedraad is; dit sal waarskynlik gebeur as daar geen aftrek is nie. As dit nog steeds 'n probleem is, probeer om die aftrekweerstand se waarde te verminder.

Waarde is hoog en gaan na nul wanneer die lig geblokkeer word:

Dit behoort voldoende te wees vir die sensor om te werk, maar ons is moontlik nie vinnig genoeg nie, aangesien die pyl die pad kruis. Daar is 'n mate van kapasitansie in die stroombaan, en met die 220K -weerstand kan dit tyd neem voordat die spanning onder die vereiste drempel val. As dit die geval is, verminder hierdie weerstand tot 100K en kyk hoe die toetse werk.

Sorg dat enige weerstandsveranderinge konsekwent is tussen albei sensors

Deur dieselfde kringe vir beide sensors te verseker, behou dieselfde vertraging tussen die weerstande, wat die beste akkuraatheid van metings moontlik maak.

Skryf 'n opmerking hieronder as u nog probleme ondervind, en ek sal my bes doen om u te help.

Stap 4: Hardeware -samestelling

Hardeware vergadering
Hardeware vergadering
Hardeware vergadering
Hardeware vergadering
Hardeware vergadering
Hardeware vergadering

Soldeer die komponente aan die klein PCB soos hier gesien:

Die leidings vir die LED's en die PhotoTransistors moet ongeveer _ lank wees.

Soldeer die Arduino op die bord en dra die weerstande van die grond af na toeganklike penne. Maak ook seker dat die 4 positiewe drade maklik aan mekaar geheg kan word. As u hiermee probleme ondervind, kan u 'n stuk draad verwyder en aan die einde aan al die leidings soldeer.

Ek het die sensors aan die teenoorgestelde kant van die omhulsel gekoppel, maar ek kan dit ook aanbeveel, solank u die sye konsekwent hou. Ek het die drade in lengte gesny en die drade laas aan elk van die diodes gesoldeer. Ek het die draadroetes effens opgedateer om meer ruimte te bied en minder bekommerd te wees oor die feit dat sommige drade onder die printplaat en ander daaroor is om dit maklik te gebruik. Die STL's is aan die begin van die projek in die volledige zip -lêer van die projek.

Stap 5: Finale vergadering

Finale Vergadering
Finale Vergadering
Finale Vergadering
Finale Vergadering
Finale Vergadering
Finale Vergadering

As u PCB-gate nie ooreenstem met die gate op die hoof chronograaf nie, kan u die elektronika in die omhulsel met tape of warm gom vasmaak; was in plek, maar u resultate kan verskil. Dit is ontwerp om 1.75 mm -filament in die skroefgate in te druk om hitte te plaas, maar die PCB kan ook ingeskroef of vasgeplak word. Die belangrikste deel hier is om te verseker dat die USB -poort toeganklik is.

Bedek die elektronika met die elektroniese omslag. Die opgedateerde lêers moet beter pas as myne en sal hopelik op sy plek druk, maar ek het 'n 3D -drukpen gebruik om die voorblaaie vas te sweis. U is nou gereed om 'n paar pyle af te vuur!

In 'n toekomstige opdatering kan interne drade vir die drade gebruik word, maar die omslae lewer in hierdie geval effens by die Nerf -estetika.

Stap 6: Chronograaf in aksie

Image
Image
Chronograaf in aksie
Chronograaf in aksie

Deur die verwerkingslêer oop te maak: Chronograph_Intitial_Release bied 'n baie goeie gebruikerskoppelvlak vir die chronograaf met beide FPS en RPS (rondtes per sekonde). As u probleme ondervind om aan te sluit, moet u die seriële monitor van u Arduino sluit, moet u moontlik ook die seriële poort in die kode verander, maar dit word opgemerk en moet eenvoudig wees. Druk die spasiebalk op u rekenaar om die maksimum waardes terug te stel.

'N Bietjie oor hoe die kode werk (foto van UI kan hierbo gesien word):

  1. Ontvang insette van die Arduino
  2. Vergelyk dit met vorige insette om die maksimum waarde te vind
  3. Toon die huidige en maksimum waardes in die volle skerm vir maklike visuele terugvoer
  4. Stel die maksimum waarde terug as spasie ingedruk word

Stap 7: Toekomstige planne

'N toekomstige opdatering hiervoor sal die volgende verbeterings insluit. Laat weet my as u ekstra funksies het wat u wil hê, en ek sal dit probeer implementeer.

  1. Sluit 'n LCD -skerm in
  2. Sluit batterye in
  3. Nerf -versoenbare aanhegspunte
  4. Opgedateerde bylae
  5. Ysterbesienswaardighede

Aanbeveel: