În acest articol, vom analiza cum puteți realiza un cronograf simplu din piese ieftine și accesibile. adaptare necesare pentru a măsura viteza unui glonț într-o pușcă. Aceste cifre sunt necesare pentru a determina starea puștii, deoarece în timp, unele părți ale pneumaticului se uzează și necesită înlocuire.
Pregătim materialele și instrumentele necesare:
- Digispark chinezesc (la momentul achiziției a costat 80 de ruble);
- afișaj tip segment pe TM1637 (costă 90 de ruble la cumpărare);
- LED-uri infraroșii și fototransistoare (10 perechi) - costul a fost de 110 ruble;
- o sută de rezistoare 220 Ohm costă 70 de ruble, dar doar două dintre ele vor fi necesare.
Asta e tot, aceasta este întreaga listă de articole pe care va trebui să le cumpărați. Apropo, rezistențele pot fi găsite și în aparatele electrocasnice vechi. Puteți paria mai mult la valoarea nominală, dar nu mai puțin. Drept urmare, puteți păstra în termen de 350 de ruble, dar acest lucru nu este atât de mult, având în vedere că cronograful din fabrică va costa cel puțin 1000 de ruble, iar montajul acolo este mult mai rău decât al nostru de casă.
Printre altele, trebuie să vă aprovizionați cu detalii precum:
- fire;
- o bucată de țeavă cu o lungime de cel puțin 10 cm (este adecvată o conductă de apă din plastic);
- totul pentru lipire;
- multimetru (opțional).
Primele trei detalii descrise au nuanțe proprii, astfel încât fiecare dintre ele trebuie să fie luate în considerare separat
Digispark
Acest articol este o placă de circuit în miniatură compatibilă ArduinoLa bord are un ATtiny85. Cum puteți conecta acest element la Arduino IDE, puteți citi mai departe, puteți descărca driverele acolo.
Această placă are mai multe opțiuni, una folosește microUSB, iar cealaltă este echipată cu un conector USB, care este conectat direct pe placă. Datorită faptului că produsul de casă nu are o sursă de alimentare individuală, autorul a ales prima versiune a plăcii. Dacă instalați o baterie sau o baterie într-un produs de casă, acest lucru va crește considerabil prețul și nu va afecta foarte mult practicitatea. Și aproape toată lumea are un cablu pentru încărcarea unei bănci mobile și Power.
În ceea ce privește caracteristicile, acestea sunt similare cu ATtiny85, aici capacitățile sale sunt abundente. Microcontrolerul din cronograf interogă doar senzorii și controlează afișajul.
Dacă nu l-ați întâlnit niciodată pe Digispark, cele mai importante nuanțe pot fi găsite în tabel.
Este important să avem în vedere faptul că numerotarea pinului pentru funcția analogRead () are diferențe. Și pe cel de-al treilea pin se află un rezistor pull-up cu o valoare nominală de 1,5 kOhm, deoarece este utilizat în USB.
Câteva cuvinte despre afișaj
Oricine poate folosi afișajul pentru casă, dar autorul a optat pentru o opțiune ieftină. Pentru a face dispozitivul și mai ieftin, puteți abandona complet ecranul. Datele pot fi pur și simplu transmise prin cablu către un computer. Va fi nevoie aici. Afișajul în cauză este o copie a afișajului.
Cum arată imaginea în față și în spate se poate vedea în fotografie.
Deoarece distanțele dintre numere sunt aceleași, atunci când colonul este dezactivat, numerele sunt citite fără probleme. Biblioteca standard este capabilă să afișeze numere în intervalul 0-9. litere din intervalul a-f, și există încă posibilitatea de a schimba luminozitatea întregului afișaj. Valorile cifrelor pot fi setate folosind funcția de afișare (int 0-3, int 0-15).
Cum se utilizează afișajul
Dacă încercați să depășiți valorile [0, 15], afișajul va afișa confuzie, care, pe lângă toate celelalte, nu este statică. Prin urmare, pentru a afișa caractere speciale, cum ar fi grade, minusuri etc., trebuie să faceți tinker.
Autorul a dorit ca pe afișaj să se afișeze energia finală a zborului glonțului, care va fi calculată în funcție de viteza glonțului și de masa sa. Valorile conform ideii trebuiau afișate secvențial, dar pentru a înțelege unde anume ar trebui notat, de exemplu, folosind litera „J”. În cazuri extreme, puteți folosi pur și simplu colonul, dar autorului nu i-a plăcut, iar el a urcat în bibliotecă. Drept urmare, pe baza funcției de afișare, a fost realizată funcția setSegments (byte addr, byte data), luminează segmentele codificate în date în număr cu număr adr .:
Astfel de segmente sunt codificate destul de simplu, bitul cel mai puțin semnificativ de date este responsabil pentru segmentul superior, iar apoi în sensul acelor de ceasornic, bitul al 7-lea este responsabil pentru segmentul de mijloc. Caracterul "1" atunci când este codat arată 0b00000110. Cel de-al optulea bit semnificativ este responsabil pentru colon, este folosit în a doua cifră, iar în toate celelalte este ignorat. Ulterior, autorul a automatizat procesul de obținere a codurilor folosind Excel.
Ceea ce până la urmă s-a întâmplat poate fi văzut în fotografie
În cele din urmă, senzorii
Nu au fost furnizate informații exacte despre senzori, doar se știe că acestea au o lungime de undă de 940 nm. În timpul experimentelor, s-a constatat că senzorii nu sunt capabili să reziste la curenți de peste 40 mA. În ceea ce privește tensiunea de alimentare, aceasta nu trebuie să fie mai mare de 3,3 V. În ceea ce privește fototransistorul, acesta are un corp ușor transparent și reacționează la lumină.
Procedăm la asamblarea și configurarea caselor:
Primul pas. asamblare
Totul este asamblat după o schemă foarte simplă. Dintre toate pinii, vor fi necesare doar P0, P1 și P2. Primele două sunt utilizate pentru afișaj, iar P2 este necesar pentru senzori.
După cum vedeți, un singur rezistor este utilizat pentru a limita curentul pentru LED-uri, dar al doilea trage P2 la sol. Datorită faptului că fototransistorii sunt conectați în paralel, când glonțul trece prin fața oricărui optocuplaș, tensiunea pe P2 va scădea. Pentru a determina viteza de zbor a unui glont, trebuie să cunoașteți distanța dintre senzori, să măsurați două tensiuni de putere și să determinați timpul în care au avut loc.
Datorită faptului că va fi utilizat un singur ac, nu contează din ce parte să tragă. Fototransistorii vor observa oricum un glonț.
Toate detaliile care sunt vizibile în fotografie sunt colectate. Pentru a colecta totul, autorul a decis să folosească o panou. Apoi, întreaga structură a fost acoperită cu lipici fierbinte pentru rezistență. Senzorii sunt așezați pe țeavă și firele sunt lipite de ele.
Pentru a preveni pulsarea diodelor atunci când este alimentată de o bancă de energie, autorul a instalat un electrolit la 100 mKf în paralel cu ledurile.
De asemenea, este important de menționat că pinul P2 a fost ales dintr-un motiv, fapt este că P3 și P4 sunt utilizate în USB, astfel încât acum cu ajutorul P2 există posibilitatea de a flash flash de casă după asamblare.
P2 este, de asemenea, o intrare analogică, deci nu este necesară utilizarea întreruperii. Puteți măsura pur și simplu citirile între valorile curente și cele anterioare, dacă diferența devine mai mare decât un anumit prag, atunci în acel moment glonțul trece doar lângă optocuplaș.
Pasul doi inserare
Prescaler este un divizor de frecvență, în cazuri standard în tablouri precum Arduino este 128. Această cifră afectează cât de des este ADC. Adică, în mod implicit, 16 MHz, iese 16/128 = 125 kHz. Fiecare digitalizare constă în 13 operații, astfel încât știftul poate fi interzis cât mai mult cu o viteză de 9600 kHz. În practică, aceasta nu este mai mare de 7 kHz. Drept urmare, intervalul dintre măsurători este de 120 μs, ceea ce este prea mult pentru munca de casă. Dacă glonțul zboară cu o viteză de 300 m / s, va depăși o cale de 3,6 cm în acest timp, adică controlerul pur și simplu nu va putea să-l observe. Pentru ca totul să funcționeze corect, intervalul dintre măsurători ar trebui să fie de cel puțin 20 μs. Pentru aceasta, valoarea divizorului trebuie să fie egală cu 16. Autorul a făcut un divizor 8, cum se poate face acest lucru, se poate vedea mai jos.
Ce s-a întâmplat să înveți în timpul experimentului, se poate vedea în fotografie
Logica firmware-ului are mai multe etape:
- măsurarea diferenței de valori pe știft înainte și după;
- dacă diferența depășește pragul, atunci bucla se stinge și timpul actual (micros ()) este amintit;
- al doilea ciclu funcționează similar cu primul și are un contor de timp în ciclu;
- dacă contorul a atins valoarea setată, atunci este trimis un mesaj de eroare și trecerea la starea inițială. În acest caz, ciclul nu merge în eternitate dacă glonțul nu a fost prins brusc de al doilea senzor;
- dacă contorul nu se revarsă și diferența de valoare este mai mare decât pragul, se măsoară timpul curent (micros ());
- Acum, pe baza diferenței de timp și distanță dintre senzori, puteți calcula viteza de zbor a glonțului și afișa informațiile pe ecran. Ei bine, atunci totul începe din nou.
Etapa finală. testarea
Dacă totul este făcut corect, dispozitivul va funcționa fără probleme. Singura problemă este răspunsul slab la iluminarea fluorescentă și LED, cu o frecvență de umplere de 40 kHz. În acest caz, pot apărea erori în dispozitiv.
Lucrări de casă în trei moduri:
După pornire, există un salut și apoi ecranul este umplut cu dungi, acest lucru indică faptul că dispozitivul așteaptă o fotografie
Dacă există erori, este afișat mesajul „Err”, apoi modul de așteptare este activat.
Ei bine, atunci vine măsurarea vitezei
Imediat după împușcare, dispozitivul va afișa viteza glonțului (indicată de simbolul n), iar apoi vor fi afișate informații despre energia glonțului (simbolul J). Când este afișată o jouelă, este afișat și un colon.