103
Το Raspberry Pi και ο προγραμματισμός του σε Python Γιώργος Χατζηνικολάκης Υπεύθυνος ΚΕΠΛΗΝΕΤ Χίου Φεβρουάριος 2016

Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Το Raspberry Piκαι ο προγραμματισμός

του σε Python

Γιώργος ΧατζηνικολάκηςΥπεύθυνος ΚΕΠΛΗΝΕΤ Χίου

Φεβρουάριος 2016

Page 2: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Τι θα δούμε

• Τι είναι το Raspberry Pi• Πως μπορεί να φανεί χρήσιμο• Τι σχέση έχει με την Python

Page 3: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Τι θα κάνετε

• Θα εξασκηθείτε στην Python• Θα έρθετε σε επαφή με το physical computing• Θα υλοποιήσετε ένα μίνι project ή παιχνίδι

• Θα αποφασίσετε αν αξίζει να το δοκιμάσετε σπίτι σας ή/και στο σχολείο σας

Page 4: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Κάποιες γενικότερες έννοιεςπολύ σχετικές

Page 5: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

IoT

Page 6: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Πηγή: http://brilliency.com/

Page 7: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Physical Computing

Page 8: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

είσοδος έξοδοςυπολογιστής

Page 9: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Physical Computing

αισθητήρεςκινητήρες

αυτοματισμοί

φώτα

στο έδαφος ή …και στο διάστημα

στο φυσικό κόσμο

Page 10: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

DIY

Page 11: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Do It Yourself

Page 12: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Το Raspberry Piυλικό και λογισμικό

Page 13: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

"Raspberry Pi 2 Model B v1.1 top new (bg cut out)" by Multicherry. Licensed under CC BY-SA 4.0 via Wikimedia Commons

Page 14: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)
Page 15: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Model B+ Generation 2 Model B

CPU 700 MHz single-core ARM 900 MHz quad-core ARM Cortex-A7

RAM 512 MB 1 GB

GPU Broadcom VideoCore IV @ 250 MHz (1080p H.264 decoder & encoder)

USB ports 4 x USB 2.0

Network 100 Mb/sec

Storage MicroSD slot

Video output HDMI 1.3 & 1.4 (1920x1200) και 3.5mm composite Video + audio out

Power ratings 600 mA (3.0 W) 800 mA (4.0 W)

Τεχνικά χαρακτηριστικά

Page 16: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Raspberry Pi Zero

Βασικά χαρακτηριστικά:

• $5 computer• 65mm x 30mm• 1 GHz single-core CPU• 512 MB RAM• Mini-HDMI & USB on-the-go• 40-pin header

Δεν διαθέτει Ethernet και υποδοχή για την Raspberry camera

Page 17: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

«Κοινότυπες» διεπαφές επικοινωνίας

• HDMI έξοδο εικόνας & ήχου• Ethernet για ενσύρματο δίκτυο• Υποδοχή microSD για αποθήκευση

• Δεν υπάρχει κουμπί On/Off

http://elinux.org/RPi_VerifiedPeripherals

Page 18: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

«Κοινότυπες» διεπαφές επικοινωνίας

USB θύρες για σύνδεση:• Πληκτρολογίου - ποντικιού• Web camera• Bluetooth dongle (...)• Wi-Fi ή 3G/4G dongle• Σκληρών δίσκων• Arduino

http://elinux.org/RPi_VerifiedPeripherals

Page 19: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Λίγο πιο ιδιαίτερες διεπαφές επικοινωνίας

Ειδικές θύρες για σύνδεση:• Raspberry Pi Camera module• Touchscreen display

http://swag.raspberrypi.org/products/raspberry-pi-7-inch-touchscreen-display Camera Module (5MP - 1080p)

Page 20: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Χρήση ως αυτόνομος desktop υπολογιστής

Συνδέουμε οθόνη ή τηλεόραση με HDMI ή DVI (όχι VGA)

Δεν προτείνεται να αγοράσουμε ένα Pi για να αντικαταστήσουμε το pc μας

Page 21: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Επίσημο/προτεινόμενο λειτουργικό σύστημα

Page 22: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Η επιφάνεια εργασίας του Raspbian

