- Τι είναι το PlatformIO;
- Ρύθμιση PlatformIO για το Arduino Uno
- Προγραμματισμός του Arduino UNO χρησιμοποιώντας το PlatformIO IDE
- Προγραμματισμός πλακέτας STM32 χρησιμοποιώντας το PlatformIO IDE
Η ανάπτυξη σε Arduino και Arduino IDE ήταν πάντα εύκολη και διασκεδαστική με το απλό περιβάλλον εργασίας τους. Το Arduino IDE είναι ανοιχτού κώδικα και δωρεάν χρήση του Περιβάλλοντος Ανάπτυξης με όλες τις δυνατότητες, όπως εγγραφή, μεταγλώττιση και μεταφόρτωση του κώδικα στους πίνακες Arduino. Βασίζεται σε Java και λειτουργεί σε μεγάλα λειτουργικά συστήματα όπως Windows, OS X και Linux. Αλλά με όλη την απλότητα και τη μεγάλη κοινότητά του, δεν διαθέτει κάποια χαρακτηριστικά που ένας έμπειρος προγραμματιστής θα απαιτήσει για γρήγορη ανάπτυξη που μπορεί να μειώσει την περίοδο ανάπτυξης. Υπάρχουν πολλά περιβάλλοντα ανάπτυξης για το Arduino, αλλά όλα έχουν κάποια πλεονεκτήματα και μειονεκτήματα. Σήμερα, θα ξεκινήσουμε με ένα περιβάλλον ανάπτυξης PlatformIO το οποίο είναι εύκολο στη χρήση και έχει προσθέσει χαρακτηριστικά σε σύγκριση με το περιβάλλον Arduino.
Τι είναι το PlatformIO;
Το PlatformIO είναι ένα οικοσύστημα ανοιχτού κώδικα βασισμένο σε Python για ανάπτυξη IoT και ένα cross-IDE πλατφόρμα με ενοποιημένο πρόγραμμα εντοπισμού σφαλμάτων που εκτελείται σε Windows, Mac και Linux. Το PlatformIO έρχεται με διαχειριστή βιβλιοθήκης για πλατφόρμες όπως υποστήριξη Arduino ή MBED μαζί με δοκιμές μονάδων και ενημερώσεις υλικολογισμικού Το PlatformIO υποστηρίζει διάφορες πλατφόρμες, πλαίσια, πίνακες όπως το Arduino, ESP32, ESP8266 και συνοδεύεται από πολλά παραδείγματα και βιβλιοθήκες. Είναι ανεξάρτητη από την πλατφόρμα στην οποία εκτελείται και απαιτεί μόνο Python εγκατεστημένο στον υπολογιστή.
Πλεονεκτήματα του PlatformIO
Το PlatformIO διαθέτει ταχεία ανάπτυξη με τα χαρακτηριστικά του, όπως C / C ++ Code Completion και Smart Code Linter για ταχεία επαγγελματική ανάπτυξη που δεν υπάρχει στο Arduino IDE. Επιπλέον, το PlatformIO προσφέρει υποστήριξη θέματος με σκούρα και ανοιχτά χρώματα για ανάπτυξη ανά πάσα στιγμή. Έρχεται επίσης με Έξυπνη πλοήγηση κώδικα και μορφοποίηση κώδικα. Τα βασικά χαρακτηριστικά περιλαμβάνουν το Σύστημα Κατασκευής Πολλαπλών Πλατφορμών, Διαχείριση Βιβλιοθηκών, Serial Port Monitor κ.λπ.
Το Unified Debugger με υποστήριξη για πολλές αρχιτεκτονικές και πλατφόρμες ανάπτυξης επιτρέπει τον εντοπισμό σφαλμάτων πολλαπλών ενσωματωμένων πινάκων με μηδενική διαμόρφωση. Το PlatformIO Unified Debugger διαθέτει χαρακτηριστικά όπως Υπό όρους Breakpoints, Expressions and Watchpoints, Memory Viewer, A hot επανεκκίνηση μιας ενεργής περιόδου εντοπισμού σφαλμάτων. Το PlatformIO Core είναι γραμμένο σε Python 2.7 και λειτουργεί σε υπολογιστές με Windows, macOS, Linux, FreeBSD και ακόμη και με μέγεθος πιστωτικής κάρτας ARM όπως Raspberry Pi, BeagleBone, CubieBoard, Samsung ARTIK κ.λπ. Εκτός από αυτό το PlatformIO διαθέτει File Explorer που βοηθά οργάνωση των αρχείων όταν το έργο μεγαλώνει σε ένα ορισμένο επίπεδο και η οργάνωση καθίσταται απαραίτητη.
Ρύθμιση PlatformIO για το Arduino Uno
Η χρήση του PlatformIO είναι πολύ απλή και απαιτεί λίγα βήματα για να ξεκινήσετε. Το PlatformIO απαιτεί το Python να είναι εγκατεστημένο στον υπολογιστή αφού όπως εξηγήθηκε παραπάνω ότι ο πυρήνας του PlatformIO γράφτηκε στο Python 2.7. Σημειώστε ότι το PlatformIO δεν υποστηρίζει το Python 3, επομένως συνιστάται η εγκατάσταση της έκδοσης Python 2 και, στη συνέχεια, προχωρήστε στη ρύθμιση του PlatformIO IDE. Το PlatformIO είναι ένα IDE συν παρέχει επίσημα πακέτα (plugins, extensions) για τα πιο δημοφιλή IDE και προγράμματα επεξεργασίας κειμένου.
Σήμερα θα εγκαταστήσουμε το PlatformIO σε ένα πρόγραμμα επεξεργασίας κειμένου όπως το Atom και το Visual Studio Code. Στην επίσημη τεκμηρίωση του Platform IDE δηλώνει ότι το PlatformIO IDE για VS Code (Visual Studio Code) προσφέρει καλύτερη απόδοση συστήματος και οι χρήστες έχουν βρει ευκολότερο να ξεκινήσουν. Έτσι θα ρυθμίσουμε το PlatformIO στον κώδικα Visual Studio. Ο κώδικας VS είναι ένας γνωστός επεξεργαστής κειμένου με αριθμό επεκτάσεων που μας επιτρέπουν να αναπτύσσουμε σε διαφορετικές γλώσσες προγραμματισμού.
Ας αρχίσουμε να δημιουργούμε το PlatformIO για να αρχίσουμε να αναπτύσσουμε κώδικα στο Arduino UNO. Υπάρχουν βήματα που εξηγούνται παρακάτω:
- Πρώτα εγκαταστήστε τον Visual Studio Code από τον επίσημο ιστότοπό του. Τα βήματα εγκατάστασης του Visual Studio Code δεν θα εξηγηθούν εδώ, αλλά μπορείτε να το βρείτε στον ιστότοπο VS Code. Υπάρχουν γενικά βήματα όπως η εγκατάσταση οποιουδήποτε άλλου λογισμικού στο λειτουργικό σύστημα Windows.
- Ο Visual Studio Code θα μοιάζει να ακολουθεί όταν εγκατασταθεί με επιτυχία.
- Το επόμενο βήμα περιλαμβάνει την εγκατάσταση του PlatformIO χρησιμοποιώντας επεκτάσεις κώδικα VS. Για αυτό θα πρέπει να μεταβείτε στο εικονίδιο επεκτάσεων στην επάνω αριστερή γωνία του κώδικα VS. Υπάρχει τετράγωνο εικονίδιο κουτιού που είναι το 5ο εικονίδιο στην επάνω αριστερή γωνία. Απλώς κάντε κλικ σε αυτό και ένα πλαίσιο αναζήτησης θα εμφανιστεί ακριβώς δίπλα σε αυτό όπου μπορείτε να βρείτε πολλές επεκτάσεις για διαφορετικές γλώσσες προγραμματισμού όπως C / C ++, C #, Python, PHP, Go, JavaScript, TypeScript και Node.js κ.λπ.
- Αναζήτηση για "PlatformIO" στο πλαίσιο αναζήτησης επέκτασης και θα δείτε το εικονίδιο PlatformIO με όνομα και περιγραφή. Απλώς κάντε κλικ σε αυτό και εγκαταστήστε το. Μπορεί να χρειαστεί λίγος χρόνος για την εγκατάσταση αλυσίδων εργαλείων και άλλων εξαρτήσεων. Οι εξαρτήσεις περιλαμβάνουν περιβάλλον C / C ++, καθώς η ανάπτυξη του Arduino γίνεται κυρίως σε C / C ++.
- Όταν ολοκληρωθεί η εγκατάσταση, θα δείτε την ακόλουθη διεπαφή. Η διασύνδεση περιλαμβάνει όλη την απαραίτητη πλοήγηση, όπως δημιουργία νέου έργου, εισαγωγή έργου Arduino, ανοιχτό έργο, παραδείγματα έργου κ.λπ. Συνιστάται η επανεκκίνηση του επεξεργαστή κώδικα VS μετά την εγκατάσταση του PlatformIO.
Αυτό ολοκληρώνει τα βήματα εγκατάστασης του PlatformIO. Τώρα το PlatformIO είναι εγκατεστημένο και έτοιμο για χρήση. Ακριβώς όπως το Arduino IDE, θα ξεκινήσουμε με το πρόγραμμα Blink και θα προσπαθήσουμε να ανεβάσετε το πρόγραμμα Blink στο Arduino UNO.
Προγραμματισμός του Arduino UNO χρησιμοποιώντας το PlatformIO IDE
Η διεπαφή PlatformIO θα εξηγηθεί ταυτόχρονα κατά τον προγραμματισμό του Arduino UNO. Εδώ προγραμματίζουμε το Arduino για το LED που αναβοσβήνει χρησιμοποιώντας το PlatformIO. Το ίδιο μπορεί να γίνει χρησιμοποιώντας το Arduino IDE. Ακολουθήστε τα παρακάτω βήματα παρακάτω για να δημιουργήσετε ένα νέο έργο για το LED που αναβοσβήνει.
- Επιλέξτε την καρτέλα "Νέο έργο" από το μενού γρήγορης πρόσβασης.
- Ονομάστε το έργο (Εδώ είναι "Blink"). Αναζήτηση και επιλογή του πίνακα που είναι Arduino UNO. Δεδομένου ότι εργαζόμαστε στο πλαίσιο Arduino, έτσι το επιλεγμένο πλαίσιο θα είναι το Arduino. Αφού συμπληρώσετε όλες τις λεπτομέρειες κάντε κλικ στο Finish.
- Το Έργο θα αρχίσει να δημιουργείται με τη συλλογή πόρων και άλλων εξαρτήσεων.
- Όταν το έργο δημιουργηθεί επιτυχώς, θα λάβετε το άμεσο μήνυμα, καθώς "Το έργο έχει αρχικοποιηθεί με επιτυχία" με όλες τις συμπληρωμένες λεπτομέρειες.
- Για να ανοίξετε το έργο που δημιουργήσατε, απλώς μετακινηθείτε προς τα κάτω στο Home Menu του PlatformIO και θα δείτε όλη τη λίστα των έργων που δημιουργήθηκαν από την αρχή. Στη δεξιά γωνία του δημιουργημένου έργου κάντε κλικ στο "Άνοιγμα" για να ανοίξετε το έργο και να ξεκινήσετε την επεξεργασία.
- Όταν το έργο ανοίξει, αρχικά θα μοιάζει με το κρυφό του, αλλά μην ανησυχείτε, το PlatformIO διαθέτει δυνατότητα εξερεύνησης αρχείων όπου θα βρίσκονται όλα τα αρχεία του τρέχοντος έργου. Απλώς μεταβείτε στην επάνω αριστερή γωνία και ανοίξτε το "Untitled (Workplace)". Όταν κάνετε κλικ σε αυτό, όλα τα αρχεία θα εμφανίζονται ως αναπτυσσόμενο μενού. Για να βρείτε το πρόγραμμα επεξεργασίας κειμένου για να επεξεργαστείτε τον "Κώδικα", επιλέξτε "src" και το ανοιχτό "main.cpp". Η λειτουργία επεξεργασίας κειμένου θα εμφανιστεί στην Αρχική οθόνη ανοίγοντας μια νέα καρτέλα. Εδώ μπορείτε να γράψετε όλους τους κωδικούς του τρέχοντος τρέχοντος έργου.
- Απλώς γράψτε τον κώδικα Blink για το Arduino UNO. Σημειώστε ότι, το PlatformIO δεν έχει την προεπιλεγμένη πρόσβαση στις βιβλιοθήκες Arduino, οπότε κάθε φορά που γράφετε τον κωδικό για το Arduino, συμπεριλαμβάνετε πάντα τη βιβλιοθήκη Arduino, δηλαδή "#include" στην αρχή του προγράμματος.
- Το επόμενο βήμα θα ήταν η σύνταξη και η μεταφόρτωση του κώδικα. Για να το κάνουμε αυτό, ας δούμε τις λειτουργίες που παρέχονται από το PlatformIO. Επίσης, το PlatformIO επιλέγει τη θύρα COM από προεπιλογή. Αλλά μπορείτε επίσης να αλλάξετε τη θύρα εάν δεν είναι η επιθυμητή θύρα COM. Η αλλαγή της θύρας COM θα εξηγηθεί αργότερα σε αυτό το σεμινάριο. Το PlatformIO έχει λειτουργίες όπως Build, Upload, Upload to Remote Device, Clean, Test, Run Task, Serial Monitor, New Terminal. Όλες οι λειτουργίες βρίσκονται στην κάτω αριστερή γωνία του επεξεργαστή. Όταν τοποθετείτε το δείκτη του ποντικιού πάνω από τα εικονίδια, θα εμφανιστούν οι λειτουργίες.
- Για να δημιουργήσετε το σκίτσο, κάντε κλικ στο "Build" και για να ανεβάσετε το σκίτσο κάντε κλικ στο εικονίδιο "Upload". Όταν ολοκληρωθεί η μεταφόρτωση, θα μπορείτε να δείτε τον χρόνο που απαιτείται για τη μεταφόρτωση με όλες τις άλλες λεπτομέρειες και ένα μήνυμα που λέει "Επιτυχία". Ο κώδικας μεταφορτώνεται με επιτυχία και θα μπορείτε να δείτε το LED που αναβοσβήνει στο Arduino Board.
Για να επιλέξετε ή να αλλάξετε οποιαδήποτε θύρα COM, απλώς μεταβείτε στην Αρχική οθόνη του PlatformIO και μετά μεταβείτε στις Συσκευές, εδώ μπορείτε να δείτε όλες τις διαθέσιμες συσκευές συνδεδεμένες. Επιλέξτε την κατάλληλη θύρα COM και ακολουθήστε την ίδια διαδικασία για να ανεβάσετε το σκίτσο.
Προγραμματισμός πλακέτας STM32 χρησιμοποιώντας το PlatformIO IDE
Ο προγραμματισμός του STM32 Board θα έχει ακριβώς παρόμοια βήματα όπως ο Προγραμματισμός Arduino UNO που εξηγείται παραπάνω. Η διαφορά θα είναι η επιλογή του Διοικητικού Συμβουλίου για το STM32 κατά το άνοιγμα ενός νέου έργου για το STM32. Το καλό για το PlatformIO είναι ότι δεν χρειάζεται κανένα εξωτερικό πακέτο για να κατεβάσει χωριστά κάποιος πίνακας, κατεβάζει αυτόματα όλα τα πακέτα και μας διευκολύνει να επιλέξουμε έναν πίνακα και να μεταβούμε στον επεξεργαστή. Θα χρησιμοποιήσουμε τον εξωτερικό προγραμματιστή JLink / JTAG / STLink / Serial για να ανεβάσουμε σκίτσο στο STM32. Το STM32 μπορεί επίσης να προγραμματιστεί με το Arduino IDE. Συνεχίστε με τα παρακάτω βήματα για να το προγραμματίσετε με το PlatformIO.
- Απλώς ονομάστε το Έργο (Εδώ είναι "Blink STM32"). Στη συνέχεια, επιλέξτε την πλακέτα για STM32, δηλαδή « BluePill F103C8 (Generic) ». Στη συνέχεια, επιλέξτε Framework ως Arduino. Κάντε κλικ στο Τέλος και περιμένετε λίγο, καθώς αρχικά θα χρειαστεί χρόνος για τη λήψη των πακέτων και των εξαρτήσεων για την κάρτα STM32.
- Μετά την εγκατάσταση, ο επόμενος χρόνος δημιουργίας έργου θα είναι μικρότερος σε σύγκριση με τον πρώτο. Τώρα απλώς μεταβείτε στο Untitled (Workspace) -> src -> main.cpp στην αριστερή εξερεύνηση αρχείων.
- Τώρα τα επόμενα βήματα θα είναι σημαντικά, καθώς πρέπει να αποφασιστεί ποιος προγραμματιστής πρέπει να χρησιμοποιήσουμε για τον προγραμματισμό του STM32 Board. Υπάρχουν πολλοί διαθέσιμοι προγραμματιστές όπως JTAG, STLink, JLink, Serial κ.λπ. Όλοι θα λειτουργήσουν αλλά πρέπει να διαμορφώσετε τη σελίδα ή το αρχείο διαμόρφωσης «platformio.ini».
- Σε αυτό το έργο, χρησιμοποιούμε Serial Programmer CP210x USB to UART Bridge. Έχουμε ήδη κάνει τον προγραμματισμό της πλακέτας STM32F103C8 χρησιμοποιώντας θύρα USB, o τα περισσότερα βήματα θα ληφθούν μόνο από εκεί. Μπορείτε να επισκεφθείτε τον σύνδεσμο και να βρείτε περισσότερα σχετικά με αυτό.
- Πρώτον, Συνδέστε τον σειριακό προγραμματιστή στην πλακέτα STM32 με την ακόλουθη αντιστοίχιση καρφιτσών και συνδέστε τον στον υπολογιστή.
Προγραμματιστής USB σε σειριακό |
Πίνακας STM32 |
5V |
5V |
Gnd |
Gnd |
Rx |
Α9 |
Τχ |
Α10 |
- Τώρα μεταβείτε στο πρόγραμμα εξερεύνησης και ανοίξτε τη σελίδα «platformio.ini» και αλλάξτε τη δήλωση όπως φαίνεται στην εικόνα. Το upload_protocol θα σας πει ποιος προγραμματιστής πρέπει να χρησιμοποιήσει (STLink, JLink, Serial κ.λπ.). Το upload_port επιλέγει τη θύρα COM. Μπορείτε να το βρείτε πηγαίνοντας στο «Συσκευές» στην Αρχική σελίδα. Αλλάξτε τη θύρα COM σύμφωνα με τη θύρα COM.
- Μεταβείτε στο "main.cpp" και αλλάξτε το πρόγραμμα σε πρόγραμμα Blink . Τώρα απλώς ανεβάστε το πρόγραμμα και θα εμφανιστεί το μήνυμα επιτυχίας και ο χρόνος που απαιτείται για τη μεταφόρτωση. Τώρα το LED θα αρχίσει να αναβοσβήνει συνδεδεμένο στον ακροδέκτη PC13 της πλακέτας STM32.
Αυτό ολοκληρώνει το πλήρες σεμινάριο για τον προγραμματισμό του Arduino UNO καθώς και του STM32 Board χρησιμοποιώντας το PlatformIO. Εάν αντιμετωπίζετε δυσκολίες ενώ ακολουθείτε τα βήματα, παρακαλούμε γράψτε στο φόρουμ μας ή σχολιάστε παρακάτω.