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é devfs.AbstractBlockDev.Monte un périphérique de bloc sous
mountpoint.devicedoit implémenter l’ancien protocole de périphérique de bloc pyb (lui aussi obsolète – voirvfs.AbstractBlockDevpour l’interface moderne) :Méthode
Rôle
readblocks(self, blocknum, buf)Copie l’équivalent de
bufoctets depuis le périphérique à partir du blocblocknum. La longueur debufest un multiple de 512.writeblocks(self, blocknum, buf)(facultatif)Écrit
bufsur le périphérique à partir du blocblocknum. 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.
mountpointest le chemin, à la racine du système de fichiers, où monter le périphérique ; il doit commencer par une barre oblique.readonlyforce un montage en lecture seule.mkfscré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.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
NoneDé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é parpyb.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é viaUSB_HID.send()doit être unbytesde la forme(modifiers, 0, key1, key2, key3, key4, key5, key6).
Classes¶
- classe ADC – conversion analogique-numérique
- classe ADCAll – accès à tous les canaux ADC
- class CAN – bus de communication controller area network
- classe DAC – conversion numérique-analogique
- classe ExtInt – configure les broches d’E/S pour interrompre sur des événements externes
- classe Flash – accès au stockage flash intégré
- classe I2C – un protocole série à deux fils
- classe LED – LED embarquée
- class Pin – contrôle des broches d’E/S
- class PinAF – fonctions alternées des broches
- class RTC – horloge temps réel
- class Servo – pilote de servomoteur de loisir à 3 fils
- class SPI – un protocole série piloté par un contrôleur
- class Timer – contrôle des minuteurs internes
- class TimerChannel – configurer un canal pour un minuteur
- classe UART – bus de communication série en duplex
- classe USB_HID – périphérique d’interface humaine USB (HID)
- classe USB_VCP – port de communication virtuel USB