Videoblog

De WikiRobotics
Revisión del 04:04 21 mar 2015 de Obijuan (Discusión | contribuciones) (4 Demo de objetos paramétricos en Python desde Freecad)

Saltar a: navegación, buscar
Píldoras de conocimiento

Introducción

En estos vídeos cortos mostraré cosas que me parecen interesantes: píldoras de conocimiento, demostraciones, últimas novedades, noticias, etc. Siempre la temática en común es Software libre, hardware libre y patrimonio tecnológico de la humanidad. No estoy interesado en la tecnología que no es libre.


Claves

Tutorial. Tutoriales. Videotutorial. Videotutoriales. Videoblog. Patrimonio tecnológico de la humanidad. Píldoras de conocimiento

Descargas

Todos los ejemplos están en el repositorio de este videoblog en github

PLAYLIST

PLAYLIST DEL VIDEOBLOG

1 Demo: Moviendo servos con Widgets interactivos desde un notebook de Jupyter

Video blog 1
(click para ampliar)
(click para ampliar)

Descripción

Demostración del movimiento de un servo a través de un notebook usando los nuevos widgets interactivos de IPython 3.0 (Proyecto Jupyter). La nueva versión de IPython la puedes instalar siguiendo estas instrucciones

El concepto de notebook es muy potente e interesante. Está pensado fundamentalmente para que los usen científicos e ingenieros, pudiendo representar ecuaciones, programar algoritmos, escribir documentación, poner vídeos... todo en una página abierta desde el navegador.

Pero como los notebooks se programa en python, que es un lenguaje de propósito general, se pueden adaptar fácilmente para diferentes aplicaciones. Una de ellas es controlar servos. Esto abre las puertas para poder controlar robots artículados basados en servos. Y así se pueden probar algoritmos nuevos de generación de locomoción, caminatas, etc. También es muy útil para depurar la mecánica de los robots y ajustar las posiciones iniciales de los servos. Todo ello desde el navegador. Multiplaforma. Sencillo. Y por supuesto libre.

Los ejemplos están subidos en este repositorio de github

Juan Luis Cano. Segunda edición del curso python para científicos e ingenieros (click para ampliar)

La inspiración de esta aplicación ha venido por los excelentos tutoriales que ha dado Juan Luis Cano, de Pybonnacci, en la segunda edición del curso python para científicos e ingenieros organizado por la Universidad de Alicante. Con ellos he descubierto los widgets interactivos y lo fáciles que son de usar en el nuevo Ipython 3.0. ¡Gracias Juanlu!  :-)

Hardware usado en la demo

  • Un servo Futaba 3003, instalado en un módulo Y1 (para apreciar mejor el movimiento)
  • La placa bq ZUM BT-328, donde se conecta el servo. También se puede usar una placa Arduino. Se conecta al portátil a través de un cable USB

Agradecimientos

  • A Juan Luis Cano, de Pybonacci, por el excelente curso de python. ¡Muchísimas gracias!

Enlaces

2 Moviendo un servo desde un Notebook de Ipython (parte 2)

Video blog 2
(click para ampliar)

Descripción

Explicación rápida de los pasos a seguir para mover los servos desde nuestros notebooks de Ipython 3.0

Explicación

Los pasos a seguir son los siguientes:

Paso 1: Instalar Ipython 3.0

Esto depende del SO y entorno python que tengáis. Podéis encontrar instrucciones en este enlace

En mi portátil tengo Ubuntu 14.10. Las pruebas las he hecho instalando Anaconda y luego ejecutando:

conda update conda
conda update ipython ipython-notebook ipython-qtconsole

Una vez instalador podemos hacer una comprobación rápida, ejecutando en el terminal esto:

$ ipython --version
3.0.0


Paso 2: Instalar pyserial

La instalación de la biblioteca pyserial dependen también de vuesltro entorno. Aquí os dejo un enlace a las instrucciones

Desde ubuntu se instala muy fácilmente con el siguiente comando:

sudo apt-get install python-serial

Podemos comprobar si lo tenéis correctamente instalado ejecutando el intérprete de ipython e importando la biblioteca con import serial. Si no estuviese correctamente instalada aparecería un mensaje de error

Comprobando si la biblioteca pyserial está instalada (click para ampliar)

Pase 3: Bajarse el proyecto zum-servos de github

El firmware, los programas en python y los notebooks están en el proyecto zum-servos en github. Bien descargar el zip o clonar el proyecto en tu ordenador local.

Paso 5: Realizar las conexiones en la plaza zum / Arduino

  • Conectar el servo Futaba 3003 o compatible al PIN #9 de la placa zum / arduino
  • Conectar la plaza zum / arduino al ordenador, mediante el cable USB
Conexión del servo a la placa zum

Paso 6: Cargar el firmware zum_servos_fw.ino a la placa zum / Arduino

Arrancar el entorno del arduino. Abrir el firmware de la carpeta zum-servos/firmware/zum_servo_fw. Seleccionar la placa, el puerto y cargar el firmware en la placa zum / arduino. Para descargar en la zum hay que seleccionar la placa: Arduino BT w/ ATmega328

El firmware para mover servos cargado en el entorno de arduino (click para ampliar)

Paso 7: Lanzar el notebook de zum-servos-example-1

Vamos a la carpeta zum-servos/python y arrancamos el notebook:

$ ipython notebook 

En una pestaña del navegador nos aparecerá la página principal del Ipython Notebook con todos los notebooks que podemos seleccionar. Pinchamos en zum-servos-example-1.ipynb para que se nos abra el notebook

Ipython 3.0 notebook lanzado (click para ampliar)
Abierto el notebook zum-servos-example-1 (click para ampliar)

Paso 8: Ejecutar el notebook

Bajamos hasta la zona donde comienza el código en python y ejecutamos las celdas. Antes de ejecutar la celda 4, configurar el nombre del puerto serie en el que está conectada la placa zum / arduino. En mi portátil está en el puerto serie /dev/ttyUSB0

Parte donde comienza el código en python (click para ampliar)
Configurar el puerto serie (click para ampliar)

Por último ejecutamos la celda 12 y nos aparece la barra deslizadora. Al desplazarla se moverá el servo. La última celda es un ejemplo de generacion de una secuencia de movimientos del servo.

El widget interactivo para mover el servo y el código para la generación de la secuencia de movimiento (click para ampliar)

3 El nuevo Openscad 2015.03

Video blog 3
(click para ampliar)

Descripción

En Marzo de 2015 se acaba de liberar la nueva versión de Openscad: 2015.03. Se describen brevemente las principales mejoras: texto integrado, listas por comprensión, comando offset, comando surface y mejora de la interfaz gráfica

Explicación

Al arrancar el openscad 2015.03 aparece una pantalla de bienvenida que nos permite rápidamente crear un diseño nuevo, cargar alguno reciente o acceder a los ejemplos y documentación. Vamos a crear un documento nuevo pinchando en new.

Lo primero que vemos es la mejora en la interfaz gráfica. Se han añadido botones en el visor para cambiar las vistas y las propiedades de visualización. Muy cómodo. Especialmente útil es el botón de centrado de la pieza.

Pantalla de bienvenida en openscad 2015.03 (click para ampliar)
Openscad 2015.03 recién arrancado (click para ampliar)

Creamos un cubo "hola mundo" para trastear un poco con el nuevo openscad

Cubo "hola mundo" de prueba (click para ampliar)

Una de las mejoras es la creación de texto en 3D. Antes había que utilizar bibliotecas externas. Ahora está integrado en Openscad. Esto hace muy fácil el crear llaveros y objetos con texto 3D. Se realiza con el comando text. Este es un ejemplo "hola mundo" que genera el texto "¡Hola!" en 3D

linear_extrude(height = 5)
text("¡Hola!", size = 50, halign = "center", font = "Liberation Sans", $fn = 20);

Para acceder a los tipos de letras que ha detectado openscad en nuestro sistema, nos vamos a la opción Help / Font List y se nos despliega una ventana con todos los tipos que podemos usar.

Creación de texto en 3D (click para ampliar)
Selección de las fuentes para el texto (click para ampliar)

Otra novedad: Las listas por comprensión. Es un método muy potente para crear listas de elementos. Permite por ejemplo crear polígonos y figuras 2D a partir de sus vértices:

l = [for (i=[0:4], a = 360 * i/5) [10 * sin(a), 10*cos (a)]];
echo(l);    
polygon(l);
Creando un pentagono mediante una lista por comprensión (click para ampliar)

