Δραστηριότητα 2 – PaintPot (Μέρος 1)
Τρίτη, 11 Δεκεμβρίου 2012, 12:29 μμ
Κάτω από: App_inventor  |  Αφήστε ένα σχόλιο

Download Refined Version (Book Chapter PDF)

Το παρόν εγχειρίδιο παρουσιάζει το στοιχείο Canvas για την δημιουργία απλών γραφικών σε δύο διαστάσεις. Θα φτιάξετε μία εφαρμογή που θα σας επιτρέπει να σχεδιάσετε στην οθόνη της συσκευής σας σε διαφορετικά χρώματα.

Ιστορικό σημείωμα: Το PaintPot είναι ένα από τα πρώτα προγράμματα που υλοποιήθηκαν για να εδραιώσουν την χρήση των προσωπικών υπολογιστών, την δεκαετία 1970.

Τι πρέπει να κάνετε

Με την εφαρμογή PaintPot, μπορείται να:

  • Βυθίσετε το δάχτυλό σας σε ένα εικονικό δοχείο μπογιάς και να ζωγραφίσετε σε αυτό το χρώμα.
  • Σύρετε το δάχτυλό σας κατά μήκος της οθόνης για να σχεδιάσετε μια γραμμή.
  • Αγγίξετε την οθόνη με σκοπό να δημιουργηθούν κουκίδες.
  • Χρησιμοποιήστε το κουμπί στο κάτω μέρος για να σβήσετε την οθόνη.
  • Συμπεριλάβετε μια εικόνα ως σχέδιο φόντου.

Στο παρόν εγχειρίδιο υποθέτουμε ότι έχετε ολοκληρώσει το εγχειρίδιο του HelloPurr. Εισάγει τις ακόλουθες έννοιες του App Inventor:

  • Το στοιχείο Canvas για σχεδίαση.
  • Τον έλεγχο της οθόνης με τα στοιχεία Arrangement.
  • Χειριστές συμβάντων που δέχονται ορίσματα.
  • Μεταβλητές.

Πρίν αρχίσετε

Σιγουρευτείτε ότι ο υπολογιστής σας και το τηλέφωνο έχουν ρυθμιστεί ώστε να χρησιμοποιούν το App Inventor, και ότι έχετε πρόσβαση στην ιστοσελίδα του App Inventor στο link http://appinventor.mit.edu. Δημιουργήστε ένα νέο project στο παράθυρο του Designer, και ονομάστε το “PaintPot”. Ανοίξτε το Blocks Editor, κάντε κλικ στο Connect to Phone, και σιγουρευτείτε ότι το τηλέφωνο έχει αρχίσει να τρέχει την εφαρμογή App Inventor.

Τίτλος οθόνης

Για να ξεκινήσετε, πηγαίνετε στο Properties panel στην δεξιά πλευρά του Designer και αλλάξτε το Title της οθόνης σε “PaintPot”. Πρέπει να βλέπετε την αλλαγή στο τηλέφωνο, δείχνοντας τον νέο τίτλο στο πεδίο του τίτλου.

Έχουμε τρία ονόματα στο App Inventor, και είναι εύκολο να τα μπερδέψουμε μεταξύ τους:

  1. Το όνομα που θα επιλέξετε για το project που θα δουλέψετε (σε αυτή την περίπτωση, PaintPot). Αυτό θα είναι επίσης το όνομα της εφαρμογής αν το στείλετε στην συσκευή.
  2. Το όνομα “Screen1”, που είναι το όνομα του στοιχείου Screen. Θα το δείτε στην λίστα των Components στον Designer. Δεν μπορείτε να τροποποιήσετε το όνομα του στοιχείου Screen σε αυτή την έκδοση του AppInventor.
  3. H ιδιότητα Title της οθόνης, που είναι αυτό που βλέπετε στο χώρο του τίτλου στην οθόνη του κινητού σας τηλεφώνου. Ο τίτλος είναι μία ιδιότητα του στοιχείου Screen. Αρχικά έχει την τιμή “Screen1”, που είναι αυτό που χρησιμοποιήσατε στην εφαρμογή HelloPurr. Ωστόσο, μπορείτε να το αλλάξετε στην εφαρμογή PaintPot.

Ρυθμίστε τα Components

Θα χρησιμοποιήσετε αυτά τα στοιχεία για να κάνετε την εφαρμογή PaintPot:

  • Τρία Buttons (Κουμπιά) για την επιλογή του κόκκινου, μπλε ή πράσινου χρώματος, και ένα άλλο κουμπί για τον καθαρισμό του σχεδίου.
  • Ένα Canvas, η επιφάνεια σχεδίασης. Αυτός ο καμβάς έχει την ιδιότητα BackgroundImage, που είναι η γατούλα από το εγχειρίδιο του HelloPurr. Μπορείτε επίσης να σχεδιάσετε σε ένα κενό καμβά. Αυτός είναι απλά ένας καμβάς χωρίς κάποια εικόνα φόντου.
  • Υπάρχει επίσης ένα στοιχείο που δεν μπορείτε να δείτε: χρησιμοποιείτε ένα HorizontalArrangement που στοιχίζει τα 3 κουμπιά του χρώματος στην κορυφή.

Αυτά ήταν τα 5 συστατικά που θα χρησιμοποιήσετε. Ας ξεκινήσουμε να δημιουργήσουμε την εφαρμογή.

Κουμπιά χρώματος

  • Τραβήξτε ένα στοιχείο Button στο Viewer και αλλάξτε την επιλογή Text του κουμπιού σε “Red” και κάντε το BackgroundColor κόκκινο.
  • Πατήστε πάνω στο Button1 στην λίστα των στοιχείων του Viewer για να το επισημάνετε (μπορεί να είναι ήδη) και χρησιμοποιήστε το κουμπί Rename… να αλλάξετε το όνομά του από “Button1” σε “ButtonRed”.
  • Επίσης, κάντε δύο κουμπιά για το μπλε και το πράσινο, με τα ονόματα “ButtonBlue” και “ButtonGreen”, τοποθετώντας τα κάθετα κάτω από το κόκκινο κουμπί.

Παρακάτω θα δείτε πώς πρέπει να εμφανίζεται στον designer, με τα ονόματα των κουμπιών να εμφανίζονται στην λίστα των στοιχείων του project. Σε αυτό το project, αλλάζετε τα ονόματα των στοιχείων αντί να τα αφήσετε στα προεπιλεγμένα ονόματα, όπως κάνατε στο HelloPurr. Η χρήση ονομάτων με νόημα κάνει τα project σας πιο εύκολα στην ανάγνωση από εσάς και από τρίτους.

Θα πρέπει να δείτε και τα τρία κουμπιά στην οθόνη του τηλεφώνου.

Διάταξη με Screen Arrangement

Πρέπει τώρα να έχετε τρία κουμπιά, το ένα πάνω από το άλλο. Το επόμενο βήμα είναι να τα παρατάξουμε οριζόντια. Αυτό θα το κάνετε με την χρήση ενός στοιχείου HorizontalArrangement.

  1. Από την κατηγορία της Παλέτας Screen Arrangement, τραβήξτε ένα στοιχείο HorizontalArrangement και τοποθετήστε το κάτω από τα κουμπιά. Αλλάξτε το όνομα του στοιχείου από “HorizontalArrangement1” σε “ThreeButtons”.
  2. Στον πίνακα Properties, αλλάξτε το Width του ThreeButtons σε “Fill Parent…” έτσι ώστε να γεμίζει ολόκληρο το πλάτος της οθόνης.
  3. Μετακινήστε τα τρία κουμπιά πλάι-πλάι μέσα στο στοιχείο HorizontalArrangement. Βοήθεια:: Θα δείτε μια μπλε κάθετη γραμμή που δείχνει που θα πάει το κομμάτι που σέρνετε.

Αν κοιτάξετε στον κατάλογο των στοιχείων του project, θα δείτε τα τρία κουμπιά κάτω από την εσοχή ThreeButtons για να δείξει ότι είναι τώρα τα υποστοιχεία του. Σημειώστε ότι όλα τα στοιχεία είναι τοποθετημένα κάτω από το Screen1.

Θα πρέπει να δείτε επίσης τα τρία κουμπιά σας σε μια σειρά στην οθόνη του τηλεφώνου σας, αν και τα πράγματα μπορεί να μην μοιάζουν ακριβώς όπως στο Designer. Για παράδειγμα, το περίγραμμα του Arrangement εμφανίζεται στο Designer αλλά όχι στο τηλέφωνο.

Γενικά, χρησιμοποιείτε Screen Arrangement για να δημιουργήσετε απλά κάθετα ή οριζόντια σχεδιαγράμματα. Μπορείτε να δημιουργήσετε πιο πολύπλοκες διατάξεις με εμφωλευμένα στοιχεία Screen Arrangement. Υπάρχει επίσης ένα στοιχείο TableArrangement (δεν το καλύπτουμε σε αυτό το εγχειρίδιο).

Καμβάς και κουμπί καθαρισμού

Τα τελευταία δύο στοιχεία είναι ο καμβάς και το κουμπί καθαρισμού.

  1. Από την βασική κατηγορία της παλέτας τραβήξτε ένα στοιχείο Canvas στο Viewer. Αλλάξτε το όνομά του σε “DrawingCanvas”. Θέστε το Width σε “Fill Parent” και το Height σε 300 pixels.
  2. Προσθέστε μία εικόνα φόντου στο Canvas. Πάτηστε πάνω στο πεδίο με το κείμενο “None…” δίπλα στο BackgroundImage στον πίνακα ιδιοτήτων του καμβά. Μπορείτε να χρησιμοποιήσετε το ίδιο αρχείο kitty.png, αν το έχετε ακόμη στον υπολογιστή σας από το σχετικό εγχειρίδιο. Αλλιώς μπορείτε να εισάγεται μία άλλη εικόνα.
    Μπορείτε να χρησιμοποιήσετε ό,τι εικόνα θέλετε, αλλά θα έχετε τα καλύτερα αποτελέσματα αν το μέγεθος της εικόνας (σε pixels) είναι κοντά στο μέγεθος που θα φαίνεται στο τηλέφωνο. Επίσης, οι μεγάλες εικόνες θα χρειαστούν περισσότερη ώρα να φορτώσουν, και ενδεχομένως να σπαταλήσουν την μέγιστη χωρητικότητα μνήμης του τηλεφώνου που έχει δεσμευθεί για την εφαρμογή.
  3. Από την Palette, τραβηξτε το τελευταίο κουμπί στην οθόνη, και τοποθετήστε κάτω από τον καμβά. Αλλάξτε το id του σε “ButtonWipe” και την επιλογή Text σε “Wipe”.

Έχετε ολοκληρώσει τα βήματα για να ρυθμίσετε την εμφάνιση της εφαρμογής σας. Εδώ είναι πώς αυτό θα πρέπει να εμφανίζεται στο Designer. Στη συνέχεια, θα καθορίσετε το πώς συμπεριφέρονται τα στοιχεία.

Προσθέστε συμπεριφορές στα στοιχεία

Το Blocks Editor πρέπει να είναι ήδη ανοιχτό. Πρώτα ρυθμίστε τα κουμπιά που αλλάζουν το χρώμα. Αργότερα θα προσθέσετε μπλοκ για να αποφασίσουν τι θα συμβεί όταν κάποιος αγγίζει ή σέρνει την οθόνη.

Προσθέστε το κουμπί χειρισμού συμβάντων

Στο Blocks Editor:

  1. Πηγαίνετε στην καρτέλα My Blocks.
  2. Ανοίξτε την κατηγορία ButtonRed και τραβήξτε το block when ButtonRed.Click .
  3. Ανοίξτε την κατηγορία DrawingCanvas. Τραβήξτε το block set DrawingCanvas.PaintColor to (μπορεί να χρειαστεί να διατρέξετε παρακάτω την λίστα μέχρι να το βρείτε) και τοποθετήστε το στην εσοχή do του when ButtonRed.Click .
  4. Γυρίστε στην καρτέλα Built-in. Ανοίξτε την κατηγορία Colors και τραβήξτε το block για το κόκκινο χρώμα και τοποθετήστε το στο set DrawingCanvas.PaintColor to .
  5. Επαναλάβετε τα βήματα 2-4 για το μπλε και πράσινο χρώμα.
  6. Το τελευταίο κουμπί που θα ρυθμίσουμε είναι το κουμπί καθαρισμού. Γυρίστε ξανά πίσω στην καρτέλα My Blocks. Κάντε ένα χειριστή συμβάντων για κλίκ για το ButtonWipe σέρνοντας το when ButtonWipe.Click από την κατηγορία ButtonWipe. Από την κατηγορία DrawingCanvas, τραβήξτε το call DrawingCanvas.Clear και τοποθετήστε το στην εσοχή do του when ButtonWipe.Click.

Τα στοιχεία για τα κουμπιά θα πρέπει να μοιάζουν κάπως έτσι:

Προσθήκη χειριστών συμβάντων επαφής

Τώρα για το επόμενο βήμα: ζωγραφίζοντας στο Canvas. Θα ορίσετε τα πράγματα έτσι ώστε όταν αγγίζετε τον καμβά, θα δημιουργείται μια τελεία στο σημείο όπου αγγίξατε. Αν σύρετε το δάχτυλό σας σιγά-σιγά κατά μήκος του καμβά, σχεδιάζει μία γραμμή.

  • Στο Blocks Editor, ανοίξτε την κατηγορία για τον καμβά και τραβήξτε το when DrawingCanvas.Touched στον χώρο που εργαζόμαστε. Μόλις σύρετε το μπλοκ έξω, οι τρεις εσοχές στα δεξιά συμπληρώνονται αυτόματα με μπλοκ που ονομάζονται όνομα x, y, και touchedSprite.

Έχετε ήδη δει κουμπιά συμβάντων για κλικ. Τα Clicks είναι απλά, επειδή δεν υπάρχει τίποτα περισσότερο να ξέρετε για το click από το ό,τι συμβαίνει. Άλλοι χειριστές συμβάντων όπως το when … Touched χρείαζονται πληροφορίες για το συμβάν. Στο App Inventor, αυτή η πληροφορία εκφράζεται ως η τιμή των ορισμάτων που σχετίζονται με τον χειριστή συμβάντων. Για το συμβάν when … Touched, τα πρώτα 2 ορίσματα αντιπροσωπεύουν τις συντεταγμένες x και y για το που συμβαίνει η επαφή. Θα κρατήσουμε το touchedSprite για ένα επόμενο εγχειρίδιο.

  • Για αυτό το συμβάν επαφής, κάντε το καμβά να σχεδιάσει έναν μικρό κύκλο στο σημείο με συντεταγμένες (x, y). Τραβήξτε μία εντολή call DrawingCanvas.DrawCircle από την κατηγορία του καμβά και τοποθετήστε το στην εσοχή do του when DrawingCanvas.Touched.

Στην δεξιά πλευρά του block when DrawingCanvas.DrawCircle υπάρχουν τρεις εσοχές που πρέπει να ορίσετε τις τιμές για τις συντεταγμένες για τα x και y όπου ο κύκλος πρέπει να σχεδιαστεί, και r, που είναι η ακτίνα του κύκλου. Για τα x και y, θα χρησιμοποιήσετε τις τιμές για τα ορίσματα που παρέχονται στον Touched handler:

  1. Ανοίξτε την κατηγορία My Definitions drawer στην κορφή της καρτέλας. Βρείτε τα block για τις τιμές value x και value y. Τα μπλοκ δημιουργούνται αυτόματα όταν σέρνετε το block του χειριστή συμβάντων αφής.
  2. Τραβήξτε το value x και το value y και τοποθετείστε τα στις σχετικές εσοχές του block when DrawingCanvas.Touched. Σιγουρεθτείτε ότι τραβήξατε τα block value, και όχι τα name.
  3. Πρέπει επίσης να ορίσετε την ακτίνα του κύκλου που θα ζωγραφιστεί. Πέντε (pixels) είναι καλή τιμή για αυτη την εφαρμογή. Πατήστε στην κενή περιοχή της οθόνης για να εμφανιστεί το μενού κύλισης και επιλέξτε math (πράσινο). Επιλέξτε το “123” από την αναπτυσσόμενη λίστα, για να δημιουργήσετε ένα block αριθμού. Αλλάξτε το “123” σε “5” και συνδέστε το στην σχετική εσοχή για την ακτίνα.
Μπορείτε επίσης να πατήσετε το 5 από το πληκτρολόγιο και μετά enter, για την ίδια ενέργεια. 

Ορίστε πώς θα πρέπει να μοιάζει:

Δοκιμάστε ό,τι έχετε μέχρι στιγμής στο τηλέφωνο. Αγγίξτε ένα κουμπί χρώματος. Τώρα αγγίξτε τον καμβά, και το δάχτυλό σας θα πρέπει να αφήσει ένα σημείο σε κάθε μέρος που αγγίζετε. Αγγίζοντας το κουμπί Wipe θα πρέπει να καθαρίζει το σχέδιό σας.

Προσθέστε Drag Events

Στο τέλος, προσθέστε ένα drag event handler. Αυτή είναι η διαφορά μεταξύ αφής και έλξης:

  • Αφή είναι όταν τοποθετείς το δάχτυλό σου πάνω στον καμβά και το σηκώνεις χωρίς να το μετακινήσεις.
  • Έλξη είναι όταν τοποθετείς το δάχτυλό σου στον καμβά και το μετακινείς όσο το κρατάς πατημένο στην οθόνη.

Όταν τραβάς το δάχτυλό σου πάνω στην οθόνη, φαίνεται να σχεδιάζεται μία γιγαντιαία, καμπύλη στο σημείο που θα μετακινηθεί το δάχτυλό σας.

Ένα συμβάν έλξης συνοδεύεται από 6 ορίσματα. Αυτά είναι 3 ζευγάρια από συντεταγμένες x και y που δείχνουν:

  • Την θέση του δαχτύλου σας από το σημείο που ξεκίνησε.
  • Την τρέχουσα θέση του δαχτύλου σας.
  • Την αμέσως προηγούμενη θέση του δαχτύλου σας.

Υπάρχει επίσης ένα sprite, που θα αγνοήσουμε σε αυτό το εγχειρίδιο.

Τώρα δημιουργείστε έναν χειριστή συμβάντων έλξης για να σχηματιστεί μία γραμμή όταν υπάρχει έλξη μεταξύ της προηγούμενης και της παρούσας θέσης:

  1. Από την κατηγορία DrawingCanvas, τραβήξτε το block when DrawingCanvas.Dragged στον χώρο που εργαζόμαστε.
  2. Επίσης από την καρτέλα DrawingCanvas, τραβήξτε το block DrawingCanvas.DrawLine στην υποδοχή do του when DrawingCanvas.Dragged.
  3. Πατήστε στην κατηγορία My Definitions.Θα πρέπει να δείτε τα στοιχεία για τα ορίσματα που χρειάζεστε. Σύρετε τα αντίστοιχα μπλοκ τιμών στις κατάλληλες υποδοχές του when DrawingCanvas.Dragged: x1 και y1 πρέπει να είναι prevX και prevY; Τα x2 και y2 πρέπει να είναι currentX και currentY.

Ορίστε το αποτέλεσμα:

Δοκιμάστε την δουλειά σας στο τηλέφωνό σας: τραβήξτε το δακτυλό σας στην οθόνη για να σχεδιάσετε γραμμές και καμπύλες. Αγγίξτε την οθόνη για να κάνετε κουκίδες. Χρησιμοποιείστε το κουμπί Wipe για να καθαρίσετε την οθόνη.

© Μετάφραση: Νινιδάκης Στυλιανός, Τμήμα Επιστήμης Υπολογιστών Π.Κ., στo πλαίσιo της πρακτικής άσκησης στο Πρότυπο Πειραματικό Γυμνάσιο Ηρακλείου 2012.  Επιμέλεια: Ψαρουδάκης Νικόλαος, Συντονιστής Πρακτικής Άσκησης, Πρότυπο Πειραματικό Γυμνάσιο Ηρακλείου. Πηγή: http://appinventor.mit.edu



7η Το ρομπότ αποκτά συμπεριφορά
Τετάρτη, 5 Δεκεμβρίου 2012, 12:21 μμ
Κάτω από: Robotics,Χωρίς κατηγορία  |  Αφήστε ένα σχόλιο

1η ώρα

Επαναληπτική δραστηριότητα

“Ηρακλειώτικο παρκάρισμα”


Βήμα 1

Τοποθετούμε τον αισθητήρα φωτός.

Το ρομπότ προχωρά μέχρι να βρει μια μαύρη γραμμή. Τότε οπισθοχωρεί, στρίβει πλάγια και παρκάρει.

Βήμα 2

Τοποθετούμε και τον αισθητήρα αφής στο “πίσω” μέρος.

Το ρομπότ προχωρά μέχρι να βρει μια μαύρη γραμμή. Τότε οπισθοχωρεί, στρίβει πλάγια και “παρκάρει” όταν το ειδιποιήσει ο αισθητήρας αφής για εμπόδιο.

2η ώρα

Αισθητήρες – Μετάδοση δεδομένων

follow the lightΟ χαρούμενος ακολουθεί το φως

Ο φοβιτσιάρης απομακρύνεται αν πλησιάσουμε το χέρι μας

Ο νευρικός επιταχύνει περισσότερο όσο πιό δυνατός είναι ο ήχος




Δραστηριότητα 3 – MoleMash (Μέρος 2)
Τετάρτη, 5 Δεκεμβρίου 2012, 12:48 πμ
Κάτω από: App_inventor  |  Αφήστε ένα σχόλιο

bkcolor

Το κυνήγι του τυφλοπόντικα (Μέρος 2)


Αφού ολοκληρώσαμε τα πρηγούμενα στάδια θα προσπαθήσουμε να δυσκολέψουμε λίγο περισσότερο τον παίχτη του παιχνιδιού μας. Γι’ αυτό, λοιπόν,
θα δημιουργήσουμε ένα στάδιο δυσκολίας στο παιχνίδι μας, αυξάνοντας την ταχύτητα που κινείται ο τυφλοποντικας μετά από κάποιο αριθμό επιτυχιών.

Διορθώσεις

Οι αλλαγές θα γίνουν αποκλειστικά στο Blocks Editor στο στοιχείο Mole.Touched και είναι οι παρακάτω:

  • Τραβήξτε ένα στοιχείο if…thendo από την καρτέλα Control τοποθετήστε το κάτω από την πρώτη εντολή set.
  • Στον έλεγχο της if θα τραβήξετε ένα στοιχείο ισότητας
  • Στην αριστερή πλευρά της ισότητας θα τοποθετήσετε την μεταβλητή score και στην δεξιά έναν αριθμό (π.χ. 5).
  • Στο πεδίο thendo θα θέσετε νέες τιμές στα InterVal του Sprite και του χρονομετρητή (Θα πρέπει να βάλετε ίδια τιμή και στα δύο).
  • Θα πρέπει τώρα το πρόγραμμά σας να μοιάζει με το παρακάτω.

Θα κάνουμε άλλη μία τελευταία αλλαγή στο πρόγραμμά μας. Στην δομή επιλογής if…thendo, στην περίπτωση που φτάσουμε στις πέντε επιτυχημένες προσπάθειες (score=5), θα προσθέσουμε μία εντολή που θα μεταβάλλει το χρώμα του φόντου του καμβά, εκτός από την αύξηση της ταχύτητας του τυφλοπόντικα.

Πιο συγκεκριμένα, στο Blocks Editor, ανοίξτε από την κατηγορία MyBlocks την κατηγορία με το όνομα MyCanvas. Τραβήξτε το στοιχείο set MyCanvas.BackroundColor και τοποθετήστε το κάτω από τις εντολές που μεταβάλλουν τα InterVal’s του προηγούμενου βήματος.  Δίπλα από αυτό το στοιχείο θα πρέπει να ορίσουμε το νέο χρώμα που θα πάρει ο καμβάς μετά την εκτέλεση αυτής της δομής. Γι’ αυτό από την καρτέλα Built-in και την κατηγορία Colors τραβήξτε και συνδέστε ένα στοιχείο χρώματος της επιλογής σας.

Θα πρέπει, λοιπόν τώρα, να έχουμε την παρακάτω μορφή στο Blocks Editor:

Και το αποτέλεσμα που θα δείτε στην συσκευή σας θα μοιάζει με την παρακάτω εικόνα:

© Μετάφραση: Νινιδάκης Στυλιανός, Τμήμα Επιστήμης Υπολογιστών Π.Κ., στo πλαίσιo της πρακτικής άσκησης στο Πρότυπο Πειραματικό Γυμνάσιο Ηρακλείου 2012.  Επιμέλεια: Ψαρουδάκης Νικόλαος, Συντονιστής Πρακτικής Άσκησης, Πρότυπο Πειραματικό Γυμνάσιο Ηρακλείου. Πηγή: http://appinventor.mit.edu



Δραστηριότητα 3 – MoleMash (Μέρος 1)
Δευτέρα, 3 Δεκεμβρίου 2012, 9:55 πμ
Κάτω από: App_inventor  |  Αφήστε ένα σχόλιο

Το κυνήγι του τυφλοπόντικα (Μέρος 1)

Download Refined Version (Book Chapter PDF)

Στο παιχνίδι MoleMash, ένας τυφλοπόντικας εμφανίζεται σε τυχαίες θέσεις στο χώρο του παιχνιδιού, και ο παίχτης κερδίζει πόντους χτυπώντας τον τυφλοπόντικα πριν αυτή φύγει. Το εγχειρίδιο αυτό δείχνει πως να υλοποιήσουμε το παιχνίδι MoleMash σαν ένα παράδειγμα ενός απλού παιχνιδιού που χρησιμοποιεί κίνηση.

Σε αυτό το εγχειρίδιο υποθέτουμε ότι έχετε ολοκληρώσει την εφαρμογή HelloPurr και την εφαρμογή PaintPot από τα αντίστοιχα εγχειρίδια.

Ας ξεκινήσουμε:

Συνδεθείτε στη σελίδα του App Inventor και δημιουργήστε ένα νέο project. Ονομάστε το “MoleMash”, και επίσης ρυθμίστε το τίτλο της οθόνης ( Title ) σε “MoleMash”. Ανοίξτε το Blocks Editor και συνδεθείτε στην κινητή συσκευή.

Κατεβάστε επίσης και αυτή την εικόνα ενός τυφλοπόντικα και αποθηκεύστε την στον υπολογιστή σας.

Εισαγωγή

Θα σχεδιάσετε το παιχνίδι με τέτοιο τρόπο ώστε ο τυφλοπόντικας να κινείται μία φορά κάθε μισό δευτερόλεπτο. Αν την ακουμπήσουμε, το σκορ αυξάνεται κατά 1, και η συσκευή δονείται. Πατώντας επανεκκίνηση το σκορ γίνεται ξανά 0.

Το παρόν εγχειρίδιο παρουσιάζει:

  • στοιχεία εικόνων
  • χρονόμετρα και το στοιχείο Clock
  • διαδικασίες
  • παραγωγή τυχαίων αριθμών μεταξύ 0 και 1
  • πεδία κειμένου
  • ομαδοποίηση τύπων

Τα πρώτα μέρη

Μερικά από αυτά θα πρέπει να σας είναι οικία από προηγούμενα εγχειρίδια:

  • Ένας Canvas με όνομα “MyCanvas”. Είναι η περιοχή όπου ο τυφλοπόντικας κινείται.
  • Ένα Label με όνομα “ScoreLabel” που εμφανίζει το σκορ, π.χ., τον αριθμό των χτυπημάτων που έχει πετύχει στον τυφλοπόντικα ο παίχτης.
  • Ένα Button με όνομα “ResetButton”.

Τραβήξτε αυτά τα στοιχεία από την Παλέττα πάνω στον Viewer και ρυθμίστε τα ονόματά τους. Τοποθετήστε το MyCanvas στην κορυφή και θέστε τις διαστάσεις του σε 300 pixels οριζόντια και 300 pixels κάθετα. Ρυθμίστε το Text του ScoreLabel σε “Score: —“. Ρυθμίστε το Text του ResetButton σε “Reset”. Επίσης πρόσθεσε ενα στοιχείο Sound και ονόμασέ το “Noise”. Θα χρησιμοποιήσεις το Noise για να κάνεις την συσκευή να δονηθεί όταν χτυπηθεί ο τυφλοπόντικας, όπως περίπου κάναμε με το γατάκι στο HelloPurr.

Χρονόμετρα και το στοιχείο Clock

Απαιτείται να ορίσεις για τον τυφλοπόντικα να κινείται περιοδικά, και θα το κάνεις αυτό με την χρήση ενός στοιχείου Clock. Το στοιχείο Clock παρέχει διαφορετικές ενέργειες σχετικά με τον χρόνο, όπως το να σου λέει την τρέχουσα ημερομηνία. Εδώ, θα χρησιμοποιήσεις το στοιχείο σαν ένα χρονόμετρο που “πυροδοτείται” σε καθορισμένα διαστήματα. Το διάστημα “πυροδότησης” εντοπίζεται από την επιλογή TimerInterval του στοιχείου Clock. Τραβήξτε ένα στοιχείο Clock. Θα τοποθετηθεί στην περιοχή των μη-εμφανών στοιχείων. Ονομάστε το “MoleTimer”. Θέστε το TimeInterval σε 500 ms για να κάνει τον τυφλοπόντικα να κινείται κάθε μισό λεπτό. Σιγουρέψου ότι η επιλογή Enabled έχει τσεκαριστεί.

Είσαγοντας μία εικόνα

Για να εισάγουμε τον κινούμενο τυφλοπόντικα θα χρησιμοποιήσουμε ένα sprite.

Τα Sprites είναι εικόνες που μπορούν να κινηθούν στην οθόνη μέσα στο Canvas. Κάθε sprite έχει μία Ταχύτητα (Speed) και ένα Heading, και επίσης ένα διάστημα (Interval) που εντοπίζει πόσο συχνά η εικόνα κινείται στην ταχύτητα που ορίστηκε. Τα Sprites μπορούν επίσης να εντοπίσουν όταν κάποιος τα αγγίζει. Στο MoleMash, έχει ταχύτητα 0, έτσι δεν κινείται από μόνος του. Γι’ αυτό, θα θέτεις την θέση του τυφλοπόντικα κάθε φορά που το χρονόμετρο “πυροδοτείται”. Τράβηξε ένα αντικείμενο ImageSprite στον Viewer. Θα βρείτε ένα τέτοιο αντικείμενο στην κατηγορία Animation της Παλέττας. Τοποθετήστε την μέσα στην περιοχή του MyCanvas. Θέστε τις παρακάτω επιλογές για την εικόνα του τυφλοπόντικα:

  • Picture: Χρησιμοποίησε το mole.png, που κατέβασες στον υπολογιστή σου στην αρχή.
  • Enabled: Επιλεγμένο
  • Interval: 500 (Το διάστημα δεν έχει σημασία εδώ, επειδή η ταχύτητα του τφλοπόντικα είναι μηδέν: δεν κινείται από μόνος του.)
  • Heading: 0 Δεν έχει σημασία ούτε αυτό, επειδή η ταχύτητα είναι 0.
  • Speed: 0.0
  • Visible: Επιλεγμένο
  • Width: Automatic
  • Height: Automatic

Θα πρέπει να δεις τώρα τις επιλογές x και y ήδη να έχουν συμπληρωθεί. Εντοπίστηκαν από όπου τοποθέτησες τον τυφλοπόντικα στο MyCanvas. Συνέχισε και τράβηξε λίγο ακόμα τον τυφλοπόντικα. Θα δεις τα x και y να αλλάζουν. Θα πρέπει να δείτε επίσης τον τυφλοπόντικα στο συνδεδεμένο τηλέφωνο, και τον τυφλοπόντικα να κινείται στην οθόνη όσο τον μετακινείται στο Designer. Έχετε τώρα ορίσει όλα τα στοιχεία. Ο Designer θα πρέπει να μοιάζει με αυτό παρακάτω. Σημειώστε ότι το Mole εξαρτάται από το MyCanvas στην λιστα των δομικών στοιχείων, υποδεικνύοντας ότι το sprite είναι υπό-στοιχείο του κανβά μας.

Συμπεριφορά των στοιχείων και χειριστές γεγονότων

Τώρα θα συγκεκριμενοποιήσετε την συμπεριφορά των στοιχείων. Αυτό εισάγει κάποιες νέες ιδέες για το App Inventor. Η πρώτη είναι η ιδέα της διαδικασίας.

Μία διαδικασία είναι μία ακολουθία δηλώσεων που μπορείς να αναφερθείς σε όλες με μία μοναδική εντολή. Εάν έχετε μία ακολουθεία που πρέπει να χρησιμοποιήσετε παραπάνω από μία φορά σε ένα πρόγραμμα, μπορείτε να την ορίσετε σαν μία διαδικασία, και έτσι δεν χρειάζεται να επαναλάβετε την ακολουθία κάθε φορά που την χρησιμοποιείτε. Οι διαδικασίες στο App Inventor μπορούν να δεχτούν ορίσματα και να επιστρέψουν τιμές. Αυτό το εγχειρίδιο καλύπτει μόνο την απλούστερη περίπτωση: διαδικασίες που δεν δέχονται ορίσματα και δεν επιστρέφουν τιμές.

Δήλωση Διαδικασιών ( Procedures )

Δηλώστε δύο διαδικασίες:

  • Η MoveMole μετακινεί τον τυφλοπόντικα σε μία νέα τυχαία θέση στο καμβα.
  • Η UpdateScore εμφανίζει το σκορ, αλλάζοντας το κείμενο του πεδίου ScoreLabel

Αρχίζοντας με την διαδικασία MoveMole:

  • Στο Blocks Editor, κάτω από το Built-In, άνοιξε το Definition drawer. Τράβηξε ένα μπλοκ to procedure και αλλάξτε το πεδίο “procedure” σε “MoveMole”.
    Σημείωση: Υπάρχουν δύο παρόμοια μπλοκ: procedure και procedureWithResult. Εδώ θα πρέπει να χρησιμοποιήσετε το procedure.

    Το μπλοκto MoveMole έχει μία ένδειξη με τίτλο “do”. Εκεί τοποθετείται τις εντολές για την διαδικασία. Σε αυτή τη περίπτωση υπάρχουν 2 εντολές: μία για να ορίσει τη θέση x του τυφλοπόντικα και άλλη μία για την θέση y. Σε κάθε μία περίπτωση, θα ορίσετε την θέση να τυχαία συνάρτηση μεταξύ του 0 και του 1, της διαφοράς μεταξύ του μεγέθους του καμβά και του μεγέθους του τυφλοπόντικα. Δημιουργείς αυτή τη τιμή με την χρήση blocks για random fraction και πολλαπλασιασμό και διαίρεση. Μπορείται να τα βρείτε στο Math drawer.

  • Κάντε build την διαδικασία MoveMole. Η ολοκληρωμένη δήλωση θα πρέπει να μοιάζει με αυτό:

    Αφήστε το πεδίο των ορισμάτων της MoveMole κενό επειδή η MoveMole δεν δέχεται κανένα όρισμα. Παρατηρήστε πώς τα blocks συνδέονται μεταξύ τους: η πρώτη δήλωση χρησιμοποεί το block Mole.X set για να ορίσει την οριζόντια θέση του τυφλοπόντικα. Η τιμή που τοποθετείται στο πεδίο του block είναι το αποτέλεσμα του πολλαπλασιασμού.

    1. Το αποτέλεσμα του πεδίου του block call random fraction, μία τιμή μεταξύ 0 και 1.
    2. Το αποτέλεσμα της αφαίρεσης το πλάτος του τυλοπόντικα από το πλάτος του καμβά.

    Την κάθετη θέση την χειριζόμαστε παρομοίως.

Όταν η διαδικασία MoveMole ολοκληρωθεί, το επόμενο βήμα είναι η δήλωση μίας μεταβλητής με όνομα score για να κρατάει τον αριθμό των χτυπημάτων με αρχική τιμή 0. Επίσης, δηλώστε μία διαδικασία UpdateScore που δείχνει το σκορ στο ScoreLabel. Το περιεχόμενο στο πεδίο ScoreLabel θα είναι η συμβολοσειρά “Score: ” συνοδευόμενη με την τιμή score.

  • Για την δημιουργία του μέρους που εμφανίζει το “Score: “, τραβήξτε ένα block κειμένου από το Text drawer. Αλλάξτε το κείμενο σε “Score: ” από “text”.
  • Χρησιμοποιείστε ένα bolck τύπου join για να εισάγει την τιμή σε block που δίνει στην μεταβλητή του σκορ. Μπορείται να βρείτε το block τύπου join στο Text drawer.

Ορίστε πως score και UpdateScore θα πρέπει να μοιάζουν τώρα:

Προσθήκη ενός χρονομετρητή

Το επόμενο βήμα είναι να συνεχίσει το τυφλοπόντικας να κινείται. Εδώ είναι που θα κάνετε χρήση του MoleTimer. Τα Clock components έχουν ένα χειρηστή γεγονότων when … Timer που ενεργοποιείται επανειλημμένα σε ένα ρυθμό που καθορίζεται από τη TimerInterval.

Ρυθμίστε τον MoleTimer για να καλεί την MoveMole κάθε φορά που ο χρονομετρητής τροφοδοτείται, φτιάχνοντας έναν event handler σαν αυτό:

Προσθήκη χειριστή για το “άγγιγμα” του τυφλοπόντικα.

Το πρόγραμμα πρέπει να αυξάνει το σκορ κάθε φορά που ο τυφλοπόντικας δέχεται άγγιγμα. Τα Sprites ανταποκρίνονται όταν δεχτούν ένα άγγιγμα. Γι αυτό δημιουργήστε ένα touch event handler για τον τυφλοπόντικα Mole ώστε να:

  1. Αυξάνει το σκορ.
  2. Καλεί την UpdateScore για την εμφάνιση του σκορ.
  3. Δονεί το τηλέφωνο για 1/10 του δευτερολέπτου (100 milliseconds).
  4. Καλεί την MoveMole έτσι ώστε ο τυφλοπόντικας να κινείται αμέσως, αντί να περιμένουμε το χρονόμετρο.

Ορίστε πώς φαίνεται τώρα με τα blocks. Συνεχίστε και φτιάξτε το blockwhen Mole.Touched.

Μία βοήθεια: Γρήγορη δημιουργία blocks.

  • Για να δημιουργήσετε ένα block με την τιμή 100, αρκεί να πληκτρολογήσετε 100 και να πατήσετε enter.
  • Για να δημιουργήσετε ένα block MoveMole, αρκεί να πληκτρολογήσετε MoveMole και να επιλέξετε το block που επιθυμείται από την λίστα.

Μηδενισμός του σκορ

Μία τελευταία λεπτομέρεια είναι ο μηδενισμός του σκορ. Αυτό είναι απλά το αποτέλεσμα μίας ενέργειας στο ResetButton που αλλάζει το σκορ σε 0 και καλεί την UpdateScore.

Ολοκλήρωση του προγράμματος

Εδώ είναι το ολοκληρωμένο πρόγραμμα του MoleMash

© Μετάφραση: Νινιδάκης Στυλιανός, Τμήμα Επιστήμης Υπολογιστών Π.Κ., στo πλαίσιo της πρακτικής άσκησης στο Πρότυπο Πειραματικό Γυμνάσιο Ηρακλείου 2012.  Επιμέλεια: Ψαρουδάκης Νικόλαος, Συντονιστής Πρακτικής Άσκησης, Πρότυπο Πειραματικό Γυμνάσιο Ηρακλείου. Πηγή: http://appinventor.mit.edu




Στόχοι

Προγραμματισμός – κατασκευή – εφαρμογή – έλεγχος λειτουργίας

Δομή ακολουθίας,  δομή ελέγχου,  δομή επανάληψης

Είσοδοι  Ρομπότ – αισθητήρας ήχου, αισθητήρας χρώματος, αισθητήρας απόστασης

Εφαρμογές

1. Άσκηση 13-Sound Control

Δομή ελέγχου και αισθητήρας ήχου – ρύθμιση στο κατώφλι ήχου

Το ρομπότ προχωράει λίγο.  Αν ακούσει ήχο πάνω από κάποια db κάνει πίσω

2. Άσκηση 14- Detect Distance

Ακολυθιακή δομή

Το ρομπότ κινείται από απόσταση 50 cm προς ένα εμπόδιο. Μόλις φτάσει σε απόσταση 20 cm σταματά

3. Άσκηση 15 – Distance Control

Δομή ελέγχου και αισθητήρας απόστασης

Το ρομπότ περιμένει. Αν η απόσταση από το εμπόδιο είναι μεγαλύτερη από 20  προχωρά μπροστά αλλιώς πάει πίσω.

4. Άσκηση 16 – Detect Dark Line

Δομή ελέγχου και αισθητήρας χρώματος – ρύθμιση στο κατώφλι άσπρο / μαύρο

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

5. Άσκηση 17 – Follow A Line

Έλεγχος ρομπότ μέσω αισθητήρα χρώματος

Το ρομπότ προχωράει. Όταν βλέπει μαύρο στρίβει ελάχιστα δεξιά και όταν βλέπει άσπρο στρίβει αριστερά. Έτσι μπορεί να ακολουθήσει μια μαύρη γραμμή.



5η συνάντηση Προγραμματισμός και Κατασκευή
Τετάρτη, 21 Νοεμβρίου 2012, 9:14 πμ
Κάτω από: Robotics  |  Αφήστε ένα σχόλιο

Στόχοι

Παίζω παλαμάκια - έλεγχος ρομπότ μέσω αισθητήρα ήχου στην πίστα δοκιμών "Ζάλογγο"

Προγραμματισμός – κατασκευή – εφαρμογή – έλεγχος λειτουργίας

Δομή ακολουθίας, δομή επανάληψης, μπλοκ εντολών – ομαδοποίηση εντολών

Είσοδοι  Ρομπότ – αισθητήρας ήχου

Εφαρμογές

1. Άσκηση 06-Curve turn

Ακολουθιακή δομή

Το ρομπότ προχωράει και στρίβει ομαλά (κατανομή ροπής στους ρότορες)

2. Άσκηση 08- Drive in Square – Common Palette

Loop – επανάληψη

Το ρομπότ κινείται σε τετράγωνο. ( Προχωράει και στρίβει 90) Χ 4 φορές

3. Άσκηση 09-My Block – Common Palette

Δημιουργία μπλοκ εντολών – υποπρογράμματα

(top down analysis – bottom up programming)

Όμοια αποστολή για το ρομπότ, αλλά προγραμματιστικά, οργανώνω το μπλοκ εντολών τετράγωνο

4. Άσκηση 10 – Parking Bay

ομαλός τερματισμός κίνησης, τερματισμός με μπλοκάρισμα τροχών, οπισθοπορεία

Το ρομπότ προχωράει, στρίβει ομαλά 90, παίρνει θέση παρακαρίσματος και οπισθοπορεί σε ευθεία.

5. Άσκηση 12 – Detect Sound

Έλεγχος ρομπότ μέσω αισθητήρα ήχου, sensor calibration προσαρμογή αισθητήρα στο θόρυβο περιβάλλοντος

Το ρομπότ προχωράει (unlimited). Όταν ακούσει ένα ήχο πάνω από κάποια desibel σταματάει (ομαλά – coast). Χρειάζεται ρύθμιση του σκαλοπατιού ήχου στο wait block του αισθητήτα ήχου ώστε να είναι συμβατό με το θόρυβο της αίθουσας.

Λίγη ησυχία ρε παιδιά!!! (ακαλιμπράριστος αισθητήρας)



4η συνάντηση Γνωριμία με το λογισμικό
Τετάρτη, 14 Νοεμβρίου 2012, 12:04 μμ
Κάτω από: Robotics  |  Αφήστε ένα σχόλιο

Στόχος της  σημερινής συνάντησης είναι

  • η γνωριμία με το περιβάλλον προγραμματισμού του robot
  • η εκμάθηση βασικών χειρισμών και προγραμματισμός των αισθητήρων και των μοτέρ του ρομπότ
  • η επίλυση απλών προβλημάτων – αποστολών από το ρομπότ

Προγραμματιστικά θα χρησιμοποιήσουμε την

  • ακολουθιακή δομή
  • δομή ελέγχου
  • δομή επανάληψης

Το περιβάλλον ακολουθεί τις αρχές του οπτικού προγραμματισμού (visual programming) και είναι αρκετά απλό στη χρήση, απαλλάσσοντας μας από τα προβλήματα σύνταξης και διόρθωσης λαθών μίας κλασσικής γλώσσας προγραμματισμού.

Για να δοκιμάσουμε τα προγράμματα, θα επαναλάβουμε την κατασκευή ρομπότ που είχαμε κάνει στη δεύτερη συνάντησή.

Στη συνέχεια ανοίγουμε το λογισμικό και προγραμματίζουμε, ελέγχοντας στο ρομπότ μας ένα ένα, τα παραδείγματα που περιγράφονται στην Common Palette.

Η ομάδα Alan ξεκινά την κατασκευή

Η ομάδα "Τάλως" μελετά και οργανώνεται



Δραστηριότητα 1 – HelloPurr (Μέρος 1)
Δευτέρα, 12 Νοεμβρίου 2012, 3:04 μμ
Κάτω από: App_inventor  |  Αφήστε ένα σχόλιο

HelloPurr με ένα κινητό τηλέφωνο (Μέρος 1ο)

Δημιουργώντας την πρώτη σας εφαρμογή με μία συσκευή Android (Μέρος 1): HelloPurr

Κατεβάστε εδώ το κεφάλαιο του βιβλίου (στα Αγγλικά)

Η σελίδα αυτή θα σας εισάγει στην δημιουργία της πρώτης σας εφαρμογής: Μία εικόνα μίας γάτας, η οποία νιαουρίζει όταν την αγγίζετε. Μπορείτε, επίσης, να παρακολουθήσετε το βίντεο της δημιουργίας αυτής της εφαρμογής. Μόλις ολοκληρώσετε το HelloPurr, θα είστε σε θέση να σχεδιάσετε και να τρέξετε δικές σας εφαρμογές. Πριν ξεκινήσετε, σιγουρευτείτε ότι έχετε προετοιμάσει κατάλληλα τον υπολογιστή σας.

Κατά την διάρκεια δημιουργίας του HelloPurr θα μάθετε πώς δουλεύουν τα τρία βασικά εργαλεία του App Inventor:

  • Ο Designer, όπου θα σχεδιάσετε την εφαρμογή. Τρέχει στον φυλλομετρητή σας.
  • Το Blocks Editor, όπου θα καθορίσετε την συμπεριφορά της εφαρμογής σας. Είναι μία ξεχωριστή εφαρμογή που τρέχει σε άλλο παράθυρο.
  • Tο phone, συνδεδεμένο στον υπολογιστή σας μέσω ενός καλωδίου USB.

