robotiksscratch

Μαθαίνω να προγραμματίζω με το Scratch

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

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

Τα οφέλη για τους μαθητές είναι πάρα πολλά. Δουλεύοντας με το Scratch τα παιδιά:
  • κατανοούν τις βασικές έννοιες και δομές του προγραμματισμού 
  • μαθαίνουν να επιλέγουν, να δημιουργούν και να διαχειρίζονται πολλούς τύπους πολυμεσικού υλικού όπως κείμενο, εικόνες, animation και ήχο.
  • αναγνωρίζουν και επιλύουν προβλήματα
  • εμπλέκονται σε απροσδόκητες καταστάσεις που απαιτούν καινοτόμες λύσεις
  • αναπτύσσουν κριτική σκέψη
  • αναπτύσσουν επικοινωνιακές και συνεργατικές ικανότητες μέσω της online κοινότητας που διαθέτει
  • σκέφτονται, σχεδιάζουν και εκφράζονται με δημιουργικό τρόπο.
Κατεβάστε τις παρακάτω δραστηριότητες για το Scratch 2.0:

Scratch με arduino

Το S4A είναι μια τροποποίηση Scratch που επιτρέπει τον απλό προγραμματισμό της πλατφόρμας υλικού ανοιχτού κώδικα Arduino. Παρέχει νέα μπλοκ για τη διαχείριση αισθητήρων και ενεργοποιητών που είναι συνδεδεμένοι στο Arduino. Υπάρχει επίσης μια πλακέτα αναφοράς αισθητήρων παρόμοια με αυτή του PicoBoard.

Ο κύριος στόχος του έργου είναι η προσέλκυση ανθρώπων στον κόσμο του προγραμματισμού. Ο στόχος είναι επίσης να παρέχει μια διεπαφή υψηλού επιπέδου στους προγραμματιστές του Arduino με λειτουργίες όπως η αλληλεπίδραση με ένα σύνολο πινάκων μέσω συμβάντων χρήστη.

H διεπαφή


Τα αντικείμενα Arduino προσφέρουν μπλοκ για τις βασικές λειτουργίες μικροελεγκτή, αναλογικές και ψηφιακές εγγραφές και αναγνώσεις, καθώς και για υψηλότερου επιπέδου. Μπορείτε να βρείτε μπλοκ για τη διαχείριση τυπικών και συνεχούς περιστροφής σερβοκινητήρες:


Στο S4A, μια πλακέτα Arduino αντιπροσωπεύεται από ένα ειδικό είδος sprite. Το Arduino sprite θα βρει αυτόματα τη θύρα usb όπου είναι συνδεδεμένη η πλακέτα.

Είναι δυνατή η σύνδεση σε πολλές πλακέτες ταυτόχρονα προσθέτοντας απλώς ένα νέο Arduino sprite.

Τεχνικές λεπτομέρειες

Το S4A συνεργάζεται με τα Arduino Diecimila, Duemilanove και Uno. Άλλες πλακέτες δεν έχουν δοκιμαστεί, αλλά μπορεί επίσης να λειτουργούν.

Συνδεσιμότητα
Τα εξαρτήματα πρέπει να συνδέονται με συγκεκριμένο τρόπο. Το S4A επιτρέπει 6 αναλογικές εισόδους (αναλογικές ακίδες), 2 ψηφιακές εισόδους (ψηφιακές ακίδες 2 και 3), 3 αναλογικές εξόδους (ψηφιακές ακίδες 5, 6 και 9), 3 ψηφιακές εξόδους (ακίδες 10, 11 και 13) και 4 ειδικές εξόδους για σύνδεση σερβοκινητήρων συνεχούς περιστροφής Parallax (ψηφιακές ακίδες 4, 7, 8 και 12).

Μπορείτε να διαχειριστείτε μια πλακέτα ασύρματα συνδέοντας μια μονάδα RF σε αυτήν, όπως το Xbee.

Το S4A σάς επιτρέπει να ελέγχετε τόσες πλακέτες όσες θύρες USB έχετε.

Συμβατότητα

Το S4A είναι συμβατό προς τα πίσω με το Scratch , ώστε να μπορείτε να ανοίγετε έργα Scratch σε αυτό. Ωστόσο, δεν θα μπορείτε να μοιράζεστε τα έργα σας στον ιστότοπο της κοινότητας του Scratch , επειδή κάτι τέτοιο αντίκειται στους όρους χρήσης του Scratch .

Λάβετε υπόψη ότι αυτή η συμβατότητα δεν λειτουργεί και με τους δύο τρόπους, επομένως δεν θα μπορείτε να ανοίξετε ένα έργο S4A μέσα από το αρχικό Scratch .

Η χρήση ενός PicoBoard μαζί με μια πλακέτα Arduino υποστηρίζεται επίσης.

Πρωτόκολλο

Το S4A αλληλεπιδρά με το Arduino στέλνοντας τις καταστάσεις του ενεργοποιητή και τις καταστάσεις του αισθητήρα λήψης κάθε 75 ms, επομένως το πλάτος του παλμού πρέπει να είναι μεγαλύτερο από αυτήν τη χρονική περίοδο. Η ανταλλαγή δεδομένων ακολουθεί το πρωτόκολλο PicoBoard και χρειάζεται ένα συγκεκριμένο πρόγραμμα (υλικολογισμικό) για εγκατάσταση στην πλακέτα. Ανατρέξτε στην ενότητα Λήψεις για περαιτέρω οδηγίες σχετικά με το πώς να το κάνετε.

Παραδείγματα

Εδώ θα βρείτε όλη την τεκμηρίωση, τα βίντεο, τα παραδείγματα και τις ασκήσεις που δημιουργήσαμε.

ΕΡΓΑΣΤΗΡΙ

Ένα αρχείο zip με πλήρη υλικά και ασκήσεις για ένα εργαστήριο μπορείτε να το κατεβάσετε εδώ:


Αυτά τα υλικά δημιουργήθηκαν και χρησιμοποιήθηκαν από την ομάδα μας σε ένα πραγματικό μάθημα S4A στο Elisava School of Design (Βαρκελώνη) το 2011.

Βασικά Παραδείγματα
Εδώ θα βρείτε βασικά παραδείγματα S4A, μαζί με τα σχήματα του Arduino και ένα αρχείο έργου .sb Scratch για λήψη.

Κουμπί και LED

Ένα απλό παράδειγμα που δείχνει πώς να ενεργοποιήσετε ένα LED πατώντας ένα κουμπί.

RGB LED

Χρήση LED RGB από το μηδέν.

Κουμπί, LED και κατάσταση διατήρησης

Ένα LED που αλλάζει την κατάσταση όταν πατάμε ένα κουμπί.

Φωτοαντίσταση και LED

Χρησιμοποιώντας την είσοδο ενός αισθητήρα φωτοαντίστασης για να ενεργοποιήσετε ένα LED.

Αναβοσβήνει ένα LED

Ας ξεκινήσουμε να συνδέουμε ένα LED στον ακροδέκτη 13 του Arduino UNO μας.

αν μεταβείτε στο "Μενού κίνησης" (μπλε μπλοκ), θα βρείτε τα ειδικά μπλοκ που έχουν σχεδιαστεί για το Arduino. Θα το χρησιμοποιησουμε:
  • ψηφιακό: [ 13 ] ενεργό
  • ψηφιακό: [ 13 ] απενεργοποιημένο
  • Σημειώστε ότι στο ίδιο μπλοκ μπορείτε να επιλέξετε τις ψηφιακές ακίδες που μπορούν να χρησιμοποιηθούν ως έξοδος: 10, 11, 12 και 13.
  • Μπορείτε να σύρετε τα μπλοκ στην περιοχή κώδικα στο κέντρο.
  • Εάν κάνετε κλικ σε μεμονωμένα μπλοκ, μπορείτε να ενεργοποιήσετε ή να απενεργοποιήσετε το LED, δοκιμάστε το.
ΕΝΤΑΞΕΙ. Τώρα, ας δημιουργήσουμε έναν πραγματικό κωδικό αναλαμπής χρησιμοποιώντας το Scratch.

Ξεκινήστε το πρόγραμμά σας όταν κάνετε κλικ στην "Πράσινη Σημαία", για αυτό θα χρειαστείτε το μπλοκ:
  1. Όταν κάνετε κλικ στην "πράσινη σημαία" (είναι το πρώτο μπλοκ του μενού Ελέγχου - Κίτρινο)
  2. Σύρετε το μπλοκ βρόχου " Για πάντα "
  3. Μέσα στο βρόχο Forever, τοποθετήστε τα μπλοκ που δοκιμάσατε πριν.
  4. Εάν εκτελέσετε τον κωδικό σας, θα δείτε ότι δεν συμβαίνει τίποτα, ή καλύτερα, το LED θα ανάβει και θα σβήνει τόσο γρήγορα που δεν θα το καταλάβετε. Επομένως, πρέπει να καθυστερήσετε, ας πούμε 1 δευτερόλεπτο μετά από κάθε μπλοκ. Και τέλος!
Το παραπάνω στιγμιότυπο οθόνης θα σας δείξει το τελικό πρόγραμμα και στον παρακάτω σύνδεσμο, μπορείτε να κατεβάσετε τον κώδικα που χρησιμοποιείται εδώ:


Έλεγχος φωτεινότητας LED


Τώρα, ας ξεκινήσουμε με προβλήματα γραφής λίγο πιο περίπλοκα για να εξερευνήσουμε τις δυνατότητες του Arduino.

Αρχικά, ας ακολουθήσουμε το διάγραμμα και ας προσθέσουμε ένα νέο LED στο κύκλωμά μας. Πρέπει να συνδέσουμε την κάθοδο LED (το μικρότερο πόδι) στο GND μέσω μιας αντίστασης 220 ohm και την άνοδο στον ακροδέκτη μας Arduino UNO 9.

Το Arduino UNO μπορεί να παρέχει σε αρκετές από τις ακίδες του, ένα σήμα PWM (διαμόρφωση πλάτους παλμού). Δείτε αυτόν τον σύνδεσμο για περισσότερες λεπτομέρειες: Tutorial/PWM . Με λίγα λόγια, μπορείτε να «μιμηθείτε» ένα αναλογικό σήμα χρησιμοποιώντας μια ψηφιακή έξοδο. Το S4A έχει ένα συγκεκριμένο μπλοκ για αυτό:

αναλογική [ 9 ] τιμή < 255 >
Στο ίδιο μπλοκ, μπορείτε να επιλέξετε τις ακίδες PWM που μπορούν να χρησιμοποιηθούν ως έξοδος: 5, 6 και 9.
Η τιμή μπορεί να αλλάξει από 0 σε 255.

Με τον ίδιο τρόπο που κάναμε με τις ψηφιακές καρφίτσες, μπορείτε να σύρετε το μπλοκ στην περιοχή κώδικα και να κάνετε κλικ σε αυτό. Αλλάξτε την τιμή 255 για άλλες τιμές. Θα δείτε ότι με το μηδέν, το LED θα είναι σβηστό και με το 255, το LED θα είναι στη μέγιστη φωτεινότητά του. Δοκιμάστε τις ενδιάμεσες τιμές και δείτε τι συμβαίνει.

Ας δημιουργήσουμε έναν κώδικα που θα κάνει τα εξής:
  1. Αλλάξτε την τιμή PWM από 0 σε 255, επιστρέφοντας στο μηδέν μετά από αυτό.
  2. Όταν η φωτεινότητα του μπλε LED φτάσει στο μέγιστο, ας ανάψουμε το κόκκινο LED για 1 δευτερόλεπτο.
Στον κώδικα που φαίνεται παραπάνω, εισήχθησαν 2 νέα πράγματα:
  1. Ορίστηκαν μεταβλητές (το πορτοκαλί μενού)
  2. pwmLED : μια μεταβλητή που θα λάβει τις τιμές από 0 έως 255
  3. Κόκκινο LED : μια μεταβλητή που θα λάβει 2 τιμές: ON και OFF
  4. Ένα μπλοκ IF < > θα χρησιμοποιηθεί για τη δοκιμή προτάσεων.
Μαζί με κάθε μεταβλητή, μπορούν να χρησιμοποιηθούν τα ακόλουθα μπλοκ:
  1. Ο ορισμός [variable] σε < > θα χρησιμοποιηθεί για την εκχώρηση τιμής σε μια συγκεκριμένη μεταβλητή. Για παράδειγμα:
  2. ρυθμίστε το [ Κόκκινο LED ] σε < OFF >
  3. ορίστε το [ pwmLED ] σε < 0 >
  4. αλλάξτε τη [ μεταβλητή ] κατά 1: θα προσθέσετε 1 στην τιμή της μεταβλητής.
Λέγοντας ότι μπορείτε να αναλύσετε τον κώδικα που εμφανίζεται παραπάνω και να καταλάβετε πώς λειτουργεί.


Πιέστε το κουμπί


Ας ξεκινήσουμε με τη σύνδεση ενός κουμπιού στον ακροδέκτη 2 του Arduino. Ακολουθήστε τα παραπάνω διαγράμματα και κάντε τις σωστές συνδέσεις.

Το σημαντικό νέο μπλοκ που παρουσιάζεται εδώ είναι:

Ο αισθητήρας [ ψηφιακός 2 ] πατήθηκε;
Αυτό το μπλοκ έχει 2 πιθανές παραμέτρους: [ψηφιακό 2] και [ψηφιακό 3], όσες αντιστοιχούν στις 2 πιθανές ψηφιακές εισόδους, ακίδες D2 και D3.
Αυτό το μπλοκ θα επιστρέψει " True " αν στον ακροδέκτη D2 ή D3 έχουμε ένα λογικό επίπεδο "1" και " False " αν είναι "0".

Λοιπόν, ας εισαγάγουμε μια μεταβλητή "κουμπί", που θα ρυθμιστεί σε "1" ή "0" ανάλογα με την κατάσταση του κουμπιού.

Επίσης, σημειώστε ότι έχουμε 2 μπλοκ κώδικα που θα εκτελούνται παράλληλα (το σύνολο των μπλοκ που ξεκινά με την πράσινη σημαία)

Αυτό που θα ελέγχει συνεχώς την κατάσταση του κουμπιού, θέτοντας τη μεταβλητή "κουμπί".
Μια άλλη που θα ρυθμίσει τη δεύτερη μεταβλητή, "Red LED", ON ή OFF =, ανάλογα με τη μεταβλητή "button". Το κόκκινο LED θα ανάψει ή θα σβήσει ανάλογα με την κατάσταση του κουμπιού.

Ένα εξαιρετικό χαρακτηριστικό με το S4A που βοηθά πολύ όταν δοκιμάζετε έναν κωδικό, είναι να "ελέγχετε" μια μεταβλητή (με το σύμβολο "v") στο μενού μεταβλητών. Με αυτόν τον τρόπο, η τιμή της μεταβλητής θα εμφανιστεί στο δεξιό πλαίσιο, όπως φαίνεται στο παραπάνω στιγμιότυπο οθόνης.


Κουμπί με "Μνήμη"


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

Η μπλε λυχνία LED θα είναι "εναλλαγή", ή καλύτερα, εάν η κατάστασή της ήταν προηγουμένως "ON", θα αλλάξει σε "OFF" και αντίστροφα.
Το κόκκινο LED θα ακολουθήσει την κατάστασή του, όπως κωδικοποιήθηκε στο προηγούμενο βήμα.

Για αυτό, δημιουργήθηκε το 3ο μπλοκ κώδικα με 2 νέες μεταβλητές:
τρέχον_Μπλε_LED
previous_Blue_LED

Επίσης σε αυτό το μπλοκ, καθιερωνόταν μια μικρή καθυστέρηση κάθε φορά που το κουμπί αλλάζει την κατάστασή του. Αυτό οφείλεται στο γεγονός ότι χρειαζόμαστε «να αναπηδήσουμε» την κατάσταση του κουμπιού.

Εγκατάσταση του S4A στον υπολογιστή σας

Η εγκατάσταση του S4A απαιτεί να εγκαταστήσετε λογισμικό τόσο στον υπολογιστή σας όσο και στην πλακέτα Arduino. Εδώ θα βρείτε τα λεπτομερή βήματα για να το θέσετε σε λειτουργία.



Το S4A λειτουργεί στα τρία κύρια λειτουργικά συστήματα καταναλωτών. Κατεβάστε και εγκαταστήστε αυτό που ταιριάζει στη διαμόρφωσή σας:


Αυτό το υλικολογισμικό είναι ένα κομμάτι λογισμικού που πρέπει να εγκαταστήσετε στην πλακέτα Arduino για να μπορέσετε να επικοινωνήσετε μαζί του από το S4A.
  • Κάντε λήψη και εγκατάσταση του περιβάλλοντος Arduino ακολουθώντας τις οδηγίες στη διεύθυνση http://arduino.cc/en/Main/Software. Λάβετε υπόψη ότι το Arduino Uno απαιτεί τουλάχιστον την έκδοση 0022.
  • Κατεβάστε το υλικολογισμικό μας από εδώ
  • Κατεβάστε το υλικολογισμικό μας από εδώ (εναλλακτικά)
  • Συνδέστε την πλακέτα Arduino σε μια θύρα USB του υπολογιστή σας
  • Ανοίξτε το αρχείο υλικολογισμικού (S4AFirmware16.ino) από το περιβάλλον Arduino
  • Στο μενού Εργαλεία, επιλέξτε την έκδοση πλακέτας και τη σειριακή θύρα όπου είναι συνδεδεμένη η πλακέτα
  • Φορτώστε το υλικολογισμικό στην πλακέτα σας μέσω του File > Upload
Προγράμματα οδήγησης arduino

Εάν είστε χρήστης των Microsoft Windows, ίσως χρειαστεί να εγκαταστήσετε τα προγράμματα οδήγησης Arduino στον υπολογιστή σας:


Για Προγραμματιστές

Το S4A είναι ελεύθερο λογισμικό που διανέμεται με άδεια MIT.

Δεδομένου ότι το Scratch είναι στην πραγματικότητα μια εικόνα Squeak Smalltalk, όλος ο κώδικάς του αποστέλλεται στην πραγματικότητα με την ίδια την τελική έκδοση χρήστη. Για πρόσβαση σε αυτό, απλώς Shift + αριστερό κλικ στο μενού S4A "File" και επιλέξτε "Exit User Mode". Τώρα βρίσκεστε μπροστά σε μια κλασική εικόνα Squeak 2.8 και έχετε πρόσβαση σε ένα πρόγραμμα περιήγησης, έναν χώρο εργασίας και όλα τα εργαλεία που έχετε συνηθίσει.

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

S4A Developer Edition
Ρομποτική με scratch app

Βιντεομαθήματα μέσα από το youtube