Hace un tiempo en mi nuevo trabajo ofrecieron cursos de Python. Personalmente me interesaba por varios motivos:
- Siempre queda bien ir a cursos en el trabajo, sobre todo cuando acabas de entrar
- Me gusta programar, así que era un curso que no debería de resultarme muy pesado
- Tercero y fundamental... ¡Porque tenía en mente utilizar lo aprendido para hacer una interfaz gráfica para LibreServo! Por ahora lo llamaré LSGI LibreServo Graphic Interface
El segundo punto se me fue al garete al llegarme el horario del curso, de 3 a 8 semana y media... ¡mátame!, voy a estar fuera de casa y sin tiempo para comer más de 13 horas seguidas.
A pesar del horario, en el curso había muchas cosas que me iban a interesar, sobre todo;
- Clases y Herencia
- Filtros
- Depuración con pcb
- Entrada/salida
- GUIs (interfaz gráfica)
Vamos, cosas útiles que me vendrían bien. Pero el curso empezó y me di cuenta que eso era una auténtica "estafa". El profesor que daba el curso no era un programador ni sabía programar, era un matemático (que no tengo nada en contra de ellos, pero de programación, cero). Con lo que el curso pasó a convertirse en un curso de Big-Data donde el manejo de datos se hacía en python... Vamos, que el tío nos contaba lo que hacía en su trabajo, lo cual me importaba entre poco y nada, su trabajo y el Big-Data que no es nada que no se haya hecho toda la vida pero que ahora con lenguajes de programación muy sencillos cualquier hijo de vecino sin conocimiento alguno se dedica al Big-Data y se dan ínfulas de superioridad.
Del curso sólo me quedé con dos lindezas que evidenciaban el nivel:
- Cuando programas y/o ves un programa, es imposible de antemano saber con exactitud cuál va a ser el resultado de la ejecución, porque yo no he programado el lenguaje de programación y como no conozco al que lo programó, no puedo preguntarle a él mismo...
- Es lo malo que tienen las cosas OpenSource, que siempre tienen un montón de errores y problemas y no puedes quejarte a nadie porque son gratis.
Decidí pasar del curso y dedicar todas esas horas a aprender por mi mismo los temas que a mi me interesaban.
He estado todas estas semanas sacando al menos una hora al día para programar la interfaz gráfica de LibreServo. Mi idea es que desde el PC o desde el móvil, puedas controlar LibreServo (siempre que LibreServo lo tengas conectado vía Serie, Bluetooth o Wifi mediante algún intermediario, un arduino, un módulo wifi (esp32) en modo transparente, un módulo bluetooth hc-05... etc Y sobre todo, y es lo que me ha llevado todo el tiempo, puedas ver de manera gráfica el estado del servo; posición, consumo eléctrico, voltaje...
LSGI v0.1
Más adelante daré más información, pero el tener que aprender por mi cuenta la interfaz gráfica, me ha obligado a ir probando y testeando un montón de cosas que a la hora de la verdad no ofrecían el rendimiento requerido o la funcionalidad deseada... Así que todo se ha alargado mucho más de lo deseado. Si el curso hubiera sido lo que se promocionaba, seguro que me podría haber enfocado desde un principio en la manera adecuada y óptima de hacer las cosas.
Sólo comentar que ahora mismo estoy usando PyQt5 y QtDesigner para el diseño de la interfaz gráfica y pyqtgraph para realizar las gráficas en tiempo real en vez de directamente tkinter con matplotlib, el cual, matplotlib, a penas me permitía tener 3 ó 4 gráficas en tiempo real sin saturar la CPU. Ya he dedicado muchísimo más tiempo que el que en un principio tenía pensado, así que en cuanto tenga el "esqueleto" gráfico, volveré con el propio LibreServo, no quiero ahora invertir mucho más tiempo cuando aún me faltan muchas cosas en LibreServo.