Raspberry Pi Pico και MicroPython στα Windows

Raspberry Pi Pico και MicroPython στα Windows Εικόνα τίτλου

Αυτό το άρθρο απαντά στο ερώτημα: Πώς μπορώ να χρησιμοποιήσω το Raspberry Pi Pico με το MicroPython στα Windows; Δείχνουμε επίσης πώς να εγκαταστήσετε το σωστό πρόγραμμα οδήγησης για το "Board CDC" (ως το οποίο θα εμφανίζεται το Pico μόλις εγκατασταθεί το MicroPython) στα Windows 8.1. (Θα συζητήσουμε επίσης τις διαφορές μεταξύ του MicroPython και του CircuitPython, όπου αυτό ισχύει - όπου η πλακέτα θα ονομάζεται "CircuitPython CDC Control").

Τέλος, θα δείξουμε πώς να συνδεθείτε στο Pico χρησιμοποιώντας το PuTTY, και μια πιο άνετη επιλογή χρησιμοποιώντας το Thonny (το οποίο είναι ένα IDE Python, ενσωματωμένο στο Pico!)

Εισαγωγή: Τι είναι το Pico & τι είναι η MicroPython;

Το Raspberry Pi Pico είναι μια νέα πλακέτα μικροελεγκτή από το Raspberry Pi, με το chip μικροελεγκτή RP2040 που αναπτύχθηκε εσωτερικά.

Το Raspberry Pi έχει σχεδιάσει πολλά δροσερά χαρακτηριστικά στο RP2040 (το αγαπημένο μου είναι το PIO - προγραμματιζόμενο IO, όπου μπορείτε να εξομοιώσετε πολλές διασυνδέσεις υλικού που απαιτούν ακριβή χρονισμό κ.λπ. - Θα αναφερθώ σε αυτό σε ένα άλλο άρθρο στο μέλλον), και το Pico είναι μια πραγματικά ωραία πλατφόρμα αναφοράς στην οποία υλοποιείται το RP2040.

Πώς διαφέρει το Raspberry Pi Pico από το Raspberry Pi Zero W;

Η διαφορά μεταξύ ενός μικροελεγκτή (όπως ο Pico) και έναν υπολογιστή μιας πλακέτας (ας πούμε Pi Zero W) είναι περίπου το εξής: προγραμματίζετε το Pico απευθείας (π.χ. σε γλώσσα C), χωρίς λειτουργικό σύστημα, ενώ η Pi Zero W θα τρέχει συνήθως Linux.

Αυτό έχει πλεονεκτήματα, όπως ο πραγματικός χρόνος, αλλά και μειονεκτήματα - πρέπει να γνωρίζετε περισσότερα για το υλικό που χρησιμοποιείτε και πρέπει να υλοποιήσετε πολλές λειτουργίες που θα θεωρούσατε δεδομένες σε ένα σύγχρονο λειτουργικό σύστημα (π.χ. πρόσβαση σε αρχεία).

Το Pico διαθέτει λιγότερους πόρους σε σύγκριση με το Pi Zero W (π.χ. σημαντικά λιγότερη μνήμη RAM, καμία GPU VideoCore κ.λπ.) - αλλά καταναλώνει λιγότερη ενέργεια και διαθέτει πρόσθετες δυνατότητες, όπως το προαναφερθέν PIO και αναλογικές εισόδους (ADC).

Το Pico είναι μια καλή επιλογή για έργα που δεν απαιτούν απαραίτητα συνδεσιμότητα δικτύου, έξοδο HDMI, είσοδο κάμερας και επεξεργασία. Με άλλα λόγια, αν θέλετε να διασυνδεθείτε με υλικό, να έχετε μεγάλη διάρκεια ζωής της μπαταρίας κ.λπ. - τότε το Pico είναι για εσάς.

Ποιο λογισμικό υπάρχει ήδη για το Pico;

Το Pico μπορεί να αναβοσβήνει με τη χρήση διαφορετικού λογισμικού, το οποίο παρέχεται στο Αρχεία UF2 (δείτε τον οδηγό εκκίνησης Pico). Το Raspberry Pi παρέχει αρκετά αρχεία UF2 για να ξεκινήσετε:

Υπάρχουν πολλά περισσότερα παραδείγματα που θα βρείτε εδώ (κώδικας C).

Σημείωση: Συνδέω με τα νεότερα αρχεία UF2 από τις 30.01.2021 - ειδικά το MicroPython μπορεί να έχει ενημερωθεί, οπότε φροντίστε να ελέγξετε το Σελίδα εκκίνησης του Raspberry Pi Pico.

MicroPython

Αν η προοπτική να ασχοληθείτε με τον προγραμματισμό σε C σας φαίνεται λίγο τρομακτική, μπορείτε να ξεκινήσετε με τη MicroPython. Σε αυτή την περίπτωση, στο Raspberry Pi Pico είναι προεγκατεστημένο κάποιο λογισμικό (το αρχείο MicroPython UF2), το οποίο θα τρέξει έναν μικρό διερμηνέα Python.

Ονομάζεται MicroPython επειδή δεν υποστηρίζει την πλήρη τυπική βιβλιοθήκη της Python 3. Η MicroPython προορίζεται για περιορισμένα περιβάλλοντα, όπως το Pico. Το Pico έχει συνολικά 2 MB RAM - αυτό δεν θα χωρέσει όλα όσα φέρνει μαζί της η Python 3. Ελέγξτε το αυτή τη σελίδα στο Github για τις διαφορές της CPython με τη MicroPython. Επίσης, εδώ είναι η επίσημη Αρχική σελίδα της MicroPython, και το επίσημη τεκμηρίωση MicroPython.

CircuitPython

Σημείωση: οι περισσότερες από τις οδηγίες ισχύουν και για τις πλακέτες που βασίζονται στο CircuitPython RP2040 στα Windows, π.χ. το Adafruit Feather RP2040, αλλά θα χρειαστεί να ακολουθήσετε λίγο διαφορετικά βήματα - θα επισημάνω τις διαφορές σε αυτό το άρθρο.

Το CircuitPython είναι βασικά μια παραλλαγή του MicroPython που αναπτύσσεται από την Adafruit.

Η ίδια η πλακέτα θα καλείται διαφορετικά στον διαχειριστή συσκευών σας μετά την αναλαμπή (CircuitPython CDC Control) - και θα χρειαστείτε διαφορετικό λογισμικό φυσικά. Εδώ είναι ό,τι χρειάζεστε, για αρχή:

Σε αυτό το άρθρο, θα σας δείξουμε επίσης πώς να εγκαταστήσετε τις βιβλιοθήκες CircuitPython σε συσκευές με βάση το RP2040 στα Windows και πώς να εκτελείτε και να σταματάτε προγράμματα χρησιμοποιώντας το Thonny.

Τι θα πάρετε με το MicroPython UF2;

Μόλις εγκατασταθεί το MicroPython στο Pico, θα μπορείτε να συνδεθείτε στο Pico χρησιμοποιώντας τη σειριακή κονσόλα (θα σας δείξουμε πώς σε αυτό το άρθρο) και να αρχίσετε να γράφετε κώδικα Python στο Pico.

Εγκαθιστώντας το MicroPython στο Pico

  • Αφαιρέστε την τροφοδοσία από το Pico
  • Πατήστε το κουμπί BOOTSEL και κρατήστε το πατημένο.
  • συνδέστε το Pico στον υπολογιστή σας χρησιμοποιώντας ένα καλώδιο microUSB σε USB
  • τώρα μπορείτε να αφήσετε το κουμπί BOOTSEL
Πατήστε το κουμπί BOOTSEL και κρατήστε το πατημένο πριν συνδέσετε το καλώδιο microUSB.

Το Pico θα πρέπει τώρα να είναι ορατό στο σύστημα αρχείων σας, ως RPI-RP2:

Το Pico εμφανίζεται ως RPI-RP2

(Παρενθετική σημείωση: Αναρωτιέμαι τι ήταν το RPI-RP1;)

Το Pico προσομοιώνει μια μονάδα flash FAT32, η οποία έχει δύο αρχεία: INDEX.HTM και INFO_UF2.TXT.

Διαχείριση μονάδας δίσκου των Windows

Στην πραγματικότητα, η Διαχείριση μονάδων δίσκου των Windows εμφανίζει το Pico ως μια μονάδα flash 128 MB FAT.

Μην κάνετε το λάθος να προσπαθήσετε να αποθηκεύσετε αρχεία στο Pico με αυτόν τον τρόπο: θα απορριφθούν σιωπηλά. Ακόμα και αν φαίνεται ότι γράφονται, αυτό είναι απλά η προσωρινή αποθήκευση των λειτουργιών από τα Windows - τα αρχεία σας θα εξαφανιστούν! Ανέφερα ήδη ότι το Pico έχει στην πραγματικότητα μόνο 2MB Flash; Λέει ξεδιάντροπα ψέματα για τα 128MB εδώ (το RP2040 υποτίθεται ότι υποστηρίζει έως και 16MB flash παρεμπιπτόντως, AFAIK).

Παρένθεση: Αυτό μου θυμίζει λίγο το ταξίδι μου στην Ινδία, όπου αγόρασα στικάκια με χωρητικότητα 128 GB - τα οποία θα έγραφαν τα δεδομένα σας στη Νιρβάνα. Όταν προσπάθησα να επιστρέψω τον δίσκο και να πάρω πίσω τα χρήματά μου, ο πωλητής είχε εξαφανιστεί... οι περιπέτειες που θα ζήσουμε 🙂 .

Ωστόσο, αν αντιγράψετε το σωστό είδος αρχείου - το αρχείο UF2 - σε αυτή τη μονάδα δίσκου, θα αναγνωριστεί και θα εγγραφεί.

Αντιγραφή του αρχείου Micropython UF2 στο Pico

Μπορείτε να το σύρετε και να το αφήσετε από το πρόγραμμα περιήγησής σας, αφού το κατεβάσετε, ή να το αντιγράψετε και να το επικολλήσετε. Μόλις ολοκληρωθεί η αντιγραφή, το Pico θα κάνει αυτόματη επανεκκίνηση και δεν θα βλέπετε πλέον μια μονάδα flash.

Σημείωση: Αν θέλετε να χρησιμοποιήσετε το CircuitPython, χρησιμοποιήστε φυσικά το αρχείο CircuitPython UF2 σε αυτό το βήμα.

Μετά την επανεκκίνηση, το Pico εξαφανίστηκε από τη διαχείριση μονάδων δίσκου των Windows.

Το Pico τρέχει τώρα (μετά την επανεκκίνηση) το MicroPython, το οποίο παρέχει μια σειριακή θύρα (θύρα COM) μέσω USB. (Με τεχνικούς όρους, πρόκειται για συσκευή USB κατηγορίας 02 = Επικοινωνίες και έλεγχος CDC και συσκευή USB SubClass 02).

Σύνδεση στο Pico, Windows 10

Τα Windows 10 διευκολύνουν τη σύνδεσή μας με το Pico, καθώς το απαραίτητο πρόγραμμα οδήγησης θύρας COM (usbser.inf) θα εγκατασταθεί και θα ενεργοποιηθεί αυτόματα για εσάς.

Για να ελέγξετε σε ποια θύρα COM βρίσκεται, ανοίξτε το διαχειριστή συσκευών:

Για να ανοίξετε τη διαχείριση συσκευών, πληκτρολογήστε συσκευή στην αναζήτηση των Windows και κάντε κλικ στο Διαχείριση συσκευών.

Εδώ, θα μπορείτε να δείτε τη νέα σειριακή συσκευή USB, με τον αριθμό της θύρας COM (τον οποίο θα χρειαστείτε σε λίγο για να συνδεθείτε), στην περιοχή Ports (COM & LPT).

Εμφανίστηκε μια νέα σειριακή συσκευή, η οποία σας επιτρέπει να συνδεθείτε στο Pico

Για να βεβαιωθείτε ότι πρόκειται πράγματι για το Pico, που εκτελεί το MicroPython, μπορείτε να κάνετε τα εξής:

Κάντε κλικ στην επιλογή Προβολή και επιλέξτε Συσκευές ανά εμπορευματοκιβώτιο:

Η Διαχείριση συσκευών σας επιτρέπει να εμφανίζετε συσκευές σε διαφορετικές προβολές

Εδώ θα δείτε μια καταχώρηση "Board in FS mode", με τους δύο κόμβους "USB Composite Device" και "USB Serial Device (COM3)". Το COM3 είναι σημαντικό, θα χρειαστεί να το χρησιμοποιήσετε για το PuTTY (βλ. παρακάτω).

Μπορούμε να ερευνήσουμε περαιτέρω τις συσκευές κάνοντας δεξί κλικ πάνω τους και επιλέγοντας την κατάλληλη καταχώριση ιδιοτήτων από το μενού περιβάλλοντος. Οι ιδιότητες για το Board σε κατάσταση λειτουργίας FS είναι κενές:

Η σύνθετη συσκευή USB εμφανίζει "Board in FS mode" ως περιγραφή της συσκευής που αναφέρεται στο Bus:

Σημείωση: αυτό είναι το Pico που τρέχει το MicroPython. Όταν το αναβαθμίσετε με διαφορετικό λογισμικό, θα εμφανίζει διαφορετικά αποτελέσματα εδώ!

Η ίδια η σειριακή συσκευή USB θα εμφανίσει ορισμένες ενδιαφέρουσες ιδιότητες:

Η περιγραφή της συσκευής που αναφέρθηκε στον δίαυλο είναι "Board CDC"

Σημείωση: η περιγραφή της συσκευής της πλακέτας θα είναι "CircuitPython CDC Control" αντί για "Board CDC" αν χρησιμοποιείτε CircuitPython.

Οι προεπιλεγμένες ρυθμίσεις θύρας είναι 9600 bit ανά δευτερόλεπτο, 8 bit δεδομένων, χωρίς ισοτιμία, 1 stop bit, χωρίς έλεγχο ροής - και λειτουργούν (βλ. παρακάτω)
Η κλάση USB είναι 02 και η υποκλάση USB είναι 02

Εάν γνωρίζετε τι ψάχνετε, τα αναγνωριστικά υλικού (VID = αναγνωριστικό προμηθευτή και PID = αναγνωριστικό προϊόντος) είναι χρήσιμα:

VID_2E8A -> το αναγνωριστικό του προμηθευτή είναι 2E8A (σε δεκαεξαδική μορφή) ή 11914 (σε δεκαδικό αριθμό), το οποίο είναι Raspberry Pi

PID_0005 -> το αναγνωριστικό προϊόντος είναι 5, το οποίο η πλακέτα θα εμφανίζει κατά την εκτέλεση του MicroPython (το προεπιλεγμένο αναγνωριστικό προϊόντος είναι 3)

Παρενθετική σημείωση: αρχείο καταγραφής σφαλμάτων του Chrome Browser

Αυτές οι πληροφορίες μπορούν επίσης να ληφθούν χρησιμοποιώντας το πρόγραμμα περιήγησης Chrome.

chrome://device-log

