En este tutorial, vamos a aprender a usar el módulo «cámara» de la Rasbperry Pi en nuestra aplicación de NodeJS (sitio web oficial). Yo compré en Amazon el módulo de AZDelivery.
Conectaremos en primer lugar el módulo «cámara», según vimos en la entrada Cómo conectar el módulo «Cámara» a la Rasbperry Pi.
Una vez conectado, crearemos nuestra aplicación NodeJS en la Raspberry Pi (se asume que se ha instalado según indica en la sección de descargas de la web oficial):
mkdir node-pi-camera cd node-pi-camera npm init
Nos preguntará varias cosas, como el nombre del paquete o el autor del mismo. A elección del usuario queda rellenarlos, o simplemente darle a «Enter» hasta finalizar.
Necesitamos añadir al proyecto la dependencia con un paquete del repositorio npm capaz de manejar el módulo. En mi caso, he usado el paquete raspberry-pi-camera-native:
npm install --save raspberry-pi-camera-native
Ahora, con nuestro IDE preferido, crearemos el archivo «index.js» dentro de «test-camera». Escribiremos el siguiente código:
"use strict";
const raspberryPiCamera = require('raspberry-pi-camera-native');
raspberryPiCamera.on('frame', (frameData) => {
//Frame Data es un buffer NodeJS
console.log('Imagen captada', frameData);
});
raspberryPiCamera.start({
width: 1280,
height: 720,
fps: 2,
encoding: 'JPEG',
quality: 75
});
Como podemos apreciar, podemos modificar ciertos parámetros que se le pasan al método «start», como el alto y el ancho de la imagen, o los frames por segundo (fps).
Cuando se captura una imagen (según los frames por segundo fijados), se emitirá un evento ‘frame’, y el «buffer NodeJS» será emitido, pudiéndose convertir a imagen y guardar en un archivo o procesar según convenga.
Podemos ejecutarlo mediante
node index.js
El código lo tengo compartido en mi cuenta de GitHub: