[en] The main objective of this end-of-grade project is to carry out the hardware and software design, as well as the subsequent implementation of an arduino based inertial measurement unit. In order to achieve this main objective, we established some secondary objectives: • Create the software for the control of the arduino board • Interaction with an Imu through arduino. • Data logging on an sd card in arduino. • Create a desktop application to be able to interact with arduino from the pc • The possibility to see in real time the movements of the imu from the pc. • Synchronization of a RTC with the time of the computer to which arduino is connected. • Visualization in the pc of the data saved in SD. • Establish a sleep mode so that the arduino system consumes less energy. In order to meet these objectives we need some hardware components: • Arduino MkrZero • A inertial measuring unit. • A RTC. • A pushbutton. • Micro sd card. In addition to the above objectives, we achieved others as we progressed in the development of the project, such as preventing the user interface from freezing when receiving data from arduino through the serial port and displaying it on the screen. To be able to save data in the sd to be able to load them in the start of the arduino board. This project has allowed me to acquire a series of knowledge that I did not have before or increase the existing knowledge. Some of them were: to get as the hardware and the software unite to work together to the perfection and in total synchrony, as to a hardware system more elements can be added to him to be able to create a more complex system. Apart from learning to connect hardware and software, I have known other ways to create user interfaces in java based on xml.Having to update that user interface with data from the serial port, I had to use threads to avoid freezing that interface. The development of the project was done with a scrum-based methodology with sprints or iterations. Each sprint consisted of several phases: analysis, design, implementation and testing. This phases could be divided into subphases, for example, design comprised two categories: hardware design and software design. To end this summary, say that this project only scratches a part of what can be done with an arduino board, because despite having finished, many improvements can still be made, one of them would be to connect the board to the Internet and be able to obtain data remotely without having to go near the place where it is and be able to save the data on a server or other remote device because the memory of the sd card is more limited.

[es] El objetivo principal de este proyecto de fin de grado es realizar el diseño hardware y software, además de su posterior implementación de una unidad de medición inercial en arduino. Para cumplir ese objetivo principal establecimos algunos objetivos secundarios: • Crear el software para el control de la placa de arduino. • Interacción con un Imu a través de arduino. • Registro de datos en una tarjeta sd en arduino. • Crear una aplicación de escritorio para poder interactuar con arduino desde el pc. • La posibilidad de ver en tiempo real los movimientos del imu desde el pc. • Sincronización de un RTC con la hora del ordenador al que la placa arduino este conectada. • Visualización en el pc de los datos guardados en la tarjeta SD. • Establecer un modo sueño para que el sistema arduino consuma menos energía. Para poder cumplir estos objetivos necesitamos algunos componentes hardware: • Arduino MkrZero. • Una unidad de medición inercial. • Un RTC. • Un pulsador. • Tarjeta micro sd. A mayores de los objetivos anteriores hemos alcanzado otros según íbamos avanzando en el desarrollo del proyecto, como evitar que la interfaz de usuario se congelase al recibir datos desde arduino por el puerto serie y mostrarlos en la pantalla. Poder guardar datos en la sd para poder cargarlos en el arranque de la placa de arduino. El realizar este proyecto me ha permitido adquirir una serie de conocimientos que antes no tenía o aumentar los conocimientos ya existentes. Algunos de ellos fueron: conseguir como el hardware y el software se unan para trabajar juntos a la perfección y en total sincronía, como a un sistema hardware se le pueden añadir más elementos para poder crear un sistema más complejo. A parte de aprender a conectar hardware y software, he conocido otras formas de crear interfaces de usuario en java basadas en xml. Al tener que actualizar esa interfaz de usuario con datos que provenientes del puerto serie he tenido que usar threads para evitar que se congelara dicha interfaz. El desarrollo del proyecto se realizó con una metodología basada en scrum con sprints o iteraciones. Cada sprint constaba de diversas fases: análisis, diseño, implementación y pruebas. Algunas fases podían estar divididas en subfases, por ejemplo, diseño comprendía tres categorías: diseño hardware, diseño software y diseño de la interfaz de usuario. Destacar que este proyecto se realizó para poder observar los movimientos de un objeto que realiza en una superficie, aunque puede tener otros usos. Ya que actualmente las unidades de medición inerciales las encontramos en cualquier sitio, incluso en nuestros móviles, drones, etc. Para finalizar este resumen, decir que este proyecto solo araña una parte de lo que se puede hacer con una placa de arduino, porque a pesar de haberlo finalizado, aún se pueden realizar muchas mejoras, una de ellas sería conectar la placa a internet, para poder obtener los datos de manera remota sin tener que acercarnos al lugar donde este y poder guardar los datos en un servidor u otro dispositivo remoto, ya que la memoria de la tarjeta sd es más limitada.