Για να φτιάξετε το HelloPurr θα χρειαστείτε μία εικόνα μίας γάτας και ακόμη έναν ήχο νιαουρίσματος. Κατέβασε αυτά τα αρχεία στον υπολογιστή σας:

Ανοίξτε το Designer και δημιουργήστε ένα νέο project

Στον φυλλομετρητή σας, επισκεφτείτε την σελίδα του App Inventor στο σύνδεσμο http://appinventor.mit.edu . Αν είναι η πρώτη φορά που χρησιμοποιείτε το App Inventor, θα δείτε την σελίδα Projects κενή προς το παρόν. Θα πρέπει να μοιάζει όπως στην εικόνα που ακολουθεί:

Δημιουργείστε νέο Project:

  1. Κάντε κλίκ στο New στην αριστερή πλευρά, κοντά στην κορυφή της σελίδας.
  2. Εισάγετε το όνομα “HelloPurr” (μία λέξη, χωρίς κενά ή εισαγωγικά) στο παράθυρο που εμφανίζετε, πατήστε OK.

Ο φυλλομετρητής σας θα ανοίξει το Designer, όπου επιλέγετε αντικείμενα για την εφαρμογή σας, και θα πρέπει να φαίνεται κάπως έτσι:

Επέλεξε αντικείμενα για να σχεδιάσετε την εφαρμογή σας

Τα αντικείμενα του App Inventor είναι τοποθετημένα στην αριστερή πλευρά της οθόνης του Designer κάτω από τον τίτλο Palette. Τα αντικείμενα αυτά είναι τα βασικά στοιχεία που χρησιμοποιείτε για να φτιάξετε εφαρμογές σε ένα τηλέφωνο Android. Είναι σαν τα υλικά σε μια συνταγή. Κάποια αντικείμενα είναι πολύ απλά, όπως το αντικείμενο Label, το οποίο δείχνει μόνο κείμενο στην οθόνη, ή το αντικείμενο Button που πατάς για να δημιουργήσεις μία δράση. Άλλα συστατικά είναι πιο σύνθετα: ένας πίνακας ζωγραφικής που λέγεται Canvas που μπορεί να κρατάει εικόνες στατικές ή κινούμενες, ένας αισθητήρας κίνησης AccelerometerSensor (motion) που δουλεύει σαν ένα χειριστήριο Wii και εντοπίζει όταν κινείτε το τηλέφωνο, αντικείμενα που μπορούν να κάνουν ή να στείλουν μηνύματα κειμένου, αντικείμενα που αναπαραγάγουν μουσική ή βίντεο, αντικείμενα που αντλούν πληροφορίες από σελίδες του διαδικτύου, κλπ.

Για να χρησιμοποιήσετε ένα αντικείμενο στην εφαρμογή σας, αρκεί να το κάνετε κλικ και να το σύρετε πάνω στο Viewer στην μέση του Designer. Όταν προσθέτετε ένα αντικείμενο στον Viewer, θα εμφανίζετε επίσης στην λίστα αντικειμένων στην δεξιά πλευρά του χρήστη.

Τα αντικείμενα έχουν ιδιότητες που μπορούν να ρυθμιστούν για να αλλάξετε τον τρόπο που το στοιχείο εμφανίζεται στην εφαρμογή. Για να δείτε και να αλλάξετε τις ιδιότητες ενός αντικειμένου, θα πρέπει πρώτα να επιλέξετε το επιθυμητό από τη λίστα των αντικειμένων.

Παρακάτω είναι κάποια βήματα για να επιλέξετε αντικείμενα και να ρυθμίσετε τις ιδιότητές τους. Θέλουμε η εφαρμογή HelloPurr να έχει ένα αντικείμενο Button που θα έχει την ιδιότητα της εικόνας και θα έχει αντιστοιχηθεί με το αρχείο kitty.png που κατεβάσατε νωρίτερα. Για να το κάνετε αυτό:

  1. Σύρετε και εναποθέστε το αντικείμενο Button στο Screen1. Το αντικείμενο Button βρίσκεται στην ενότητα Basic της παλέττας.
  2. Στην λίστα των ιδιοτήτων, κάτω από το Image, κάντε κλίκ στο “none…”
  3. Πατήστε “Add…”
  4. Επιλέξτε το αρχείο kitty.png που κατεβάσατε νωρίτερα.
  5. Διαγράψτε το κείμενο “Text for Button1” κάτω από την ιδιότητα Text με το πλήκτρο Backspace.

Η εφαρμογή Designer στην περίπτωσή σας θα πρέπει να μοιάζει όπως στην εικόνα που ακολουθεί:

Ανοίξτε τον blocks editor και συνδέστε το τηλέφωνό σας

Το Designer είναι ένα από τα τρία βασικά εργαλεία που θα χρησιμοποιήσετε στην δημιουργία των εφαρμογών σας. Το δεύτερο είναι το Blocks Editor. Το τρίτο είναι το τηλέφωνο. Θα χρησιμοποιήσετε το Blocks Editor για να καθορίσετε συμπεριφορές στα αντικείμενά σας, όπως ακριβώς πρέπει να συμβεί όταν ο χρήστης της εφαρμογής σας πατάει ένα κουμπί.

Το Blocks Editor τρέχει σε δικό του παράθυρο. Όταν πατήσετε Open the blocks editor από το παράθυρο του Designer, το αρχείο του πρόγραμματος Blocks Editor πρέπει να κατέβει στον υπολογιστή και να τρέξει. Αυτή η διαδικασία μπορεί να διαρκέσει 30 ή περισσότερα δευτερόλεπτα. Αν το Blocks Editor δεν ανοίγει, μπορεί να οφείλεται στο ότι ο φυλλομετρητής σας δεν είναι ρυθμισμένος να τρέχει αυτόματα τις Java εφαρμογές που κατεβάζετε. Σε αυτή τη περίπτωση, εντοπίστε το αρχείο που κατεβάσατε, με όνομα AppInventorForAndroidCodeblocks.jnlp και ανοίξτε το. Το παράθυρο του Blocks Editor πρέπει να μοιάζει στην εικόνα παρακάτω, με τα “συρτάρια” για τα μπλόκ του προγράμματος στα αριστερά, και ένα πλατύ άδειο χώρο σαν “κανβά” για να τοποθετείτε μπλόκ για να συνθέσετε το πρόγραμμα, το οποίο θα κάνετε παρακάτω.

Πριν συνεχίσετε να “χτίσετε” την εφαρμογή σας, θα χρειαστεί να συνδέσετε την συσκευή σας. Σιγουρευτείτε ότι έχετε ήδη ρυθμίσει το τηλέφωνό σας. Τώρα συνδέστε το τηλέφωνο στον υπολογιστή με ένα καλώδιο USB, και κάντε κλικ στο κουμπί Connect to device… στην κορυφή του παραθύρου. Θα δείτε μία αναπτυσσόμενη λίστα με το τηλέφωνό σας να βρίσκεται εκεί, με αναγνωριστικό τύπο το μοντέλο της συσκευής (e.g., HT99TP800054). Κάντε κλικ πάνω του. Θα δείτε ένα κινούμενο κίτρινο βέλος να κινείται μπρός και πίσω, δείχνοντας πως το App Inventor είναι συνδεδεμένο με το τηλέφωνο. Πραγματοποιώντας αυτή την σύνδεση μπορεί να υπάρξει μία καθυστέρηση ενός ή δύο λεπτών. Όταν όλα ολοκληρωθούν, το βέλος θα σταματήσει να κινείται και θα γίνει πράσινο, και αν κοιτάξετε στην οθόνη της συσκευής σας, θα δείτε την εικόνα με την γάτα εκεί — αυτή είναι η αρχή της εφαρμογής σας!

Επόμενα βήματα

Τώρα που το Designer, το Blocks Editor, και το τηλέφωνο είναι όλα συνδεδεμένα, μπορείται να ολοκληρώσετε την εφαρμογή HelloPurr

Κάτι δεν δουλεύει σωστά? Επισκεφτείτε την σελίδα αντιμετώπισης προβλημάτων, ή ελέγξτε το User Forum του App Inventor για βοήθεια.

© Μετάφραση: Νινιδάκης Στυλιανός, Τμήμα Επιστήμης Υπολογιστών Π.Κ., στo πλαίσιo της πρακτικής άσκησης στο Πρότυπο Πειραματικό Γυμνάσιο Ηρακλείου 2012.  Επιμέλεια: Ψαρουδάκης Νικόλαος, Συντονιστής Πρακτικής Άσκησης, Πρότυπο Πειραματικό Γυμνάσιο Ηρακλείου. Πηγή: http://appinventor.mit.edu



Δραστηριότητα 1 – HelloPurr (Μέρος 2)
Κυριακή, 11 Νοεμβρίου 2012, 3:06 μμ
Κάτω από: App_inventor  |  1 σχόλιο

HelloPurr (Μέρος 2)

Δημιουργώντας την εφαρμογή σας (Μέρος 2): Ολοκλήρωση του HelloPurr

Τώρα που έχετε ρυθμίσει την συσκευή και τον υπολογιστή σας, και μάθατε πως δουλεύουν το Designer και το Blocks Editor, είστε έτοιμοι να ολοκληρώσετε την εφαρμογή HelloPurr. Σε αυτό το σημείο, πρέπει να έχετε ανοιχτό το Designer στο φυλλομετρητή σας, το Blocks Editor ανοιχτό σε άλλο παράθυρο, και την συσκευή της επιλογής σας (τηλέφωνο ή εξομοιωτή) που είναι συνδεδεμένη στο Blocks Editor.

Παρακάτω θα δείτε μία προεπισκόπηση των βημάτων που θα κάνετε σε αυτό το σεμινάριο για να ολοκληρώσετε την εφαρμογή:

Στο Designer:

  • Προσθέστε ένα αντικείμενο Label που περιέχει το κείμενο “Pet the Kitty”.
  • Ανεβάστε το αρχείο ήχου meow.mp3
  • Προσθέστε ένα αντικείμενο Sound που αναπαράγει το αρχείο meow.mp3.

Στο Blocks Editor:

  • Δημιουργείστε ένα πρόγραμμα χειρισμού συμβάντων που θα λέει στο αντικείμενο Sound να παίξει όταν ο χρήστης πατάει το κουμπί.

Προσθέτοντας
το label

Στο Palette:

  1. Σύρετε και εναποθέστε το αντικείμενο Label στο Viewer, τοποθετώντας το κάτω από την γάτα. Θα εμφανιστεί κάτω από την λίστα των αντικειμένων όπως το Label1.

Στο Properties:

  1. Τροποποιήστε την ιδιότητα Text του Label1 ώστε να γράφει “Pet the Kitty”. Θα δείτε την αλλαγή του κειμένου στο Designer και στην συσκευή.
  2. Τροποποιήστε το BackgroundColor (φόντο) του Label1 κλικάροντας στο κουτί
  3. Τροποποιήστε το TextColor (χρώμα κειμένου) του Label1
  4. Τροποποιήστε το FontSize (μέγεθος γραμματοσειράς) του Label1 to 30

Τώρα θα πρέπει να βλέπετε κάτι παρόμοιο με το παρακάτω:

Προσθέτοντας τον ήχο νιαουρίσματος

Στο Palette:

  1. Πατήστε στην κατηγορία Media για να εμφανιστούν τα περιεχόμενα.
  2. Σύρετε ένα αντικείμενο Sound και τοποθετείστε το στο Viewer. Όταν το αφήσετε, θα εμφανιστεί στην περιοχή
    κάτω στο Viewer σαν Non-visible components.

Στο Media:

  1. Πατήστε Add…
  2. Ανεβάστε το αρχείο meow.mp3 στο πρότζεκτ.

Στο Properties:

  1. Για το αντικείμενο Sound1, ρυθμίστε το Source σε meow.mp3.

Το Designer πρέπει τώρα να είναι κάπως έτσι:

Κάνοντας τον ήχο να παίξει

Με την χρήση του Blocks Editor θα ορίσουμε πως πρόκειται να συμπεριφέρεται η εφαρμογή. Θα πούμε στα αντικείμενα τι να κάνουν, και πότε να το κάνουν. Θα πείτε στο κουμπί με την γάτα να παίξει τον ήχο όταν ο χρήστης το πατήσει. Αν τα αντικείμενα ήταν υλικά για συνταγή, μπορείς να φανταστείς τα blocks σαν οδηγείες μαγειρικής.

Το Blocks Editor έχει τρεις καρτέλες στην πάνω αριστερά γωνία: Built-in, My Blocks, και Advanced. Τα κουμπιά κάτω από κάθε καρτέλα επεκτείνουν και εκθέτουν blocks όταν πατηθούν. Τα Built-in blocks είναι τα βασικά σύνολα blocks που είναι διαθέσιμα για κάθε εφαρμογή που φτιάχνετε. Τα blocks στο My Blocks περιέχουν συγκεκριμένα blocks που είναι συνδεδεμένα με το σύνολο των στοιχείων που εσείς έχετε επιλέξει για την εφαρμογή σας. Τα Advanced blocks είναι πιο πολύπλοκα και δεν θα αναλυθούν σε αυτότ ο σεμινάριο.

Για να αναπαράγεται τον ήχο, θα χρειαστείτε να σύρετε και να εναποθέσετε το when Button1.Click do block και το call Sound1.Play block στον χώρο επεξεργασίας. Τα blocks συνδέονται μεταξύ τους όπως τα κομμάτια ενός παζλ.

Βήματα για την αναπαραγωγή του ήχου:

  1. Περιηγηθείτε στο Blocks Editor. Μπορεί να καλύπτεται από το πρόγραμμα περιήγησης στο Web.
  2. Πατήστε στην καρτέλα My Blocks στην πάνω αριστερή πλευρά.
  3. Κάντε κλικ στο Button1.
  4. Επιλέξτε και σύρετε το when Button1.Click do block στον χώρο επεξεργασίας.
  5. Click Sound1.
  6. Σύρετε το blockcall Sound1.Play στο χώρο επεξεργασίας και αφήστε το στην εσοχή του blockwhen Button1.Click do.
  7. Πατήστε πάνω στην εικόνα της γάτας στην συσκευή σας. Τώρα πρέπει να ακούτε την γάτα να νιαουρίζει.

Το παράθυρο του Blocks Editor πρέπει να μοιάζει με αυτό:

© Μετάφραση: Νινιδάκης Στυλιανός, Τμήμα Επιστήμης Υπολογιστών Π.Κ., στo πλαίσιo της πρακτικής άσκησης στο Πρότυπο Πειραματικό Γυμνάσιο Ηρακλείου 2012.  Επιμέλεια: Ψαρουδάκης Νικόλαος, Συντονιστής Πρακτικής Άσκησης, Πρότυπο Πειραματικό Γυμνάσιο Ηρακλείου. Πηγή: http://appinventor.mit.edu



3η συνάντηση Guard Dog
Τετάρτη, 7 Νοεμβρίου 2012, 1:11 μμ
Κάτω από: Robotics  |  Αφήστε ένα σχόλιο

Κατασκευάζοντας και προγραμματίζοντας μέσα από το “Τούβλο”

Στη σημερινή συνάντηση επιλέγουμε να κατασκευάσουμε ένα ρομπο – σκυλάκι. Πηγαίνετε στην παρακάτω διεύθυνση για να βρείτε Οδηγίες.



Αλλαγή μεγέθους γραμματοσειράς
Αντίθεση