Raspberry pi project that controls jack-o-lantern via servo motor and PIR motion sensors to simulate it "watching" you.
Inspired by Ryder Damen's mannequin head
Note: Holes in the acrylic case are needed for the motion sensors to properly work
Created with circuit-diagram.org. Source file is in /diagrams
Requires following diagram above to be wired up correctly
# This script will install the dependencies and start the containers
bash -c "$(curl -sL https://raw.githubusercontent.com/circa10a/pumpkin-pi/main/install.sh)"
Requires Go 1.17+
- Install Go
- Install pi-blaster
go install github.com/circa10a/pumpkin-pi@latest
pumpkin-pi
- Raspberry Pi (This project uses a Pi 3 Model B)
- USB Power Supply Compatible with Pi3/4
- MicroSD card with Raspbian installed (guide)
- Pimoroni pan-tilt hat
- 2x PIR motion sensors
- 2x 3D printed PIR motion sensor enclosures
- MG90s Servo Motor
- I upgraded the horizontal motor in the pan-tilt hat due to needing more torque to support/smoothly move the pumpkin head without struggle
- Male to female, female to femaile jumper wires
- M2 Standoffs
- Jack-o-lantern (with top stem cut off)
- Acrylic display case
- Plaster column pedastal(spray painted blacked)
- 2x 5v fans for (intake/exhaust)
- Some screws here and there
Environment Variable | Description | Required | Default |
PUMPKINPI_LOG_LEVEL |
Logrus log level. Use debug for more info |
false |
info |
PUMPKINPI_MOTION_TIMES_ENABLED |
Whether to use configured schedule or not. These times must be within the same day | false |
false |
PUMPKINPI_MOTION_TIME_START |
Local time to ensure pumpkin-pi only responds after this hour | false |
17 |
PUMPKINPI_MOTION_TIME_END |
Local time to ensure pumpkin-pi only responds before this hour | false |
22 |
PUMPKINPI_PIR_LEFT_MOTION_SENSOR_GPIO_PIN |
The GPIO Pin used to read inputs from left motion sensor | false |
11 |
PUMPKINPI_PIR_RIGHT_MOTION_SENSOR_GPIO_PIN |
The GPIO Pin used to read inputs from right motion sensor | false |
13 |
PUMPKINPI_SERVO_CENTER |
The center position of the horizontal servo motor | false |
29 |
PUMPKINPI_SERVO_LEFT |
The left position of the horizontal servo motor | false |
20 |
PUMPKINPI_SERVO_RIGHT |
The right position of the horizontal servo motor | false |
40 |
PUMPKINPI_SERVO_ROTATE_DELAY |
The wait time in between each incremental servo step as it rotates | false |
150ms |
PUMPKINPI_SERVO_CENTER_RESET_INTERVAL |
The interval at which the pumpkin will rotate back to the center position | false |
5m |
PUMPKINPI_SERVO_GPIO_PIN |
The PWM enabled GPIO Pin used to control the servo motor | false |
12 |