class Pin – controllo dei pin di I/O¶
Un oggetto Pin rappresenta un singolo GPIO sull’STM32. Fornisce metodi per configurare la modalità del pin (input, output, funzione alternativa, analogica) e le resistenze di pull, e per leggere o pilotare il suo livello digitale. Per il campionamento analogico vedere pyb.ADC; per l’enumerazione delle funzioni alternative vedere PinAF.
Tutti i pin del connettore sono predefiniti come pyb.Pin.board.<name>. La maggior parte delle OpenMV Cam STM32 espone i pin del connettore di I/O P0 … P9; la OpenMV Cam N6 espone pin aggiuntivi fino a P18
p0 = pyb.Pin.board.P0
g = pyb.Pin(pyb.Pin.board.P0, pyb.Pin.IN)
Il port/pin sottostante dell’STM32 può anche essere indirizzato direttamente tramite pyb.Pin.cpu.<name>, denominato con la lettera del port seguita dal numero del pin (per esempio pyb.Pin.cpu.A0). La corrispondenza tra ciascun pin del connettore OpenMV e un pin della CPU è fissata dalla scheda.
I pin possono anche essere selezionati tramite nome stringa:
g = pyb.Pin("P0", pyb.Pin.OUT_PP)
È possibile aggiungere nomi definiti dall’utente con Pin.dict()
MyMapperDict = {"LeftMotorDir": pyb.Pin.cpu.A0}
pyb.Pin.dict(MyMapperDict)
g = pyb.Pin("LeftMotorDir", pyb.Pin.OUT_OD)
e interrogarli successivamente:
pin = pyb.Pin("LeftMotorDir")
In alternativa, è possibile installare una funzione di mappatura personalizzata con Pin.mapper()
def MyMapper(pin_name):
if pin_name == "LeftMotorDir":
return pyb.Pin.cpu.A0
pyb.Pin.mapper(MyMapper)
così una chiamata a pyb.Pin("LeftMotorDir", pyb.Pin.OUT_PP) passa "LeftMotorDir" direttamente al mapper.
Il seguente ordine determina come un nome viene mappato su un pin fisico:
Viene passato direttamente un oggetto
Pin.La funzione mapper fornita dall’utente restituisce un pin.
Il dizionario fornito dall’utente contiene una chiave corrispondente.
La stringa corrisponde al nome di un pin della scheda (
P0,P1, …).La stringa corrisponde al nome di un port/pin della CPU (
A0,B7, …).
Chiamare pyb.Pin.debug(True) per stampare informazioni diagnostiche su come ciascun oggetto viene mappato su un pin.
Costruttori¶
- class pyb.Pin(id: str | Pin, *args, **kwargs)¶
Crea un nuovo oggetto Pin associato all”
idindicato. Se vengono forniti argomenti aggiuntivi, questi vengono inoltrati aPin.init()per configurare il pin.Metodi di classe¶
- classmethod debug(state: bool | None = None) bool | None¶
Ottiene o imposta lo stato di debug (
TrueoFalseper attivo o disattivo).
Metodi¶
- init(mode: int, pull: int = Pin.PULL_NONE, *, value: int | None = None, alt: int | str = -1) None¶
Inizializza il pin:
mode può essere uno tra:
Pin.IN- configura il pin come input;Pin.OUT_PP- configura il pin come output, con controllo push-pull;Pin.OUT_OD- configura il pin come output, con controllo open-drain;Pin.ALT- configura il pin per una funzione alternativa, input o output;Pin.AF_PP- configura il pin per una funzione alternativa, push-pull;Pin.AF_OD- configura il pin per una funzione alternativa, open-drain;Pin.ANALOG- configura il pin come analogico.
pull può essere uno tra:
Pin.PULL_NONE- nessuna resistenza di pull-up o pull-down;Pin.PULL_UP- abilita la resistenza di pull-up;Pin.PULL_DOWN- abilita la resistenza di pull-down.
Quando un pin ha la modalità di pull
Pin.PULL_UPoPin.PULL_DOWNabilitata, quel pin viene portato rispettivamente a 3V3 o GND tramite una resistenza interna (tipicamente decine di kOhm – vedere le caratteristiche elettriche nel datasheet dell’STM32 per la OpenMV Cam in uso).value, se diverso da None, imposterà il valore di output del port prima di abilitare il pin.
alt può essere usato quando la modalità è
Pin.ALT,Pin.AF_PPoPin.AF_ODper impostare l’indice o il nome di una delle funzioni alternative associate a un pin. Questo argomento era precedentemente chiamatoaf, che può ancora essere usato se necessario.
- value(value: Any | None = None) int | None¶
Ottiene o imposta il livello logico digitale del pin:
Senza argomenti, restituisce 0 o 1 a seconda del livello logico del pin.
Con
valueindicato, imposta il livello logico del pin.valuepuò essere qualsiasi cosa convertibile in un booleano. Se si converte inTrue, il pin viene impostato alto, altrimenti viene impostato basso.
- af() int¶
Restituisce la funzione alternativa attualmente configurata del pin. L’intero restituito corrisponderà a una delle costanti consentite per l’argomento af della funzione init.
Costanti¶