Η εντολή σχεδίαση (ή Plot στα Αγγλικά), ανάβει ή σβήνει ένα LED στην οθόνη του microbit.
Μάλιστα μπορεί να ανάψει ένα LED με συγκεκριμένη φωτεινότητα (0…255).
Για να διακρίνουμε τη θέση κάθε ενός από τα 5*5=25 LEDs, κάθε LED έχει τις δικές του συντεταγμένες x,y.
To x είναι το πόσο δεξιά-αριστερά βρίσκεται ένα LED και ξεκινά αριστερά από το 0.
Το y είναι το πόσο πάνω-κάτω βρίσκεται ένα LED και ξεκινά επάνω από το 0.
Άρα το πάνω αριστερά LED έχει συντεταγμένες (x,y)=(0,0)
1η άσκηση
α) Θα ανάψουμε πέντε LEDs στην οθόνη του microbit και θα σχηματίσουμε την παρακάτω φάτσα, χρησιμοποιώντας όμως την εντολή σχεδίαση. Τα μάτια να εμφανίζονται κατά την έναρξη και το στόμα πατώντας το κουμπί Α
β)
Χρησιμοποιώντας την εντολή
τροποποιήστε το πρόγραμμά σας ώστε όταν πατάτε το κουμπί Β, να αναβοσβήνουν τα μάτια.
Σημείωση: Το microbit είναι ένας αρκετά γρήγορος μικροελεγκτής. Είναι τόσο γρήγορος, που αν δεν βάλετε μια καθυστέρηση ανάμεσα στις δύο εναλλαγές, δεν θα προλάβετε να δείτε το “ανοιγοκλείσιμο” των ματιών (LED). Οπότε πρέπει να βάλετε και μια παύση ανάμεσα. Δείτε την παρακάτω λύση:
2η άσκηση
Κάντε τις απαραίτητες τροποποιήσεις στο προγραμματισμό, ώστε το ανοιγοκλείσιμο των ματιών να γίνει 6 φορές.
Σημείωση: θα σας διευκολύνει αν κάνετε δεξί κλικ πάνω στο μπλοκ που θέλετε να αντιγράψετε και από το πτυσσόμενο μενού να επιλέξετε “Αντίγραφο” .
Στον παραπάνω κώδικα, μπορείτε να διακρίνετε τι επαναλαμβάνεται 6 φορές;
Μήπως θα μπορούσαμε να απλοποιήσουμε τον προγραμματισμό εάν χρησιμοποιούσαμε το μπλοκ “επανάληψη”;:
Τι θα πρέπει να βάλετε μέσα στο μπλοκ επανάληψης ώστε να ανοιγοκλείσουν τα μάτια 3 φορές;
3η άσκηση
Διαγράψτε τις προηγούμενες εντολές.
Δημιουργήστε μια νέ ματαβλητή με το όνομα ι.
- Κόκκινη ομάδα εντολών “Μεταβλητές”
- Κλικ στο κουμπί “Δημιουργία μεταβλητής”
- Όνομα νέας μεταβλητής “ι”
Υλοποιήστε το παρακάτω πρόγραμμα:
Δείτε στην οθόνη του microbit τί εμφανίζεται. Μπορείτε να το εξηγήσετε;
Οι παρακάτω εντολές ανάβουν διαδοχικά τα LED της πρώτης γραμμής.
Και τώρα μερικά μαγικά κόλπα προγραμματισμού!
Παρατηρήστε ότι σε κάθε επανάληψη ανάβουμε τα 5 LED μίας-μίας γραμμής. Όταν το κάνουμε 5 φορές για τις 5 γραμμές τότε θα έχουμε ανάψει όλα τα LED της οθόνης. Μήπως μπορούμε να βάλουμε την επανάληψη μέσα σε μια επανάληψη;
Δοκιμάστε το παρακάτω και προσπαθήστε να το εξηγήσετε:
Δοκιμάστε να ανάψετε όλα τα LEDs διαδοχικά με φωτεινότητα 30.
Θα βρείτε την εντολή ορισμός φωτεινότητας, στο μενού περισσότερα κάτω από το μενού LED.
Δοκιμάστε να σβήσετε κάθε LED μετά την παύση ώστε να φαίνεται ότι “προχωρά” μέχρι το τέλος της οθόνης.
Μειώστε και τη διάρκεια της παύσης ώστε να είναι πιο εντυπωσιακή η κίνηση!
3η άσκηση
1o Βήμα: Ανάψτε το πάνω LED της 1ης στήλης (x=0, y=0) και κάντε το να “πέφτει” προς τα κάτω, άρα αυξήστε διαδοχικά το y ώστε να πάρει τις τιμές 1, 2, 3, 4 κρατώντας το x=0 . Προσθέστε και μια καθυστέρηση 500ms για να προλάβετε να δείτε τις αλλαγές.
2ο βήμα: Θα πρέπει να σβήσετε το LED πριν ανάψετε το επόμενο (παρακάτω) LED ώστε να φαίνεται ότι μετακινείται. Χρησιμοποιήστε την εντολή “κατάργηση σχεδίασης x y”.
3ο βήμα: Ξεκινήστε όχι από το πάνω αριστερά LED, αλλά από ένα τυχαίο της 1ης γραμμής θέτοντας στο x μία τυχαία τιμή από 0 έως 4.
Στη συνέχεια, κρατώντας το ίδιο x, αυξήστε το y κατά ένα μέχρι να γίνει 4.
4ο βήμα: Αντί να ανάβετε και να σβήνετε το LED ώστε να φαίνεται ότι απλά πέφτει, σκεφθείτε πως θα δημιουργήσετε το εφέ “fading” που φαίνεται και στην παραπάνω κινούμενη εικόνα του matrix. Δηλαδή το LED πέφτοντας, να αφήνει ένα ίχνος το οποίο εξαφανίζεται μετά από λίγο.
Επέκταση για προχωρημένους: Μπορείτε να υλοποιήσετε την παράλληλη πτώση περισσότερων γραμμάτων;