Ποια γλώσσα προγραμματισμού πρέπει να χρησιμοποιήσετε για τα έργα μικροελεγκτή σας; Ας εξερευνήσουμε τις τέσσερις καλύτερες επιλογές.
Οι πλακέτες ανάπτυξης μικροελεγκτών έχουν γίνει βασικό στοιχείο στην κοινότητα των κατασκευαστών. Αυτές οι προγραμματιζόμενες συσκευές έχουν σχεδιαστεί ειδικά για την επεξεργασία σημάτων εισόδου και εξόδου ως τρόπο ελέγχου διαφόρων μονάδων και εξαρτημάτων όπως αισθητήρες, κινητήρες, LED και συσκευές ανθρώπινης εισόδου (HID).
Αλλά πριν από αυτό, θα χρειαστεί να μάθετε μια γλώσσα δέσμης ενεργειών που ο μικροελεγκτής μπορεί να ερμηνεύσει για να προγραμματίσει αυτές τις συσκευές. Οι πιο δημοφιλείς γλώσσες μικροελεγκτών σήμερα περιλαμβάνουν τις MicroPython, CircuitPython, Arduino (απλοποιημένη C++) και C. Κάθε μία από αυτές τις γλώσσες έχει τα δικά της πλεονεκτήματα και μειονεκτήματα.
MicroPython
Η MicroPython είναι μια ελαφριά εφαρμογή της γλώσσας προγραμματισμού Python 3 που έχει σχεδιαστεί ειδικά για μικροελεγκτές. Κυκλοφόρησε το 2013 από τον Dr. Damien George για ταχύτερη δημιουργία πρωτοτύπων και για να επιτρέψει σε άτομα που είναι ήδη εξοικειωμένα με την Python να προγραμματίσουν μικροελεγκτές με παρόμοια γλώσσα.
Χαρακτηριστικά
Η MicroPython είναι μια εξαιρετική γλώσσα σεναρίου για αρχάριους που θέλουν να προγραμματίσουν μικροελεγκτές. Οι αρχάριοι που δεν έχουν εμπειρία κωδικοποίησης θα είναι εύκολο να το διαβάσουν και να το κατανοήσουν επειδή χρησιμοποιεί εντολές αναγνώσιμες από τον άνθρωπο σε απλές δομές. Επιπλέον, χρησιμοποιεί ένα περιβάλλον χρόνου εκτέλεσης ανάγνωσης-αξιολόγησης-εκτύπωσης-βρόχου (REPL), επιτρέποντας μια διαδραστική εμπειρία κωδικοποίησης.
Εκτέλεση
Για να προγραμματίσετε έναν μικροελεγκτή χρησιμοποιώντας MicroPython, το υλικολογισμικό που περιέχει τον διερμηνέα, τις βιβλιοθήκες και διάφορες άλλες εξαρτήσεις αναβοσβήνει στον μικροελεγκτή. Αυτό επιτρέπει στον κώδικα MicroPython να ερμηνεύεται και να εκτελείται τοπικά από τον μικροελεγκτή, επιτρέποντας την ταχεία δημιουργία πρωτοτύπων καθώς μπορεί να παρέχεται ζωντανή ανατροφοδότηση κατά την κωδικοποίηση.
Ωστόσο, λόγω πώς οι επεξεργαστές εκτελούν τον κώδικα, οι ερμηνευμένες γλώσσες όπως η MicroPython θα είναι σημαντικά πιο αργές σε σύγκριση με μεταγλωττισμένες γλώσσες όπως η C++. Έτσι, από προεπιλογή, αν και η δημιουργία πρωτοτύπων μπορεί να είναι πολύ πιο γρήγορη, η ίδια η εκτέλεση κώδικα είναι πιο αργή.
Συμβατότητα
Εφόσον η MicroPython χρησιμοποιεί τοπικούς πόρους για την ερμηνεία και την εκτέλεση προγραμμάτων, ένας μικροελεγκτής πρέπει να έχει τουλάχιστον 256 kB μνήμης flash και 16 kB μνήμης RAM. Δυστυχώς, ορισμένες δημοφιλείς πλακέτες ανάπτυξης όπως το Arduino Uno δεν πληρούν τις απαιτούμενες προδιαγραφές. Ωστόσο, υπάρχουν ακόμα πολλές πλακέτες που είναι συμβατές με τη MicroPython.
Επί του παρόντος, η MicroPython υποστηρίζει επίσημα τα Pyboard, ESP32, ESP8266, Raspberry Pi Pico, BBC micro: bit, Πλακέτες ανάπτυξης STM32 και μερικές πλακέτες Arduino όπως οι Nano 33 BLE, Nano RP2040, Giga R1 και Portenta H7.
Κοινότητα και Υποστήριξη
Από την κυκλοφορία του το 2013, η MicroPython έχει από τότε συγκεντρώσει αρκετούς θαυμαστές. Οι αρχάριοι θα πρέπει να περνούν εύκολα το MicroPython με την καλογραμμένη τεκμηρίωσή του. Εάν χρειάζεστε περισσότερη βοήθεια, το MicroPython διαθέτει επίσης ένα φόρουμ κοινότητας όπου οι χρήστες μοιράζονται μαθήματα, ιδέες και απαντούν σε κάθε είδους προβλήματα που μπορεί να έχετε σχετικά με το MicroPython.
Arduino
Το Arduino είναι μια δημοφιλής πλατφόρμα ανοιχτού κώδικα που απευθύνεται κυρίως σε λάτρεις των ηλεκτρονικών ειδών και των DIY. Η γλώσσα προγραμματισμού Arduino βασίζεται στις γλώσσες προγραμματισμού C και C++. Η γλώσσα Arduino κυκλοφόρησε το 2005 από μια ομάδα μηχανικών, καλλιτεχνών και σχεδιαστών από την Ιταλία.
Χαρακτηριστικά
Η γλώσσα προγραμματισμού Arduino χρησιμοποιεί μια απογυμνωμένη έκδοση τόσο της C όσο και της C++, καθιστώντας εύκολη την εκμάθηση και ανάπτυξη. Η εκτέλεση κώδικα με τη χρήση του Arduino είναι σημαντικά ταχύτερη από τις αντίστοιχες γλώσσες που ερμηνεύονται λόγω της μεταγλωττισμένης φύσης του. Επιπλέον, το Arduino απαιτεί μόνο μια μικρή ποσότητα πόρων συστήματος για να λειτουργήσει, γεγονός που το καθιστά συμβατό με πολλές πλακέτες ανάπτυξης και μικροελεγκτές.
Εκτέλεση
Σε αντίθεση με τη MicroPython και την CircuitPython, το Arduino είναι μια μεταγλωττισμένη γλώσσα προγραμματισμού. Αυτό σημαίνει ότι ο κώδικας μεταγλωττίζεται πρώτα σε έναν μεταγλωττιστή (που περιλαμβάνεται ήδη στο Arduino IDE) και στη συνέχεια εκτελείται ως ολόκληρο πρόγραμμα από τον μικροελεγκτή.
Αυτό βελτιώνει σημαντικά την εκτέλεση του κώδικα, καθώς ο μικροελεγκτής δεν χρειάζεται να χρησιμοποιεί πόρους για την ερμηνεία κάθε γραμμής κώδικα. Επιπλέον, η μεταγλώττιση του προγράμματος το μεταφράζει επίσης σε κώδικα μηχανής τον οποίο ο μικροελεγκτής μπορεί να εκτελέσει εγγενώς χωρίς να εγκαταστήσει εξαρτήσεις.
Αυτό βελτιώνει σημαντικά την ταχύτητα εκτέλεσης κώδικα επειδή ο μικροελεγκτής μπορεί να εκτελέσει απευθείας το πρόγραμμα χωρίς να διαθέσει χρόνο και πόρους υλικού για τη μετάφραση του κώδικα.
Υποστηριζόμενα Συμβούλια
Δεδομένου ότι το στάδιο της μεταγλώττισης γίνεται μέσω του IDE, οι μικροελεγκτές μπορούν να έχουν μόλις 32 kB μνήμης flash και 2 kB μνήμης RAM για να λειτουργήσουν. Εκτός λοιπόν από τις πλακέτες Arduino, υπάρχουν πολλές εναλλακτικές πλακέτες Arduino μπορείτε να το χρησιμοποιήσετε για να προγραμματίσετε με το Arduino. Πολλές από αυτές τις πλακέτες θα χρησιμοποιούν μικροελεγκτές όπως ATmega328P, ATmega2560, SAMx8E, ESP8266, ESP32 και STM32.
Κοινότητα και Υποστήριξη
Όντας μια πλατφόρμα ανοιχτού κώδικα από το 2005, το Arduino διαθέτει μερικές από τις καλύτερες διαθέσιμες τεκμηρίωση. Το Ίδρυμα Arduino παρέχει ενεργά ενημερώσεις, υποστήριξη και νέα συναρπαστικά προϊόντα κάθε χρόνο. Η παγκόσμια κοινότητα είναι επίσης μια από τις πιο ενεργές στην κοινή χρήση οδηγών και ιδεών και στην απάντηση σε τυχόν προβλήματα αντιμετώπισης προβλημάτων που μπορεί να αντιμετωπίσετε. Με το Arduino, έχετε εγγυημένα ένα καλό επίπεδο υποστήριξης.
CircuitPython
Το CircuitPython είναι η υλοποίηση της Python 3 από την Adafruit, που βασίζεται στην κορυφή του MicroPython. Αν και διχαλωτό από τη MicroPython, το CircuitPython προσφέρει αρκετές βελτιώσεις για να κάνει την εκμάθηση μικροελεγκτών εύκολη και διασκεδαστική.
Χαρακτηριστικά
Το CircuitPython δημιουργήθηκε για να βοηθήσει τους αρχάριους να μάθουν πώς να προγραμματίζουν μικροελεγκτές. Για να επιτευχθεί αυτό, το CircuitPython παρέχει πολλές δυνατότητες, συμπεριλαμβανομένης μιας διαδραστικής κωδικοποίησης περιβάλλον, ενσωματωμένες βιβλιοθήκες, απλή σύνταξη (πιο απλή από τη MicroPython) και εξαιρετική τεκμηρίωση και οδηγούς.
Εκτέλεση
Δεδομένου ότι το CircuitPython βασίζεται στο MicroPython, έχει πολλά από τα ίδια πλεονεκτήματα και αδυναμίες. Ο χρόνος εκτέλεσης του προγράμματος θα είναι ελαφρώς πιο αργός από το MicroPython, καθώς το CircuitPython παρέχει περισσότερες δυνατότητες και επιπλέον βιβλιοθήκες. Ωστόσο, η διαφορά είναι πιθανότατα απαρατήρητη, καθώς το CircuitPython απαιτεί πιο ικανούς μικροελεγκτές για να λειτουργήσει.
Υποστηριζόμενα Συμβούλια
Με ενσωματωμένες βιβλιοθήκες και ακόμα πιο απλή σύνταξη, οι πίνακες ανάπτυξης μικροελεγκτών χρειάζονται περισσότερους πόρους για τη χρήση του CircuitPython. Τουλάχιστον, ένας μικροελεγκτής πρέπει να διαθέτει επεξεργαστή 8 bit, 256 kB μνήμης flash (συνιστάται 512 kB) και 32 kB μνήμης RAM (συνιστάται 64 kB). Επί του παρόντος, το CircuitPython υποστηρίζει πάνω από 390 πλακέτες ανάπτυξης, που αναφέρονται στο επίσημη ιστοσελίδα.
Κοινότητα και Υποστήριξη
Το Adafruit είναι γνωστό ότι παράγει προϊόντα που είναι φιλικά για αρχάριους. Ως εκ τούτου, μπορείτε να βρείτε εύκολα κατανοητή τεκμηρίωση και βιβλία στο CircuitPython. Αν και η γλώσσα εισήχθη μόλις το 2017, εξακολουθεί να έχει μεγαλύτερους ακόλουθους από τη MicroPython, την οποία μπορείτε να προσεγγίσετε μέσω του Discord και του επίσημου φόρουμ. Όπως το Ίδρυμα Arduino, το Adafruit παρέχει ενεργά ενημερώσεις, υποστήριξη και νέα προϊόντα, πράγμα που σημαίνει ότι η υποστήριξη θα πρέπει να είναι εύκολη.
ντο
Η C είναι μια γλώσσα προγραμματισμού γενικής χρήσης που αναπτύχθηκε τη δεκαετία του 1970 από τον Dennis Ritchie στα Bell Labs. Είναι μια μεταγλωττισμένη γλώσσα προγραμματισμού που συχνά χρησιμοποιούν οι μηχανικοί και άλλοι επαγγελματίες για τον προγραμματισμό μικροελεγκτών με υψηλά επίπεδα απόδοσης.
Χαρακτηριστικά
Αν και μια γλώσσα πιο δύσκολη στην εκμάθηση, το κύριο πλεονέκτημα της C έναντι των MicroPython, CircuitPython και Arduino είναι το επίπεδο ταχύτητας, αποτελεσματικότητας, ελέγχου και φορητότητας που παρέχει. Αυτό καθιστά τη C την καλύτερη γλώσσα για τον προγραμματισμό και των δύο μικροελεγκτών για χρήση σε τελικά προϊόντα.
Εκτέλεση
Εκτός από τη μεγάλη φορητότητά του, το C είναι γνωστό για τις επιδόσεις του. Μπορεί να εκτελεί προγράμματα πιο γρήγορα από τα Arduino, MicroPython και CircuitPython, ακόμη και με μικροελεγκτή χαμηλότερου πόρου. Αυτό συμβαίνει επειδή η C είναι μια πιο αποτελεσματική γλώσσα, που απαιτεί τις λιγότερες εξαρτήσεις. Παρόλο που ένα μεταγλωττισμένο πρόγραμμα Arduino μπορεί, όπως ένα C, να εκτελεστεί σε υλικό γυμνού μετάλλου, ο κώδικας μηχανής του έρχεται προ-ψημένος με βιβλιοθήκες και εργαλεία που μειώνουν την απόδοση.
Υποστηριζόμενα Συμβούλια
Η γλώσσα C είναι τόσο φορητή που μπορεί να χρησιμοποιηθεί για τον προγραμματισμό σχεδόν οποιουδήποτε μικροελεγκτή που βασίζεται σε βραχίονα. Επιπλέον, μπορεί να χρησιμοποιηθεί σε πλακέτες που βασίζονται στους μικροελεγκτές Atmel AVR, STM32, PIC και MSP.
Κοινότητα και Υποστήριξη
Λόγω της ισχυρής εφαρμογής προγραμματισμού της και του γεγονότος ότι είναι ήδη πολλών δεκαετιών, η γλώσσα προγραμματισμού C έχει μια τεράστια διαδικτυακή κοινότητα. Μπορείτε να βρείτε εύκολα βοήθεια μέσω διαφόρων διαδικτυακών φόρουμ, αιθουσών συνομιλίας και ιστολογίων που είναι αφιερωμένα στη συζήτηση και την ανταλλαγή ιδεών σχετικά με τη γλώσσα C.
Με ποια γλώσσα πρέπει να προγραμματίσετε;
Λοιπόν, ποια είναι η καλύτερη γλώσσα για τον προγραμματισμό μικροελεγκτών; Εξαρτάται πραγματικά από το άτομο. Η γλώσσα C θα ήταν η καλύτερη για επαγγελματίες που σχεδιάζουν ηλεκτρονικά για παραγωγή.
Όσοι δεν έχουν εμπειρία κωδικοποίησης μπορεί κάλλιστα να θέλουν να ξεκινήσουν με το CircuitPython, καθώς διαθέτει χαρακτηριστικά και τεκμηρίωση που κάνουν τη μάθηση εύκολη και διασκεδαστική. Όσοι γνωρίζουν την Python θα είναι εύκολο να προγραμματίσουν μικροελεγκτές με MicroPython.
Και για την πλειοψηφία της κοινότητας DIY/κατασκευαστών, το Arduino θα εξακολουθούσε να είναι η καλύτερη γλώσσα για προγραμματισμό μικροελεγκτές, καθώς προσφέρει εξαιρετική ισορροπία απόδοσης, φορητότητας, χαρακτηριστικών και κοινότητα.