Raspberry-Pi 5daagse

advertisement
Raspberry Pi
Les 4: Zaterdag 22 maart 2014
Wim Peeters
([email protected])
Raspberry-Pi
Programma
Installatie
Basis Linux en de commando's
Pi als eenvoudig Linux servertje
Raspberry PI als mediaspeler
Aansturen en uitlezen motoren en LEDs
Raspberry PI als fm zender
Raspberry-Pi
3
Vorige les


Shell scriptjes en webserver
Aansturen en uitlezen van LEDs en
motoren
– Basis elektronica
• Stroom, spanning, weerstand
• LEDs
• Analoog naar Digitaal
– Eenvoudig schakelingen
– Programeren in python
Raspberry-Pi
4
Maak onze website dynamisch
#!/bin/bash
# Verander de website
# Wim Peeters
#
echo " <html>"
echo " <head>"
echo " <title> Raspberry PI van Wim </title>"
echo " <META HTTP-EQUIV=refresh CONTENT=5>"
echo " </head>"
echo " <body><h1>Raspberry Pi webserver van Wim</h1>"
echo " <p>Dit is de aangemaakte pagina van de webserver op de Pi</p>"
echo " <p>het is nu:`/bin/date`</p>"
echo " </body>"
echo " </html>"
Raspberry-Pi
5
Cron: crontab -e

S
Raspberry-Pi
6
Resultaat

S
Raspberry-Pi
7
Vandaag


Shell scriptjes en webserver
Aansturen en uitlezen van LEDs en
motoren
– Basis elektronica
• Stroom, spanning, weerstand
• LEDs
• Analoog naar Digitaal
– Eenvoudig schakelingen
– Programeren in python
Raspberry-Pi
8
Vandaag
Eenvoudige schakelingen
 Knipper LED
 LED Dimmen
 (8 segmenten display)
 Drukknop
 Analoog signaal meten
Raspberry-Pi
9
Basis elektronica
Spanning:
Eenheid: Volt (V)
Spanning “staat over” een component
Stroom
Eenheid: Ampere (A)
Stroom “stroomt door” een component
Weerstand
Eenheid: Ohm (Ω)
Weerstand tegen stroom
Raspberry-Pi
10
Wetten van Kirchhoff
Som spanning in een lus = 0V
Som v/d Stroom in – Som v/d Stroom uit
een knoop = 0A
Raspberry-Pi
11
Wet van Ohm
Verband :Spanning, stroom en
weerstand
U= I x R
Gegeven:
U=10V, R=1000Ω
Gevraagd: I?
I=U/R
10V/1000Ω=0,01A=10mA
Raspberry-Pi
12
Kleurcode weerstanden
Waarde?
Raspberry-Pi
13
Truuk
Zin:
zij
bracht
rozen
op
Gerrits
graf
bij
vies
grijs
weer
Raspberry-Pi
→ zwart
→ bruin
→ rood
→ oranje
→ geel
→ groen
→ blauw
→ violet
→ grijs
→ wit
14
→0
→1
→2
→3
→4
→5
→6
→7
→8
→9
Oefening
Zin:
Raspberry-Pi
15
LED: Light Emitting Diode
Zin:
Raspberry-Pi
16
LED en voorwaartse spanning
Zin:
Raspberry-Pi
17
Raspberry-Pi
18
GPIO: connector P1
Raspberry-Pi
19
GPIO

3,3V


Hoog/laag → 1/0
Opgepast: niet beschermd


