martes, 21 de marzo de 2017

LuZera, mi nuevo proyecto

Seguro que todos habéis visto alguna película de Pixar, que siiii, venga, va no disimuléis, tengáis peques en casa o no, estoy convencido de que alguna peli habéis visto.

Mis pelis favoritas de Pixar son Wall-E (como no) y Ratatouille (relacionada con otra de mis aficiones: la cocina).


 Y os estaréis preguntando ¿para qué narices nos estará contando estas cosas? Pues, la verdad, es que después de dos entradas en el blog hablando de cinemática y manteniendo la incógnita sobre lo que quiero hacer en mi siguiente proyecto, creo que ya va siendo hora de ir desvelando mis intenciones y por lo tanto, ver la relación con Pixar.

Si habéis visto alguna de sus películas (que las habéis visto, insisto) conocéis su famosa lampara




Bueno, pues... blanco y en botella ¿no? Mi siguiente proyecto va a ser intentar hacer una "mpara Robótica".


lunes, 30 de enero de 2017

Una Clase para controlarlos a todos...bueeeno, solo a unos pocos. (Cinemática II)

Lo prometido es deuda y aquí estamos de nuevo con otra entrada a cerca de la dichosa Cinemática, esta vez para contaros que he creado una clase en Python que nos simplifica y nos hace más fácil la tarea de controlar un brazo robótico (vaya, para no querer hacer un brazo robótico, me estoy poniendo un poco pesadito con el tema).



viernes, 20 de enero de 2017

Arduino Plug&Play en Python


Hoy toca una entrada muy breve, estoy preparando otra más extensa en la que os contaré como va mi aventura de experimentación y frikeo con la Cinemática, todo en aras de aprender lo máximo posible para abordar mi siguiente proyecto.

El caso es sigo trasteando con software, pero ahora estoy en Python, me encanta Python, sirve para casi todo, si no lo conoces, te recomiendo seguir algún curso por la red, te será muy útil, de verdad.



Bueno, lo dicho, ando trasteando con Python y Arduino. No es una idea nueva, ya lo utilice la comunicación Python-Arduino en mi entrada del "Siguecaras" (Controlamos las Máquinas Aplicando la Visión Artificial (II)) Y hay muchos ejemplos en la red, entre ellas esta del Maestro Obijuan u esta otra de Robologs

Si os fijáis, en todas ellas, incluida la mía, se dice que 










O sea, que cada vez que queremos ejecutar el programa, debemos asegurarnos que el puerto que hemos puesto es el correcto. Pero ¿qué pasa cuando ejecutamos en máquinas distintas con SO distintos? o ¿si utilizamos un modelo de placa de Arduino diferente? pues que tendremos cada vez que revisar como se llama el nombre del puerto al que se ha conectado la placa y modificar el programa, un poco pesado la verdad.

Bien pues lo que he hecho es hacer una función que hace que nos olvidemos de comprobar el nombre de puerto, copiarlo, modificar el programa, etc. cada vez, sino que enchufamos nuestra placa al ordenador, y ya estamos listos para funcionar: Arduino Plug&Play.

Yo la he probado en Mac y en Windows 7 y con placas Arduino Uno (Freaduino Uno) y Nano y hasta ahora no me ha fallado nunca.

La función en sí es esta:

 
def getSPArduino():
    Puertos = list(serial.tools.list_ports.comports())

    bEncontrado = False
    for i in Puertos:
        if ('USB' in i[1]) or ('Arduino' in i[1]):
            try:
                PUERTO = i[0]
                VELOCIDAD = '9600' \
                            ''
                sp = serial.Serial(PUERTO, VELOCIDAD)
                print('Conectado!!!')
                sp.close()
                bEncontrado = True
                Arduino = i[0]
            except:
                pass

    if bEncontrado:
        return Arduino
    else:
        return 'xxx' 

y lo que hace es:
  1. Obtiene la lista de puertos serie 
  2. Recorre la lista en busca de alguno que su descripción contenga 'USB' o 'Arduino' 
  3. Si encuentra alguno, intenta conectarse a él 
  4. Si consigue conectarse, cierra la conexión y guarda el nombre de ese puerto y marca que ha encontrado alguno. 
  5. Al finalizar de recorrer la lista, si tiene activo el 'swich' de haber encontrado alguno, nos devuelve el nombre de éste, si no, devuelve 'xxx'
El uso es sencillo:

Como siempre, dejo la librería en mi Github, junto al NoteBook de la imagen anterior. Veréis en la librería otras dos funciones:
  • mapeo(val, minIn, maxIn, minOut, maxOut): En Arduino tenemos la función map() pero en Python no existe esa función, bueno, si existe, pero no hace la de Arduino y no conozco otra que sea igual, así que, la me la he creado.
  • mapServo(val): lo que hace es que le pasamos un valor entre 0 y 180 y nos lo devuelve en formato -90 - 90
Como os dije, esta es una entrada corta. Os dejo que tengo que preparar la siguiente entrada que esa si será mas larga.

martes, 29 de noviembre de 2016

"Allí está, ahora falta descubrir cómo llegar hasta él" - Cinemática Inversa

Bueno, ya estoy metido en un nuevo proyecto, uno más.  

La verdad es que tengo dos o tres empezados y no terminados, unas veces por falta de conocimientos técnicos, otras por falta de tiempo, y otras, las que más, porque soy un “picaflor” y no puedo parar con el culo quieto y cada vez que veo alguna cosa chula o se me ocurre algo, dejo lo que estoy haciendo en ese momento y empiezo otra cosa, así, la verdad, es que no se puede. 

 Bueno, vamos a lo que nos ocupa en esta entrada y no, no voy a decir que es ese nuevo proyecto, aún estoy en esa fase en la que tengo tantas cosas que aprender que aún no sé si llegará a buen puerto, y si lo hace, cuando será eso






lunes, 22 de agosto de 2016

¿Dibujamos?

En mi juventud, antes de dedicarme a esto de la informática y los ordenadores, estudie delineación, (una profesión tan olvidada que hasta el corrector de google me la marca como desconocida). Cuando estábamos ya en los últimos cursos, nos trajeron a ver el antiguo SIMO (Salón Internacional de Mobiliario de Oficina) donde además de los muebles que lleva en el nombre, los ordenadores y el material informático se estaban adueñando de la feria (no Arantxa, no, los dinosaurios ya no existían)

Por aquel entonces, también empezaron a aparecer unos "aparatitos" que nos hicieron ver que estábamos a punto de terminar unos estudios relacionados con una profesión que iba a ser sustituida por máquinas: los ploters.







lunes, 8 de febrero de 2016

Poliphemo empieza a andar (y a buscar)


Ha pasado ya un tiempo desde que os presenté a Poliphemo. En aquel entonces, solo mostré imágenes de su diseño creado con  Freecad (un estupendo software libre para diseño) hoy ya es hora de mostrar su cara real y de mostraros su avance.

Os presento a Poliphemo


Poliphemo

miércoles, 9 de diciembre de 2015

Diseñando un nuevo PrintBot




En nuestra anterior entrada, estuvimos hablando de la cámara Pixy CMU5Cam y comentamos que íbamos a estudiar cómo podríamos utilizarla en nuestros robots. Y bueno, pues eso hemos estado haciendo este tiempo. Lo que pasa es que en vez de adaptar uno de los robots que ya teníamos, pues nos hemos liado la manta a la cabeza y hemos diseñado uno nuevo desde cero. ¡¡¡Toma ya!!!