Autor Tema: Prototipo de robot bípedo para la revista ucontrol  (Leído 40208 veces)

HJ

  • Moderador
  • dsPIC
  • ******
  • Mensajes: 5713
Re: Prototipo de robot bípedo para la revista ucontrol
« Respuesta #90 en: Octubre 22, 2011, 10:08:07 am »
Hola MGR y re-bienvenido al foro.
"si te lo dicen se te olvida, si lo lees lo aprendes; pero si lo haces realmente lo entiendes"
"Cuando llegue la inspiración, que me encuentre trabajando" [Pablo Picasso]

Ivan

  • Amigo de uControl
  • PIC16F
  • ******
  • Mensajes: 553
Re: Prototipo de robot bípedo para la revista ucontrol
« Respuesta #91 en: Octubre 22, 2011, 11:02:13 am »
Tanto tiempo...... :azn:
¿Qué es un circuito?
Es un lugar donde hay elefantuitos, caballuitos, payasuitos...

MGR

  • PIC12F
  • **
  • Mensajes: 193
Re: Prototipo de robot bípedo para la revista ucontrol
« Respuesta #92 en: Octubre 22, 2011, 02:24:00 pm »
Hola MGR y re-bienvenido al foro.

Gracias HJ por tu bienvenida, te  lo agradezco mucho.

MGR

  • PIC12F
  • **
  • Mensajes: 193
Re: Prototipo de robot bípedo para la revista ucontrol
« Respuesta #93 en: Octubre 22, 2011, 02:24:34 pm »
Tanto tiempo...... :azn:

Uuufff Ivan para mi ha sido una eternidad no te quiero ni contar.

MGR

  • PIC12F
  • **
  • Mensajes: 193
Re: Prototipo de robot bípedo para la revista ucontrol
« Respuesta #94 en: Octubre 22, 2011, 06:16:29 pm »
Después de la "experiencia" adquirida con las pocas o muchas pruebas que he realizado, frente a los problemas que me iban surgiendo, he descartado bastantes cosas e ideado algunas otras, las cuales aún no las he puesto en practica. En principio y centrándome en el diseño mecánico,  descarto la transmisión en las articulaciones mediante correas dentadas, ya que el costo es mayor y complicado de hacer, por lo menos en los primer prototipo,  en un desarrollo posterior no las descarto, en segundo lugar el potenciometro digital queda también relegado, aunque el problema de la velocidad de movimiento del servo sigue ahí, y es entonces cuando me acuerdo del sistema nervioso de los insectos el cual posee un cerebro, digamos central, y una serie de pequeños seudos cerebros llamados nódulos, bien con ello tendríamos un mejor control del cada servo ya que estos tendría asignado un nódulo, constituido por un 12f629 con el programa de movimiento de 0º a 180º mientras que el cerebro principal estaría formado por un PIC más potente en mi caso las pruebas las realizaría con el 16F84A jajaj para no variar.
el PIC "principal" se dedicaría a mandar dos señales a cada uno de los 12F, una para el movimiento hacia la derecha y otra hacia la izquierda, para que no entendamos, estas señales son pulsos de onda cuadrada que según el programa incluido en cada 12F, cada pulso mueve el servo un grado, dependiendo de la velocidad de la llegada del pulso a este pìc dependerá la velocidad de movimiento del servo y su posicionamiento.

Este es en un principio el programa que llevaría cada PIC 12f el cual esta en este post del foro ASM Mover servo de forma controlada con dos pulsadores de 0º a 180º
Código: [Seleccionar]
;****************************************************************
;control SERVO con dos pulsadores asociados a la entradas RB3 y RB4
;****************************************************************


LIST P=PIC16F84
include "P16F84A.INC"

;ZONAS ETIQUETAS

STATUS EQU 0X03
PORTA EQU 0X05
PORTB EQU 0X06
TMR0 EQU 0x01
INTCON EQU 0x0B
AUX EQU 0X12
PDel0 EQU 0X0C
PDel1 EQU 0X0D
RP0 EQU 0X05


ORG 0X00
goto INICIO
ORG 0X05

;CONFIGURACION DE LOS PINES y el TMR0

INICIO: bsf STATUS,RP0
movlw b'01111000'
movwf PORTB
movlw b'00011111'
movwf PORTA
movlw b'00000011' ;configuración OPTION
movwf OPTION_REG ;preescale 1:16
bcf STATUS,RP0

clrf TMR0 ; inicia registro de timer en 0



movlw d'218'
movwf AUX

YO3
btfss PORTB,3
goto YO10
goto DECR

YO10 btfss PORTB,4
goto YO1
goto INCR


DECR
movlw d'114' ; Carga w con el literal 144 para 180º
xorwf AUX,w ; Compara lo cargado en W con lo que hay en AUX
btfss STATUS,Z ; si la lógica es 1 entonces Z=0 no salta y
decf AUX,f ; decrementa la variable AUX en 1
goto YO1 ; salta a YO1

INCR
movlw d'218' ; Carga w con el literal 218 para 0º
xorwf AUX,w ; Compara lo cargado en W con lo que hay en AUX
btfss STATUS,Z ; si la lógica es 1 entonces Z=0 no salta y
incf AUX,f ; decrementa la variable AUX en 1
goto YO1 ; salta a YO1
;*******************************************************************
;Carga TMR0  para generar el pulso alto 
;*******************************************************************
YO1 bsf PORTB,7
bcf INTCON,T0IF
movf AUX,w ; Mueve el contenido de la variable AUX a W
movwf TMR0 ; Mueve el contenido de W al TMR0


DESC btfss INTCON,T0IF
goto DESC
bcf INTCON,T0IF
goto YO2

;*******************************************************************
;codigo que genera un retardo de 18ms para el pulso bajo
;*******************************************************************
YO2 bcf PORTB,7
movlw   .26        ; 1 set number of repetitions (B)
        movwf   PDel0      ; 1 |
PLoop1  movlw   .172      ; 1 set number of repetitions (A)
        movwf   PDel1      ; 1 |
PLoop2  clrwdt              ; 1 clear watchdog
        decfsz  PDel1,1  ; 1 + (1) is the time over? (A)
        goto    PLoop2    ; 2 no, loop
        decfsz  PDel0,1 ; 1 + (1) is the time over? (B)
        goto    PLoop1    ; 2 no, loop
PDelL1  goto PDelL2         ; 2 cycles delay
PDelL2  clrwdt              ; 1 cycle delay
        goto YO3              ; 2+2 Done
;-------------------------------------------------------------


END
« Última modificación: Octubre 22, 2011, 06:53:29 pm por MGR »

 

anything