ABelliqueux 5006fbcddd | ||
---|---|---|
locales | ||
Tuffy_Bold.ttf | ||
config.toml | ||
kisstopmo.xbm | ||
kisstopmo.xcf | ||
main_c.py | ||
readme.md | ||
requirements.txt | ||
stopi.sh |
readme.md
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) 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
- (Windows users only) Setup WSL2 on your (P)OS and install a Debian based distro (Debian, Mint, Ubuntu...)
- Install dependencides :
sudo apt install --no-install-recommends --no-install-suggests git ffmpeg gphoto2 python3-tk python3-pip python3-venv
- (Optional) If you plan on using a RPI camera :
sudo apt install --no-install-recommends --no-install-suggests python3-libcamera python3-picamera2
- (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
- (Optional) If you plan on using a RPI camera :
- Clone the repo :
git clone https://git.arthus.net/arthus/stopi.git
- Change to directory :
cd stopimotion
- Create Python venv :
python -m venv ./
- (Optional) If planning to use a raspicam, you need to also pass the
--system-site-packages
parameter to be able to import the GPIO module.
- (Optional) If planning to use a raspicam, you need to also pass the
- Enter the newly created virtual environment with
source bin/activate
- Install dependencies :
pip install -r requirements.txt
- Plug your DSLR/setup your raspicam
- Set Execution bit on script :
chmod +x stopi.sh
- 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 :
- Flash Raspi OS bookworm lite version to a SD card, enabling SSH, Wifi, etc if needed.
- Follow the steps in the 'Setup' section above.
- Use the 'raspi-config' utility to enable console auto-login.
- Add this content to '~/.bash_login' :
if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then
startx
fi
- 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
- 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.