[ca] En aquest projecte s'ha implementat un laboratori remot per permetre la interacció a distància amb la FPGA disponible a la placa de desenvolupament "Spartan-3 Starter Kit" de Xilinx. Per això, s'ha hagut de desenvolupar un servidor web que permet al client fer la connexió i interactuar amb la FPGA de manera no presencial, a través d'un navegador web. Al prototip implementat s'ha afegit un mètode d'autenticació per controlar l'accés a l'aplicació. Com a entorn de hardware del servidor web s'ha utilitzat la placa de desenvolupament ESP32-CAM, que disposa d'un microcontrolador de 32 bits de doble nucli. Aquesta placa també és la que s'ha fet servir per manipular l'estat de les entrades del sistema implementat sobre la placa Spartan-3. La programació del costat del client (front-end) ha estat realitzada emprant HTML, CSS i JavaScript, mentre que la programació del costat del servidor (back-end) s'ha realitzat a C, ja que es treballa directament sobre el microcontrolador present a la placa ESP32-CAM. Per poder observar visualment la resposta del sistema s'ha implementat també un servidor de streaming. Per això, s'ha utilitzat la càmera OV2640 de 2 Mp integrada a la mateixa placa ESP32-CAM, que permet la captació d'imatges per part del servidor de streaming. Tant el servidor web com el servidor de streaming es troben dins una xarxa privada, així que perquè el client pugui comunicar-se amb tots dos servidors, s'ha implementat un proxy invers que redirigeix ​​el trànsit que arriba al nostre sistema per la xarxa pública a la xarxa privada. Aquest servidor intermediari invers s'ha implementat amb NGINX. Finalment, s'ha dissenyat una placa de circuit imprès (PCB) fent servir KiCad per fer totes les connexions necessàries entre la placa ESP32-CAM i la Spartan-3 i aconseguir que el sistema funcioni adequadament.

[en] In this project, we develop a remote laboratory that allows a distant interaction with the FPGA available in the Spartan-3 Starter Kit by Xilinx development board. To do this, we have developed a web server that allows the client to connect to the FPGA and interact with it remotely through a web browser. On the implemented prototype, we've added an authentication method so as to control the access to the application. As a hardware environment for the web server, we have used the development board ESP32-CAM, which has a dual-core 32 bits microprocessor. Said board is also the one that has been used to manipulate the state of the inputs of the system implemented on the Spartan-3 board. The client side programming (front-end) has been made by using HTML, CSS and JavaScript, while the server side programming (back-end) has been done in C, as it works directly on the microcontroller found on the ESP32-CAM board. To visually observe the system response, we have also implemented a streaming server. To do this, we have used a 2 Mb OV2640 camera, which is integrated into the ESP32-CAM board, and it allows the streaming server to capture images. Both the web server and the streaming server are located inside a private network, so, as for the client to communicate with the servers, we have implemented a reverse proxy, which routes traffic that arrives to our system from the public network to the private network. Said proxy has been implemented using NGINX.