High-Level-Design#
The PumaGuard system consists of three main components:
Central Unit
This unit contains the inference machine which processes the incoming photos from the Trailcam Units. If a Puma was identified, the central unit activates lights and sound through one of the Output units.
flowchart TB A("New files from Trailcam Unit?") -- No --> E("Wait") --> A A -- Yes --> B("Run ML model") B --> C("Was a Puma detected?") C -- No --> A C -- Yes --> D("Request lights and sound from Output Unit")Fig. 2 Flowchart of Central Unit#
Trailcam Unit
This unit contains a trailcam and a small processing unit. The processing unit monitors the camera for new photos and sends new photos to the Central unit for processing.
flowchart TB A("New files on SD Card?") -- No --> C("Wait") --> A A -- Yes --> B("Send new files to Central Unit")Fig. 3 Flowchart of Trailcam Unit#
Output Unit
The output unit contains a speaker and lights for scaring the puma away. The speaks and lights are controlled by a small processing unit which gets instructions from the Central unit.
flowchart TB A("Turn on speakers and lights?") -- No --> C("Wait") --> A A -- Yes --> B("Turn on speakers and light")Fig. 4 Flowchart of Output Unit#
Below a schematic of the setup. Note that there can be multiple Trailcam and Output units.
architecture-beta
group central(cloud)[Central Unit]
service pi(server)[Pi] in central
service ap(internet)[AP] in central
group camera_1(disk)[Trail Cam]
service trailcam_1(camera)[Trailcam] in camera_1
service pizero_camera_1(server)[Pi Zero] in camera_1
group camera_2(disk)[Trail Cam]
service trailcam_2(camera)[Trailcam] in camera_2
service pizero_camera_2(server)[Pi Zero] in camera_2
group output_1(speakers)[Output]
service speaker_1(speaker)[Speaker] in output_1
service lights_1(light)[Lights] in output_1
service pizero_output_1(server)[Pi Zero] in output_1
group output_2(speakers)[Output]
service speaker_2(speaker)[Speaker] in output_2
service lights_2(light)[Lights] in output_2
service pizero_output_2(server)[Pi Zero] in output_2
pizero_camera_1:B -- B:ap
pizero_camera_2:B -- B:ap
pizero_output_1:B -- B:ap
pizero_output_2:B -- B:ap
pizero_camera_1:B -- B:trailcam_1
pizero_camera_2:B -- B:trailcam_2
pizero_output_1:B -- B:speaker_1
pizero_output_1:B -- B:lights_1
pizero_output_2:B -- B:speaker_2
pizero_output_2:B -- B:lights_2
pi:B -- B:ap
Fig. 5 High-Level-Design of units#