Από το πρόβλημα των ισόχρονων κινήσεων του Γαλιλαίου (1638) σε δύο προσομοιώσεις στο περιβάλλον του Scratch

του Νίκου Δαπόντε

Με αφορμή την ανακοίνωση εκδήλωσης για τον Αντρέα Κασσέτα, γύρισα 35 χρόνια πίσω, κάπου στο 1983. Αυτό που θυμήθηκα ήταν οι λεπτομερείς αναφορές του στην ιστορική διαδρομή «από τον Αριστοτέλη στο Γαλιλαίο». Μετά από χρόνια σκέφτηκα να προγραμματίσω στο Scratch την προσομοίωση που αναφέρεται ως πρόβλημα των ισόχρονων κινήσεων του Γαλιλαίου (1638)……

(http://www.ganino.com/dialogues_concerning_two_new_sciences_by_galileo_galilei_third_day   Μετάφραση του βιβλίου του Γαλιλαίου στα Αγγλικά (αφιερωμένο στην «Τρίτη ημέρα»).

Στη δική μας προσομοίωση, αντί για σφαίρες θα χρησιμοποιήσουμε τέσσερα «ψηφιακά» αυτοκινητάκια. Με άλλα λόγια, το πρώτο αφήνεται να πέσει ελεύθερα κατά μήκος μιας διαμέτρου, ενώ τα άλλα τρία αφήνονται από σημεία της περιφέρειας έτσι ώστε να κινούνται πάνω σε τρεις χορδές – κεκλιμένα επίπεδα, με κοινό σημείο το Ο, όπως στο παρακάτω σχήμα. Σε κάθε περίπτωση οι τριβές θεωρούνται αμελητέες. Με τις γνώσεις Φυσικής Α’ Λυκείου μπορεί να αποδειχθεί ότι και τα τέσσερα αντικείμενα που αφήνονται ελεύθερα την ίδια χρονική στιγμή, τελικά, φθάνουν ταυτόχρονα στο κατώτερο σημείο Ο του κύκλου.

Το πρόβλημα στο προγραμματιστικό περιβάλλον του Scratch
Με βάση την παραπάνω πρόταση του Γαλιλαίου, πώς μπορώ να φτιάξω μια απλή προσομοίωση του φαινομένου;

Α. Την πρώτη φορά που προσπάθησα (το 2009) έφτιαξα ένα απλό project με προκαθορισμένες τις αρχικές θέσεις των τριών αυτοκινήτων-κινητών και το ανάρτησα στο Scratch 1.4 website https://scratch.mit.edu/projects/747580/  με τίτλο «Isochrone problem».
Με κλικ στο κουμπί start ξεκινάει η προσομοίωση: τα τέσσερα κινητά φτάνουν ταυτόχρονα στο κατώτερο σημείο του κύκλου.

Ένα remix αυτού του project έφτιαξε ο χρήστης με ψευδώνυμο ahaanomegas και μπορείτε να το τρέξετε στη διεύθυνση https://scratch.mit.edu/projects/748981/.

Β. Τη δεύτερη φορά (το 2014), επαναλαμβάνω το ίδιο «ψηφιακό πείραμα» με κάποιες σημαντικές τροποποιήσεις. Αυτή τη φορά σκέφτηκα όχι μόνο να αξιοποιήσω τις δυνατότητες της νέας έκδοσης Scratch 2.0. αλλά και να δώσω στο project αλληλεπιδραστικότητα ( interactivity ). Χρησιμοποίησα δύο αυτοκινητάκια που κινούνται στις χορδές-κεκλιμένα επίπεδα  και μια μπάλα που πέφτει ελεύθερα.

Αυτή τη φορά, μπορούμε να επιλέγουμε

α) την ακτίνα του κατακόρυφου κύκλου (με το μεταβολέα-slider R)

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

γ) τις αρχικές θέσεις των κινητών-αυτοκινήτων (με κλικ και σύρσιμο των κόκκινων κύκλων πάνω στην περιφέρεια).

Με πάτημα του πλήκτρου ΚΕΝΟ (space bar) ξεκινάει η κίνηση των τριών αντικειμένων (χωρίς τριβές και αντιστάσεις) και μας προσφέρεται η δυνατότητα να παρακολουθούμε στην οθόνη τις τιμές των επιταχύνσεων a1, a2 των δύο κινητών-αυτοκινήτων όπως και των ταχυτήτων τους v1 και v2 αντίστοιχα.
Σε κάθε περίπτωση και τα τρία κινητά φτάνουν στο σημείο 0 την ίδια χρονική στιγμή. 
Το project αναρτήθηκε στο Website της κοινότητας του Scratch με τίτλο «Galileo’s  Isochrone problem – 1638»    https://scratch.mit.edu/projects/23987786/

Ο προγραμματισμός στο Scratch ( scripting )
Όλα ξεκινάνε με τον ορισμό των αντικειμένων – objects αφού προηγουμένως γίνει μια ανάλυση του φυσικού φαινομένου και καταλήξουμε, έστω και προσωρινά, σε ένα σενάριο γεγονότων, καταστάσεων, δράσεων κ.α.

Το αντικείμενο με όνομα help οικοδομήθηκε με σκοπό να σχεδιάζονται με δυναμικό τρόπο:
—- ο μεταβλητός κύκλος ακτίνας R
—- οι χορδές Α10 και Α20
Στον κώδικα χρειάστηκε να φτιάξω δύο «δικά μου» blocks:

CIRCLE x0 y0 R για το μεταβλητό κύκλο και για τις γραμμές LINE x1 y1 x2 y2

Το αντικείμενο με όνομα Α1 αποτελεί το μεταβλητό άκρο της χορδής (ανώτερο σημείο του κεκλιμένου επιπέδου Α10 ) και είναι η αφετηρία της κίνησης του ενός αυτοκινήτου. Με σύρσιμο του Α1 πάνω στον κύκλο αλλάζω τη θέση του και επομένως αλλάζω την αρχική θέση του αυτοκινήτου.

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

 

Παρόμοιος είναι και ο κώδικας για την ομαλά επιταχυνόμενη κίνηση του δεύτερου αυτοκινήτου. Όσον αφορά την κίνηση της μπάλας αυτή είναι ομαλά επιταχυνόμενη με επιτάχυνση g.

….Κάποιες σκέψεις (το 2018)
Από τον προγραμματισμό τόσο της σχεδίασης του σκηνικού, σύμφωνα με το πρόβλημα που έθεσε ο Γαλιλαίος,  όσο και της κίνησης των τριών κινητών γίνεται φανερό ότι ο προγραμματιστής οφείλει να σκεφτεί όλες τις παραμέτρους του προβλήματος. Κάτι τέτοιο, είναι φανερό, ξεπερνάει την επίλυση του προβλήματος στο παραδοσιακό περιβάλλον χαρτί-μολύβι. Επιπλέον, το πιο σημαντικό κατά τη γνώμη μου, είναι η δυνατότητα ελέγχου των συλλογισμών μας κατά τη διάρκεια της επίλυσης του προβλήματος μαζί με τις ικανότητες που αποκτούνται μέσα από την ΠΑΡΑΓΩΓΗ ενός ΕΡΓΟΥ.  

Η ενασχόληση των μαθητών με θέματα από την ιστορία των επιστημών καθώς και η οικοδόμηση ενός προγράμματος, όπως αυτό που παρουσιάστηκε, θα μπορούσε να αποτελέσει θέμα ενός project μιας ομάδας μαθητών στο πλαίσιο του μαθήματος Φυσικής Α’ Λυκείου και η παρουσίαση του στην τάξη.

2. Όποιος ενδιαφέρεται μπορεί να προγραμματίσει δύο αντικείμενα να κινούνται κατά μήκος των δύο κάθετων κεκλιμένων επιπέδων, όπως στην παρακάτω άσκηση που πρότεινε ο Αντρέας Κασσέτας να συμπεριληφθεί στο βιβλίο Φυσική Α’ τάξη ΕΠΛ, ΓΕΛ, ΤΕΛ, έκδοση ΟΕΔΒ, 1983):