Connect your Pi
- Raspberry Pi 2- Micro SD card- HDMI cable- HDMIPi screen & power cable- Mouse- Keyboard- WiFi dongle- Raspberry Pi power cable (last)
Enter the folder
Type cd intro and hit Enter
“Change directory intro”
This enters the directory intro
Open IDLE as super user
In the Terminal window, run:
sudo idle3 &
This will open IDLE with super user permissions - we need this to access GPIO pinsThe ampersand (&) opens it in a new process
Flashing LED programfrom RPi import GPIO
from time import sleep
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(2, GPIO.OUT, False)
for i in range(10):
GPIO.output(2, True)
sleep(0.1)
GPIO.output(2, False)
sleep(0.1)
Code for 2 LEDsfrom RPi import GPIO
from time import sleep
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
red = 2
blue = 3
GPIO.setup(red, GPIO.OUT, False)
GPIO.setup(blue, GPIO.OUT, False)
Flash continuouslywhile True:
GPIO.output(red, True)
sleep(0.1)
GPIO.output(blue, True)
sleep(0.1)
GPIO.output(red, False)
sleep(0.1)
GPIO.output(blue, False)
sleep(0.1)
Test the camera
Type raspistill -k and hit Enter
This starts the camera preview
Hit Ctrl + C to stop
Take a selfie!
Type raspistill -o image.jpg and hit Enter
raspistill is the command for using the camera-o means “output”image.jpg is the chosen filename
Take a selfie with Pythonfrom picamera import PiCamera
from time import sleep
with PiCamera() as camera:
camera.start_preview()
sleep(5)
camera.capture('/home/pi/image2.jpg')
camera.stop_preview()
View the photo from File ManagerNotice the difference in resolution between the file taken from the command line and from Python
This is due to default settings in raspistill and in Python picamera
Resolution and other aspects are configurable
Add the button to the codefrom picamera import PiCamera
from time import sleep
from RPi import GPIO
button = 17
GPIO.setmode(GPIO.BCM)
GPIO.setup(button, GPIO.IN, GPIO.PUD_UP)
with PiCamera() as camera:
camera.start_preview()
GPIO.wait_for_edge(button, GPIO.FALLING)
camera.capture('/home/pi/image3.jpg')
camera.stop_preview()
Press the button to take a picture
Run the script with F5Wait for the previewPress the push button to take a picture
Add a loopwith PiCamera() as camera:
camera.start_preview()
GPIO.wait_for_edge(button, GPIO.FALLING)
for i in range(5):
sleep(3)
camera.capture('/home/pi/image%s.jpg' % i)
camera.stop_preview()
What’s the difference?GPIO.wait_for_edge(button, GPIO.FALLING)
for i in range(5):
sleep(3)
camera.capture('/home/pi/image%s.jpg' % i)
camera.stop_preview()
for i in range(5):
GPIO.wait_for_edge(button, GPIO.FALLING)
sleep(3)
camera.capture('/home/pi/image%s.jpg' % i)
camera.stop_preview()
Experiment time!
- Try combining buttons, LEDs, camera- Different buttons for different actions- 2 buttons to start/stop preview- LED status- What else is in your CamJam kit?- Use your imagination!