Arduino-timer för IPSC (Dynamiskt skytte)

Berätta om dina pågående projekt.
Användarvisningsbild
XYZanta
Inlägg: 62
Blev medlem: 11 november 2013, 10:00:37

Arduino-timer för IPSC (Dynamiskt skytte)

Inlägg av XYZanta »

Jag satte igång det här projektet som ett led i mina Arduino-självstudier. Mina programeringskunskaper begränsar sig till script av typ batch/VB/powershell och består till stor del av Cut 'n paste-kod :) Elektronikmässigt är jag oxo rätt grön.
(+ att jag är för snål för att köpa en egen för +1000 kr)
Förhoppningsvis kan det resultera i en användbar, billig timer som andra kan bygga och förbättra.

Vad är IPSC?
En sportskyttegren där det gäller att träffa mål så bra som möjligt på så kort tid som möjlig. Man skjuter med pistol, hagelgevär eller kulgevär i olika klasser.
Läs mer på förbundets hemsida

Vad skiljer en IPSC-timer från ett tidtagarur?
Tiden mäts från startsignal till sista av timern registrerade skottet. Andra intressanta tider är tid till första skott och tid mellan skotten.

Några timers;
CED7000
Speedtimer

Hårdvarukomponenter;
Arduino Nano
0,96" OLED
Ljudsensor med justerbar känslighet
Buzzer

Kod
Kod finns här på GitHub

Bild

Här finns en video av första versionen

Utmaningar och framtida funktioner
Bärbar med allt det innebär av inneslutning och batteridrift
Ekohantering, justerbar känslighet
Kommunicera med stor tidstavla över RF
Kommunicera över bluetooth
Enkelt gränssnitt

/Micke
Senast redigerad av XYZanta 16 januari 2015, 19:35:49, redigerad totalt 3 gånger.
Användarvisningsbild
XYZanta
Inlägg: 62
Blev medlem: 11 november 2013, 10:00:37

Re: Arduino-timer för IPSC (Dynamiskt skytte)

Inlägg av XYZanta »

En sak jag funderat över är är om jag kan koppla en mic till en analog port direkt och och sätta ett gränsvärde liknande det i "Knock"-exemplet för piezo-element. Då skulle jag kunna ha justerbara nivåer via mjukvaran istället för att man måste ta fram skruvmejseln och justera en potentiometer som i dagsläget.

Jag testade bygget igår på en liten inomhusbana med väldigt ofördelaktig akustik. Ekot gjorde att varje skott registrerades som ca 5 st. Jag har en inställning som kontrollerar hur snabbt den kan uppfatta en ny smäll, men jag hade inte datorn med för att ändra och prova. Risken är att skott i snabb följd inte registreras korrekt.

/Micke
Användarvisningsbild
Lennart Aspenryd
Tidigare Lasp
Inlägg: 12607
Blev medlem: 1 juli 2011, 19:09:09
Ort: Helsingborg

Re: Arduino-timer för IPSC (Dynamiskt skytte)

Inlägg av Lennart Aspenryd »

Intressant projekt! Kan säkert användas inom flera områden!
Vad är ekotider för dessa 5 registreringarna. Hur snabbt kan det komma ett andra skott!
Användarvisningsbild
XYZanta
Inlägg: 62
Blev medlem: 11 november 2013, 10:00:37

Re: Arduino-timer för IPSC (Dynamiskt skytte)

Inlägg av XYZanta »

Ja, jag hade den inställd på att vara döv i 10 ms vilket funkar bra för att knäppa med fingrarna hemma :)
Men kommersiella timers pallar inte heller de med ekot på just den här skjutbanan, så det är kanske inget realistiskt mål, i alla fall inte om man skall skjuta snabbt.

Vad som är mekaniskt möjligt skiljer sig från vapen till vapen, och fysisk mellan skyttar, men kanske 0,1 s. Men är man medveten om att man potentiellt filtrerar bort skott så kan det ju vara bra att kunna ha en speciell "profil" för krångliga rum.

Håller på med att koda för möjligheten att ändra inställningar via knappar.

/Micke
Användarvisningsbild
Lennart Aspenryd
Tidigare Lasp
Inlägg: 12607
Blev medlem: 1 juli 2011, 19:09:09
Ort: Helsingborg

Re: Arduino-timer för IPSC (Dynamiskt skytte)

Inlägg av Lennart Aspenryd »

Kan du spela in en snutt ljudupptagning i denna lokal!
Skulle vara kul att se ljudfilen i Audacity och sträcka ut filen!
Användarvisningsbild
orvar-e
EF Sponsor
Inlägg: 5973
Blev medlem: 9 mars 2007, 09:01:32
Ort: Borlänge

Re: Arduino-timer för IPSC (Dynamiskt skytte)

Inlägg av orvar-e »

Kul jag har en tråd om en mackapär som ska styra en lerduvekastare. Har kommit så långt att halva programmet är klart, och kollegan som jag programmerar åt har gjort klart mycket av hårdvaran.

Funktioner på min skapelse blir.
Kasta en duva per rop, eller kasta 2 till 10 i inställbart följd
Kast med samma tidsintervall mellan duvorna eller slumpvis tidsintervall med inställbar max tid.
Skilja på skott och röst, möjlighet till automatisk nivå inställning för triggernivån för röst.

Kod: Markera allt

float volt, micSampel;
int sensorPin;
int sound_level;
   for (int i = 1; i <= 101; i++){
    mic = analogRead(A0)+mic;    }
   micSampel = mic / 100;
Den här kod-snutten hämtar in värde från A0 som mikrofonen är kopplad till. Hämtar in värdet 100 gånger och dividerar sedan värdet med 100 för att få ett snittvärde.
sebastiannielsen
Inlägg: 3663
Blev medlem: 11 september 2004, 09:30:42
Ort: gbg
Kontakt:

Re: Arduino-timer för IPSC (Dynamiskt skytte)

Inlägg av sebastiannielsen »

förslag på 2 funktioner som kan lösa eko-problemet:
Kalibreringsfunktion: Du pangar av ett skott. Programvaran lyssnar och avgör hur många skott det registreras som och hur ekoprofilen ser ut. Ekon filtreras sedan bort.
Skotträknarfunktion: När du är färdig och har skjutit X skott, så trycker du X gånger på en knapp och trycker sedan på en klar-knapp (genom att räkna återstående patroner i magasinet/asken). Nu vet detektorn även hur många skott du verkligen sköt, och kan då räkna ut topparna i alla de värden detektorn hörde, och avgöra vilka som är ekon och riktiga skott.

Allt kan implementeras genom 2 knappar:
Start/Count, Calibrate/Done

Calibrate startar rumskalibrering. Därefter skjuter man ett skott.
Därefter Start, kör session, när du är färdig, tryck ner Start det antal skott du sköt, och sedan Calibrate.
Nästa session påbörjas antingen direkt med Start, om du är i samma skjutbana/rum, annars Calibrate.


Har du båda dessa funktioner så bör ekon inte vara ett problem, även om du skulle råka skjuta ett skott precis när ekot från ett annat skott kommer, och även om du rör dig i lokalen.
Kräver dock att du lagrar analoga värden från micken, och dessutom INTE har någon form av Automatic Gain Compensation på micken.
eqlazer
Inlägg: 923
Blev medlem: 22 september 2007, 13:53:45
Ort: Göteborg

Re: Arduino-timer för IPSC (Dynamiskt skytte)

Inlägg av eqlazer »

Kalibrering på det sättet kan vara svårt att få till eftersom man sedan förflyttar sig under skjutningen. Dvs ljudbilden kommer hela tiden att förändras.

Filtrera eko gör ju de timers som finns på marknaden hyffsat bra, dock får de problem om närliggande station pangar samtidigt.
Nivåskillnad mellan ursprungssmäll och eko lär vara betydande, så får man bara till en lämplig triggnivå så löser sig mycket.
sebastiannielsen
Inlägg: 3663
Blev medlem: 11 september 2004, 09:30:42
Ort: gbg
Kontakt:

Re: Arduino-timer för IPSC (Dynamiskt skytte)

Inlägg av sebastiannielsen »

eqlazer: Oavsett var man står i relation till mikrofonen så borde väl fördröjningen mellan huvudljudet och ekot vara samma, i samma rum? Och samma fördröjning mellan eko och andra-eko. Och samma fördröjning mellan andra-eko och tredje-eko osv?
Triggning med triggernivå lär ju inte fungera alls om man rör sig eftersom ljudet blir lägre ju längre bort man rör sig från mikrofonen. Om timern är buren istället för att läggas på ett bord skulle triggning med triggernivå fungera dock. (och då skulle mätaren bara behöva kalibreras till vapnet ifråga genom inställning av triggernivå)

En bra idé kan ju vara att spela in ljudet med bandspelare under en hel IPSC-session och sedan analysera i audacity så kommer du säkert på en bra algoritm hur man kan "kalibrera" mätaren till olika rum.
eqlazer
Inlägg: 923
Blev medlem: 22 september 2007, 13:53:45
Ort: Göteborg

Re: Arduino-timer för IPSC (Dynamiskt skytte)

Inlägg av eqlazer »

Timern bärs av en domare som följer med skytten mer eller mindre hela tiden. Och eftersom ljudkälla och mikrofon kommer ändra avstånd till omgivningen så kommer ekobilden förändras.
Dock bör väl kanske eko som skapas av de allra närmaste föremålen aktivt filtreras bort (kort tid från smäll) och resterande kunna tas med ljudnivå (längre tid från smällen).

Här är en tävlande som filmats när vi arrangerade SM ifjol:
Användarvisningsbild
XYZanta
Inlägg: 62
Blev medlem: 11 november 2013, 10:00:37

Re: Arduino-timer för IPSC (Dynamiskt skytte)

Inlägg av XYZanta »

Vad kul med så mycket input, stort tack!

@Lasp: Det skall jag försöka fixa!
@Orvar: Det låter som ett projekt i min smak :) vill du ha ett basvärde för "tystnad" att utgå från, eller vad vill du fånga?
@Sebastiannielsen: Kalibrering, det låter bra! Hur jag skall koda det är en annan fråga...

Kan jag köra en kondensatormick direkt på analog, de har väl ingen gain eller nåt inbyggt i hårdvaran?

Jag passade på att ordna visning av tid till första skott och bästa split-tid.
Bild

/Micke
Användarvisningsbild
XYZanta
Inlägg: 62
Blev medlem: 11 november 2013, 10:00:37

Re: Arduino-timer för IPSC (Dynamiskt skytte)

Inlägg av XYZanta »

Oj, nya poster under tiden jag skrev mitt inlägg, tjena eqlazer!

/Micke
eqlazer
Inlägg: 923
Blev medlem: 22 september 2007, 13:53:45
Ort: Göteborg

Re: Arduino-timer för IPSC (Dynamiskt skytte)

Inlägg av eqlazer »

En användare på skytteforum har utvecklat en egen timer, dock anpassad för PPC. Men kanske så kan den ge lite inspiration.
http://www.skytteforum.com/default.aspx ... post277063
Användarvisningsbild
XYZanta
Inlägg: 62
Blev medlem: 11 november 2013, 10:00:37

Re: Arduino-timer för IPSC (Dynamiskt skytte)

Inlägg av XYZanta »

Jag försöker köra Orvars lilla snurra med en liten mic, men den verkar bara öka, aldrig minska värdet. ingen aning om vad som händer...

Jag antar att jag måste veta något om micen för att kunna välja ev. motstånd :(

/Micke
Användarvisningsbild
orvar-e
EF Sponsor
Inlägg: 5973
Blev medlem: 9 mars 2007, 09:01:32
Ort: Borlänge

Re: Arduino-timer för IPSC (Dynamiskt skytte)

Inlägg av orvar-e »

testa samma ingång med en pot
Skriv svar