Page 23: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Χρήση ως headless device (χωρίς οθόνη & πληκτρολόγιο)

Δύο εναλλακτικοί τρόποι απομακρυσμένης πρόσβασης:

Τρόπος Β: SSH (Secure Shell)

π.χ. Putty ή MobaXterm

Τρόπος Α: Remote Desktop / Control (VNC)

π.χ. TightVNC

Page 24: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Τρόπος Α: Remote Desktop / Control (TightVNC)

Page 25: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Τρόπος Β: SSH (MobaXterm)

Page 26: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Αυτονομία

Εφαρμογή Pi Power Estimator

• Εκτίμηση με βάση το μοντέλο, τις ενεργές συνδέσεις, τις μπαταρίες ή το Power Bank.

• Από λίγα λεπτά έως και μέρες.

Page 27: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Προτεινόμενος συνδυασμός για remote access

www.netsarang.com

Προσαρμόσιμη γραμμή εργαλείωνμε συχνά χρησιμοποιούμενεςή μακροσκελείς εντολές

Xshell SSH client

Xftp SFTP client+

http://tiny.cc/piapps

Page 28: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Δραστηριότητα

0απομακρυσμένη σύνδεση

εντολές στην κονσόλαλίγη python

Page 29: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Τα Pi του εργαστηρίου

chatzipi.local

eliaspi.local

papapi.local

parispi.local

blackpi.local

clearpi.local

rectapi.local

shinyblackpi.local

Page 30: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Τι προσδίδει στο Pi…το κάτι παραπάνωπέρα από το σχετικά χαμηλό κόστοςκαι τη φορητότητα

Page 31: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)
Page 32: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)
Page 33: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

28 GPIO (general purpose input/output) pins

http://pinout.xyz/

Page 34: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Πρόσθετεςπλακέτες (Add-ons)

Κουμπώνουν απευθείας πάνω στο Pi

https://www.raspberrypi.org/products/sense-hat/ https://astro-pi.org/

Page 35: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

http://www.dexterindustries.com/Arduberry/

Πρόσθετεςπλακέτες(Add-ons)

http://piandbash.co.uk/

Page 36: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Adafruit Capacitive Touch HAT for Raspberry Pi

Πρόσθετεςπλακέτες (Add-ons)

http://thepihut.com/collections/raspberry-pi-hats/products/adafruit-capacitive-touch-hat-for-raspberry-pi

Page 37: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

8 input capacitive touch sensor (~ £ 2.00)Παρόμοιος με το Makey Makey

http://www.ncl.ac.uk/computing/outreach/resources/cas-tyneside-hub-03-07-14/physical-computing-lamb.pptx

Page 38: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Πιθανές χρήσειςεκπαιδευτικές ή άλλες

Page 39: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Media Center (RaspBMC ή openELEC)

Page 40: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Server

• BitTorrent client/server (π.χ. Transmission)

• NAS/Backup server (π.χ. Samba, rSync)

• Ιδιωτικός cloud server (π.χ. Owncloud)

Page 41: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Arcade Machine

http://www.raspberrypi.org/tag/mame/

Page 42: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Minecraft Pi

http://www.raspberrypi.org/learning/getting-started-with-minecraft-pi/

Page 43: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Αξιοποίηση της κάμερας• Motion sensing camera

• Baby monitor

• Συναγερμός

• IP camera

• Time lapse camera

Page 44: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Αναγνώριση αντικειμένων με το OpenCVή με το SimpleCV

http://www.pyimagesearch.com/2015/10/26/how-to-install-opencv-3-on-raspbian-jessie/

Page 45: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Μετεωρολογικός Σταθμός

http://www.raspberrypi.org/school-weather-station-project/

Page 46: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Ρομποτική

https://learn.adafruit.com/simple-raspberry-pi-robot

Page 47: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/robot/

Page 48: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Συνοψίζονταςκαι επεκτείνονταςτα … περί ιδιαίτερων δυνατοτήτων του Pi

Page 49: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

ανότανόσο

όποτε

αυτό εκείνοτότε κάνε

Page 50: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

αυτό

• πατηθεί ένα κουμπί• ανιχνεύσεις κίνηση, θόρυβο, φωτιά, σκοτάδι• αναγνωρίσεις κάποιο πρόσωπο/αντικείμενο• σε πλησιάσουν αρκετά• η θερμοκρασία/υγρασία/άνεμος αυξηθεί• βρίσκεσαι κάπου (θέση, ύψος, περιοχή)• η στάθμη ξεπεράσει/κατέβει• η κλίση αυξηθεί• προβλέπεται καταιγίδα• λάβεις e-mail, SMS

διακόπτες(τηλε)χειριστήρια

αισθητήρεςμικρόφωνα

κάμερεςinternet

Page 51: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

εκείνο

• τράβα φωτογραφία/βίντεο • παίξε ήχο/βίντεο• εκτέλεσε κάποιο πρόγραμμα/εντολή• δώσε ρεύμα σε συσκευή• δώσε εντολή σε κινητήρα• στείλε e-mail/tweet• ειδοποίησε σε κινητό (push notification)

οθόνες/ηχείασυσκευέςκινητήρες

internet

Page 52: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Πως γίνονται όλα αυτά τα ωραίαμε την Python

Page 53: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

28 GPIO (general purpose input/output) pins

Page 54: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

To breadboard a board for cutting bread on

https://learn.sparkfun.com/tutorials/how-to-use-a-breadboard

Page 55: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

To breadboard

https://learn.sparkfun.com/tutorials/how-to-use-a-breadboard

Page 56: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

To breadboard

Page 57: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Μόνιμα αναμμένο LED

R330 Ω

Page 58: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

LED που ελέγχεται με κώδικαΧρήση της βιβλιοθήκης GPIO Zero

Page 59: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

LED που ελέγχεται με κώδικαΧρήση της βιβλιοθήκης GPIO Zero

from gpiozero import LED

from time import sleep

led = LED(17)

led.on()

sleep(1)

led.off()

Page 60: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

from gpiozero import LEDfrom time import sleep

led = LED(17)

led.on()sleep(1)led.off()

import RPi.GPIO as GPIO from time import sleep

GPIO.setmode(GPIO.BCM)GPIO.setwarnings(False)led = 17GPIO.setup(led,GPIO.OUT)

GPIO.output(led,GPIO.HIGH)sleep(1)GPIO.output(led,GPIO.LOW)

GPIO.cleanup()

Rpi.GPIOgpiozero

Page 61: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

from gpiozero import LED

from time import sleep

led = LED(17)

led.on()

sleep(1)

led.off()

gpiozero scratch

Page 62: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

http://gpiozero.readthedocs.org/

gpio zero

Page 63: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

1 beeper.off()2 sleep( )3 beeper = Buzzer( )4 from gpiozero import Buzzer5 beeper.on()6 from time import sleep

Παραγγελιά: ένα μπιπ διάρκειας 0.5 sec στο 4

Page 64: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

1 from gpiozero import Buzzer2 from time import sleep 3 beeper = Buzzer(4)4 beeper.on()5 sleep(0.5)6 beeper.off()

Παραγγελιά: ένα μπιπ διάρκειας 0.5 sec στο 4

Page 65: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

from gpiozero import LED, Buzzerfrom time import sleep……

for i in range(x):# εδώ μπαίνουν κατάλληλα στοιχισμένες οι εντολές # που έτσι θα εκτελεστούν x φορές

Ένα SOS παρακαλώ!

def onoma(parametros1, parametros2):# εντολές

Page 66: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Ένα SOS παρακαλώ!

play(3, 0.1) # Ssleep(.4)play(3, 0.3) # Osleep(.4)play(3, 0.1) # S

from time import sleepfrom gpiozero import LED, Buzzerbeeper = Buzzer(4)led = LED(21)

def play(n,t):for i in range(n):

beeper.on()led.on()sleep(t)beeper.off()led.off()sleep(0.2)

Page 67: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

φύλλο δραστηριοτήτων

1έλεγχος LED ή/και Buzzer

Page 68: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Διακόπτης - πλήκτρο

Page 69: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Για μεγαλύτερη ασφάλεια

1 kΩ 10 kΩ

Page 70: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Ένας τρόπος ελέγχου του κουμπιού

from gpiozero import LED, Button

led = LED(17)

button = Button(2)

while True:

if button.is_pressed:

led.on()

else:

led.off()

sleep(0.2)

Page 71: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

from gpiozero import LED, Buttonfrom time import sleep

led = LED(26)b1 = Button(12)b2 = Button(22)

def hello():print(“Button1 pressed")led.on()

b1.when_pressed = hellob2.when_pressed = led.off

while True:# …

from gpiozero import LED, Buttonfrom time import sleepfrom signal import pause

b1.when_pressed = hellob2.when_pressed = led.off

pause()

Ένας καλύτερος τρόπος ελέγχου του κουμπιού

Page 72: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Tο LED ανάβει μόνο για όσο το κουμπί είναι πατημένο

from gpiozero import LED, Button

from signal import pause

led = LED(17)

b = Button(2)

b.when_pressed = led.on

b.when_released = led.off

pause()

Page 73: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Tο LED ανάβει μόνο για όσο το κουμπί είναι πατημένο

state = Falsewhile True:if b.is_pressed and state==False:

if led.is_lit:led.off()

else:led.on()

state = b.is_pressedsleep(0.1)

state = Falsewhile True:b.wait_for_press()if b.is_pressed:if state == False:led.on()

else:led.off()

state = not statesleep(0.1)

state = Falsewhile True:b.wait_for_press()if b.is_pressed:state = not stateled.value = statesleep(0.1)

Page 74: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Αισθητήρας ανίχνευσης κίνησηςPassive Infra-Red Sensor

from gpiozero import MotionSensor, LEDfrom signal import pause

pir = MotionSensor(23)led = LED(16)

pir.when_motion = led.onpir.when_no_motion = led.off

pause()

Page 75: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Ιεραρχία κλάσεων gpiozero

Page 76: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Μαγνητικός διακόπτηςDoor Magnetic Switch (Reed)

Page 77: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

φύλλο δραστηριοτήτων

2Button και άλλα

Page 78: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Περισσότερες πληροφορίες

και ιδέες

Page 79: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Raspberry Pi documentation

https://www.raspberrypi.org/documentation/

Page 80: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

The MagPi

https://www.raspberrypi.org/magpi/

Page 81: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Ιδέες και tutorials για projects

http://www.raspberrypi.org/resources/

Page 82: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Ιδέες και tutorials για projects

http://www.modmypi.com/blog/tutorials http://www.instructables.com/id/Raspberry-Pi-Projects/

Page 83: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

https://learn.adafruit.com/category/raspberry-pi

Page 84: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Κάνει για το σχολείο;

πως συγκρίνεται με ένα υπολογιστή ή ένα tablet;

Page 85: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Μπορεί το Raspberry Pi να αντικαταστήσει ένα tablet ή ένα PC;

Pi vs iPad vs PC

Page 86: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Μπορεί το Raspberry Pi να αντικαταστήσει ένα tablet ή ένα PC;

Εκπαιδευτικό εργαλείο• Look under the hood …• Tinker with the settings…• Experiment …• Be creative …

Pi vs iPad vs PC

ICT ή Computing ;

Page 87: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Μπορεί το Raspberry Pi να αντικαταστήσει ένα tablet ή ένα PC;

Pi vs iPad vs PC

https://www.raspberrypi.org/blog/what-does-a-good-computing-classroom-look-like/

Page 88: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Μπορεί το Raspberry Pi να αντικαταστήσει ένα tablet ή ένα PC;

Pi vs iPad vs PC

https://www.raspberrypi.org/blog/what-does-a-good-computing-classroom-look-like/

Page 89: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Παράρτημα

Όλα τα υπόλοιπα

Page 90: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Εγκατάσταση λειτουργικών συστημάτων

Λύση Β:Κατεβάζουμε έτοιμα imagesκαι τα γράφουμε σε SD: https://www.raspberrypi.org/downloads/

Λύση Α:NOOBS installer

Page 91: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Λειτουργικά συστήματα τρίτων

Page 92: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Δυνατότητα στησίματος εργαστηρίου τύπου LTSP

Server: Ubuntu Linux 14.04 (Οκτ. 2015)

http://pinet.org.uk/

Artwork by Andy Hunt and PiNet logo by Amy Mather

http://alkisg.mysch.gr/steki/index.php?topic=6441.0

Server: Ubuntu LTSP ≥ 12.04 (Νοε. 2015)

https://help.ubuntu.com/community/UbuntuLTSP/RaspberryPi

sch-scripts epoptes

Page 93: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Περίπου αυτοσχέδιο UPSγια επιπλέον σιγουριά και φορητότητα

Raspberry Pi UPS με τη χρήση ενός Power Bank και ενός LAN switchκαι της εφαρμογής upsd

To UPS ενεργοποιείται όταν διακοπεί η LAN σύνδεση με το switch

Page 94: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Page 95: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Εντοπισμός της IP διεύθυνσης

Τοπικάεκτέλεση της εντολής: ifconfig [eth0 ή wlan0]

Page 96: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Εντοπισμός της IP διεύθυνσης

Από άλλη συσκευή στο ίδιο LANΧρήση κάποιου IP scanner (π.χ. Advanced IP Scanner ή Angry IP Scanner)

Page 97: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Εντοπισμός της IP διεύθυνσης

Από κινητή συσκευή (Android ή iOS) στο ίδιο LANΧρήση κάποιου IP scanner (π.χ. Fing)

Page 98: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Εναλλακτική λύση (χωρίς IP)

Χρήση του <hostname>.local από Η/Υ με τη βοήθεια του zeroconf.

α) Εγκατάσταση στο Pi του Avahi service:sudo apt-get install avahi-daemon

