67 lines
2.5 KiB
Markdown
67 lines
2.5 KiB
Markdown
|
|
# The All Seeing Pi (Part 2 - Software)
|
||
|
|
|
||
|
|
In this resource you will make a tweeting touch screen photo booth using a Raspberry Pi.
|
||
|
|
|
||
|
|
## Test the buttons
|
||
|
|
|
||
|
|
1. With the hardware set up, we can begin to program the software that will make everything work. To begin, open the file explorer, then right click on a blank space inside the file explorer window.
|
||
|
|
|
||
|
|

|
||
|
|
|
||
|
|
1. Select `Create new` and then click `Folder`
|
||
|
|
|
||
|
|

|
||
|
|
|
||
|
|
1. Type in the name of the folder where you will store the code and the photographs. We chose to call ours `allseeingpi`. Make a note of the path to this folder which is displayed in the bar at the top, which should be `/home/pi/allseeingpi`
|
||
|
|
|
||
|
|
1. From the "Programming" menu, open up "Python 3"
|
||
|
|
|
||
|
|

|
||
|
|
|
||
|
|
1. Create a new Python file by clicking on `File` > `New File`.
|
||
|
|
|
||
|
|
1. Click on `File` > `Save` and save your file into the `allseeingpi` folder you just created, with the filename `allseeingpi.py`.
|
||
|
|
|
||
|
|
1. We will need the `picamera` and the `gpiozero` libraries. At the start of your Python file add two import statements:
|
||
|
|
|
||
|
|
```python
|
||
|
|
from picamera import PiCamera
|
||
|
|
from gpiozero import Button
|
||
|
|
```
|
||
|
|
|
||
|
|
1. Next we will set up the buttons. On the [previous worksheet](worksheet.md) we wired our buttons to pins 23 and 25. Let's go ahead and set both buttons up, even though we will not use the `next_overlay_btn` until later on.
|
||
|
|
|
||
|
|
```python
|
||
|
|
next_overlay_btn = Button(23)
|
||
|
|
take_pic_btn = Button(25)
|
||
|
|
```
|
||
|
|
|
||
|
|
1. Now we will use gpiozero to tell the buttons what to do when pressed. In the code below, `next_overlay` and `take_picture` are functions which will be called when the corresponding button is pressed:
|
||
|
|
|
||
|
|
```python
|
||
|
|
next_overlay_btn.when_pressed = next_overlay
|
||
|
|
take_pic_btn.when_pressed = take_picture
|
||
|
|
```
|
||
|
|
|
||
|
|
1. We need to write these two functions so that the buttons have something to do when they are pressed. Functions are usually written at the start of a program immediately after the `import` statements. Add the functions, but with some placeholder code to just print a message when they are pressed, so we can test them.
|
||
|
|
|
||
|
|
```python
|
||
|
|
def next_overlay():
|
||
|
|
print("Next overlay")
|
||
|
|
|
||
|
|
def take_picture():
|
||
|
|
print("Take a picture")
|
||
|
|
```
|
||
|
|
|
||
|
|
1. Press `F5`, save and run your program. Try pressing each button and check that a different message pops up for each in the Python shell.
|
||
|
|
|
||
|
|

|
||
|
|
|
||
|
|
## Add an overlay
|
||
|
|
|
||
|
|
## Change overlays with a button
|
||
|
|
|
||
|
|
## Tweet picture
|
||
|
|
|
||
|
|
## Create a GUI
|