Este proyecto se basó en el Proyecto Cubli de ETH Zurich. El Cubli es un cubo que tiene tres ruedas de reacción para controlar el equilibrio de los x, y, z planos y del cubo. Esto permite que el cubo de equilibrio a sí mismo en un borde o una esquina. Un video del diseño final de Cubli se puede encontrar aquí.
Este proyecto pretende crear a una sola dimensión del proyecto cubli. Se utilizó una tabla de Xilinx Zynq que tenía una CPU y una FPGA en el mismo dado de silicio que nos permitió construir una arquitectura personalizada en el FPGA a la par con la CPU. También utilizamos RTOS libres para ejecutar el programa en el lado de la CPU. La arquitectura de la FPGA utiliza el free Vivado Webpack para el desarrollo.
El proyecto consta de controles digitales con representación de modelo de sistema de espacio de estado y óptimo de LQR . El lado libre RTOS se utilizó para leer en la entrada del usuario, así como nuestro IMU I2C y ejecutar el código de los controles. La velocidad deseada del motor entonces se alimenta a la FPGA, que se encargaba de crear la forma de onda PWM necesario, así como nuestro codificador óptico de lectura.