µ του Raspberry Pi και ηblogs.sch.gr/salpk/files/2013/09/Σύντομη...Σύντοµη...

16
Σύντομη εισαγωγική παρουσίαση του Raspberry Pi και η χρήση του σε συνδυασμό σε την Python και Το Scratch Σαλπασαράνης Κωνσταντίνος Εκπαιδευτικός ΠΕ19 Πληροφορικής Ηλεκτρολόγος Μηχανικός & Τεχνολογίας Υπολογιστών Πολυτεχνικής Σχολής Πανεπιστημίου Πατρών

Transcript of µ του Raspberry Pi και ηblogs.sch.gr/salpk/files/2013/09/Σύντομη...Σύντοµη...

Page 1: µ του Raspberry Pi και ηblogs.sch.gr/salpk/files/2013/09/Σύντομη...Σύντοµη εισαγωγική παρουσίαση του Raspberry Pi και η χρήση

Σύντοµη εισαγωγική παρουσίαση του Raspberry Pi και η χρήση του σε συνδυασµό σε την Python και Το Scratch

Σαλπασαράνης Κωνσταντίνος Εκπαιδευτικός ΠΕ19 Πληροφορικής

Ηλεκτρολόγος Μηχανικός & Τεχνολογίας Υπολογιστών

Πολυτεχνικής Σχολής Πανεπιστηµίου Πατρών

Page 2: µ του Raspberry Pi και ηblogs.sch.gr/salpk/files/2013/09/Σύντομη...Σύντοµη εισαγωγική παρουσίαση του Raspberry Pi και η χρήση

Περιεχόµενα

Γενικά στοιχεία του Raspberry pi και τεχνικά χαρακτηριστικά του__________________3

Τεχνικά Χαρακτηριστικά Raspberry Pi Model B 512MB RAM ___________________3

Σύνδεση του Raspberry pi µε Υπολογιστή και αποµακρυσµένος έλεγχός του ___________5

Γιατί Python _______________________________________________________9

Παράδειγµα ελέγχου τηλεκατευθυνόµενου αυτοκινήτου µέσω Python _____________ 11

Ελέγχοντας το GPIO του Raspberry pi µέσω του Scratch ______________________ 13

Εφαρµογές του Raspberry Pi ___________________________________________ 15

Tutorial του Raspberry pi_____________________________________________ 15

Αναφορές ________________________________________________________ 16

Page 3: µ του Raspberry Pi και ηblogs.sch.gr/salpk/files/2013/09/Σύντομη...Σύντοµη εισαγωγική παρουσίαση του Raspberry Pi και η χρήση

Γενικά στοιχεία του Raspberry pi και τεχνικά χαρακτηριστικά του

Το Raspberry pi είναι ένας φθηνός υπολογιστής. Το µέγεθός του δεν ξεπερνά αυτό της

πιστωτικής κάρτας και αναπτύχθηκε στο Ηνωµένο Βασίλειο από την εταιρεία “Raspberry Pi

Foundation” µε σκοπό την προώθηση της διδασκαλίας της επιστήµης των υπολογιστών στα

σχολεία [1]. Η πιο νέα έκδοση είναι το Model B µε 512 MB µνήµη RAM όπως φαίνεται στην

Εικόνα 1, µε τα ακόλουθα τεχνικά χαρακτηριστικά:

Εικόνα 1

Τεχνικά Χαρακτηριστικά Raspberry Pi Model B 512MB RAM

• Broadcom BCM2835 700MHz ARM1176JZFS επεξεργαστής FPU και Videocore 4 GPU

• Η GPU παρέχει Open GL ES 2.0 και 1080p30 H.264 high-profile αποκωδικοποίηση • 512MB RAM • 10/100 BaseT Ethernet υποδοχή • HDMI (rev 1.3 & 1.4) υποδοχή • 2xUSB 2.0 υποδοχή • RCA video υποδοχή (PAL and NTSC) • SD card υποδοχή • Φορτίζει από υποδοχή microUSB • 3.5mm audio out jack • Header footprint for camera connection • Μέγεθος 85.6 x 53.98 x 17mm

Τα επιµέρους στοιχεία του Raspberry pi φαίνονται στην παρακάτω Εικόνα 2

Page 4: µ του Raspberry Pi και ηblogs.sch.gr/salpk/files/2013/09/Σύντομη...Σύντοµη εισαγωγική παρουσίαση του Raspberry Pi και η χρήση

Εικόνα 2

[Πηγή http://www.raspberrypi.org/wp-content/uploads/2011/07/RaspiModelB.png]

Μπορούµε λοιπόν να το συνδέσουµε σε monitor που έχει υποδοχή HDMI (µε καλή ποιότητα

εικόνας) ή ακόµα και αναλογικά µέσω της RCA video θύρας (µε χαµηλότερης ποιότητας

εικόνα). Παρακάτω θα παρουσιαστεί η διαδικασία µε την οποία µπορούµε αποµακρυσµένα,

µέσω του προσωπικού µας υπολογιστή και του τοπικού δικτύου να ελέγξουµε το Raspberry

pi, χωρίς να χρειαζόµαστε επιπλέον οθόνη [2].

Η βασική έκδοση στην SD κάρτα είναι η διανοµή του Linux Raspbian [3], που στηρίζεται στη

Debian. Μια ενδεικτική έκδοση που περιλαµβάνει προεγκατεστηµένα προγράµµατα κυρίως

για τον έλεγχο των θυρών (ports) και κάποια άλλα όπως τα:

• Scratch • Python 2.7 • Python IDLE • Midori Browser • Libre Office • Xpdf • Pidgin • Synaptic • VLC Player

Page 5: µ του Raspberry Pi και ηblogs.sch.gr/salpk/files/2013/09/Σύντομη...Σύντοµη εισαγωγική παρουσίαση του Raspberry Pi και η χρήση

Σύνδεση του Raspberry pi µε Υπολογιστή και αποµακρυσµένος έλεγχός του

Για να έχουµε αποµακρυσµένο παραθυρικό έλεγχο του Raspberry pi µπορούµε να

εγκαταστήσουµε τον X Server Xming που είναι Ελεύθερο Λογισµικό και µπορούµε να το

κατεβάσουµε από: http://sourceforge.net/projects/xming/?source=navbar ή από

http://www.straightrunning.com/XmingNotes/

Αφού γίνει η εγκατάσταση, τρέχουµε το Xming Launch και θα έχουµε τις επόµενες οθόνες,

ακολουθώντας τα βήµατα που θα βρείτε στο http://simonthepiman.com/2-10-

how_to_view_my_pi_console_on_a_windows_PC.php :

Εικόνα 3

Επιλέγουµε ένα παράθυρο (One Window) και συνεχίζουµε (πατάµε Next).

Page 6: µ του Raspberry Pi και ηblogs.sch.gr/salpk/files/2013/09/Σύντομη...Σύντοµη εισαγωγική παρουσίαση του Raspberry Pi και η χρήση

Εικόνα 4

Επιλέγουµε το Start a Program και πατάµε Next.

Εικόνα 5

Γράφουµε στο πεδίο Start Program το startlxde. Επιλέγουµε να χρησιµοποιήσουµε το

PuTTY.Επίσης γράφουµε την IP του Raspberry pi που του έχει δοθεί από τη σύνδεσή του

Page 7: µ του Raspberry Pi και ηblogs.sch.gr/salpk/files/2013/09/Σύντομη...Σύντοµη εισαγωγική παρουσίαση του Raspberry Pi και η χρήση

στο LAN µέσω του Router. Τέλος γράφουµε τον προκαθορισµένο χρήστη που έχει το

Raspberry pi: pi και password: raspberry. Κατόπιν πατάµε Next.

Εικόνα 6

Πατάµε Next.

Εικόνα 7

Και αποθηκεύουµε το configuration σε κάποιο εύκολα προσβάσιµο φάκελο (π.χ Επιφάνεια Εργασίας) ως Config.

Page 8: µ του Raspberry Pi και ηblogs.sch.gr/salpk/files/2013/09/Σύντομη...Σύντοµη εισαγωγική παρουσίαση του Raspberry Pi και η χρήση

Κατόπιν εκτελούµε το Config και γράφουµε το password του Raspberry pi και είµαστε έτοιµοι. Έχουµε την οθόνη του Raspberry pi στην οθόνη του υπολογιστή µας.

Εικόνα 8

[video, http://users.sch.gr/salpk/vid/Xming_config.flv ]

Page 9: µ του Raspberry Pi και ηblogs.sch.gr/salpk/files/2013/09/Σύντομη...Σύντοµη εισαγωγική παρουσίαση του Raspberry Pi και η χρήση

Γιατί Python

Σύµφωνα µε την τεκµηρίωση της Python [4]: «Η Python είναι µια εύκολη στην εκµάθηση,

ισχυρή γλώσσα προγραµµατισµού. Έχει υψηλού επιπέδου δοµές δεδοµένων και µια απλή, αλλά

αποτελεσµατική προσέγγιση στον αντικειµενοστρεφή προγραµµατισµό. »

Επίσης, η κοµψή σύνταξη της Python και οι δυναµικοί τύποι, µαζί µε την χρήση του

διερµηνευτή (interpreter), την καθιστούν µια ιδανική γλώσσα για την εύκολη και γρήγορη

ανάπτυξη εφαρµογών σε πολλούς τοµείς και στις περισσότερες πλατφόρµες.[4]

Πέρα των άλλων ευκολιών της Python υπάρχει και ενσωµατωµένο το στοιχείο (Module) των

Γραφικών Χελώνας.

Τα «Γραφικά της χελώνας» είναι ένας δηµοφιλής τρόπος για την εισαγωγή των παιδιών στο

χώρο της αλγοριθµικής σκέψης και του προγραµµατισµού γενικότερα. Ήταν µέρος της

αρχικής γλώσσας προγραµµατισµού Logo που αναπτύχθηκε από τους Wally Feurzig και

Seymour Papert το 1966 [5].

Έτσι εύκολα εισάγουµε τη βιβλιοθήκη turtle και πλέον ο χειρισµός της χελώνας µας γίνεται

µε τις γνωστές εντολές κατεύθυνσης.

Εικόνα 9

Έτσι µε απλές εντολές ελέγχουµε τη χελώνα όπως φαίνεται παρακάτω:

Page 10: µ του Raspberry Pi και ηblogs.sch.gr/salpk/files/2013/09/Σύντομη...Σύντοµη εισαγωγική παρουσίαση του Raspberry Pi και η χρήση

>>> turtle.circle(50)

Εικόνα 10

Page 11: µ του Raspberry Pi και ηblogs.sch.gr/salpk/files/2013/09/Σύντομη...Σύντοµη εισαγωγική παρουσίαση του Raspberry Pi και η χρήση

Παράδειγµα ελέγχου τηλεκατευθυνόµενου αυτοκινήτου µέσω Python Παρακάτω παρουσιάζεται ένα παράδειγµα ελέγχου ενός τηλεκατευθυνόµενου αυτοκινήτου

µέσω της Python. Στην παρακάτω εικόνα φαίνεται ο κώδικάς που µας επιτρέπει να

ενεργοποιούµε την κατάλληλη θύρα του Raspberry pi που θέλουµε να ελέγξουµε.

Εικόνα 11

Στο αρχείο remote.py της Python αρχικά εισάγουµε τη βιβλιοθήκη RPi.GPIO και µέσω αυτής

ενεργοποιούµε κατά βούληση όποιο Ι/Ο pin της µονάδας GPIO θέλουµε. Στο lxterminal

εκτελούµε το παρακάτω:

Εικόνα 12

Εισάγουµε τη θύρα που θέλουµε να ελέγξουµε. Στο παράδειγµά µας την GPIO 25. Γενικά η

διάταξη των pins της GPIO για το Raspberry pi είναι η ακόλουθη στην Εικόνα 13.

[video, http://users.sch.gr/salpk/vid/Python_Raspberry_Pi.flv ]

Page 12: µ του Raspberry Pi και ηblogs.sch.gr/salpk/files/2013/09/Σύντομη...Σύντοµη εισαγωγική παρουσίαση του Raspberry Pi και η χρήση

Εικόνα 13

[Η δηµοσίευση στο http://blogs.sch.gr/salpk/ ]

Page 13: µ του Raspberry Pi και ηblogs.sch.gr/salpk/files/2013/09/Σύντομη...Σύντοµη εισαγωγική παρουσίαση του Raspberry Pi και η χρήση

Ελέγχοντας το GPIO του Raspberry pi µέσω του Scratch Επειδή ο αρχικός σχεδιασµός του συστήµατος είχε ως αποδέκτες τους εκπαιδευτικούς και τα

παιδιά, δε θα µπορούσε να λείπει το Scratch και η Python από το σύστηµα.

Ο έλεγχος των I/O θυρών γίνεται µε πολύ απλό κώδικα στην Python µέσω των κατάλληλων

βιβλιοθηκών και παράλληλα επειδή το Scratch έχει ενταχθεί ενεργά στην εκπαιδευτική

διαδικασία, έχουν δηµιουργηθεί πολλές βιβλιοθήκες σε Python που επιτρέπουν τη διεπαφή

Scratch-Python και εποµένως τον εύκολο έλεγχο των I/O του Raspberry pi [6].

Εικόνα 14

Εν προκειµένω, ο έλεγχος των I/O µέσω του Scratch επιτυγχάνεται µε εγκατάσταση του

“Scratch GPIO” [http://cymplecy.wordpress.com/2012/08/26/scratch-controlling-the-

gpio-on-a-raspberrypi/], που αποτελεί ουσιαστικά τη διεπαφή Scratch και Python.

Για την εγκατάσταση ανοίγουµε το LX Terminal και πληκτρολογούµε:

• sudo wget https://dl.dropbox.com/s/gery97qildl7ozd/install_scratch_gpio.sh -O

/boot/install_scratch_gpio.sh

και κατόπιν κάνουµε την εγκατάσταση ως

Page 14: µ του Raspberry Pi και ηblogs.sch.gr/salpk/files/2013/09/Σύντομη...Σύντοµη εισαγωγική παρουσίαση του Raspberry Pi και η χρήση

• sudo /boot/install_scratch_gpio.sh

Εκτελώντας το ScratchGPIO που υπάρχει, µπορούµε πλέον να ελέγξουµε το GPIO του

Raspberry pi από τον «Έλεγχο» του Scratch όπως φαίνεται και παρακάτω.

Στην Εικόνα 15 φαίνεται το πρόγραµµα σε Scratch, όπου έχουµε ορίσει το pin11 σαν έξοδο

του GPIO του Raspberry pi στην οποία έχουµε συνδέσει ένα LED. Εκτελώντας το

πρόγραµµα αυτό το LED θα ανάβει για 1 δευτερόλεπτο και θα σβήνει για 2 δευτερόλεπτα,

επαναληπτικά.

[ video, http://users.sch.gr/salpk/vid/Scratch_Raspberry_LED_Blink.flv ]

Εικόνα 15

Page 15: µ του Raspberry Pi και ηblogs.sch.gr/salpk/files/2013/09/Σύντομη...Σύντοµη εισαγωγική παρουσίαση του Raspberry Pi και η χρήση

Εφαρµογές του Raspberry Pi

http://www.youtube.com/watch?v=uPvHY-KvelI

http://www.youtube.com/watch?v=RJzzNBzXpKc

http://cymplecy.wordpress.com/2013/03/19/scratch-gpio-development/

http://raspi.tv/2013/raspberry-pi-in-the-classroom-y5-sensors-and-switching

Tutorial του Raspberry pi http://www.youtube.com/user/RaspberryPiTutorials

Page 16: µ του Raspberry Pi και ηblogs.sch.gr/salpk/files/2013/09/Σύντομη...Σύντοµη εισαγωγική παρουσίαση του Raspberry Pi και η χρήση

Αναφορές [1] http://www.raspberrypi.org/about [2] http://learn.adafruit.com/raspberry-pi-e-mail-notifier-using-leds [3] http://www.raspbian.org/ [4] http://docs.python.org/2/tutorial/ [5] http://docs.python.org/2/library/turtle.html [6] http://cymplecy.wordpress.com/2012/08/26/scratch-controlling-the-gpio-on-a-raspberrypi/