Overleaf Community Edition Server: Latex editor | Luciano's tech see the web in desktop mode to better experience | 468 OS | 303 OS Pi 4B | 72 OS Pi5
Este proyecto está destinado a proporcionar una API de I/O orientada a objetos ,amigable, y bibliotecas de implementación para que los programadores de Java accedan a las capacidades de I/O completas de la plataforma Raspberry Pi. Este proyecto resume la integración nativa de bajo nivel y la supervisión de interrupciones para permitir que los programadores de Java se concentren en implementar su lógica de negocios de aplicaciones.
This project is destinated to give an API of I/O objects oriented, friendly, with implemented libraries for the Java's programmer can work with complete I/O capabilities of Raspberry Pi plaatform. This resume the native integration to low-level and supervised interrupts for let the Java programmer focus on business logic implementation of his applications.
Pines GPIO no exportados y exportados.
Configurar la dirección del pin GPIO
Configurar la detección de borde de pin GPIO
Controlar/escribir estados de pin GPIO
Estado del pin GPIO de pulso
Lectura de stado del pin GPIO
Escuche los cambios de estado del pin GPIO (basado en interrupciones; no sondeo)
Establecer automáticamente los estados de GPIO en la finalización del programa (apagado de GPIO)
Disparadores para la automatización basados en cambios de estado del pin
Envio y recepcion de datos via comunicación serial RS232
Comunicación I2C
Comunicación SPI
Interfaz de proveedor GPIO extensible para agregar capacidad GPIO a través de placas de expansión
Acceda a la información del sistema y la información de red desde la Raspberry Pi
Clases de envoltura para acceso directo a la biblioteca WiringPi desde Java
Dependencias--Dependencies openjdk > 17:
El siguiente Script hace todo lo necesario mínimamente para la version 3 y no requiere hacer otro paso, así que tee salteas a VSCode o Pi4J o saltas este script y haces los pasos manualmente -- The next Script make all minimum required so version 3 reduce to only this, so just jump to VCcode or Pi4J or jump this and make steps manually.
Dependencias -- Dependencies:
Obtener último Java e instalarlo -- Get always the latest JDK & install it:
Obtener último Java-FX e instalarlo -- Get always the latest Java-FX & install it:
Instalar -- Install SDK:
Instalar -- Install Maven:
Intalar -- Install JBang!:
El JAR Pi4j se encuentra en--The Pi4J JAR files are located at:
Los ejemplos están en la carpeta--Examples path:
Podemos listar los ejemplos con--We can list the examples typing:
Con el siguiente comando compilamos los 42 ejemplos--We can build the examples with:
Para ejecutar algún ejemplo debemos utilizar alguno de estos comandos--The following command syntax can be used to execute the sample projects:
o--or:
o--or:
El siguiente ejemplo demuestra como configurar un auditor de cambios de estado del pin GPIO. Esta implementación de escucha es mucho más eficiente que el sondeo y la consulta constante del estado del pin GPIO. La implementación del auditor se basa en interrupciones de hardware GPIO, no en encuestas de estado.
In this example setup an auditor to listen GPIO states. This listen implementation is more efficient that a constant consult of a GPIO, is based on GPIO hardware interrupts.
Cuando presionamos el botón--When we press the button:
Cuando no presionemos el botón--When we don't press the button:
Demostración de como configurar el comportamiento de apagado de los pines al finalizar la aplicación.
Demo to show the shutdown behaviour of GPIO when the app is closed.
Veremos el LED encenderse y apagarse cada 10 segundos hasta que presionemos Ctrl+C.
We can ssaw the LED turn on and turn off every 10 secs till we press Ctrl+C to stop the execution.
El siguiente ejemplo muestra cómo configurar los disparadores GPIO. Los disparadores GPIO escuchan los cambios de estado del pin y luego realizan alguna acción en un pin GPIO alternativo o realizan una devolución de llamada a un método especificado por el usuario. Pi4J incluye varias clases de implementación de activador predefinidas integradas o puede crear su propio activador implementando la interfaz GpioTrigger. Los disparadores se basan en la implementación del oyente GPIO y se basan en interrupciones de hardware GPIO y no en encuestas de estado.
In this example we see how to setup Trigger GPIO, they will listen the change state of GPIO then make an action in an alterrnative GPIO or make a callback to an specific method by the user. Pi4J include some implemented classes of integrated predefined activators or you can create your owns with Trigger GPIO.
El LED conectado al pin GPIO 21 se encenderá cuando el botón sea presionado y apagado al dejar de presionarlo.
The LED connected to GPIO 21 will turn on when the button is pressed and turn off when isn't pressed.
El LED conectado al pin GPIO 22 se encenderá cuando el botón sea presionado y apagado al dejar de presionarlo.
The LED connected to GPIO 22 will turn on when the button is pressed and turn off when isn't pressed.
El LED conectado al pin GPIO 23 se encenderá por un segundo cuando el botón sea presionado al dejar de presionarlo no sucederá nada.
The LED connected to GPIO 23 will turn on by one second when the button is pressed and when isn't pressed nothing happen.
Se verá el siguiente mensaje en la terminal cada vez que el botón sea presionado y se deje de presionar:
We see the next message on the Terminal every time the button is pressed and released:
El siguiente ejemplo demuestra como transmitir y recibir datos usando el puerto serie.
In the next sample we can see how to transmit and receive data using a seria port through rs232:
Guía completa para construir e instalar un puerto serie rs232--How to build and install a rs232 serial port:
http://www.savagehomeautomation.com/projects/raspberry-pi-installing-a-rs232-serial-port.html)
De forma predeterminada, el puerto serie en la Raspberry Pi está configurado como un puerto de consola para comunicarse con el shell del sistema operativo Linux. Si desea usar el puerto serie en un programa de software, debe deshabilitar el sistema operativo para que no use este puerto. Consulte este artículo de blog de Clayton Smith para obtener instrucciones paso a paso sobre cómo deshabilitar la consola del sistema operativo para este puerto:
By default, the serial port on Raspberry Pi is configured like a console por to communicate with the Shell of Linux. If you wish use the serial port in a software application, we need to disable this port so the OS will not use it, and can make used by the software application. See this article by Clayton Smith for better instructions:
Articulo completo sobre construcción e instalación un puerto serie RS232--Complete guide to build and install RS232 Serial Port:
Para probar este programa, necesitará conectar su computadora a través de un cable en serie y usar una herramienta de comunicaciones en serie como Hyperterminal o Indigo Terminal Emulator, Putty. Establezca una conexión usando la velocidad en baudios 34800 con la paridad establecida en NINGUNO, los bits de datos en 8 y los bits de parada en 1. (38400, N, 8,1) Una vez conectado, debería ver los siguientes datos en el software del terminal:
To test this program, we ned connect a PC though a Serial Cable connector and use apps like Hyperterminal or Indigo Terminal Emulator, Putty. Establish a connection to Speed:34800 baud with Flow Control:NONE, data bits: 8, Stop bibts: 1(38400, N, 8, 1). Once connected, we should see the next message on the Terminall app we use:
Estos datos se verán cada 1 segundo. This data will refresh every second.
El siguiente ejemplo muestra cómo usar Pi4J para acceder a la información del sistema y la red desde la Raspberry Pi.
In this example we learn how to see system info about our Raspberry Pi OS.
Ejemplo de salida--Example of output:
Install Maven:
Check with:
Clone pi4j-example-minimal:
Now:
Run:
Basic example with Pi4J and a LED (DigitalOutput) and button (DigitalInput).
Run with:
Reading temperature, humidity and pressure from a BME280 sensor via I2C.
Run with:
Reading temperature, humidity and pressure from a BME280 sensor via SPI.
Run with:
Support for building 100% pure Java applications using Pi4J, JavaFX
Can be used for all kind of Pi4J- , or JavaFX-projects
Use Pi4J Component Catalogue and corresponding GitHub project to experiment with popular hardware components attached to your RaspPi.
Use RaspiFX template project to start your own JavaFX/Pi4J or plain Pi4J project
All of Pi4J-Basic-OS
Support for CrowPi
Comes with lirc preinstalled to run the IR receiver component
Use CrowPi template project to start your CrowPi experiments
All of Pi4J-Basic-OS
Support for Picade Console and Picade X HAT USB-C
Use link:[FXGL template project] to start your Picade project (available soon)