diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..699169d --- /dev/null +++ b/readme.md @@ -0,0 +1,85 @@ +# Stopi + +A python stop-motion script that keeps things simple and allows to use a DSLR or raspicam for capture. + + * Full screen display of the last picture taken + * Optional Onion Skinning with the second to last picture + * No gui : everything is done with keyboard keys (or a [homemade rpi pico based remote](https://forge.chapril.org/ABelliqueux/picote)) and a config file + * Auto configuration of the DSLR on startup + * Key or event mode ; use your DSLR's trigger button or IR remote and images are automatically downloaded after capture + * Preview playback + * Full HD export with ffmpeg + * Uses translations + +## Disclaimer + +This script was tested with a Nikon D40x DSLR and a rpi 4 B + raspicam module v3. It might not work with other hardware. +Issues reports and commits are welcome ! + +## Setup + + 0. (Windows users only) Setup WSL2 on your (P)OS and install a Debian based distro (Debian, Mint, Ubuntu...) + 1. Install dependencides : `sudo apt install --no-install-recommends --no-install-suggests git ffmpeg gphoto2 python3-libcamera python3-picamera2 python3-tk` + (Optional) If you want a minimal graphical environment : `sudo apt install --no-install-recommends --no-install-suggests openbox xserver-xorg xinit pcmanfm gmrun lxterminal hsetroot unclutter` + 2. Clone the repo : `git clone https://` + 3. Change to directory : `cd stopimotion` + 4. Create Python venv : `python -m venv ./` (If planning to use a raspicam, you need to also pass the `--system-site-packages` parameter to be able to import the GPIO module.) + 5. Install dependencies : `pip install -r requirements.txt` + 6. Plug your DSLR/setup your raspicam + 7. Set Execution bit on script : `chmod +x stopi.sh` + 8. Launch script : `./stopi.sh` + +## Todo / Fix me + + * UI freezes when exporting + * Better settings names ; currently they're kinda cryptic and sucky. + * Notify ffmpeg export ending + +## Planned features + + * Liveview (when I get a DSLR that supports it :)) + * Webcam support (e.g; using pygame) + +## Raspberry Pi image + +For convenience, a disk image will soon be available here for RPI users. + +## Kiosk like setup + +For advanced users, the steps for preparing RaspiOS for a minimal kiosk-like experience are these : + 1. Flash Raspi OS bookworm lite version to a SD card, enabling SSH, Wifi, etc if needed. + 2. Follow the steps in the 'Setup' section above. + 3. Use the 'raspi-config' utility to enable console auto-login. + 4. Add this content to '~/.bash_login' : + ``` + if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then + startx +fi +``` + 5. Add this content to '~/.xinitrc' : + ``` + #!/bin/sh + +# /etc/X11/xinit/xinitrc +# +# global xinitrc file, used by all X sessions started by xinit (startx) + +# invoke global X session script +. /etc/X11/Xsession + +exec openbox-session + ``` + 6. Add this content to '~/.config/openbox/autostart.sh' : + ``` +#!/bin/env bash +# Change X keyboard mapping +setxkbmap fr +# Set background color +hsetroot -solid "#8393CC" +# Hide mouse after 0.2 seconds +unclutter -idle 0.2 & +# Start script +/home/$USER/stopi.sh & + ``` + +When you reboot, the X session should launch automatically, and then the script. \ No newline at end of file