PROGRAMACIÓN ROBONOVA HEBER CRUZ ZURIAN Seminario del Proyecto de Investigación en robótica Humanoide OBJETIVO Se abordarán los siguientes temas: 1. Como se arma el ROBONOVA 2. Como se programa el ROBONOVA 3. Comandos más importantes de robobasic (comunicación serial) MATERIALES • Computadora • Cable USB serial • Cable del puerto que incluye el ROBONOVA • Desarmador de cruz • Todos las piezas para armar el ROBONOVA ROBONOVA-I • Robonova 1 es un nuevo concepto de robot que le permite montar y controlar un robot humanoide como solo se podía hacer hasta ahora en centros avanzados y laboratorios de investigación. • El esqueleto del robot Robonova 1 está formado por los 16 servos digitales que hacen de musculos, unidos por pletinas de aluminio. ARMAR EL ROBONOVA ARMAR EL ROBONOVA ARMAR EL ROBONOVA ARMAR EL ROBONOVA ARMAR EL ROBONOVA ARMAR EL ROBONOVA PROGRAMAR EL ROBONOVA PROGRAMAR EL ROBONOVA PROGRAMAR EL ROBONOVA PROGRAMAR EL ROBONOVA Declaración de variables. • DIM RR AS BYTE • DIM A AS INTEGER PTP SETON.- activa la función para que los servos se activen por grupos PTP ALLON.- activa la función para que los servos se activen todos al mismo tiempo PROGRAMAR EL ROBONOVA Dirección de los servos. DIR G6A,1,0,0,1,0,0 DIR G6B,1,1,1,1,1,1 DIR G6C,0,0,0,0,0,0 DIR G6D,0,1,1,0,1,0 Indica el grupo de servos PROGRAMAR EL ROBONOVA • GOTO.- mueve a una línea especificada GOTO [Line label] • GOSUB.- llama a una subrutina y regresa. La subrutina debe de terminar con un return. GOSUB [line label] .............. [line label]: .............. ............. RETURN PROGRAMAR EL ROBONOVA Comunicación serial. ERX [Port Speed], [Receipt Variables], [Receipt Error Process Label] ETX [Port Speed], [Data] Ejemplo: ERX 9600,A,MAIN1 PROGRAMAR EL ROBONOVA • WAIT.- Hace una pausa hasta que la instrucción anterior se termine de ejecutar. • DELAY.- Hace una pausa por un tiempo determinado en milisegundos Inicializar posición de servos. ZERO G6A,112,101,100,101,101, ZERO G6D,98, ,103,102 ,101, ZERO G6C, , ,90 , ,, ZERO G6B, , ,106 , , , PROGRAMAR EL ROBONOVA standard_pose: SPEED 5 MOVE G6A, 100, MOVE G6D, 100, MOVE G6B, 100, MOVE G6C, 100, WAIT RETURN Velocidad 76, 145, 93, 100, 100 76, 145, 93, 100, 100 30, 80, 100, 100, 100 30, 80, 100, 100, 100 PROGRAMAR EL ROBONOVA Programar el giroscopio Gyro1: GYROSET G6A,0,0,1,1,0,0 GYRODIR G6A,0,0,1,0,0,0 GYROSENSE G6A,0,0,20,20,0,0 GYROSET G6D,0,0,1,1,0,0 GYRODIR G6D,0,0,1,0,0,0 GYROSENSE G6D, 0,0,20,20,0 return PROGRAMAR EL ROBONOVA GOTO AUTO DIM A AS BYTE PTP SETON PTP ALLON MAIN: GYROSET G6A,0,0,0,0,0,0 GYROSET G6D,0,0,0,0,0, ERX 9600,A,MAIN IF A = &H41 THEN GOTO K1 ELSEIF A = &H42 THEN GOTO K2 ELSE GOTO MAIN ENDIF k1: GOSUB gyro1 GOSUB standard_pose GOTO MAIN k2: GOSUB gyro1 GOSUB bow_pose GOTO MAIN Referencias [1] Manual del ROBONOVA [2] Manual de instrucciones de robobasic [3] http://www.robonova.com/main.php