ArduImu: Unidad de medición inercial basada en arduino

Use this link to cite
http://hdl.handle.net/2183/24477
Except where otherwise noted, this item's license is described as Atribución-NoComercial-SinDerivadas 3.0 España
Collections
Metadata
Show full item recordTitle
ArduImu: Unidad de medición inercial basada en arduinoAuthor(s)
Directors
Rabuñal Dopico, Juan RamónAlvarellos González, Alberto José
Date
2019Center/Dept./Entity
Universidade da Coruña. Facultade de InformáticaDescription
Traballo fin de grao (UDC.FIC). Enxeñaría informática. Curso 2018/2019Abstract
[Resumen] 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. [Abstract] 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.
Keywords
Unidad de medición inercial
Giroscopio
Acelerómetro
Magnetómetro
Arduino
C++
Java
JavaFx
Hilos
Comunicación serie.
Inertial measurement unit
Gyroscope
Accelerometer
Magnetometer
Threads
Serial Comunication.
Giroscopio
Acelerómetro
Magnetómetro
Arduino
C++
Java
JavaFx
Hilos
Comunicación serie.
Inertial measurement unit
Gyroscope
Accelerometer
Magnetometer
Threads
Serial Comunication.
Rights
Atribución-NoComercial-SinDerivadas 3.0 España