Lightbox is for a custom lightbox system with a camera. It's a research project and under early active hacking. More details TBA.
You can see what I'm likely working on here.
It doesn't do much yet - base firmware in ./firmware
and the start of the camera
library in ./zebral/camera
are the most developed.
https://github.com/devellison/zebral
https://github.com/devellison/zebral_esp32cam
It is now used as a submodule, so when cloning:
- If you've cloned lightbox, you'll need to update the submodules like:
git submodule update --init --recursive
- If you're cloning lightbox, add the recursive switch:
git clone --recursive https://github.com/devellison/lightbox.git
To update Zebral (it's a work in progress):
git submodule update --remote
I've switched from using an RP2040 Feather for LED control to using an ESP32-CAM with a little additional hardware. Code for the firmware is in firmware/zebral_esp32cam, some basic schematics are in there as well. It provides a web interface to camera, gpio, and leds. Very much work in progress there.
Currently developing it with:
- C++20, Clang-12, MSVC 2019 (2022 for CI)
- 64-bit Windows 11 / C++/WinRT and Ubuntu 22.04 (20.04 for CI)/ V4L2
- ESP32-CAM (Using ESP-IDF/FreeRTOS) and Assorted hardware
- Install dependencies:
- As it's actively being developed, might check the workflows for latest requirements for building.
- Windows:
- Visual Studio 2019 (CMake 3.20+) (Others may work - 2022 in CI)
- Set up OpenCV 4.5.5, including videoio, highgui, and core (current binary release didn't seem to have these, but choco did)
- Doxygen, graphviz, cmake-format (pip install), clang-format
- libCurl, libjpeg-turbo
- Linux:
- Currently using Clang-12 (CMake 3.23)
- Using OpenCV 4.2 from Ubuntu's distribution
- libfmt (on Linux) should be built and installed
- Google test is downloaded by CMake currently
- libCurl, libjpeg-turbo
- Build tools and deps for both:
- CMake v3.20+ (you can get it from kitware for ubuntu)
- OpenMP (optional, not using it much yet)
- Doxygen, graphviz, cpack, cmake-format (pip install), clang-format
- Python 3.10.5+ and PyBind11 for python bindings
- Numpy and OpenCV-python (pip installs) are required for the python tests
- Set up hardware (Web Camera, ESP32-CAM, many many LEDs, relay boards, TBD)
- See the Wiki, will doc wiring/etc. as it gets more solidified.
- Configure and compile app using normal CMake commands, or just run the scripts from the base directory.
build_win.bat
for Windows./build_linux.sh
for Linux
- Right now there's a test app that can do some things with the supported cameras, but a real GUI / app
is still TBA
- Windows:
build\app\Release\lightbox_app.exe 0 YUV2
build\app\Release\lightbox_app.exe http://10.0.0.16:81/video UNUSED username password
- Linux:
build/app/lightbox_app 0 YUYV
- Windows: