Category: Carousel

CM-510 firmware for using as multiple sensor item updated

CM-510 firmware and post updated

 

 

XL-320 Ollo Explorer

XL-320, CM 9.04 and Ollo parts

XL-320, CM 9.04 and Ollo parts

Source code (I should clean it …)

Empezando con el diseño e impresión 3D

This entry is part 1 of 1 in the series (ES) Diseño e impresión 3D

entresdHace poco más de una semana que llevo utilizando la impresora Up Plus mini, tras ganarla en el concurso organizado por entresd, y mi impresión (nunca mejor dicho) es realmente buena.

El resumen es que es muy fácil de utilizar y que la calidad es muy buena, mejor de lo que pensaba, aunque en los primeros minutos tuve un par de tropezones; pero vayamos por partes…·

Up Plus mini

Up Plus mini

¿Para qué quiero una impresora 3D?

En mi caso es fácil de predecir, para diseñar e imprimir piezas de robots, incluso me gustaría llegar a crear un pequeño kit de piezas que permitan construir varios robots. Pero esto es complicado, sobre todo para alguien como yo, que jamás ha hecho nada de diseño en 3D, siendo realmente esta parte del diseño el meollo de la cuestión. Resultándome tan apasionante como cuando empecé a dar mis primeros pasos en desarrollo de software.

Angel_Candle_Holder_Multiscan_preview_cardPero también se puede utilizar la impresora sólo para imprimir objetos ya diseñados por otras personas, webs como:

Thingiverse

GrabCAD

TinkerCAD

están llenas de pequeños y muy variados diseños de objetos listos para imprimir. Lo que no veo nada fácil es utilizarla, tal como he leído varias veces, para imprimir piezas que sustituyan a las piezas de plástico que se nos rompan en casa, ya que esto implica crear el diseño de la pieza a sustituir (os aseguro que no es trivial) o bien tener un escáner 3D con la cual crearlo (no es un aparato barato).

Imprimir soportes y cajas

Para los que trasteamos con dispositivos electrónicos, una clara utilidad es imprimir soportes y cajas que los protejan y nos permitan incorporarlos o montarlos en otros aparatos. Como la siguiente base para Raspberry Pi, con conectores para ejes Lego Technics

Base para Raspberry Pi

Base para Raspberry Pi

Piezas adaptadoras

Pero quizás la mayor utilidad que le doy actualmente a la impresora es para modificar piezas ya existentes o crear pequeñas piezas que me permitan ensamblar dos elementos que ya tengo pero que son incompatibles. Además esto me permite ir adentrándome poco a poco en el mundo del diseño 3D de una forma muy práctica.

Mi primera modificación de una pieza existente es para que a una pieza de Bioloid se le puedan conectar elementos Lego Technics:

Bioloid2LegoTecnics

Bioloid2LegoTechnics Bioloid2LegoTecnics

Y mi primer diseño de pieza adaptadora es para poder montar una estructura Lego Technics sobre esta estupenda estructura de madera creada por mi amigo Pepe:

HexaWheels2LegoTechnics

HexaWheels2LegoTechnics

HexaWheels2Lego

Fácil de utilizar y buena calidad

Como ya anticipaba al principio del artículo, imprimir las piezas ha sido más fácil de lo que pensaba y había leído previamente.

Facilidad: una vez que ya tenía el diseño de la pieza en el formato STL la impresión fue tan fácil como cargar dicho diseño en el software de la impresora y mandarlo imprimir, no toqué ni un parámetro, ni, de momento, he tenido que tocarlos para que las piezas se impriman bien.

Calidad: es mayor de lo que pensaba, quedando las piezas con muy buen aspecto, con lisas paredes y, sobre todo, con los tamaños correctos, de forma que los agujeros de tamaño Lego Technics encajan perfectamente con piezas Lego Technics; y la pieza impresa encaja perfectamente con la de madera (incluso demasiado, porque no le dejé un milímetro o medio de margen para que fuera más fácil montarla y desmontarla).

Los tropezones de los primeros minutos:

La impresora ya viene montada pero hay que extraer unos protectores (como los de las lavadoras) y colocar el extrusor en su sitio (sobre dos fuertes imanes)… pero en éste había una pequeña banda de 1 cm x 3cm (+/-) con tres componentes, colgando… en las instrucciones no aparecía y era un viernes a las 21:00 de la noche, con lo cual ya no podía llamar al soporte técnico… y no iba a esperarme a probarla hasta el lunes, eso no :). Así que tras dedudir dónde debería ir y comprobar por unas fotos que encontré por Internet que ese era su sitio, fue muy fácil colocarla. Luego descubrí que son tres pequeños LEDs para iluminar el interior, así que tampoco hubiera pasado nada si no los hubiera colocado.

Una vez que todo estaba preparado, y ya conectada al PC, la impresora insistía en que no había conexión con el PC. Después de unos instantes de confusión, y temer los horrores de los drivers de Windows, descubrí que simplemente había que utilizar la opción “Inicializar” del software de la impresora.

Software Souls cloned/clonado

cloning! results may vary

cloning! results may vary

I will renew this domain and hosting until 2015 but if something fails the clone is already created.

I have exported this site and imported it at http://softwaresouls2.blogspot.com.es because I will not keep paying any hosting service.

He exportado este sitio y lo he importado en http://softwaresouls2.blogspot.com.es porque no seguiré pagando alojamiento web.

Renovaré el dominio y el alojamiento hasta 2015, pero si algo falla el clon ya está creado.

 

Photos/Fotos:

http://softwaresouls.com/piwigotest/

 

Videos:

www.youtube.com/siempreaprendiendo

 

Software utilities and code examples:

https://app.box.com/s/4hru0gwduus712s93f6a

How to start creating and programming robots

Honda Asimo

Honda Asimo

Introduction

Create robots requires a lot of different skills and, depending on how sophisticated is the behavior or the tasks that must be performed, can be really complex and extremely difficult.

The three pillars of robotics are electronics, mechanics and programming; there are others, but only with these three you can already start experimenting.

In addition to applicable knowledge you also need some others items such as motors (or other actuators), sensors, a small computer to avoid weight and power consumption (typically a SBC or microcontroller ) and a power source (battery to be autonomous) and some parts that sustain and hold together all these elements and their movements.

These elements can be acquired (some even manufactured) separately, or more easily, and probably cheaper as a kit.

.

What do I need to start?

Mainly, you need wish to enjoy creating and learning.

* Acquire a minimum and basic knowledge of:

+ Electronics or electricity (if only to distinguish voltage and current),

+ Mechanics (the minimum would be screwing and unscrewing or connect Lego type pieces)

+ Computer (at least to run a program on a computer)

* Get at least a microcontroller (Arduino, for example), a pair of motors, a distance sensor, a battery, cables, and a structure to support it. The basic set or kit.

A kit, the best option

A clear advantage of starting with a kit is that you start NOW, spending your time on where is your interest (electronic, mechanical or computer) , because the others areas are already solved, but anytime you can get to work in any of them. When you buy the kit with all the necessary set of elements together, the price is also often cheaper.

From the more expensive and complex to the cheapest and easiest

bioloid_bio_img01Bioloid : 18 powerful servo motors, 4 sensors. Ideal for humanoid, quadrupeds, hexapods and even vehicles; software to create them and behave like living beings. Includes programming software RoboPlus Tasks, you can also program in C, and create motion sequences with RoboPlus Motion.  Using other controller, like Raspberry Pi you can use any language and programming tools which generate code to it.

It costs around 1000 euros. Yes, it is somewhat expensive, but if you have enough money and programming skills or willingness to learn, I think it deserves the price.

Mindstorms_EV3Mindstorm EV3: 2 servo motors, 1 motor, 4 sensors. Ideal for mechanisms and vehicles. Very easy to use, but it also allows you to create complex robots. Includes programming software NXT-G, NXT is also possible to program in Java with Far and C / C + + with Osek, not yet available for EV3 or very early versions.

It costs around 300 euros, although it may seem expensive compared to other options, its enormous potential and flexibility in all aspects (construction, programming and electronics) make it tremendously interesting.

Mindstorms EV3 is the latest version, released in August 2013.

Arduino robot

Robot Arduino

Vehicle based on Arduino: at least 2 servomotors and all the sensors  you want to start. Is easy and cheap, for around 40€/50$70€/97$ you can have the a robot. Ideal for deepening in electronics.

It can be programmed with the friendly Arduino programming environment .

Is the cheapest option and you can go further by buying more components as you go. It not offers as much flexibility and ability to build as Mindstorms vehicles or Bioloid articulated robots, but you can really learn a lot more than it may seem.

.

.

.

And with less money or no money?

For less money, for starters, you can get an Arduino microcontroller or its clones, which cost just over 20 euros/dollars.

Or, completely free of charge, you can start learning to program in C or C + +, which will come very handy to program robots.

Free resources for learning C programming:

C introduction (pdf)

But there are a lot…

C Language Tutorial (html)
How C Programming Works (html)
Several C programming tutorials (html)
… and more from Google

And here you can find free resources for learning C++ programming.

In the next post I will write about a fast comparative between Bioloid, Mindstorms and Arduino based robots and about Arduino programming.

(III) ¿Cómo empezar a construir y programar robots?

This entry is part 3 of 3 in the series (ES) Creando robots

Herramientas de programación de Arduino, Mindstorms y Bioloid

Tanto Lego Mindstorms como Bioloid de Robotis incluyen herramientas de programación gráfica (se utilizan iconos en lugar de únicamente escribir texto) y Arduino utiliza un editor de texto para los programas. Todos ellos permiten crear el ejecutable y enviarlo al controlador.

Entorno Arduino:

Además del entorno de programación donde editar los programas Arduino ofrece un conjunto de librerías que facilitan mucho la utilización de sensores, servos y otros dispositivos. Muchas de estas librerías para modelos de sensores concretos o servos  ya vienen incorporadas, otras se han de incluir manualmente.

En el editor se escribe el programa utilizando C o C++ (dos potentes, flexibles y muy utilizados lenguajes estándares, especialmente en robótica). El entorno de Arduino, tras unas pequeñas transformaciones, lo compila utilizando el compilador avr-gcc o avr-g++, generando el ejecutable que enviaremos al microcontrolador.

Todo lo que aprendemos de C y/o C++ nos será muy útil, pues se puede utilizar con todos los kits, robots, sistemas operativos y computadores. Y estaresmos, además, aprendiendo la forma de trabajar y herramientas habituales en programación.
ArduinoIDE

Lego Mindstorms NXT-G:

Es ideal para familiarizarse con Mindstorms y para pequeños programas, así como para las primeras pruebas que realicemos con un sensor u otro dispositivo nuevo.

Pero es exclusiva para Mindstorms, bastante fácil de utilizar para programas sencillos, pero, a medida que queramos desarrollar programas con un poco de complejidad, iremos descubriendo problemas y limitaciones (búsquedas en el programa, organizar modularmente, depuración de errores, guardar versiones y poderlas comparar)
NXT-G_EV3

Robotis Roboplus Tasks: (la ayuda, de momento, sólo está en inglés)

Se puede decir exactamente lo mismo que para Mindstorms NXT-G: Fácil de utilizar e ideal para empezar o para programas pequeños y pruebas, pero exclusiva para robots de (en este caso) Robotis. Adoleciendo de los mismos defectos, si queremos realizar programas con un mínimo de complejidad nos encontraremos con los mismos problemas.

Sólo añadiría que mi impresión es que está pensada para escribir pequeños programas que recojan los comandos mandados por el telemando y ejecuten las secuencias de movimiento creadas con Roboplus Motion (la otra utilidad básica de Robotis).
RoboplusTaks

¿A qué me refiero con un poco más de complejidad?

Retomando la propuesta de comportamiento del primer artículo de la serie podemos ver una progresión de menos a más complejidad, de forma progresiva.

El típico vehículo que hacemos que evite obstáculos mediante dos sensores de contacto (ultrasonidos o infrarojos), uno a la derecha y otro a la izquierda.

1.- El programa más sencillo simplemente evita los obstáculos girando unos pocos grados a la izquierda cuando detecte una “colisión” en el sensor derecho, y a la izquierda cuando la detecte en el sensor derecho.

2.- Intentar evitar el obstáculo con las mínimas maniobras posibles, dando el mínimo rodeo,  para seguir el rumbo previo.

Pero si el robot se nos acaba situando en un rincón o en un “callejón sin salida” (ha de girar 180 grados o salir marcha atrás) lo más probable es que nunca logre salir por sus propios medios de ahí, ya que irá de “rebotando” del lado izquierdo al derecho y viceversa hasta que se le agoten las baterías…

3.- Añadimos un poco de “inteligencia” y complejidad. En lugar de girar siempre unos determinados grados fijos vamos a hacer que cuando detecte cierta cantidad de colisiones seguidas (en determinada cantidad de milisegundos o segundos) aumente el número de grados que girará, para así acabar consiguiendo que salga del rincón o del “callejón”.

4.- Ahora el problema es que tras salir del rincón o del “callejón” cuando detecte un obstáculo va a girar mucho más de lo necesario. Pues igual que se lo dimos, grados de más a girar, se lo quitamos; a medida que pasan determinados milisegundos o segundos sin detectar colisiones iremos disminuyendo los grados a girar hasta que lleguen al valor inicial.

Realmente sólo estamos utilizando dos sensores de contacto, medición del tiempo y contador de colisiones, pero ya no es ese sencillo programa inicial.

5.- Otro grado de complejidad, o probablemente más de un grado, sería añadir un sensor de luz que hiciera al robot tender hacia la fuente de luz más intensa, evitando los obtáculos del camino, claro.

A partir de este nivel de complejidad creo que utilizar la herramientas NXT-G o Roboplus Tasks requiere más esfuerzo y nos aparecerán más problemas que utilizando lenguajes estándares como Java, C o C++, así como sus herramientas asociadas.

Creo que una buena continuación serían estos artículos de introducción a la programación

(II) ¿Cómo empezar a construir y programar robots?

This entry is part 2 of 3 in the series (ES) Creando robots

Resumen del anterior artículo

Antes de empezar con la programación resumamos las conclusiones del anterior artículo:

1.- Los conocimientos mínimos para empezar a construir un robot los tiene prácticamente todo el mundo o se pueden conseguir muy fácilmente:

+ electrónica o electricidad (aunque sólo sea saber distinguir voltaje e intensidad),

+mecánica (lo mínimo sería atornillar y destornillar o conectar piezas tipo Lego)

+informática (saber ejecutar un programa en un ordenador)

2.- Un kit basado en Arduino, Lego Mindstorms o Bioloid de Robotis es la forma más fácil, divertida y educativa de empezar.

¿Arduino, Mindstorms o Bioloid?

¿Por dónde queremos empezar y qué kit nos lo ofrece?

– Si queremos construir robots articulados que caminen con dos, cuatro o seis patas Bioloid es ideal, especialmente si además queremos centrarnos en programación.

– Si lo que queremos es construir distintos vehículos con ruedas o cadenas, utilizando distintos sensores para percibir el mundo, Lego Mindstorms es la mejor opción.

– Y si queremos centrarnos en la electrónica y/o programación sin gastar demasiado dinero Arduino o un kit basado en Arduino es nuestra mejor opción.

Empecemos por el kit más barato, kit Arduino. Porque, además, lo que aprenderemos con él nos servirá también para otros kits, especial, aunque no únicamente, respecto programación en C y C++.

Kit con base Arduino

Controlador Arduino

Controlador Arduino

Arduino, explicado de forma sencilla, es un controlador programable de sensores y motores, que

Arduino robot

Robot Arduino 66€

podemos utilizar como “cerebro” de un robot. Podemos empezar consiguiendo un controlador Arduino y posteriormente el resto de elementos.

O bien, conseguir el controlador con un kit que incluya ya todos los elementos necesarios para construir un vehículo robot. Con el kit nos aseguramos que motores, sensores y piezas de la

Robot arduino 40€

Robot arduino 40€

estructura encajarán y se conectarán correctamente, probablemente también nos resulte más barato. En cualquiera de ambos casos terminaremos programando el microcontrolador que incorpora Arduino. Pero Arduino no es sólo hardware, es también un conjunto de utilidades que nos facilitarán muchísimo el trabajo de programar. Y existe además una comunidad muy activa de usuarios donde podremos participar recibiendo y dando ayuda a otras personas.

Guía, ejemplos y manual

Existe bastante documentación en castellano, aquí la referencia a las principales sentencias y funciones y este fantástico manual en castellano creado por Ardumanía. Pero aún hay más:

Conceptos básicos y ejemplos

Guía de instalación y ejecución de primer ejemplo para Windows

Bien, ¿y cómo es en programa sencillo con el lenguaje de programación C?, así se hace parpaderar un LED:

/*
   Parpadeo
   Enciende durante un segundo un LED,y lo apaga durante otro segundo, así continuamente
  */

 // Pin 13 está conectado a un LED en la mayoría de Arduinos
 // asignamos en número de conector pin a la variable led:
 int led = 13;

 // la función setup se ejecuta una sola vez cuando pulsas reset
 void setup() {
   // inicializ el conector pin digital como salida.
   pinMode(led, OUTPUT);
 }

 // la función loop (bucle) se ejecuta una vez tras otra contínuamente
 void loop() {
   digitalWrite(led, HIGH);   // enciende LED (HIGH es nivel alto de voltaje)
   delay(1000);               // espera un segundo
   digitalWrite(led, LOW);    // apaga el LED bajando el voltaje; LOW, significa bajo
   delay(1000);               // espera un segundo
 }

¿Y C++? ¿Y las herramientas de programación que incluyen Robotis, RoboPlus Taks, y Lego Mindstorms, NXT-G? También, pero ya será en el siguiente artículo…

%d bloggers like this: