Δημοτικό > Γενικά

Arduino σε παιδια Δημοτικου

<< < (2/8) > >>

παρις:

--- Παράθεση από: bugman στις 11 Μαΐ 2020, 06:05:12 μμ ---Έτυχε να φτιάξω ένα πρόγραμμα σε Arduino. Η γλώσσα που χρησιμοποιεί είναι η c++. Στο εγχειρίδιο γράφει c/c++ αλλά είναι c++ η οποία περιέχει τη c στο συντακτικό της.
Αν κάνει κάποιος το λάθος να βάλει ένα = σε ισότητα, δεν θα βγεί λάθος. Θα το πάρει σαν εκχώρηση και η τιμή της εκχώρησης αν δεν είναι μηδενική θα σημαίνει true.
Αυτό είναι ένα ζήτημα κατά το debugging. Μιλάμε λοιπόν για μια c++ κανονική. Η διαφορά είναι ότι ο double ενώ υπάρχει  είναι ισοδύναμος με τον float.
Επίσης ένα πρόγραμμα σαράντα γραμμών επειδή χρησιμοποιεί αντικείμενα της c++ κρυμμένα πίσω από include αρχεία τύπου .h φτιάχνει τελικό πρόγραμμα 200kbytes.
Βεβαίως αν τα παιδιά μάθουν παίζοντας σιγά  σιγά τη c++ θα είναι φανταστικό! Η ανώτερη γλώσσα για μένα είναι η c++.
Το πρόγραμμα που έγραψα και ελέγχθηκε σε board ήταν για τον έλεγχο ενός ασανσέρ, ο εγκέφαλος κατά μία έννοια.

--- Τέλος παράθεσης ---
Υπαρχει και το scratch σαν plan B, αν ζοριστουν με την C++. http://s4a.cat/ Yπαρχει αυτη η ειδικη εκδοση...φοβερο. γιατι η C/C++ ειναι το plan A παντα.
Αυτο που με κερδισε ειναι η πληθωρα εξοπλισμου και η πληθωρα εφαρμογων. Φυσικα δεν θα τα κανουμε ολα αυτα, απλα ανοιγεις μια τεραστια πυλη μαθησης που φτανει μεχρι και στο πανεπιστημιο (προγραμματισμος arduino-μικροελενκτη)
Ενας εφτιαξε μετρητη Geiger!
https://create.arduino.cc/projecthub/EDUcentrum/geiger-counter-with-arduino-uno-2cf621

H ερωτηση ειναι μπορω να το ξεκινησω απο φετος μεσω webex χωρις καθολου ρομποτ με simulator οπως καναμε στην σχολη; Να τρεξει καπου ο κωδικας θελω.
Η εφαρμογη arduino μπαινει ευκολα.

bugman:
Η εφαρμογή τρέχει με Windows 7 ακόμα και 32bit  Δεν έχει απαιτήσεις σε μεγάλη μνήμη. Ο compiler σου λέει για λάθη αλλά η c++ είναι μυστήρια, γιατί αφήνει πχ ένα
if (A=B) .... να μην το δείχνει λάθος.
Επίσης πρέπει να ξέρει κανείς ποτέ βάζει volatile μια μεταβλητή.
Επίσης η χρήση των |, &, ~ να αποφεύγεται. Είναι οι λογικές πύλες ανά μπιτ. Ενώ αν έχουμε bool μεταβλητές ή και εκφράσεις, παίζουν τα ||,&& και !
Εννοείται ότι για ισότητα παίζει το ==
Επίσης τα πεζά κεφαλαία μετράνε. Το περιβάλλον του Arduino ψάχνει με ctrl+F και με ignore case, και κάνει αλλαγές και έτσι ίδια λέξη την φέρνει στα ίσα της με πεζά και κεφαλαία της επιλογής μας. Οπότε πρέπει να μην χρησιμοποιούνται αναγνωριστικά με διαφορά μόνο σε πεζά με κεφαλαία, αλλά με διακριτά ονόματα.
Void βάζουμε σε συναρτήσεις που χρησιμοποιούμε χωρίς επιστροφή τιμής.
Η επιστροφή τιμής γίνεται με την return. Μπορούμε να έχουμε όσες θέλουμε σε μια συνάρτηση αλλά η πρώτη που θα εκτελεστεί θα είναι και η επιστροφή από τη κλήση της συνάρτησης. Το void παίζει και στους pointers αλλά δεν είναι απαραίτητο να χρησιμοποιηθούν.
Το Arduino χρησιμοποιεί interrupts, οπότε δύο πράγματα μας ενδιαφέρουν, το πέρασμα συνάρτησης ως παράμετρος (call back) και το volatile, να σιγουρευτούμε ότι μια μεταβλητή μένει στην μνήμη για να αλλάξει από το interrupt). Επίσης ένα interupt πρέπει να είναι σύντομο, να μην έχει loop, καθυστέρηση,δηλαδή γιατί θα έρθει το επόμενο και θα το επικαλύψει, προκαλώντας προβλήματα.
Το συνηθισμένο μέρος του συντακτικού της γλώσσας ,c++ είναι μικρό και εύκολα κατανοητό από παιδιά δημοτικού.
Εξάσκηση χρειάζεται!
Ένας τρόπος κατανόησης των βιβλιοθηκών είναι η ανάγνωση των αρχείων .h και των  cpp. Αυτό για τον καθηγητή περισσότερα.
Οι συναρτήσεις της c++ που είναι μέρος αντικειμένου (η τύπου κατά μία έννοια) μπορούν να έχουν υπερφόρτωση δηλαδή να υπάρχουν σε εκδόσεις με διαφορετικές υπογραφές. Υπογραφή είναι ο αριθμός και το είδος των παραμέτρων. Αυτό θα το δούμε σε χρήση στους κατασκευαστές αντικειμένων. Αντικείμενα στο Arduino είναι τα τσιπάκια  που βάζουμε για ελεγκτές ή πόρτες εισόδων και εξόδων.
Αυτά τα ολίγα. Καλή προσπάθεια.