Otro comando nuevo introducido es offset, que nos permite agrandar o achicar figuras 2D una distancia fija. Muy útil para hacer piezas que encajen unas dentro de otras, definiendo una tolerancia.

Este es un ejemplo sencillo de uso de offset:


offset(1)
union() {
  square([10, 20]);
  square([20, 10]);
}
Figura 2D sin aplicar offset (original) (click para ampliar)
Offset positivo de 1mm (click para ampliar)
offset negativo de 1mm (click para ampliar)

El comendo surface permite crear un objeto 3D a partir de una imagen. Según el color de los pixeles de la imagen se crean las partes del objeto a diferentes alturas. Este es un ejemplo usando el logo de obijuan academy:

surface("logo.png", center = true);


Logo de obijuan academy usado para generar un objeto 3D con surface (click para ampliar)
Pieza creada con el comando surface (click para ampliar)

Descarga de ficheros

text-example.scad Ejemplo de creación de letras 3D: "¡Hola!"
list.scad Ejemplo de uso de las listas por comprensión
offset.scad Ejemplo del comando offset
surface_image.scad Ejemplo del comando surface: logo de obijuan academy

4 Demo de objetos paramétricos en Python desde Freecad

Video blog 4

Descripción

Demostración de cómo crear objetos usando scripts de python en Freecad, utilizando la biblioteca pyooml


Explicación

Descargarse del github la biblioteca pyooml que de momento se encuentra dentro del proyecto friki. Desde el directorio friki lanzar Freecad

El proyecto Friki en github (click para ampliar)

Creamos un documento nuevo y lanzamos la consola de python desde el menu View / Views / Python Console. Desde la consola pulsamos el botón derecho del ratón y le damos a la opción de "Clear console" para dejar la consola limpia.

Freecad tiene una API en python que nos permite hacer lo mismo que usando los botones de la GUI, y muchísimas más cosas.

(click para ampliar)
(click para ampliar)

Pyooml (Python Object Oriented Mechanics Library) es una biblioteca que usa la API de Freecad para crear objetos muy fácilmente, de manera similar a como se trabaja en Openscad. Primero importamos la biblioteca pyooml con:

from pyooml import *

Ahora lanzamos un cubo "hola mundo" con el comando cube()

cube(10, 10, 10)

Nos aparece un cubo tal cual lo hubiésemos lanzado dese el escenario Parts donde al botón del cubo. Tenemos acceso a sus propiedades. Y lo modemos modificar mediante la Gui. Con el método translate() podemos colocar los cubos en cualquier posición:

cube(10, 10, 10).translate(5,5, 10)
cubo "hola mundo" (click para ampliar)
dos cubos (click para ampliar)


[[|thumb|400px| (click para ampliar)]] [[|thumb|400px| (click para ampliar)]]
[[|thumb|400px| (click para ampliar)]] [[|thumb|400px| (click para ampliar)]]


[[|thumb|400px| (click para ampliar)]] [[|thumb|400px| (click para ampliar)]]
[[|thumb|400px| (click para ampliar)]] [[|thumb|400px| (click para ampliar)]]


[[|thumb|400px| (click para ampliar)]] [[|thumb|400px| (click para ampliar)]]

Repositorio

Los ficheros fuentes están en este repositorio:

Enlaces

Autor

Licencia

By-sa.png This work is licensed under a Creative commons Attributions Sharealike.

Créditos

Sobre este VideoBlog

Este videoblog está realizado exclusivamente usando herramientas libres.

  • Sistema Operativo: Ubuntu Linux 14.10
  • Freecad: Freecad 0.14.3702
  • Retoque imagenes: gimp 2.8.10
  • Dibujos: inkscape 0.48.5
  • Grabación escritorio: Kazam 1.4.5
  • Edición de vídeos: Openshot 1.4.3
  • Visualización de las pulsaciones del ratón: keymon 1.17

Noticias

  • 19/Marzo/2015: Episodio 3
  • 15/Marzo/2015: Episodio 2
  • 14/Marzo/2015: Subido episodio 1
  • 10/Marzo/2015: Comenzada esta página

Enlaces

Proyecto Clone wars

Proyecto Clone wars: Construye tu impresora 3D opensource!
Proyecto Reprap
Proyecto RepRap: Impresoras 3D auto-replicantes. El origen de la revolución de las impresoras 3D opensource
Obijuan Academy
Obijuan Academy, Tu academia rebelde! ;-)