Kortsluiting → stuk
Spanning opzetten → stuk
Raspberry-Pi
20
LED en PI
Pi:
5V pin 2
GND pin 6
3,3V elke IN/OUT
5V max 250mA
3,3V max 50mA
Advies: 3-5mA
Raspberry-Pi
21
LED en PI
Pi:
Raspberry-Pi
22
Bereken de weerstand
U: 5V
Rode LED:
Max 5mA
R?
470Ω
Raspberry-Pi
23
Oplossing
Pin: 3,3 Volt → 3mA
→ rode led: 2V: R=(U-U )/I → 1,3V/3mA
433Ω → dus 470Ω
led
Pin: 5 Volt → 3mA
→ rode led: 2V: R=(U-Uled)/I → 3V/3mA
1000Ω
Stel 470Ω?
Raspberry-Pi
24
GPIO programmeren
sudo apt-get install python-dev
sudo apt-get install python-rpi.gpio
Raspberry-Pi
25
Programmeertaal python
#!/usr/bin/python
#
# Voorbeeldje: Wim Peeters
#
for i in range(1,10):
print(i)
Raspberry-Pi
26
Led aan, Led uit
pi@raspberrypi ~ $ sudo python
Python 2.7.3 (default, Jan 13 2013, 11:20:46)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import RPi.GPIO as GPIO
>>> GPIO.setmode(GPIO.BCM)
>>> GPIO.setup(18, GPIO.OUT)
>>> GPIO.output(18,True)
>>> GPIO.output(18,False)
Raspberry-Pi
27
Led aan, Led uit
pi@raspberrypi ~ $ sudo python
Python 2.7.3 (default, Jan 13 2013, 11:20:46)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import RPi.GPIO as GPIO
>>> GPIO.setmode(GPIO.BCM)
>>> GPIO.setup(18, GPIO.OUT)
>>> GPIO.output(18,True)
>>> GPIO.output(18,False)
Raspberry-Pi
28
Led aan, Led uit
pi@raspberrypi ~ $ sudo python
Python 2.7.3 (default, Jan 13 2013, 11:20:46)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import RPi.GPIO as GPIO
>>> GPIO.setmode(GPIO.BCM)
>>> GPIO.setup(18, GPIO.OUT)
>>> GPIO.output(18,True)
>>> GPIO.output(18,False)
Raspberry-Pi
29
Python program: pinker.py
#!/usr/bin/python
# Led tss pin 18 en GND
# Wim Peeters
import RPi.GPIO as GPIO
import time
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
while (True):
GPIO.output(18, True)
time.sleep(0.5)
GPIO.output(18, False)
time.sleep(0.5)
Raspberry-Pi
30
Programma: pinker.py
sudo ./pinker.py
Raspberry-Pi
31
Puls breedte: fader.py
Raspberry-Pi
32
Oefening
Zin:
Raspberry-Pi
33
Programma: fader.py
sudo ./fader.py
Raspberry-Pi
34
Drukknop
VCC: 3,3 V pin 1
GND: pin 6
Meeting: pin16
→ GPIO 23
R=U/I 3,3V/0,3mA
= 11000Ω → 10KΩ
Raspberry-Pi
35
Drukknop
Naar GPIO 1 (3,3V)
Naar GPIO 23
→ pin 16
Naar GND pin 6
Raspberry-Pi
36
Drukknop
Raspberry-Pi
37
sudo ./drukknop.py
Raspberry-Pi
38
Oefening
Als je even op de knop drukt, knippert de
LED 2 maal
Raspberry-Pi
39
Raspberry-Pi
40
Meten van een spanning
De PI heeft geen analoog digitaal
convertor (ADC)
Truk:
– Vervang Spannings meting door
tijdsmeting
Raspberry-Pi
41
Condensator: C
Kan elektrische lading opslagen
En vrijgeven. → maar dat duurt een tijd
Symbool:
Eenheid: Farad (F)
Raspberry-Pi
42
Weerstand en Condensator in serie
Vin -VR -VC=0
VR = wet van Ohm
VR=IR
VC =Vin(1-e-t/RC)
Met τ=RC
Raspberry-Pi
43
Laden: opgeladen na 5RC
t=RC
Raspberry-Pi
44
Ontladen: na 5RC
t=RC
Raspberry-Pi
45
Met de PI
Opgepast: kortsluiting!
Pin1: 3,3V
Pin6: GND
GPIO 24
– (pin 18)
Raspberry-Pi
46
Raspberry-Pi
47
Sudo ./AD.py
Raspberry-Pi
48
In onze Website duwen?
Raspberry-Pi
49
meet.py: eenmalige meting
Raspberry-Pi
50
website-meeting.sh
Raspberry-Pi
51
Uitvoeren + redirect naar
webserver
Raspberry-Pi
52
Download