evry:
Αν κατάλαβα καλά μιλάμε για προγραμματισμό Arduino με C στο δημοτικό.
Στις ηλικίες αυτές με τι επιτυχία μπορούμε να μιλήσουμε για τα βασικά του προγραμματισμού?
Δηλαδή μεταβλητές, μια έννοια που δεν γνωρίζουν και πολύ δύσκολα θα κατανοήσουν οι μαθητές του δημοτικού (η έννοια αυτή διδάσκεται στην Β Γυμνασίου).
Να μην μιλήσουμε για δομή επανάληψης, μετρητές, δομή επιλογής άρα λογικές συνθήκες κλπ.
Στο Λύκειο υπάρχουν μαθητές που δυσκολεύονται με αυτά και αυτό βλέπω και στο Γυμνάσιο.
Στο δημοτικό πως ακριβώς εισάγονται αυτές οι έννοιες? Ειδικά όταν έχουμε ένα μονόωρο μάθημα στο οποίο το τμήμα δεν σπάει.

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

παρις:

--- Παράθεση από: evry στις 11 Μαΐ 2020, 11:39:32 μμ ---Αν κατάλαβα καλά μιλάμε για προγραμματισμό Arduino με C στο δημοτικό.
Στις ηλικίες αυτές με τι επιτυχία μπορούμε να μιλήσουμε για τα βασικά του προγραμματισμού?
Δηλαδή μεταβλητές, μια έννοια που δεν γνωρίζουν και πολύ δύσκολα θα κατανοήσουν οι μαθητές του δημοτικού (η έννοια αυτή διδάσκεται στην Β Γυμνασίου).
Να μην μιλήσουμε για δομή επανάληψης, μετρητές, δομή επιλογής άρα λογικές συνθήκες κλπ.
Στο Λύκειο υπάρχουν μαθητές που δυσκολεύονται με αυτά και αυτό βλέπω και στο Γυμνάσιο.
Στο δημοτικό πως ακριβώς εισάγονται αυτές οι έννοιες? Ειδικά όταν έχουμε ένα μονόωρο μάθημα στο οποίο το τμήμα δεν σπάει.

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

--- Τέλος παράθεσης ---
Οι τυποι των μεταβλητων ειναι ευκολοι. Αν εξαιρεσω τους δεκαδικους που τους μαθαινουν στα μαθηματικα σε ποια ταξη; Εκει μονο θελει λιγα λεπτα παραπανω.
Με παραδειγματα απο την ζωη μπορεις να εξηγησεις τους
İnteger
Float
Char
Boolean.

To boolean ειναι το ποιο ευκολο απ ολα, και εκει θα πεταξεις και την γλωσσα μηχανης απο το 0 και 1.
Οι λογικες συνθηκες ευκολες και αυτες θα κανεις ενα πινακα.

Η απλη δομη επαναληψης ειναι κατανοητη οταν αρχιζεις και προσθετεις ισως μπλεχτουν.
Οι δομες επιλογης ισως τα δυσκολεψει.

Δεν τα εχω δοκιμασει στην πραξη δεν εχω arduino ρομποτακι, Πληρωσα κατι σεμιναρια για αρχη, ενα μικρο ποσο.
To scratch εχω κανει και θα ηθελα να δοκιμασω κατι αλλο γιατι κολλανε με την κινηση των χαρακτηρων και τα εφε και δεν μαθαινουν πολλα. Ασε που το scratch δεν ξερω αν στεκεται καθολου σαν προγραμματισμος. Φοβαμαι οτι μπερδευει...

παρις:

--- Παράθεση ---η κατανόηση της έννοιας της μεταβλητής περνάει από την κατανόηση της έννοιας της συνάρτησης.

--- Τέλος παράθεσης ---
Με μπερδεψες μεχρι και μενα... ;D μπλεκεις πολυ τα μαθηματικα. Θα ριξω μια γρηγορη ματια στα μαθηματικα τους οταν ερθει η ωρα.
Ψευδοκωδικα ειχα κανει στην Τριτη Λυκειου και ουτε που ειδα το βιβλιο των μαθηματικων...πανε χρονια βεβαια...(αλλη κοτσανα ο ψευδοκωδικας ποιανου φαϊνη ιδεα ηταν;) :o

Πλοήγηση

[0] Λίστα μηνυμάτων

[#] Επόμενη σελίδα

[*] Προηγούμενη σελίδα

Μετάβαση στην πλήρη έκδοση