85 lines
3.0 KiB
Markdown
85 lines
3.0 KiB
Markdown
# 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. |