θα σας επιτρέψει να δείτε τις τρέχουσες συνδεδεμένες Συσκευές

Στο παραπάνω στιγμιότυπο οθόνης βλέπετε την έξοδο του αρχείου καταγραφής συσκευών του Chrome, που δείχνει πώς το Pico εμφανίζεται ως "Raspberry Pi", "RP2 Boot" πριν από την αναβόσβησή του με το MicroPython και ως "MicroPython", "Board in FS mode". Παρατηρήστε τα διαφορετικά αναγνωριστικά προϊόντος!

Επιστροφή στα Windows 10:

Όπως βλέπετε στο παραπάνω στιγμιότυπο, τα Windows 10 εγκατέστησαν αυτόματα το usbser (USB Serial Driver) για εσάς - έτσι ώστε να μπορείτε να ξεκινήσετε αμέσως με το Pico.

PuTTY

Το PuTTY είναι ένας πελάτης telnet / SSH. Θα το χρησιμοποιήσετε για να συνδεθείτε στο Pico και να μιλήσετε με το REPL της MicroPython. Κατεβάστε το PuTTY εδώ. (Μπορείτε να χρησιμοποιήσετε το 64-bit MSI Windows Installer για τις περισσότερες εγκαταστάσεις των Windows 10).

Ανοίξτε το PuTTY. Εισάγετε τις σωστές ρυθμίσεις:

  • Ο τύπος σύνδεσης πρέπει να οριστεί σε Σειριακό
  • Η σειριακή γραμμή πρέπει να ρυθμιστεί σε ό,τι προέκυψε από την παραπάνω έρευνά σας. Στην περίπτωσή μου, αυτό είναι COM3. Στην περίπτωσή σας πιθανότατα θα είναι κάτι διαφορετικό!
  • Η ταχύτητα μπορεί να παραμείνει στα 9600 προς το παρόν

Κάντε κλικ στο Άνοιγμα και θα ανοίξει ένα τερματικό:

Για να εμφανιστεί η αρχική προτροπή, πατήστε Enter μία φορά

Στη συνέχεια, μπορείτε να αρχίσετε να γράφετε κώδικα Python μετά την προτροπή, ο οποίος θα ερμηνεύεται αμέσως. Δοκιμάστε να εισαγάγετε το κλασικό "Hello world":

print("Hello world!")

Το MicroPython θα απαντήσει με

Γεια σας κόσμε!

όπως αναμενόταν 🙂

Τώρα που η αρχική επαφή είναι δεδομένη, σας εύχομαι καλή κωδικοποίηση!

Thonny: ένα IDE Python, λειτουργεί με το Pico!

Η χρήση του PuTTY δεν είναι πολύ άνετη για μεγαλύτερες συνεδρίες ή όταν θέλετε να φορτώσετε πολύ κώδικα στο Pico σας. Ευτυχώς, η εφαρμογή ανοιχτού κώδικα Thonny (η οποία είναι εγκατεστημένη από προεπιλογή στο Raspberry Pi OS) είναι επίσης διαθέσιμη για Windows και ενσωματώνει υποστήριξη Pico (MicroPython και CircuitPython)

Βήμα πρώτο

Κατεβάστε το Thonny εδώ, και εγκαταστήστε το

Βήμα δύο

Συνδέστε το Pico σας, όπως περιγράφηκε παραπάνω - τώρα θα πρέπει να έχει έναν αριθμό COM - αν θέλετε, μπορείτε να δοκιμάσετε χρησιμοποιώντας τη μέθοδο PuTTY που περιγράφηκε παραπάνω, αν μπορείτε να φτάσετε στο Pico σας.

Βήμα τρίτο

Ξεκινήστε το Thonny και κάντε κλικ στο Εργαλεία μενού, επιλέξτε Επιλογές

Η προεπιλεγμένη οθόνη εκκίνησης των Windows, το μενού Εργαλεία, επιλέξτε Επιλογές εδώ.

Βήμα Τέταρτο: ορίστε το Pico ως διερμηνέα

Κάντε κλικ στην καρτέλα Διερμηνέας. Από προεπιλογή θα εμφανιστεί αυτή η οθόνη:

Ο ίδιος διερμηνέας που τρέχει το Thonny (προεπιλογή) είναι ο προεπιλεγμένος Interpeter

Κάντε κλικ και επιλέξτε MicroPython (Raspberry Pi Pico)

Η υποστήριξη MicroPython (Raspberry Pi Pico) είναι ενσωματωμένη στο Thonny

Σημείωση: αν χρησιμοποιείτε CircuitPython, θα πρέπει να επιλέξετε "CircuitPython (γενική)" από αυτό το αναπτυσσόμενο μενού.

Μπορείτε να αφήσετε τη θύρα στο "Προσπαθήστε να εντοπίσετε τη θύρα αυτόματα" ή να ορίσετε μια συγκεκριμένη θύρα (είδαμε παραπάνω πώς μπορεί να προσδιοριστεί ο σωστός αριθμός θύρας).

Προσπαθήστε να ανιχνεύσετε τη θύρα αυτόματα

Σημείωση: η θύρα θα πρέπει να εξακολουθεί να εμφανίζεται στο αναπτυσσόμενο μενού, οπότε καλό θα ήταν να ελέγξετε ξανά αν υπάρχει:

στον υπολογιστή μου, ο πίνακας CDC (Pico με MicroPython) βρίσκεται στη θύρα COM5

Το αφήνω ως "Προσπαθήστε να εντοπίσετε τη θύρα αυτόματα". Κάντε κλικ στο OK για να αποθηκεύσετε τη ρύθμιση.

Η οθόνη σας θα πρέπει τώρα να αλλάξει ως εξής:

Σημειώστε την προτροπή MicroPython, με Raspberry Pi Pico με RP2040

Βήμα πέμπτο: δοκιμή

Τώρα μπορείτε να δοκιμάσετε την επικοινωνία με το Pico.

Τύπος

print("Hello world")

στην προτροπή MicroPython και πατήστε enter

Γεια σας κόσμε, με τον τρόπο του picockpit.com 🙂

Θα δείτε το Pico να σας απαντά.

Συγχαρητήρια, έχετε συνδέσει με επιτυχία το Thonny με το Pico στα Windows!

Πιο σύνθετα σενάρια: Thonny

Το REPL (read evaluate print loop) που μόλις είδατε είναι ωραίο, αλλά για πιο σύνθετα έργα, θα θέλαμε να εισάγουμε πρώτα τον πηγαίο κώδικα ή να τον φορτώσουμε από ένα αρχείο.

Για αυτό μπορεί να χρησιμοποιηθεί το πάνω μέρος του παραθύρου Thonny.

Εισάγετε τον κωδικό σας. Στο παράδειγμά μου, θα αναβοσβήνουμε το ενσωματωμένο LED (το οποίο είναι το αντίστοιχο του υλικού hello world!) και θα βρισκόμαστε για πάντα στο βρόχο.

import time
from machine import Pin
print("Welcome to Pico example 2, blinking an LED")
led = Pin(25, Pin.OUT)
# For demo purposes, we have an infinite loop here
while True:
    led.high()
    time.sleep(0.5)
    led.low()
    time.sleep(0.5)

Δώστε προσοχή στη σωστή εσοχή στην Python (το κενό διάστημα χρησιμοποιείται για σκοπούς ελέγχου στην Python!)

Ο κώδικας για να αναβοσβήνει η ενσωματωμένη λυχνία LED

Τώρα κάντε κλικ στο κουμπί "run".

Το Thonny θα σας ρωτήσει πού να αποθηκεύσετε σε

Αποθήκευση σε αυτόν τον υπολογιστή ή στο Raspberry Pi Pico;

Επιλέξτε Raspberry Pi Pico:

Έχω επιλέξει να ονομάσω το αρχείο hello.py - Κάντε κλικ στο OK για να το αποθηκεύσετε

Μόλις πατήσετε το κουμπί OK, ο κώδικάς σας θα αρχίσει να εκτελείται. Η ενσωματωμένη λυχνία LED του Pico θα αρχίσει να αναβοσβήνει και θα δείτε την έξοδο στο κέλυφος:

%Run -c $EDITOR_CONTENT

Σημείωση: Δεν χρειάστηκε να εισαγάγω την εντολή %Run -c $EDITOR_CONTENT, η Thonny το έκανε μόνη της. Η παρακάτω έξοδος είναι από τον κώδικά μας.

CircuitPython στο Thonny στα Windows

Ακολουθήστε τα ίδια βήματα, αλλά επιλέξτε CircuitPython (generic) ως διερμηνέα.

Το κέλυφος Thonny θα σας δείξει μια διαφορετική επιβεβαίωση:

Λέει: Adafruit Feather RP2040 με rp2040
Adafruit CircuitPython 7.0.0 στις 2021-09-20; Adafruit Feather RP2040 με rp2040

Windows 8.1

Το Raspberry Pi Pico είναι "Board CDC", και εμφανίζεται σε κατάσταση σφάλματος

Τα Windows 8.1 ΔΕΝ φορτώνουν αυτόματα το σειριακό πρόγραμμα οδήγησης και εμφανίζουν τη συσκευή σε κατάσταση σφάλματος.

Σημείωση: με το CircuitPython, το όνομα της συσκευής θα είναι "CircuitPython CDC control". Ίδια διαδικασία.

Έλεγχος CDC CircuitPython στα Windows 8.1

Δείτε πώς είναι οι ιδιότητες για το Board CDC (το Pico που εκτελεί το MicroPython):

Λέει ότι τα προγράμματα οδήγησης για αυτή τη συσκευή δεν έχουν εγκατασταθεί (Κωδικός 28).

Μια λύση για την επίλυση αυτού του προβλήματος είναι η Εργαλείο Zadig, το οποίο μπορείτε να κατεβάσετε δωρεάν:

Προσοχή: Πολλοί σαρωτές ιών φαίνεται να συμφωνούν ότι το installer_x64.exe που περιέχεται στο Zadig 2.7 έχει το "Trojan.Tedy". Ίσως πρόκειται για ψευδή συναγερμό, ωστόσο: σας συνιστώ να χρησιμοποιήσετε το Zadig-2.5.exe το οποίο δεν μου έδωσε αυτές τις προειδοποιήσεις (μόλις επαληθεύτηκε για δεύτερη φορά). Καλύτερα ασφαλής παρά λυπημένος!

Zadig σας βοηθά να εγκαταστήσετε γενικά προγράμματα οδήγησης USB για να έχετε πρόσβαση σε συσκευές USB.

Στην περίπτωσή μας θέλουμε τον οδηγό USB Serial (CDC).

Επιλέξτε Board CDC (Interface 0) από το αναπτυσσόμενο μενού παραπάνω, το USB Serial (CDC) στο άλλο πεδίο. Κάντε κλικ στο Install Driver (Εγκατάσταση προγράμματος οδήγησης).

Μετά την εγκατάσταση, θα δείτε ότι το πρόγραμμα οδήγησης έχει οριστεί σε usbser (v1.0.0.0.0):

Και θα μπορείτε να συνδεθείτε, όπως περιέγραψα στα Windows 10, χρησιμοποιώντας τον σωστό αριθμό θύρας COM:

Ο διαχειριστής συσκευών εμφανίζει το CDC του σκάφους τώρα με πρόγραμμα οδήγησης
Hello world για MicroPython σε Pico χρησιμοποιώντας Windows 8.1

δευτερεύουσα σημείωση:

Αυτό είναι το παράθυρο διαλόγου, που δείχνει το libwdi ως κατασκευαστή του οδηγού

Θύρα Pico/Serial στα Windows 7

Σύμφωνα με έναν πελάτη, Zadig βοήθησε επίσης στην εγκατάσταση του προγράμματος οδήγησης σειριακής θύρας στα Windows 7, και το Pico ήταν χρησιμοποιήσιμο μετά! Χρησιμοποιήστε οπωσδήποτε Zadig 2.5, καθώς το νεότερο Zadig 2.7 επισημάνθηκε από τον ανιχνευτή ιών μου κατά την εγκατάσταση του προγράμματος οδήγησης. (Δεν είμαι σίγουρος γιατί, αλλά καλύτερα να προσέχουμε παρά να λυπούμαστε - το παλιό λειτουργεί)

Αν χρειάζεστε έναν οδηγό βήμα προς βήμα, ανατρέξτε στον παραπάνω οδηγό για τα Windows 8.1 - θα πρέπει να είναι αρκετά παρόμοιος σε ένα μηχάνημα με Windows 8.1.

Εγκατάσταση βιβλιοθηκών και προγραμματισμός μιας πλακέτας CircuitPython RP2040 στα Windows

Εάν χρησιμοποιείτε για παράδειγμα ένα Adafruit Feather RP2040, ίσως να θέλετε να χρησιμοποιήσετε το CircuitPython σε αυτό. Η Adafruit έχει ένα NeoPixel RGB σε αυτό, το οποίο χρειάζεται βιβλιοθήκες που πρέπει να εγκατασταθούν στο lib φάκελο στη συσκευή.

(σημ: κατεβάστε τις βιβλιοθήκες εδώ - κάντε κλικ στο σύνδεσμο "Download Project Bundle").

Όταν εξάγετε το φάκελο δέσμης έργων, θα δείτε δύο διαφορετικούς υποφακέλους με CircuitPython 6.x και CircuitPython 7.x

Χρησιμοποιώ την έκδοση CircuitPython 7.x εδώ, καθώς έκανα flash το 7.0.0 Έκδοση CircuitPython.

Θα παρατηρήσετε μια μονάδα δίσκου που ονομάζεται "CIRCUITPY" στην Εξερεύνησή σας:

Ο δίσκος CIRCUITPY και τα αρχικά του περιεχόμενα (lib, boot_out.txt, code.py)

Το lib είναι άδειος με μια νέα εγκατάσταση του CircuitPython. Χρησιμοποιώντας την Εξερεύνηση των Windows μπορούμε απλά να αντιγράψουμε και να επικολλήσουμε αρχεία εδώ.

Αντιγράψτε τις απαιτούμενες βιβλιοθήκες από το φάκελο lib που κατεβάσατε στο φάκελο lib του CIRCUITPY:

αντιγραφή των απαραίτητων βιβλιοθηκών στο φάκελο lib

Τώρα μπορούμε επίσης να αντικαταστήσουμε το code.py:

αντικαταστήστε το code.py

Χρησιμοποιώντας το Thonny μπορούμε να επεξεργαστούμε και να εκτελέσουμε το αρχείο code.py. Κάντε κλικ στο εικονίδιο ανοίγματος στο Thonny και επιλέξτε "CircuitPython device" στο παράθυρο διαλόγου "Where to open from":

Επιλέξτε τη συσκευή CircuitPython εδώ

Και εδώ μπορείτε να ανοίξετε το code.py:

Κάντε κλικ στο code.py και OK

Τώρα το παράθυρο του Thonny θα πρέπει να μοιάζει κάπως έτσι:

το code.py εμφανίζεται στην κορυφή, το Shell εμφανίζεται στο κάτω μέρος

Πατήστε F5 στο πληκτρολόγιό σας ή κάντε κλικ στο εικονίδιο εκτέλεσης.

το εικονίδιο run

Αν όλα πήγαν καλά, το NeoPixel RGB LED στο Adafruit Feather RP2040 θα πρέπει τώρα να αρχίσει να αναβοσβήνει σε διάφορα χρώματα. Συγχαρητήρια 🙂

Τώρα μπορείτε να προχωρήσετε και να παίξετε με το σενάριο - ενδεχομένως θα μπορούσατε να τροποποιήσετε τα χρώματα ή το χρόνο μεταξύ των αλλαγών χρώματος; Ή να προσθέσετε άλλες λειτουργίες.

Για να μπορέσετε να εκτελέσετε την τροποποιημένη δέσμη ενεργειών σας, πατήστε Ctrl + C στο κέλυφος (ή επιλέξτε Εκτέλεση > Διακοπή εκτέλεσης στο μενού Thonny). Τώρα μπορείτε να φορτώσετε ξανά το σενάριό σας.

Ένα σπουδαίο πράγμα για τον εντοπισμό σφαλμάτων είναι ότι θα έχετε έξοδο κονσόλας με το Thonny, οπότε μπορείτε να χρησιμοποιήσετε τις εντολές print για να εξάγετε πληροφορίες:

Thonny που βγάζει εντολές εκτύπωσης από το Adafruit Feather RP2040

Adafruit CircuitPython Bundle

Η Adafruit παρέχει μια βολική λήψη πολλαπλών βιβλιοθηκών σε ένα ZIP. Κατεβάστε την αντίστοιχη δέσμη adafruit-circuitpython-bundle-7.x.-mpy ή -6.x. mpy εδώ. Μπορείτε να εγκαταστήσετε αρκετές ή όλες τις βιβλιοθήκες που αναφέρθηκαν παραπάνω χρησιμοποιώντας απλώς την Εξερεύνηση των Windows. Ένα πλήρες ανέβασμα όλων των βιβλιοθηκών θα ήταν περίπου 1,2 MB μεγάλο, το Adafruit Feather RP2040 έχει αρκετό χώρο για να το επιτρέψει αυτό. Η αντιγραφή μπορεί να διαρκέσει μερικά λεπτά.

Διάφορες σημειώσεις

Μπορώ να χρησιμοποιήσω τις διαδικασίες αυτού του οδηγού και για το CircuitPython;

Απολύτως, ναι. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε το Zadig στα Windows 8.1 (δείτε την περιγραφή παραπάνω για λεπτομέρειες. Χρησιμοποιήστε την έκδοση 2.5.730 του Zadig!). Θα ψάχνετε για μια συσκευή "CircuitPython CDC control" αντί για τη συσκευή "Board CDC".

Zadig για τη συσκευή ελέγχου CircuitPython CDC

Η εγκατάσταση του προγράμματος οδήγησης αποτυγχάνει με το Zadig;

Αυτό μπορεί να οφείλεται στο λογισμικό Antivirus. Ίσως πρόκειται για ψευδή συναγερμό, αλλά δεν μπορώ να είμαι σίγουρος γι' αυτό. Ο σαρωτής ιών μου (Bitdefender) μου λέει τα εξής:

"Die Datei C:\Users\Max\usb_driver\installer_x64.exe ist mit Gen:Variant.Tedy.11444 infiziert und wurde in die Quarantäne verschoben. Wir empfehlen die Durchführung eines System-Scans, um weitere Infektionen auszuschließen."

Πολλοί σαρωτές ιών φαίνεται να συμφωνούν ότι το installer_x64.exe (μέρος του προγράμματος οδήγησης USB) έχει το "Trojan.Tedy". Σας συνιστώ να δοκιμάσετε να χρησιμοποιήσετε αντί αυτού το Zadig-2.5.exe. Το οποίο μπορείτε να κατεβάσετε εδώ. Χρησιμοποίησα το Zadig-2.5 για να εγκαταστήσω ένα σειριακό πρόγραμμα οδήγησης USB CircuitPython στην εγκατάστασή μου στα Windows 8.1 (η οποία είναι το κύριο μηχάνημά μου).

Πώς μπορώ να σταματήσω την εκτέλεση κώδικα στο Pico στο Thonny;

Κάντε κλικ στο κέλυφος και πατήστε Ctrl+C. Αυτό θα πρέπει να σταματήσει την τρέχουσα εκτέλεση κώδικα:

Το KeyboardInterrupt σταμάτησε τον κώδικα

Επανάληψη προηγούμενων δηλώσεων στο Thonny

Είναι βολικό να εκτελείτε την ίδια εντολή ξανά - πατήστε το πλήκτρο up στο πληκτρολόγιο στην προτροπή του κελύφους για να εμφανίσετε το ιστορικό των προηγούμενων εντολών.

Πώς μπορώ να ξέρω πότε το Pi Pico μου είναι αποσυνδεδεμένο από το Thonny;

Θα λάβετε ένα μήνυμα σφάλματος όταν προσπαθείτε να εκτελέσετε κώδικα, κάτι σαν αυτό:

Σφάλμα στην αναζήτηση παγκόσμιων μεταβλητών, serial.serialutil.SerialTimeoutException: Χρονικό όριο εγγραφής

