Mecanismo Theo Jansen (araña)

MECANISMO DE THEO JANSEN CONTROLADO POR MEDIO DE MÓDULOS XBee

INTEGRANTES
Manuel Ramírez – Johan Parada – Jordán Carrillo

Descripción

La finalidad de este proyecto consiste en una araña robótica, que va a estar diseñada para evitar obstáculos y caminar en varias direcciones, donde se implementaran modulos Xbee que permite una comunicación simple y confiable entre Microcontroladores, por otro lado será posible manipular el motor del robot, para retroceder o avanzar, esto será posible gracias al editor IDE MPLAB donde se creara la programación adecuada para el microchip.

Objetivo

Construir una araña mecatrónica, la cual será capaz de evadir objetos u obstáculos que se le pongan enfrente, donde la característica principal del mecanismo es la implementación de la comunicación, por medio de radiofrecuencias mediante el uso de módulos Xbee, que sea controlado por Microcontroladores logrando direccionalidad en el mecanismo.

Funcionalidad

El mecanismo tendrá un control mediante sensores que pondrán en marcha el funcionamiento de los actuadores siendo estos, moto-reductores, transmitiendo movimiento a las articulaciones. Gracias a los Microcontroladores y los módulos Xbee el sistema tendrá direccionalidad. La araña en caso de encontrar obstáculos o de ordenar el cambio de su trayectoria invertirá el giro de los motores. Este será un prototipo para un mecanismo de exploración, donde el humano tenga limitaciones espaciales o arriesgue su bienestar.

Descripción del mecanismo

Este mecanismo está formado por 7 sólidos, de los cuales 5 articulaciones y 2 áreas fijas, como se muestra en la siguiente tabla; debe notarse que el eje al cual está adherido el motor se encuentra en el punto O, además el punto C es fijo y va con el punto O alineados en lo que puede llamarse el chasis o cuerpo del animal o mecanismo. Por otro lado Este mecanismo hace que sus medidas no puedan ser cualesquiera, sino que han de ser prácticamente la escala original; aunque permite pequeñas modificaciones para optimizar la trayectoria del punto G en función de los pasos de la máquina.

4.gif

Prototipo simulado

En el siguiente video se aprecia el mecanismo simulado en geogebra el cual es muy simple y aun así estimula la imaginación por los movimientos que realiza.

Mecanismo Theo Jansen

  • Diseño piezas CATIA.
thump_9373979base.png
Base
thump_9373987hombro.png
Hombro
thump_9373988pata.png
Pata
thump_9373991soporte-1.png
Soporte 1
thump_9373992soporte2.png
Soporte 2
thump_9373994rueda.png
Rueda motor
thump_9373995motor.png
Motor
thump_9373997guachas.png Guachas
thump_9373999exosivo-1.png
Explosivo

Control del mecanismo

  • PIC 18F4550

Un controlador es un dispositivo electrónico encargado de, valga la redundancia, controlar uno o más procesos. Al principio, los controladores estaban formado exclusivamente por componentes discretos. Más tarde, se emplearon procesadores rodeados de memorias, circuitos E/S,… sobre una placa de circuito impreso. Actualmente, los controladores integran todos los dispositivos antes mencionados en un pequeño chip. Esto es lo que hoy conocemos con el nombre de Microcontrolador.

pic184550-1.jpg
images?q=tbn:ANd9GcRT67vQ7jVnOHwWaiyrXPnHMfEvvqS-JsVXry40vv6sdWYC8ERQ
  • Sensor de distancia por ultrasonido HC- SR04
El HC-SR04 es un sensor de distancias por ultrasonidos capaz de detectar objetos y calcular la distancia a la que se encuentra en un rango de 2 a 450 cm. El sensor funciona por ultrasonidos y contiene toda la electrónica encargada de hacer la medición.
images?q=tbn:ANd9GcTlI0I4OatUDWauj6uSX11Ats_PohMAyNAqabtr-kKmAHeaG__D5g
  • Código Fuente
#include <18F4550.h>
#FUSES XT,NOWDT,NOPROTECT,PUT,NOBROWNOUT,NOLVP     
#use delay(clock=4000000)
 
#include <lcd.c>
 
int16 distancia, tiempo;
#define trig pin_B1
#define echo pin_B0
#USE standard_io(b)
 
void main()
{
   lcd_init();                             
printf(LCD_PUTC, "\f Iniciando.");
delay_ms(500);
printf(LCD_PUTC, "\f Iniciando..");
delay_ms(500);
printf(LCD_PUTC, "\f Iniciando...");
delay_ms(500);
 
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
 
while(1)
{
output_high(trig);                   
delay_us(20);                       
output_low(trig);
while(!input(echo))                     
{}
set_timer1(0);                         
while(input(echo))                     
{}
tiempo=get_timer1();
distancia=(tiempo*10)/(58.0);
printf(LCD_PUTC, "\fTiempo :%Lu \nDistancia = %Lu",tiempo,distancia);
delay_ms(500);
}
}
  • Motor paso a paso
mt55si25d.jpg
  • Código Fuente

Control de la velocidad de los dos motores del mecanismo.

#include <18F4550.h>
#use delay(clock=20000000)
#fuses NOWDT,NOPROTECT,NOLVP,NODEBUG,PUT
int retardo=50;
 
void main()
{ 
SET_TRIS_D( 0x00 );
set_TRIS_C ( 0xff);
 
loop: 
 
if(input(PIN_C0)==0){
 
output_D(0x01);
delay_ms(retardo);
output_D(0x02); 
delay_ms(retardo);
output_D(0x04); 
delay_ms(retardo);
output_D(0x08); 
delay_ms(retardo);
 
}
 
if(input(PIN_C1)==0){
retardo = retardo +10;
}
if(input(PIN_C2)==0){
retardo = retardo -10;
}
 
goto loop;
}
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License