Conexión serial a la placa Icaro

La placa Icaro nos ofrece una gran cantidad de beneficios como una placa autónoma. Pero también podemos sacar provecho de su conexión serial. Tortucaro es la herramienta que nos permite esto.

Para ello debemos ubicar el icono de tortucaro en la ventana de icaro y hacer click en él. Luego hacemos click en compilar. Finalmente hacemos click en Cargar. Oprimimos el botón de reset en la placa y nos debe decir que la carga fue exitosa. En la versión de desarrollo, todo esto es más breve, varios pasos redundante se eliminan, pero la lógica es la misma.
botones_icaro
Si este es el primer intento usando tortucaro, podemos querer hacer algunas pruebas. El primer paso es confirmar que existe la conexión con la placa. Desde la terminal usamos el comando ls /dev/ttyA* nosotros esperamos que la respuesta incluya que dentro de los dispositivos existe /dev/ttyACM0

Posiblemente el programa de comunicación serial más simple de usar es cutecom. Lo mas seguro es que no lo tengan instalado, asi que pueden usar la interfaz gráfica o un comando como
su -c «yum install cutecom»

Al iniciar cutecom enviará un aviso que no logro conectar con el puerto /dev/ttyS0, lo cual es lógico porque seguramente no tienen nada conectado a un puerto serial o incluso no tiene puerto seriales en la computadora. Asi que en la parte superior debemos configurar dispositivo o device a /dev/ttyACM0 y luego hacer click en el botón abrir dispositivo o open device. Si no hay malas noticias, son buenas noticias.
cutecom
El programa tiene tres áreas de texto, de arriba hacia abajo, respuesta del dispositivo, historico de comandos enviados al dispositivo y entrada o input. Nos colocamos en input y escribimos «b» y damos enter. En la ventana de respuesta dirá «icaro USB 02»

Si tenemos un servo podemos usar comando como m1! (mover servo del puerto uno al valor ascii 33) o bien puede escribir m1Ñ (mover servo del puerto uno al valor ascii 126) Puede buscar una guia de valores ascii

Ahora que ya saben como es el asunto de la comunicación serial y han comprobado que funciona, pueden hacer algunas cosas más intersantes. Por ejemplo les comparto un pequeño programa de python escrito por Valentin Basel

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# servo.py
#
# Copyright 2014 valentin basel
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
#
#

import apicaro
import time
icaro=apicaro.puerto()

icaro.iniciar()
for a in range(3):
icaro.activar_servo(1,1)
time.sleep(1)
icaro.activar_servo(1,255)
time.sleep(1)