23 noviembre, 2019

Cómo usar el módulo «cámara» de la Raspberry Pi con NodeJS

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:

https://github.com/diegorys/node-pi-camera.git

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies