Project

General

Profile

Camera » History » Version 3

Hammel, 12 Nov 2019 21:13

1 1 Hammel
h1. Camera
2
3 2 Hammel
_This is only in the idea stage.  No development on this has started._
4
5 1 Hammel
Making remote camera controlled by Ironman has been an interesting problem.  Many solutions use Arduinos.  But then I ran across an interesting idea using a "RPi Zero W set inside a dummy camera housing":https://youtu.be/H7p5YEOrlSc.  That led me to think about how I can use PiBox directly instead of using an Arduino based solution.
6
7
table{align=center}.
8 2 Hammel
|!{width:640px}ironman-camera.png!|
9 1 Hammel
|={font-size:120%;margin-bottom:15px;background-color:#dff}. *High Level Camera Design* |
10 2 Hammel
11 3 Hammel
The camera is based on a RPi Zero W running a new _{color:blue}PiBox Lite_ release (PiBox stripped of X and other unnecessary components).  A web API is built using "Mongoose":https://github.com/cesanta/mongoose (web server written in C and easily extendable) (or "original source":https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/mongoose/source-archive.zip) that basically just starts up mjpeg-streamer just as the PiCam app current does.  mjpeg-streamer provides a URL that the monitor will access.
12 1 Hammel
13 3 Hammel
The mongoose server is used to reduce overhead - mongoose is self contained and doesn't need a bunch of libraries.  On the flip side, nodejs is easy to implement but carries lots of weight (as all scripting languages do) and would require an external programs for running some components.  
14
15 2 Hammel
The monitor is the standard Ironman Monitor with the addition of a new app: IMCameras.  This is based on PiCam but supports selection of which camera to visually monitor.  It also supports the following commands issued to selected monitors.
16
17
* Start recording
18
* Stop recording
19
* Play a recording
20
* Live view
21
22 1 Hammel
A stretch goal is to allow display of up to four cameras at once.  This would work only if omxplayer can be convinced to display only into a subsection of the framebuffer.  Alternatively, a "different player with hardware acceleration":https://www.raspberrypi.org/forums/viewtopic.php?t=199775 might be found, such as "mpv":https://mpv.io/.
23 3 Hammel
24
The monitor would need extending to support storage, possibly using a new Ironman storage device that connects via Samba or NFS.