SkyLok/README.md
2026-05-29 09:30:44 +02:00

41 lines
1.5 KiB
Markdown

# 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
```sh
g++ main.cpp -o main \
$(pkg-config --cflags --libs libcamera libevent) \
-levent -levent_pthreads -lpthread \
-lturbojpeg -lglfw -lGLEW -lGL -lEGL -lGLESv2
```
## References
- https://www.youtube.com/watch?v=zFiubdrJqqI
- https://github.com/ConsistentlyInconsistentYT/Pixeltovoxelprojector/