BeagleBone Series - Developing with the BBIO Library
Installing Adafruit-BBIO
sudo apt-get update
sudo apt-get install build-essential python3-dev python3-pip -y
sudo pip3 install Adafruit_BBIO
Basic Program Structure
import time
import Adafruit_BBIO.GPIO as GPIO
RELAY = "P9_22" # GPIO P9_22
GPIO.setup(RELAY, GPIO.OUT)
while True:
GPIO.output(RELAY, GPIO.HIGH)
time.sleep(1)
GPIO.output(RELAY, GPIO.HIGH)
time.sleep(1)
GPIO
Library Invocation:
Configuring Pin Direction (Input/Output)
Input
/Output
can be set to GPIO.IN
/GPIO.OUT
.
Setting Pin Output (High/Low)
High
/Low
can be set to GPIO.HIGH
/GPIO.LOW
or 1
/0
.
Pin Input Mode
Checking the state of an input port:
Waiting for edge input, with parameters GPIO.RISING
/GPIO.FALLING
/GPIO.BOTH
:
Monitoring Input
GPIO.add_event_detect("P9_12", GPIO.FALLING)
if GPIO.event_detected("P9_12"):
print "event detected!"
Delay
Adding a 1-second delay:
PWM Output
import Adafruit_BBIO.PWM as PWM
# PWM.start(channel, duty cycle, default frequency=2000, polarity=0)
PWM.start("P9_14", 50)
# You can also define your own frequency and polarity
PWM.start("P9_14", 50, 1000, 1)
The valid duty cycle values range from 0.0 to 100.0, and the start
function is used to activate PWM on that channel.
Once PWM is started, you can individually set the duty cycle or frequency:
After use, you can stop PWM output or clean up the information:
ADC Input
In this framework, ADC offers three functions: setup, read, and read_raw. You need to set up before reading data.
On the BeagleBone, the following pins can be used for ADC:
"AIN4", "P9_33"
"AIN6", "P9_35"
"AIN5", "P9_36"
"AIN2", "P9_37"
"AIN3", "P9_38"
"AIN0", "P9_39"
"AIN1", "P9_40"
Nota: El voltaje máximo de ADC es 1.8V, y la tierra de ADC es el pin GNDA_ADC (P9_34). Si es necesario detectar 3.3V, se puede utilizar una resistencia de división de voltaje, como se muestra en la imagen a continuación, para reducir de 0-3.3V a 0-1.65V y así leer el valor analógico.
Inicialización de ADC
Lectura del Valor Analógico
Este marco tiene un pequeño error: necesita leer dos veces consecutivas para obtener el valor analógico más reciente.
El valor leído es un número entre 0 y 1.0, que se puede multiplicar por 1.8 para convertirlo en un valor de voltaje. Si prefiere una solución más sencilla, puede utilizar read_raw
para obtener directamente el valor de voltaje real.
Comunicación I2C
Para utilizar I2C, solo necesita importar la biblioteca, configurar la dirección I2C y seleccionar el bus I2C correspondiente (por defecto, es I2C-1).
La funcionalidad I2C requiere la instalación del paquete de Python python-smbus
, pero actualmente este paquete solo es compatible con Python 2. Puede reemplazarlo con smbus2 como alternativa.
Comunicación SPI
Importe la biblioteca SPI de la siguiente manera:
Otros
Si la instalación de Adafruit-BBIO falla, puede optar por una instalación manual:
sudo apt-get update
sudo apt-get install build-essential python3-dev python3-pip -y
git clone git://github.com/adafruit/adafruit-beaglebone-io-python.git
cd adafruit-beaglebone-io-python
sudo python3 setup.py install
Para actualizar Adafruit-BBIO:
Debido a la dependencia de python-smbus, la comunicación I2C solo es compatible con Python 2.
Referencias y Agradecimientos
- Ejemplos de Python Adafruit_GPIO.I2C
- Adafruit-BBIO 1.2.0
- Configuración de la Biblioteca IO Python en BeagleBone Black
Dirección original del artículo: https://wiki-power.com/ Este artículo está protegido por la licencia CC BY-NC-SA 4.0. Si desea reproducirlo, por favor indique la fuente.
Este post está traducido usando ChatGPT, por favor feedback si hay alguna omisión.