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.
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
Re: Arduino-timer för IPSC (Dynamiskt skytte)
Postat: 11 januari 2015, 19:58:31
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
Re: Arduino-timer för IPSC (Dynamiskt skytte)
Postat: 11 januari 2015, 20:10:45
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!
Re: Arduino-timer för IPSC (Dynamiskt skytte)
Postat: 11 januari 2015, 20:53:10
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
Re: Arduino-timer för IPSC (Dynamiskt skytte)
Postat: 11 januari 2015, 22:09:09
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!
Re: Arduino-timer för IPSC (Dynamiskt skytte)
Postat: 11 januari 2015, 23:11:26
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.
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.
Re: Arduino-timer för IPSC (Dynamiskt skytte)
Postat: 12 januari 2015, 06:57:32
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.
Re: Arduino-timer för IPSC (Dynamiskt skytte)
Postat: 12 januari 2015, 09:03:29
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.
Re: Arduino-timer för IPSC (Dynamiskt skytte)
Postat: 12 januari 2015, 09:23:37
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.
Re: Arduino-timer för IPSC (Dynamiskt skytte)
Postat: 12 januari 2015, 09:36:56
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:
Re: Arduino-timer för IPSC (Dynamiskt skytte)
Postat: 12 januari 2015, 09:49:42
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.
/Micke
Re: Arduino-timer för IPSC (Dynamiskt skytte)
Postat: 12 januari 2015, 10:00:35
av XYZanta
Oj, nya poster under tiden jag skrev mitt inlägg, tjena eqlazer!