The required components for Athletics Photo Timing have been assembled. Now to “stitch” them together.

The envisaged components of the completed Photo Finish system are 3 systems, an Arduino RPI Pico W Sketch, an Android Phone MAUI app and a Windows Desktop WPF app. The Arduino Sketch is at is complete. The Android app is at this stage is 3 separate apps; the complementaryMAUI Pico Buttons app, the MAUI Video capture app and teh TCP Client. The desktop consists of two app; the TCP Service and the VideoStitcher app. The task now is to integrate them into just three system.

flowchart LR subgraph ANDROID[Arduino Pico W Sketch] A1["Button1"] A2["Button2"] A3["Button3"] A0["Pico\nSwitches\nSketch"] L1["LED1"] L2["LED2"] L3["LED3"] end subgraph MAUI[Android Phone\nMAUI App] B1["Switches"] B2["Record Video\nMAUI App"] B3["Start"] B4["Gun"] B5["TCP Client"] B6["Stop "] end subgraph WPF[Windows Desktop\nWPF App] C1["TCP Service"] C2["ImageStitcher"] end %% Bluetooth arrows A1 -->A0 A2 -->A0 A3 -->A0 A0 -- < Bluetooth (Set) --> B1 B1 -- Bluetooth (Trigger) >--> A0 A0 --> L1 A0 --> L2 A0 --> L3 %% Virtual switches trigger app features B1 -- "(Start/Gun/Stop)" --> B2 B2 -- "Trigger" --> B1 %% Start/Stop and Gun go to the virtual switches B3 -.-> B1 B4 -.-> B1 B6 -.-> B1 %% Record Video app links to TCP Client B2 --> B5 %% TCP Client goes to TCP Service (in the Windows App) B5 <--> C1 %% TCP Service triggers Image Stitcher C1 --> C2

The 3 Photo Finish Components

sequenceDiagram actor Pico Sketch actor Button Press actor Audio(Gun) actor Video Capture actor Post Processing actor TCP Client actor TCP Service actor Pre Processing actor WPF Video Stitcher App Pico Sketch->>Video Capture: Preview & Options Pico Sketch->>Video Capture: Pre Gun Fire Pico Sketch->>Video Capture: Start Video Capture Button Press->>Video Capture: Manual Start Audio(Gun)->>Video Capture: Fire Pico Sketch->>Video Capture: Gun Fire Button Press->>Video Capture: Manual Gun Fire Pico Sketch->>Video Capture: Stop Button Press->>Video Capture: Manual Stop Video Capture->>Post Processing: Meta-data Video Capture->>Post Processing: Video Post Processing->>TCP Client: Video + Meta TCP Client->>TCP Service: Checksum TCP Client->>TCP Service: Video Filename TCP Client->>TCP Service: Video + Meta TCP Service->>TCP Client: OK TCP Service->>Pre Processing: Video + Meta Pre Processing->>WPF Video Stitcher App: Video Capture Start Type Pre Processing->>WPF Video Stitcher App: Video with embedded meta-data

The Photo Finish Sequence Diagram


Mermaid

These diagrams were created using Mermaid


Components

Photo Finish Components


1. Remote Buttons


Blue Buttons Arduino Sketch Hardware

MAUI Android PhoneApp Virtual Buttons


2. Video Recording


MAUI Android Phone Video Recording App Phases


3.TCP Transfer


MAUI Android SendVideo TCP Client App and WPF TCP Service App


4. AthsVideoStitcher


AthsVideoStitcher

Athletes identified

AthsVideoStitcher with video frame showing for athlete crossing finish line

Conclusions

That leaves 3 apps to integrate on the phone, two on the desktop and none in the Arduino context.!

Further work

  • It is envisaged that a more remote device should be developed to handle the gun, it’s normally at least 100m away from the start. Later
  • Also, rather than taking the middle line of the video frame, a better option would be to use the the most white line near the centre, for each video frame for the stitched image. This would compensate for if the phone is not perfectly still whilst taking the finish video. You can see above that the centre line is rarely completely white. Some active stabilization before would also help.

 TopicSubtopic
   
 This Category Links 
Category:Application Dev Index:Application Dev
  Next: > Jekyll
<  Prev:   Photo Finish Update