Αυτό σημαίνει ότι το Thonny δεν μπορεί να γράψει στη σειριακή θύρα στην οποία αναμένεται να είναι συνδεδεμένο το Pico.

Δεν μπόρεσε να βρει τη συσκευή αυτόματα σφάλμα στο Thonny

Εάν λάβετε το ακόλουθο σφάλμα:

Δεν μπόρεσε να βρει τη συσκευή αυτόματα.
Ελέγξτε τη σύνδεση (βεβαιωθείτε ότι η συσκευή δεν βρίσκεται σε κατάσταση bootloader) ή επιλέξτε
"Διαμόρφωση διερμηνέα" στο μενού διερμηνέα (κάτω δεξιά γωνία του παραθύρου)
για να επιλέξετε συγκεκριμένη θύρα ή άλλο διερμηνέα.

Ελέγξτε ότι έχετε επιλέξει τον σωστό διερμηνέα. Εάν η συσκευή σας εκτελεί CircuitPython αντί για MicroPython, πρέπει να επιλέξετε CircuitPython (γενική) ως διερμηνέας στο Thonny. Δείτε τις σχετικές πληροφορίες σε αυτό το άρθρο για οδηγίες.

Οι συμβουλές σας για το Pico/MicroPython στα Windows;

Πείτε μας στα σχόλια αν έχετε άλλες συμβουλές για να ξεκινήσετε με το Pico και το MicroPython στα Windows, θα ενημερώσουμε το άρθρο αναλόγως 🙂

Απολαύστε το Pico σας και διασκεδάστε με τις εκπληκτικές εργασίες που μπορείτε να κάνετε με αυτό!

Περισσότερες αναρτήσεις στο ιστολόγιο Pico στο PiCockpit

Αν σας άρεσε να διαβάζετε αυτό το άρθρο, ίσως σας αρέσει να διαβάζετε και τα παρακάτω:

10 Σχόλια

  1. Gokhan Cinoglu στις Μάρτιος 24, 2021 στις 10:01 πμ

    Έχω Win 8.1 και αυτή είναι η μόνη τοποθεσία που έχει τη λύση για το πρόβλημα COM. Σας ευχαριστώ πάρα πολύ.

  2. Shubham Chauhan στις Ιούνιος 7, 2021 στις 6:25 μμ

    Μπορείτε να μοιραστείτε το σύνδεσμο του άρθρου στο οποίο υπάρχει λύση για το CDC του πίνακα στα windows 8.1;

    • raspi berry στις Νοέμβριος 21, 2021 στις 9:16 μμ

      Αυτό το άρθρο που διαβάζετε περιγράφει τον τρόπο χρήσης του Board CDC στα Windows 8.1 - χρησιμοποιήστε το εργαλείο Zadig στην έκδοση 2.5.

  3. Pablo Cervantes στις Ιούλιος 12, 2021 στις 7:01 μμ

    Σας ευχαριστώ, τα Windows 7 64 bit λειτουργούν ομαλά.

  4. Franckeno στις Δεκέμβριος 19, 2021 στις 10:15 πμ

    Ένα μεγάλο ευχαριστώ για αυτό το σεμινάριο !

  5. Jajcio στις Μάιος 5, 2022 στις 4:32 μμ

    Πολύ ωραίο σεμινάριο Βάζετε τον καφέ στο τραπέζι, όπως λέμε στην Πολωνία, πράγμα που σημαίνει χωρίς να χτυπάτε τον θάμνο. Υπέροχα!

  6. Jerry Bee στις Ιούλιος 28, 2022 στις 2:42 πμ

    Χρειάζομαι βοήθεια. Τα windows 11 μου δείχνουν το pico ως "φορητή συσκευή". Το Putty δεν μπορεί να το βρει εξαιτίας αυτού, οπότε λαμβάνω ένα σφάλμα ότι δεν μπορεί να καθορίσει τη διαδρομή.

    Δεν ξέρω πώς να το ξεπεράσω αυτό.

    Ευχαριστώ!

  7. Jerry στις Μάιος 18, 2023 στις 11:42 πμ

    Αυτή ήταν μια εξαιρετική εισαγωγή για μένα! Ευχαριστώ!

  8. silvio στις Ιούλιος 31, 2023 στις 7:53 μμ

    Hola muy bueno, consulto x la inquietud que se me ha presentado
    si despues de subir mi codigo a mi pi pico, y la coloco en una placa para que ejecute una tarea x,
    si cualquier otro que no sea yo sacara la pi pico de la placa y la conectara a una pc o notebook,
    podria leer el codigo que esta en la pi pico a traves por ejemplo de Thonny dando click al icono de abrir carpeta y seleccionando abrir lo que esta en la pi pico.?
    Υπάρχει κάποιος τρόπος να το κάνετε χωρίς διάλεξη;
    gracias

  9. Dahray στις Ιούλιος 12, 2024 στις 9:48 μμ

    Το Putty και το zadig λειτούργησαν και τα δύο για μένα. Εξαιρετικό σεμινάριο.

Αφήστε ένα σχόλιο