Sommario:

Nerf Chronograph e Rate of Fire Barrel: 7 passaggi
Nerf Chronograph e Rate of Fire Barrel: 7 passaggi

Video: Nerf Chronograph e Rate of Fire Barrel: 7 passaggi

Video: Nerf Chronograph e Rate of Fire Barrel: 7 passaggi
Video: [REVIEW] Nerf Modulus Chronobarrel | Velocity + Ammo Counting! HOLY TACTICS, BATMAN! 2024, Luglio
Anonim
Image
Image
Cronografo Nerf e Rate of Fire Barrel
Cronografo Nerf e Rate of Fire Barrel

introduzione

Come riparatore è sempre molto soddisfacente vedere i risultati numerici del tuo armeggiare. Molti di noi hanno già modificato le pistole Nerf e chi non ama lanciare pezzi di schiuma in tutta la casa a oltre 100 fps?

Dopo aver modificato molte pistole Nerf nel corso della mia vita, a partire da quando avevo ~10 anni con mio padre fino ad ora, quando io e i miei coinquilini continuiamo a lanciarci schiuma nell'appartamento, ho sempre voluto sapere esattamente quanto velocemente volano le freccette, e quante freccette al secondo sparano i miei compagni di stanza Rapid-Strike. Sono disponibili cronografi commerciali per Nerf e Airsoft, ma quelli ad alta precisione sono costosi ed è divertente costruirne uno da soli. Se vuoi acquistarne uno, Nerf ha rilasciato un barile quasi identico a quello presentato in questo progetto (con un design industriale migliore) e può essere trovato qui:

Nerf Modulus Ghost-Ops Chrono Barrel

La versione Nerf è anche alimentata a batteria e visualizza un contatore per i dardi sparati. L'Instructable qui include anche uno schermo e un pulsante di ripristino, tuttavia si basa sulla lunghezza del dardo per il calcolo della velocità e non sembra utilizzare interruzioni. Il focus principale di questo progetto sarà sulla comunicazione seriale (come un semplice esempio come questo non era il più facile da trovare online), e l'uso di interrupt per un timing accurato. Questo può essere facilmente convertito in un cronografo softair per gli stessi motivi con un involucro più stretto e un sistema di montaggio migliore per le pistole softair. Senza l'utilizzo di interruzioni, il codice può essere più lento e meno efficiente, inoltre è molto più difficile cronometrare accuratamente i microsecondi poiché i millisecondi non produrranno valori accurati per la velocità del dardo.

Non mi concentrerò troppo sul design del contenitore sebbene i file STL siano disponibili in GitHub, perché chiunque può semplicemente acquistare la versione Nerf che è decisamente migliore per il gioco reale, ma una versione futura di questo potrebbe mitigare i risultati.

Principi di base (risultati di apprendimento):

  • Ha la forma di un barile Nerf standard
  • Uso di fototransistor come porte di temporizzazione per il dardo.
  • Mostra l'uso degli interrupt di Adruino per il cronometraggio
  • Utilizzo dell'elaborazione con Arduino per la comunicazione seriale

Ambito del progetto:

Ho intenzione di esaminare principalmente le specifiche di questo progetto con alcune brevi panoramiche e consiglio di leggere i riferimenti per Arduino e Processing per informazioni più specifiche. Questo non ti insegnerà come saldare, ma più come integrare Arduino e Processing e utilizzare gli interrupt. Gran parte di questo apprendimento avverrà attraverso la lettura del codice effettivamente commentato, quindi assicurati di leggere tutto il codice prima di caricarlo alla cieca e tentare di farlo funzionare.

Vantaggi rispetto a progetti simili:

  • Utilizzo degli interrupt per la misurazione accurata dell'alta velocità
  • Ampia sezione di debug per fototransistor
  • Calcolo della cadenza di fuoco (ROF) che produce colpi al secondo (RPS)
  • Interfaccia computer a schermo intero: non utile durante la battaglia, ma ottima se vuoi mostrare ad altri i risultati in streaming o su Youtube con uno screen recorder.
  • Possibilità di adattamento per softair o paintball modificando solo l'involucro
  • Non c'è bisogno di PCB personalizzati (Sarebbe bello in un aggiornamento futuro, ma chiunque può farlo a un costo relativamente basso)
  • Costo totale inferiore a $ 10 quando le parti vengono separate e se è disponibile una stampante 3D - Alla pari con il costo commerciale, con aggiunta di ROF

Passaggio 1: parti e strumenti necessari

Parti e strumenti richiesti
Parti e strumenti richiesti

Se hai una stampante 3D, questo sarà un ottimo progetto per te poiché fornirò i file per l'allegato. Sentiti libero di aggiornare la custodia. Non avevo LCD a portata di mano, ma si spera che una seconda versione avrà un LCD e utilizzerà un WEMOS D1 o una scheda WiFi/BT simile e una batteria. Ciò consentirà la registrazione dei dati su dispositivi mobili e un feedback in tempo reale, ad esempio quante freccette sono rimaste nella pistola. Si consiglia una certa esperienza di saldatura, se non ti senti a tuo agio ti consiglio di seguire un Instructable per la saldatura e probabilmente di acquistare componenti elettronici extra per ogni evenienza.

Strumenti richiesti:

  1. Saldatore
  2. Soffiatore ad aria calda/ Pistola termica/ Accendino (se si utilizza termoretraibile)
  3. Spelafili
  4. Cavo USB Mini - B (o qualsiasi cavo richiesto per il micro controller)
  5. Pistola per colla a caldo o simile (ho usato una penna di stampa 3D per collegare tutti i componenti all'involucro stampato in 3D)

Materiali richiesti:

  1. 22AWG Cavo a nucleo solido es: Set di cavi a nucleo solido 22AWG
  2. Arduino Nano (o simile, ho usato un clone) es: 3 x Arduino Nano (clone)
  3. Kit resistore (2 x 220 ohm, 2 x 220k ohm) Potresti essere in grado di utilizzare resistori pulldown di valore inferiore come 47k con successo, mi è capitato di scoprire che avevo bisogno di questo valore per farlo funzionare. La guida alla risoluzione dei problemi illustra come determinare se il resistore di pulldown è il valore corretto per il fototransistor e il set di LED specifici. Per questo motivo consiglio di prendere un set: es: Resistor Set
  4. 2 x LED IR es: LED IR e set fototransistor
  5. 2 x fototransistor
  6. 1 x Custodia stampata in 3D - In un filamento IR opaco (Hatchbox Silver ha funzionato ed era l'unico colore che ho testato)
  7. I file di progetto completi sono disponibili qui su GitHub e nel file zip allegato. Gli STL sono disponibili anche su Thingiverse qui.

Passaggio 2: test breadboard

Test del tagliere
Test del tagliere
Test del tagliere
Test del tagliere

Una volta che l'elettronica è arrivata, la saldatura porta ai fototransistor e ai LED IR ~ 20-30 cm per il debug, consiglio di termorestringerli. Non avevo il termoretraibile delle dimensioni corrette e ho dovuto utilizzare del nastro isolante per questo prototipo. Ciò consentirà di utilizzarli per i test nel recinto. Se hai stampato la custodia e hai LED e fototransistor nelle posizioni corrette, puoi iniziare il test.

Assicurati di avere Arduino e Processing installati.

Il file zip all'inizio ha tutto il codice così come i file STL per la stampa dell'allegato.

Usa Arduino per eseguire il debug all'inizio e usa l'elaborazione solo per i test finali (puoi vedere tutto nel monitor seriale da Arduino).

Puoi provare semplicemente a sparare un dardo Nerf attraverso il cronografo con Chronogrpah_Updated.ino installato su Arduino. Se funziona, allora sei a posto. Se questo non funziona, probabilmente dovrai regolare i valori del resistore. Questo è discusso nel passaggio successivo.

Un po' di come funziona il codice:

  1. Interrompere interrompe il codice ogni volta che un dardo attraversa un cancello e determina il tempo in microsecondi
  2. La velocità viene calcolata con questo e il tempo viene memorizzato
  3. Il tempo tra i colpi viene calcolato e convertito in colpi al secondo
  4. Il tempo tra i gate viene calcolato e convertito in piedi al secondo in base alla distanza del gate.

    L'uso di due porte consente di ottenere risultati migliori con tempistiche identiche (quanto del sensore deve essere coperto) e riduce l'isteresi

  5. La velocità e la velocità di fuoco vengono inviate tramite seriale separate da una virgola al monitor seriale in arduino o allo schizzo di elaborazione che consente una bella interfaccia utente (concentrarsi sull'elaborazione quando tutto il resto funziona!).

Passaggio 3: test e debug

Se non hai avuto successo con il test iniziale, dobbiamo capire cosa è andato storto.

Apri l'esempio di Arduino AnalogReadSerial trovato in File-> Esempi->0.1 Basics -> AnalogReadSerial

Vogliamo assicurarci che i fototransistor funzionino come ci aspettiamo. Vogliamo che leggano ALTO quando il dardo non li blocca e BASSO quando il dardo non lo è. Questo perché il codice utilizza gli interrupt per registrare l'ora in cui il dardo attraversa il sensore e il tipo di interrupt utilizzato è FALLING, il che significa che si attiverà quando si passa da ALTO a BASSO. Per garantire che il pin sia ALTO, possiamo utilizzare i pin analogici per determinare il valore di questi pin.

Carica l'esempio Arduino AnalogReadSerial e salta dal pin digitale D2 o D3 a A0.

D2 dovrebbe essere il primo sensore e D3 dovrebbe essere il secondo sensore. Scegli 1 da leggere e inizia da lì. Segui la guida di seguito per determinare la soluzione corretta in base alle letture:

Il valore è 0 o molto basso:

Il valore dovrebbe essere inizialmente intorno a 1000, se sta leggendo un valore molto basso o zero, assicurati che i tuoi LED siano cablati correttamente e non bruciati, oltre che allineati bene. Ho bruciato i miei LED durante i test quando utilizzavo un resistore da 100 ohm anziché da 220 ohm. È meglio fare riferimento alla scheda tecnica dei LED per determinare il valore corretto del resistore, ma la maggior parte dei LED probabilmente funzionerà con il resistore da 220 ohm.

I LED funzionano e il valore è ancora 0 o molto basso:

Il problema è probabilmente che il resistore di pull down ha una resistenza troppo bassa. Se hai un problema con il resistore da 220k, potresti forse aumentarlo più in alto di questo, ma potresti ottenere rumore. Dovresti assicurarti che il tuo fototransistor non sia bruciato.

Il valore è un intervallo medio:

Ciò causerà molti problemi, per lo più falsi trigger, o non causerà mai uno sballo. Dobbiamo assicurarci che venga ricevuto un ALTO, per farlo abbiamo bisogno di un valore ~ 600 ma cerchiamo di puntare a 900+ per essere sicuri. Essere troppo vicini a questa soglia può causare falsi trigger, quindi vogliamo evitare falsi positivi. Per regolare questo valore, vogliamo aumentare la resistenza di pulldown (220K). L'ho già fatto alcune volte nel mio progetto e probabilmente non dovrai farlo poiché questo è un valore molto grande per un resistore pull-down.

Il valore è molto rumoroso (salta molto senza stimoli esterni):

Assicurati che il cablaggio sia corretto con la resistenza di pull-down. Se questo è corretto, potrebbe essere necessario aumentare il valore del resistore.

Il valore è bloccato a 1000+, anche quando si blocca il sensore:

Assicurati che il tuo resistore pull-down sia cablato correttamente, è probabile che ciò accada se non c'è pull-down. Se questo è ancora un problema, prova a ridurre il valore del resistore pull-down.

Il valore è alto e va a zero quando si blocca la luce:

Questo dovrebbe essere sufficiente per far funzionare il sensore, tuttavia potremmo non essere una risposta abbastanza veloce quando il dardo attraversa il percorso. C'è una certa capacità nel circuito e con il resistore da 220K potrebbe essere necessario del tempo prima che la tensione scenda al di sotto della soglia richiesta. In tal caso, ridurre questa resistenza a 100K e vedere come funzionano i test.

ASSICURARSI CHE QUALSIASI CAMBIAMENTO DELLA RESISTENZA SIANO COERENTI TRA ENTRAMBI I SENSORI

Garantire circuiti identici per entrambi i sensori mantiene la stessa latenza tra i resistori che consentirà la migliore precisione nelle misurazioni.

Se hai altri problemi, lascia un commento qui sotto e farò del mio meglio per aiutarti.

Passaggio 4: assemblaggio dell'hardware

Assemblaggio hardware
Assemblaggio hardware
Assemblaggio hardware
Assemblaggio hardware
Assemblaggio hardware
Assemblaggio hardware

Saldare i componenti al piccolo PCB come mostrato qui:

I cavi dei LED e dei fototransistor dovrebbero essere tagliati a misura, circa _.

Salda l'Arduino sulla scheda e collega i resistori da terra ai pin accessibili. Inoltre, assicurati che i 4 fili positivi possano essere facilmente collegati insieme. Se hai problemi con questo, puoi spellare un pezzo di filo e saldarlo su tutti i cavi alla fine.

Ho collegato i sensori al lato opposto dell'involucro, tuttavia sentiti libero di cablare entrambi purché mantieni i lati coerenti. Ho tagliato i fili a misura e saldato i fili a ciascuno dei diodi per ultimi. Ho aggiornato leggermente l'instradamento dei cavi per fornire più spazio e meno preoccupazioni per avere alcuni cavi sotto il PCB e altri sopra per un facile utilizzo. Gli STL si trovano nel file zip completo del progetto all'inizio del progetto.

Passaggio 5: assemblaggio finale

Assemblea finale
Assemblea finale
Assemblea finale
Assemblea finale
Assemblea finale
Assemblea finale

Se i fori del tuo PCB non corrispondono ai fori sul corpo del cronografo principale, puoi probabilmente fissare l'elettronica nella custodia con del nastro adesivo o della colla a caldo, ho scoperto che non era necessario fissarlo dopo il cavo e l'USB erano a posto, tuttavia i risultati potrebbero variare. È progettato per consentire la pressatura del filamento da 1,75 mm nei fori delle viti per il picchettamento a caldo, tuttavia il PCB può anche essere avvitato o incollato. La parte più importante qui è garantire che la porta USB sia accessibile.

Copri l'elettronica con la copertura dell'elettronica, i file aggiornati dovrebbero adattarsi meglio del mio e si spera che si premono in posizione, tuttavia ho utilizzato una penna di stampa 3D per saldare le coperture in posizione. Ora sei pronto per sparare alcune freccette!

Un futuro aggiornamento potrebbe utilizzare l'instradamento interno per i cavi, ma le coperture in questo caso cedono leggermente all'estetica Nerf.

Passaggio 6: cronografo in azione

Image
Image
Cronografo in azione
Cronografo in azione

L'apertura del file di elaborazione: Chronograph_Intitial_Release consentirà un'interfaccia utente davvero piacevole per il cronografo che visualizza sia FPS che RPS (round al secondo). Se hai problemi di connessione assicurati di aver chiuso il monitor seriale Arduino, potresti anche dover cambiare la porta seriale nel codice, ma questo è commentato e dovrebbe essere semplice. Per ripristinare i valori massimi è sufficiente premere la barra spaziatrice sul computer.

Un po 'di come funziona il codice (la foto dell'interfaccia utente può essere vista sopra):

  1. Riceve input da Arduino
  2. Confronta questo con l'input passato per trovare il valore massimo
  3. Visualizza i valori attuali e massimi a schermo intero per un facile feedback visivo
  4. Reimposta il valore massimo quando viene premuto lo spazio

Passaggio 7: piani futuri

Un aggiornamento futuro per questo includerà i seguenti miglioramenti. Se hai funzionalità aggiuntive che desideri, fammelo sapere e cercherò di implementarle.

  1. Includi schermo LCD
  2. Includi batterie
  3. Punti di attacco compatibili con Nerf
  4. Allegato aggiornato
  5. Mirini di ferro

Consigliato: