PlainTargetView - 50m kamera och lampsystem

Här kan du skapa ett raportage om ditt pågående projekt. Det kan vara en ny stock eller kanske ombyggnation av ett helt vapen. Alla trådar skall dock innehålla bilder på ditt projekt.

Moderatorer: Ulrik, Trond Åsly, taxen, Stefan.K, potatiskastare, PerN, mecke, Kari Lindström, Fritz Kraut, Robban

Kategoriregler
Trådar som skapas här skall vara ett pågående projekt som man själv bedriver. Dvs. Inga trådar som innehåller en fråga osv. En projekttråd skall även innehålla en bild eller gärna fler. Trådar som inte uppfylller dessa enkla regler kommer raderas utan förvarning!.
HeyZeus
Inlägg: 1667
Blev medlem: 31 jul 2016, 21:33
Ort: Malmö

PlainTargetView - 50m kamera och lampsystem

Inlägg av HeyZeus »

Hej alla glada!

Ni kanske kommer ihåg mig från tidigare projekt såsom Mitt spottingsystem och Pistoldagbok? bland andra. Nu är det dags för ännu ett: ett kamera, ljus och vibrationssystem som är tänkt att hantera olika sorters pistolskytte upp till 50m.

Istället för fysiska vridmål kommer systemet ha lampor, en webkamera så man kan se varje skotthål och vibrationssensorer som kan kopplas till max 5 tavlor som kan upptäcka ifall man skjutit för sent. Passar träning för PPC, rapid fire pistol, tillämpningsserier, osv osv osv. Även shot timing (beep -> skott).

Grunderna i systemet kommer vara: raspberry pi, wlan, webcam, 1 vibrationssensor, tillval 4 sensorer till. Webapp som körs lokalt. Och givetvis ett batteri.

Status: idag utvärderades wlan-räckvidden. 90m utan problem. Dubbelt så mycket som behövs.

Raspberry finns. Vibrationssensorer finns. Även lysdioder. Större, passande lysdioder får införskaffas senare. Mjukvara från gamla 300m versionen finns och kan agera lookup.

Tänkt lösning: python som sköter all gpio med sensorerna och lamporna. ffmpeg för att mata webcam till disk. Antingen laravel eller python som agerar back-end (presenterar htmln). Front-end blir gamla hederliga html och jquery. Känns som det blir bootstrap. Det får fan räcka med jävla bajsfoundation. Jag kommer att ha hjälp med emballage.

På någon månadstävling tänker jag använda systemet till att, exempelvis, skjuta 5 skott på tid på 5 banor. Eller köra enkelskott på tid (low ready mellan varje), den som skjuter utanför tiden får en blinkande lampa och så får tävlingsledaren anteckna typ -2 poäng eller nåt.

Jag kallar systemet ptv50, pga maxavståndet.

Frågor på det? Nu kör vi.
HeyZeus
Inlägg: 1667
Blev medlem: 31 jul 2016, 21:33
Ort: Malmö

Re: PlainTargetView - 50m kamera och lampsystem

Inlägg av HeyZeus »

Ikväll har jag testat tända / släcka 5 lysdioder och känna av vibrationerna från 5 sensorer.
HeyZeus
Inlägg: 1667
Blev medlem: 31 jul 2016, 21:33
Ort: Malmö

Re: PlainTargetView - 50m kamera och lampsystem

Inlägg av HeyZeus »

gpiozero går att nå remote - nu kan jag utveckla på arbetsstationen men ändå använda kamera och sensorer från raspberryn. Jävla magi är vad det är.

Har skissat på vilka funktioner och finesser mjukvaran ska ha:
  • lampa på / av
  • sensor för vibrationer
  • 5st sådana
  • webcam
  • timer (uppåt)
  • countdown
  • banindelning (lampa + sensor )
  • countdown per bana
  • timer per bana
  • tid mellan skott
  • ta bild
  • blinka nuvarande / tidigare bild (för skotthålen)
På något sätt ska man kunna göra olika saker med ovanstående:
  • 5 skott rapid fire på 5 banor
  • shot timer: lampa på, tid till skott.
  • shot timer med webcam.
  • countdown 15 sekunder, 6 skott (för tillämpningsserier)
  • fritt skytte med kamerabild mellan varje skott
  • 5 banor, timers på alla
  • 5 banor, countdown på alla
  • 5 sek skott, paus, 3 sek skottet, paus
  • 5 sek för 2 skott, paus, 10 sek för 3 skott
  • bana 1 4 sekunders countdown, sedan bana 2 2 sekunders countdown, osv osv osv osv.
  • random bana, countdown x sekunder, sedan nästa random bana.
Det blir komplicerat att koda, men fan så jävla tillfredställande när det fungerar.
HeyZeus
Inlägg: 1667
Blev medlem: 31 jul 2016, 21:33
Ort: Malmö

Re: PlainTargetView - 50m kamera och lampsystem

Inlägg av HeyZeus »

Idag har jag funderat mer på finesserna som behövs och hur jag ska lägga upp allting.

Jag har bestämt mig att det får vara webbläsarenheten som är hjärnan, som räknar ut allting som behövs. Pythonbackenden får lagra data, meddela vad sensorerna säger, ta bilder med webcamen och spara bilderna vid behov, tända och släcka lamporna på kommando.

Stupid backend, smart frontend.

När det gäller frontenden lutar det åt att det blir Vue tillsammans med Bootstrap. Vue utvecklas as privatpersoner som ett riktigt opensource project, till skillnad från Googleägda Angular och Facebookägda React.

Har småbläddrat igenom dokumentationen och det ser hanterbart ut, även om jag inte hunnit greppa hur alla appar kommunicerar mellan varandra på sidan. I appen blir det en sida som gör en sak: testsida, inställningar, rapid fire, fritt skytte, timer, osv.

Det kommer vara lite jobbigt att behöva lära sig något nytt, men slutresultatet kommer att bli mycket renare än med html + jquery. Hoppas jag. Osäker på om det går att köra tester, men vi får se.
fugazi
Inlägg: 2553
Blev medlem: 28 okt 2018, 14:27
Ort: Stockholm

Re: PlainTargetView - 50m kamera och lampsystem

Inlägg av fugazi »

Börja med en bild... så du inte blir av med tråden pga reglerna...
\\ fugazi \\ Magnus \\
HeyZeus
Inlägg: 1667
Blev medlem: 31 jul 2016, 21:33
Ort: Malmö

Re: PlainTargetView - 50m kamera och lampsystem

Inlägg av HeyZeus »

Raspberryn kopplad till 5 lysdioder och 5 vibrationssensorer.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
HeyZeus
Inlägg: 1667
Blev medlem: 31 jul 2016, 21:33
Ort: Malmö

Re: PlainTargetView - 50m kamera och lampsystem

Inlägg av HeyZeus »

Idag har jag fixat det första grundläggande med mjukvaran: python3 och flask.

Det var lite huvudvärk med att försöka få igång modulladdning med python3 (tidigare kamerasystemet byggdes med 2.7) men det gick till slut.

En kameramodul är inlagd och den rapporterar status till själva appen. Hur bra som helst. En sak i taget, iaf.
HeyZeus
Inlägg: 1667
Blev medlem: 31 jul 2016, 21:33
Ort: Malmö

Re: PlainTargetView - 50m kamera och lampsystem

Inlägg av HeyZeus »

Det går skitsnabbt framåt! Efter att ha vaknat mitt i natten började jag programmera och jag har nu fixat ihop programmerbara lampor: på, av, på i x sekunder och även sekvens: på 0.5 sekunder, av 1 sekund, på 1 sekund, av 2 sekunder, på 0.1 sekunder, osv.

Tanken är att enheten ska skicka iväg kommandon till lamporna vid behov.

Nästa steg är att göra något liknande med kameran: på, av, ta bilder, töm bilder, visa bild, visa senaste bild

Sedan liknande för sensorerna.

När det är gjort finns alla grundstenarna för programmet att styra raspberryn som användaren behöver.
HeyZeus
Inlägg: 1667
Blev medlem: 31 jul 2016, 21:33
Ort: Malmö

Re: PlainTargetView - 50m kamera och lampsystem

Inlägg av HeyZeus »

Kameradelen fixad.

Sensordelen fixad. Sensorerna kan automatiskt kopplas till att ta en snapshot när de vibrerar.

I och med detta känns det som grundarbetet är klart.

Imorgon börjar jag sätta ihop htmlgrunden med Bootstrap, javascript, scss, osv. Det blir ett jävla
meck.
status.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
HeyZeus
Inlägg: 1667
Blev medlem: 31 jul 2016, 21:33
Ort: Malmö

Re: PlainTargetView - 50m kamera och lampsystem

Inlägg av HeyZeus »

CSS och fontawesome inne. Det senare är inte testat, men bör fungera.

HTML templating tar jag från gamla projektet och hoppas att det fungerar.
HeyZeus
Inlägg: 1667
Blev medlem: 31 jul 2016, 21:33
Ort: Malmö

Re: PlainTargetView - 50m kamera och lampsystem

Inlägg av HeyZeus »

Bootstrap inne och templatesen fungerar som förr. Skönt.

Jag är riktigt, riktigt nära att göra en test / demosida som visar:
  • Blinkande lampor
  • När sensorerna vibrerar
  • Kamerabilden
Det jag måste göra innan jag gör något mer är att lista ut hur kommunikationen mellan enheten och raspberryn sker. Är det socketio som gäller för vibrationerna? Eller ska enheten själv lista ut att saker har vibrerat genom att jämföra antal vibrationer mellan uppdateringarna?

Jag får sova på saken och hoppas att lösningen kommer till mig av sig själv.
HeyZeus
Inlägg: 1667
Blev medlem: 31 jul 2016, 21:33
Ort: Malmö

Re: PlainTargetView - 50m kamera och lampsystem

Inlägg av HeyZeus »

Miniuppdatering: berättade om systemet för några skyttekollegor. Den enda, som använt 300m systemet, var riktigt impad av att kunna se alla hålen.

Den andre fattade galloppen trots att jag bara använde ord för att förklara hur systemet fungerar. Tänk vad glad han blir när han ser systemet irl.

Sen något annat: jag kom på att det inte kostar mig något att använda socketio för att skicka saker som "bana 2 har vibrerat" och "bild tagen". Det får bli det tillsammans med statusjson.
HeyZeus
Inlägg: 1667
Blev medlem: 31 jul 2016, 21:33
Ort: Malmö

Re: PlainTargetView - 50m kamera och lampsystem

Inlägg av HeyZeus »

Idag har jag lärt mig Vue.

Testläget är igång: man kan se lamporna blinka, man kan se webcam uppdatera sig och man kan se sensorerna vibrera.
testmode1.jpg
Kommunikationen ser medelst Vue och socketio. Riktigt smidigt är det att göra saker i vue om man kan - man behöver inte hålla på med jquery en massa och byta ut klasser till höger och vänster utan det gör Vue åt en. Supernajs.

Nästa del av projektet är riktiga kamera- och lampsystemet, nu när grunden är klar. Ho, ho, ho. Countdown läge först? Eller shot timer? Eller friläge? Så många alternativ...
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
HeyZeus
Inlägg: 1667
Blev medlem: 31 jul 2016, 21:33
Ort: Malmö

Re: PlainTargetView - 50m kamera och lampsystem

Inlägg av HeyZeus »

En hel del framsteg på sistone.

Tråkiga framsteg: det tog mig flera dagar att komma underfund med hur jquery och vue fungerar ihopa (inte alls om de ska dela DOM elements) och hur Vue och Components fungerar (mestadels enkelväg).

Bra framsteg: Kameraläget klarar av visning och bläddring.
browse mode.jpg
Man kan ställa in vilka sensorer orsakar en bildtagning.
settings.jpg
Till inställningarna kommer 5 flikar, där man kan ställa in hur de olika banorna (sensorna / lamporna) ska reagera på tid. I timer och countdownläge blir det så att man kan ställa in maxtid (countdown) och antal skott (timer och countdown).

Timerläge: Ställ in vilka banor reagerar på skott. Hur många skott att regera på tills timern änses "klar".

Simpel timer: bana 1, 1 skott. Så visar den hur lång tid det tar från "lampa på" till skottet.
Svårare timer: bana 1, 1 skott. Bana 2, 1 skott. Bana 3, 1 skott. Systemet visar hur lång tid det tar att pricka alla tre banor 1 gång.
Roligare timer: banor 1-5, 2 skott var. Hur snabbt kan du dubbeltappa 5 banor?

Det kommer att finnas inställning för antal repetitioner och vila mellan repetitionerna.

Frågan är vad man ska kalla varje "repetition". Exercise? Övning? Session? Nej, inte session. Övning känns som bäst hittills. Får sova på saken.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
HeyZeus
Inlägg: 1667
Blev medlem: 31 jul 2016, 21:33
Ort: Malmö

Re: PlainTargetView - 50m kamera och lampsystem

Inlägg av HeyZeus »

Det gick så bra så bra... sen stötte jag givetvis på patrull: raspberryn verkar alldeles för svag att streama webcam till jpg i någorlunda hastighet.

Arbetsdatorn har typ 200ms fördröjning på kameran. Raspberryn har 9 sekunder, och inte alla bilder kommer fram, heller, så frameraten är typ ingenting.

Det var ett enormt problem.

Imorgon tänker jag testa dels en raspberry4 och dels att streama med något annat än ffmpeg. Och sedan har jag även en raspberry kamera som kan ev användas...

Shit. Fan vad jobbigt. :(
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
HeyZeus
Inlägg: 1667
Blev medlem: 31 jul 2016, 21:33
Ort: Malmö

Re: PlainTargetView - 50m kamera och lampsystem

Inlägg av HeyZeus »

Problem löst! Tack vare mjpeg_streamer kan jag nu spotta ut jpgfiler direkt till disk.

Visst, jag behöver en skript för att byta namn på filerna direkt efteråt, men det fungerar!

Väldigt lite processorkraft, nginx inställt på att ge direkttillgång till bilderna och de statiska filerna... jag är redo att time:a!

Men först ska jag fira på något sätt. Vet inte hur, dock. Kanske en kopp te?
HeyZeus
Inlägg: 1667
Blev medlem: 31 jul 2016, 21:33
Ort: Malmö

Re: PlainTargetView - 50m kamera och lampsystem

Inlägg av HeyZeus »

Jag är mycket, mycket nöjd med framgången!

Jag har fört över systemet till en Raspberry4, fixat finwlan med jätteantenn för extra räckvidd, fixat installationsfilerna lite bättre, mockat ihop lite inställningar för "timer" läget.
set1.jpg
set2.jpg
Det känns väldigt bra. I mockupen visas hur timern på bana 1 kommer att vänta x sekunder plus y slumpmässiga sekunder till innan den sätter igång och tar tiden tills den upptäcker 1 skott.

Det svåra är nu att lista ut hur jag ska göra timersystemet, men det är morgondagens projekt.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
HeyZeus
Inlägg: 1667
Blev medlem: 31 jul 2016, 21:33
Ort: Malmö

Re: PlainTargetView - 50m kamera och lampsystem

Inlägg av HeyZeus »

Timersystemet var lite mer komplicerat än jag trodde. Eller hade tid med.

Jag har iaf gjort en väldigt primitiv shot timer som fungerar halvmanuellt än så länge, bara för att testa.
timer.jpg
Bilden visar att bild #2 av 4 togs 10 sekunder efter att timern började. Bilden innan togs 3.38s tidigare.

Just nu håller jag på med övningshanteringen. Jag måste bygga någon form av kösystem i Javascript (av alla jävla språk) som kan hantera de olika tänkta övningarna, på ett så minimalistiskt sätt som möjligt. Alltså övningar som:
  • Timer för ett skott
  • Timer för ett skott, bildvisning
  • Timer för x skott
  • Timer för x skott, bildvisning
  • Timer för ett skott, flera banor
  • Timer för x skott, flera banor
  • Timer för första skottet på flera banor
  • Timer för x skott på flera banor (först till x)
  • Random 1 skott på flera banor
  • Random x skott på flera banor, efter varandra.
Saker jag kommit på:
  • Kösystemet måste kunna vänta på tider
  • Kösystemet måste kunna vänta på träffar, på specifika banor
  • Kösystemet måste kunna vänta på tider eller träffar
  • Kösystemet måste kunna vänta på tider och träffar
  • Inte alla lägen måste ha kamera, in fact är det väldigt få av övningarna som kamera gör sense.
Jag får nog göra en sökning eller två för att se hur man gör kösystemet.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
HeyZeus
Inlägg: 1667
Blev medlem: 31 jul 2016, 21:33
Ort: Malmö

Re: PlainTargetView - 50m kamera och lampsystem

Inlägg av HeyZeus »

Kösystemet fungerar.

Enkelskottstimer fungerar. Hö. Hö. Hö.

Finar till det imorgon och kommer med bilder.
HeyZeus
Inlägg: 1667
Blev medlem: 31 jul 2016, 21:33
Ort: Malmö

Re: PlainTargetView - 50m kamera och lampsystem

Inlägg av HeyZeus »

Här är en film som visar timer- och countdownlägena.

https://plaintargetview.com/wp-content/ ... demo01.ogv

Den kanske visar någorlunda hur systemet är uppbyggt.

När något händer är det jag som nuddar vid sensorn. Lite billigare (och snällare mot öronen) än att skjuta mot sensorn inomhus.

Har redan hittat några buggar som ska fixas...