pyb — fonctions liées à la carte

Avertissement

Le module pyb est obsolète. Utilisez le module multiplateforme machine pour tout nouveau code – il offre les mêmes fonctionnalités sur chaque OpenMV Cam quelle que soit la famille de MCU, alors que pyb n’existe que sur les cartes basées sur STM32. pyb est conservé pour assurer la compatibilité ascendante avec les anciens scripts, aucune nouvelle fonctionnalité n’y sera ajoutée, et il pourra être supprimé dans une future version.

Le module pyb contient des fonctions spécifiques au STM32 liées à la carte.

Fonctions diverses

pyb.have_cdc() bool

Renvoie True si l’USB est connecté en tant que périphérique série, False sinon.

Note

Cette fonction est obsolète. Utilisez plutôt pyb.USB_VCP().isconnected().

pyb.hid(data: Tuple[int, int, int, int]) None

Prend un 4-tuple (ou une liste) et l’envoie à l’hôte USB (le PC) pour signaler un événement de mouvement de souris HID.

Note

Cette fonction est obsolète. Utilisez plutôt pyb.USB_HID.send().

pyb.info(dump_alloc_table: bool | None = None) None

Affiche de nombreuses informations sur la carte.

pyb.main(filename: str) None

Définit le nom de fichier du script principal à exécuter une fois que boot.py est terminé. Si cette fonction n’est pas appelée, le fichier par défaut main.py sera exécuté.

Il n’est pertinent d’appeler cette fonction que depuis boot.py.

pyb.mount(device: Any, mountpoint: str, *, readonly: bool = False, mkfs: bool = False) None

Note

Cette fonction est obsolète. Utilisez plutôt vfs.mount() / vfs.umount() et un périphérique de bloc dérivé de vfs.AbstractBlockDev.

Monte un périphérique de bloc sous mountpoint. device doit implémenter l’ancien protocole de périphérique de bloc pyb (lui aussi obsolète – voir vfs.AbstractBlockDev pour l’interface moderne) :

Méthode

Rôle

readblocks(self, blocknum, buf)

Copie l’équivalent de buf octets depuis le périphérique à partir du bloc blocknum. La longueur de buf est un multiple de 512.

writeblocks(self, blocknum, buf) (facultatif)

Écrit buf sur le périphérique à partir du bloc blocknum. S’il est omis, le périphérique est monté en lecture seule.

count(self)

Renvoie le nombre de blocs de 512 octets présents sur le périphérique.

sync(self) (facultatif)

Vide toutes les écritures mises en cache.

mountpoint est le chemin, à la racine du système de fichiers, où monter le périphérique ; il doit commencer par une barre oblique. readonly force un montage en lecture seule. mkfs crée un nouveau système de fichiers s’il n’en existe aucun.

pyb.repl_uart(uart: UART | None = None) UART | None

Obtient ou définit l’objet UART sur lequel le REPL est répété.

pyb.rng() int

Renvoie un nombre aléatoire généré par le matériel sur 30 bits.

pyb.sync() None

Synchronise tous les systèmes de fichiers.

pyb.unique_id() bytes

Renvoie une chaîne de 12 octets (96 bits), qui est l’identifiant unique du MCU.

pyb.usb_mode(modestr: str | None = None, port: int = -1, vid: int = 0xf055, pid: int = -1, msc: Tuple = (), hid: Tuple = pyb.hid_mouse, high_speed: bool = False) str | None

Si elle est appelée sans argument, renvoie le mode USB actuel sous forme de chaîne.

Si elle est appelée avec modestr fourni, tente de configurer le mode USB. Les valeurs suivantes de modestr sont reconnues :

modestr

Configure

None

Désactive l’USB.

'VCP'

VCP (Virtual COM Port) uniquement.

'MSC'

MSC (classe de stockage de masse USB) uniquement.

'VCP+MSC'

VCP et MSC.

'VCP+HID'

VCP et HID (périphérique d’interface humaine).

'VCP+MSC+HID'

VCP, MSC et HID ensemble. Non pris en charge sur toutes les OpenMV Cam.

Pour des raisons de compatibilité ascendante, 'CDC' est compris comme signifiant 'VCP' (et de même pour 'CDC+MSC' et 'CDC+HID').

Le paramètre port doit être un entier (0, 1, …) et sélectionne quel port USB utiliser si la carte prend en charge plusieurs ports. Une valeur de -1 utilise le port par défaut ou sélectionné automatiquement.

Les paramètres vid et pid permettent de spécifier le VID (identifiant du fabricant) et le PID (identifiant du produit). Une valeur de pid égale à -1 sélectionnera un PID en fonction de la valeur de modestr.

Si vous activez le mode MSC, le paramètre msc peut servir à spécifier une liste de LUN SCSI à exposer sur l’interface de stockage de masse. Par exemple msc=(pyb.Flash(), pyb.SDCard()).

Si vous activez le mode HID, vous pouvez également spécifier les détails HID en passant le paramètre nommé hid. Il prend un tuple de (sous-classe, protocole, longueur maximale de paquet, intervalle de scrutation, descripteur de rapport). Par défaut, il définira des valeurs appropriées pour une souris USB. Il existe également une constante pyb.hid_keyboard, qui est un tuple approprié pour un clavier USB.

Le paramètre high_speed, lorsqu’il est défini à True, active le mode USB HS s’il est pris en charge par le matériel.

Constantes

Les deux constantes ci-dessous sont des 5-tuples prêts à l’emploi de la forme

(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)

adaptés pour être passés comme argument hid de usb_mode() afin de faire apparaître l’OpenMV Cam à l’hôte comme un périphérique USB HID. subclass = 1 signifie « interface boot » et protocol sélectionne la classe de périphérique boot (1 = clavier, 2 = souris). Le cinquième élément est un objet bytes contenant le descripteur de rapport HID utilisé lorsque l’hôte énumère le périphérique.

pyb.hid_mouse: tuple

Descripteur HID préconçu pour une souris boot à 3 boutons avec mouvement relatif X/Y. Le tuple est (1, 2, 4, 8, <mouse report descriptor>) : sous-classe boot, protocole souris, rapports d’entrée de 4 octets (masque de boutons + X + Y + molette), scrutés toutes les 8 ms. Le descripteur de rapport intégré est celui utilisé par pyb.USB_HID().send((buttons, dx, dy, wheel)).

pyb.hid_keyboard: tuple

Descripteur HID préconçu pour un clavier boot USB. Le tuple est (1, 1, 8, 8, <keyboard report descriptor>) : sous-classe boot, protocole clavier, rapports d’entrée de 8 octets (octet de modificateurs, un octet réservé, six codes de touches simultanés), scrutés toutes les 8 ms. Le descripteur de rapport intégré correspond à la disposition standard du clavier boot HID sur 8 octets, donc le rapport envoyé via USB_HID.send() doit être un bytes de la forme (modifiers, 0, key1, key2, key3, key4, key5, key6).

Classes