β) Εγκατάσταση στον Η/Υ του Bonjour Print Services:Version 2.02: http://support.apple.com/kb/DL999Version 3.0: Εξαγωγή installer από τον iTunes installer.

Περισσότερα: https://learn.adafruit.com/bonjour-zeroconf-networking-for-windows-and-linux/

Page 99: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

http://www.digikey.com/en/resources/conversion-calculators/conversion-calculator-resistor-color-code-4-band

Page 100: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

LED πολλών χρωμάτων (RGBLED)

from gpiozero import RGBLEDled = RGBLED(14, 15, 18)

Ιδιότητες (όλες παίρνουν πραγματική τιμή από 0 μέχρι 1.0):● red η φωτεινότητα του κόκκινου (πραγματικός αριθμός)● green η φωτεινότητα του πράσινου (πραγματικός αριθμός)● blue η φωτεινότητα του μπλε (πραγματικός αριθμός)● value η φωτεινότητα καθενός εκ των 3 led

(λίστα 3 πραγματικών αριθμών - με δυνατότητα ορισμού των τιμών)

Page 101: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Breathing LED

while True:

for n in range(0,100,1):led.value = n/100sleep(0.02)

for n in range(100,0,-1):led.value = n/100sleep(0.02)

led.off()sleep(0.2)

Page 102: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Λήψη φωτογραφιών

from gpiozero import Buttonfrom picamera import PiCamera

button = Button(5)

with PiCamera() as camera:camera.vflip = Trueframe = 1while True:

button.wait_for_press()camera.capture('/home/pi/frame%03d.jpg' % frame)frame += 1

Page 103: Το Raspberry Pi - ΔΔΕ Χίουdide.chi.sch.gr/KEPLHNET/Raspberry_Pi_keplinet_seminar.pdf · Media Center (RaspBMC ή openELEC) Server •BitTorrent client/server (π.χ. Transmission)

Pushbullet

#coding: utf-8

from pushbullet import Pushbullet

pb = Pushbullet(" το_μοναδικό_σας_κλειδί ")

# παραδείγματα pushed notification

push = pb.push_note("Τίτλος", "Κυρίως κείμενο")

push = pb.push_link("ΣΕΠ Χίου", "http://www.sepchiou.gr")

with open("intruder.jpg", "rb") as pic:

file_data = pb.upload_file(pic, "picture.jpg")

push = pb.push_file(**file_data)

https://pypi.python.org/pypi/pushbullet.py/0.9.1

https://www.pushbullet.com/