1.5 KiB
SkyLok
Pi Zero W 2 captures frames, runs a motion shader, sends diffs over LoRa.
camera_example/— libcamera + libjpeg-turbo, streams MJPEG over TCP. Works.shader_example/— offscreen GL motion diff between two frames. Works on desktop.math_example/— pixel → 3D vertex projection (depth map to OBJ mesh).chip_test_example/— LR1121 LoRa + ICM-20948 IMU + u-blox GPS drivers/tests.main.cpp— prototype that wires camera + shader + TCP together.
Goal
Automatic, real-time detection of fast high-flying objects (planes, drones) using multiple Pi cameras and a GLES motion shader. Objects moving in straight lines or smooth curves are kept; everything else is filtered out.
Each node scans the sky, detects motion, extracts a vertex line from the diff frame, timestamps it via GPS, and transmits the minimal payload over LoRa. The central device is also a Pi camera node running the same base pipeline, with additional functionality for receiving LoRa packets from other nodes, fusing sightlines, and saving combined results locally.
Status
The examples are all individually working. Final integration (camera → shader → math → LoRa) is the next step.
Build main.cpp
g++ main.cpp -o main \
$(pkg-config --cflags --libs libcamera libevent) \
-levent -levent_pthreads -lpthread \
-lturbojpeg -lglfw -lGLEW -lGL -lEGL -lGLESv2