TODOPIC
Mecatrónica => Robótica => Mensaje iniciado por: alpha44 en 20 de Junio de 2009, 16:59:13
-
.
-
que mas necesito porfbor?
-
Respecto a la electrónica necesitará diseñar un circuito impreso o placa de topos con el microcontrolador, el cristal y el condensador necesario para su funcionamiento si no va a usar el oscilador interno, conectores para unir los servos y el sensor de ultrasonidos a la placa del microcontrolador, un condensador de desacoplo para eliminar el ruido del micro, un regulador de tensión dependiendo del voltaje de su batería con sus respectivos componentes, zócalo para insertar el microcontrolador si no va a implementar un conector de programación en el circuito.
Un ejemplo de un robot muy sencillo para empezar desde cero: http://www.tarribot.com/?id=4&idm=1
Un saludo.
-
Hola.
En que lenguaje programas? ASM, C, Basic, Pascal?
-
.
-
Si faltarte el respeto, te recomiendo que empieces, con un proyecto mas facil y elemental como encender y apagar 1 led.
Desde ahi, te falta un montonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn, para leer un sensor de ultrasonidos y mandar PWM a los servos.
Espero no te caiga mal mi sugerencia, pero es con el mayor de los respetos y la mejor de las intenciones.
-
.
-
Hola.
Como recomendacion: siempre es bueno revisar las bases conceptuales del proyecto antes de iniciar algo, hay veces que nos metemos en lios por suponer.
Respecto a tu proyecto, te recomiendo C como lenguaje de programacion.
Hay otras maneras de hacer esos robots evita-obstaculos sin recurrir a la programacion de micros, se hace por medio de comparadores de voltaje, los sensores en este caso son infrarrojos.
Saludos
-
Yo te recomiendo Mikrobasic y despues pasa al C.
El Mikrobasic tiene muchos tutoriales y es ma facil, el C es para cuando estes mas avanzado. Es mi parecer.
Con respecto de no tirarce atras, de lo unico que no zafas, es de la muerte, hablando todo se arregla. Sino empeñate dedicale mucho tiempo y esfuerzo, todo lo que te propongas lo podes hacer, siempre que no te des por vencido. En este foro hay muchas cosas, a buscar y trabajar. Aqui se te va a ayudar pero nadie va a hacer tu trabajo.
Yo le haria caso a MLO_ y haria un robot sigue lineas con unos CNY70.
-
.
-
Hola alpha44,mi opinion es la misma que Carli que empieces con algo mas facil, pero si te quieres hacer una idea hay va un codigo en ASM copiado de Microsystems Engineering.
;***************************************************************************************
; ESCAPADA
;
; Autor: Mikel Etxebarria Isuskiza
; (c) Ingeniería de Microsistemas Programados S.L.
; Bilbao 2002
;
;El microbot trata de alejarse de cualquier objeto que trata de acercarse, bien por delante,
;como por detras. Para ello, el objeto se detecta empleando los dos sensores delanteros
;(RB4-RB5) y de los dos traseros (RB6-RB7).
list p=16F877 ;Tipo de procesador
include "P16F877.INC" ;Definición de registros internos
include "DEFINIR.INC" ;Definición de sensores
Temp equ 0x20 ;Variable temporal
org 0x05
goto Inicio
include "MACROS.INC" ;Definición de macros
Inicio clrf PORTA ;Desconectar motores
clrf Status_motores ;Borrar flags de movimiento
bsf STATUS,RP0 ;Selecciona banco 1
movlw b'00000110'
movwf ADCON1 ;Puerta A es digital
movlw b'11010001'
movwf TRISA ;RA4-RA0 entrada, resto salidas
movlw b'11000000'
movwf OPTION_REG
movlw 0xff
movwf TRISB ;Puerta B entrada
bcf STATUS,RP0 ;Selecciona banco 0
;Bucle principal de movimiento
Loop clrwdt
movf PORTB,W
iorlw b'00001111'
movwf Temp ;Leer las entradas RB4-RB7
movlw b'11001111'
iorwf Temp,W
sublw b'11001111'
btfsc STATUS,Z ;Están activados sensores delanteros (RB4-RB5)??
goto Esc_atras ;Si, escapada hacia atrás
btfss Sen_de_izdo ;Está activado el sensor delantero izdo. (RB4)??
goto Esc_at_dcha ;Si, escapada hacia atrás/derecha
btfss Sen_de_dcho ;Está activado el sensor delantero dcho. (RB5) ??
goto Esc_at_izda ;Si, escapada hacia atrás/izquierda
movlw b'00111111'
iorwf Temp,W
sublw b'00111111'
btfsc STATUS,Z ;Están activados sensores traseros (RB6-RB7)?
goto Esc_adelan ;Si escapada hacia adelante
btfss Sen_tr_izdo ;Está activado el sensor trasero izdo. (RB6)??
goto Esc_ad_dcha ;Si, escapa hacia adelante/derecha
btfss Sen_tr_dcho ;Está activado el sensor trasero dcho. (RB7)??
goto Esc_ad_izda ;Si, escapada hacia adelante/izquierda
Parar Stop
goto Loop ;No hay ningún objeto cercano.Detener el robot
Esc_atras btfsc M_atras ;Se está moviendo hacia atrás ??
goto Loop ;Si
Atras ;No, movimiento hacia atras
goto Loop
Esc_adelan btfsc M_adelante ;Se está moviendo hacia adelante ??
goto Loop ;Si
Adelante ;No, movimiento hacia adelante
goto Loop
Esc_at_dcha At_dcha ;Movimiento atras/derecha
goto Loop
Esc_at_izda At_izda ;Movimiento atras/derecha
goto Loop
Esc_ad_dcha Ad_dcha ;Movimiento adelante/derecha
goto Loop
Esc_ad_izda Ad_izda ;Movimiento adelante/izquierda
goto Loop
end
Espero haberte ayudado aunque sea poco.
Saludos y no te rindas.
-
Muchas gracias a todos por las respuestas.
Mi robot ya va tomando forma.
Ahora estoy en la fase final y me queda programar el pic y me han surgido dos dudas.
La primera que no tiene que ver con la programación es como se conectaria el sensor de ultrasonidos srf04 a una placa como la del tarribot.
Mi otra pregunta es que lenguaje seria mas facil para lo que quiero hacer, estoy empezando a aprender asm pero mirando ejemplos aveces me resulta mas facil de entender c. cual es mas facil para un principiante?
-
.
-
Hola alpha44,la configuracion de los pines la defines tu,si estan a 0 los pines seran salida y si estan a 1 seran entrada.
Por ejemplo:
movlw b'00001111'
movwf TRISB ;Asi tendriamos que los bits RB0-RB3 entradas el resto salidas.
Saludos.
-
.
-
Hola de nuevo, el criterio a seguir tambien lo decides tu, siempre y cuando tengas en cuenta que hay pines con funciones especificas.Lo mismo da que los pines de la puerta A los uses para conectar los sensores en este caso los tendrias como entradas, y en la puerta B conectes los motores que los tendrias como salida,como si los sensores los conectas a la puerta C.
Yo personalmente prefiero conectar los motores en la puerta B, porque de esta manera no tengo que preocuparme de las resistencias pull-up al ser pines de colector abierto.
Saludos.
-
Hola otra vez, se me ocurre que podria echarte una mano con lo del bot de la siguiente manera:
Dame tiempo hasta la tarde porque en estos momentos estoy trabajando y me daran un tiron de orejas, :D te prestare uno de los primeros programas para bot que hice y te lo explicare instruccion por instruccion lo mejor que sepa, pero como todo tiene un precio tienes que prometer que lo modificaras a tu gusto,por ejemplo un buzzer que emita un pitido cuando cambia de direccion,unos leds que se enciendan cuando oscurece ,etc etc. Y debes postearlo en el foro para que lo veamos no vale con decir que lo haras,tenemos que ver el resultado. :mrgreen: :mrgreen:
PD: Que malo que soy.
Saludos.
-
.
-
Hola alpha44, siento haber tardado tanto pero el internet no me funcionaba.
Lo prometido es deuda:
; El recorrido se inicia al accionar cualquiera de los bumpers.
; Si durante el recorrido los bumpers detectan cualquier obstaculo frontal,el BOT,retrocede,se
; detiene durante 0,5" y vuelve a intentarlo.
LIST P=16F84A ;Se indica el tipo de procesador
INCLUDE "P16F84A.INC" ;Incluimos la definicion de los registros
#define SD PORTB,0 ;Sensor derecho
#define SI PORTB,1 ;Sensor izquierdo
; Con estos dos #define lo que hacemos es que cada vez que tengamos que llamar a un sensor no necesitamos
; recordar en que Puerto o en que bit lo tenemos conectado.
Temp_1 equ 0x0c ;Nombre de la variable donde vamos a almacenar
;la temporizacion la cual se guarda en el reg 0x0c
org 0x00
goto Inicio ;Saltamos a la etiqueta inicio,donde empieza el programa.
;Aqui pondriamos el vector de interrupcion si fuera necesario,
;el cual seria org 0x04.
org 0x05
; Rutina de temporizacion la cual temporiza 50ms tantas veces como indique la variable Temp_1.
Delay50ms movwf Temp_1
Delay50ms_2 bcf INTCON,2 ;Borramos el flag TOIF
movlw 0x3c
movwf TMR0 ;Cargamos el complemento de 195 en el TMR0.
Delay50ms_1 btfss INTCON,2 ;Exploramos si el TMR0 se ha desbordado.
goto Delay50ms_1 ;Todavia no.
decfsz Temp_1,F ;Decrementamos la variable Temp_1
goto Delay50ms_2 ;Todavia no es 0
return ;Ahora si,con esta instruccion volvemos donde lo habiamos dejado.
Inicio ;Aqui empezamos el programa,configuramos los bits de salida y entrada
;el TMR0, etc.
clrf PORTA ;Borramos los bits de la puerta A
bsf STATUS,RP0 ;Seleccionamos la pagina 1.
movlw b'00010000'
movwf TRISA ;Configuramos los bits como salidas o entradas,en este caso tenemos
;RA0-RA3 salidas,RA4 entrada.
movlw b'11111111'
movwf TRISB ;Puerta B todo entradas.
movlw b'11010111' ;Preescaler de 256 para el TMR0.
movwf OPTION_REG
bcf STATUS,RP0 ;Seleccionamos la pagina 0.
bcf INTCON,GIE ;Desabilitamos las interrupciones.
; Ahora esperamos que se accione alguno de los dos bumpers.
Wait clrwdt
clrf PORTA ;Situacion inicial de parada.
btfss SD ;Sensor derecho en ON??
goto Avanza ;Si,empieza a caminar.
btfsc SI ;Sensor izquierdo en ON??
goto Wait
;Bucle principal
Avanza clrwdt
btfsc SD ;Sensor derecho ON??
goto No_Obstaculo
btfsc SI ;Sensor izquierdo ON??
goto No_Obstaculo
Atras movlw b'00001110
movwf PORTA
btfss SD
goto Atras
btfss SI
goto Atras
clrf PORTA
call Delay50ms
goto Avanza
No_Obstaculo btfsc SD ;Ha salido por la izquierda?
goto No_Izq ;No
movlw b'00001100'
movwf PORTA ;Si,movimiento a la derecha.
goto Avanza
No_Izq btfsc SI ;Ha salido por la derecha?
goto No_Dcha
movlw b'00001111'
movwf PORTA
goto Avanza
No_Dcha movlw b'00001101'
movwf PORTA
goto Avanza
END
-
.
-
Referente a los sensores de ultrasonidos se conectan de diferente manera, y es un poco mas dificil su programacion, dale una ojeada a este programa que usa un sensor como el tuyo y lo que no entiendas preguntalo.
;********************************** Sensor_ Ultrasonido_01.asm **************************
;
; ===================================================================
; Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS"
; E. Palacios, F. Remiro y L. López. www.pic16f84a.com
; Editorial Ra-Ma. www.ra-ma.es
; ===================================================================
;
; Programa para un medidor de distancias hasta un objeto utilizando sensor por ultrasonido SRF04.
;
; Para el control del sensor en primer lugar se genera un pulso de 10 µs a nivel alto por la
; línea RA3 que se conecta a la entrada de disparo del sensor. Seguidamente se espera a que en el
; sensor se ponga un nivel alto en la salida ECO que se conecta a la línea RA4 y se utilizan las
; interrupciones por desbordamiento del Timer 0 para medir el tiempo que está en alto el pulso.
; Seguidamente se visualiza en el módulo LCD el valor de la distancia hasta el objeto expresada en
; centímetros.
;
; Por cada centímetro de distancia al objeto el SRF04 aumenta 60 µs la anchura del pulso.
; En este programa la distancia mínima es 3 cm y la máxima 250 cm.
;
; ZONA DE DATOS **********************************************************************
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
LIST P=16F84A
INCLUDE <P16F84A.INC>
CBLOCK 0x0C
Distancia ; Se expresará en centímetros.
ENDC
#DEFINE Disparo PORTA,3 ; Disparo para iniciar la medida.
#DEFINE Eco PORTA,4 ; Pulso cuya anchura hay que medir.
MinimaDistancia EQU .3
MaximaDistancia EQU .250
TMR0_Carga60micros EQU -d'27' ; Valor obtenido experimentalmente con la
; ventana Stopwatch para una interrupción del
; Timer 0 cada 60 µs. Si no mide correctamente por las tolerancias de los componentes habrá
; que hacer un ajuste fino de este valor, comprobándolo sobre las condiciones reales.
;
; ZONA DE CÓDIGOS ********************************************************************
ORG 0
goto Inicio
ORG 4
goto ServicioInterrupcion
Mensajes
addwf PCL,F
MensajeDistancia
DT " Distancia: ", 0x00
MensajeCentimetro
DT " cm", 0x00
MensajeDistanciaMenor
DT "Dist. MENOR de:", 0x00
MensajeDistanciaMayor
DT "Dist. MAYOR de:", 0x00
Inicio
call LCD_Inicializa
bsf STATUS,RP0
bcf Disparo
bsf Eco
movlw b'00000000' ; Prescaler de 2 para el TMR0.
movwf OPTION_REG
bcf STATUS,RP0
bcf Disparo ; Inicializa línea de disparo en bajo.
Principal
clrf Distancia ; Inicializa el registro.
bsf Disparo ; Comienza el pulso de disparo.
call Retardo_20micros ; Duración del pulso.
bcf Disparo ; Final del pulso de disparo.
Espera_Eco_1
btfss Eco ; Si ECO=0, espera el flanco de subida de la señal
goto Espera_Eco_1 ; de salida del sensor.
movlw TMR0_Carga60micros ; Ya se ha producido el flanco de subida.
movwf TMR0 ; Carga el Timer 0.
movlw b'10100000' ; Autoriza interrupción del TMR0 (T0IE).
movwf INTCON
Espera_Eco_0
btfsc Eco ; Espera flanco de bajada de la señal de la salida
goto Espera_Eco_0 ; del SRF04.
clrf INTCON ; Se ha producido el flanco de bajada. Prohíbe interrup.
call Visualiza ; Visualiza la distancia.
call Retardo_2s ; Espera un tiempo hasta la próxima medida.
Fin goto Principal
; Subrutina "ServicioInterrupcion" ------------------------------------------------------
;
; Se ejecuta debido a la petición de interrupción del Timer 0 cada 60 µs que es el incremento
; de la anchura de pulso por centímetro de distancia medido. La variable "Distancia" contiene el
; valor de la distancia expresada en centímetros.
;
ServicioInterrupcion
movlw TMR0_Carga60micros ; Carga el Timer 0.
movwf TMR0
movlw .1 ; Se utiliza instrucción "addwf", en lugar de "incf"
addwf Distancia,F ; para posicionar flag de Carry.
movlw MaximaDistancia ; En caso de desbordamiento carga su máximo valor.
btfsc STATUS,C
movwf Distancia
bcf INTCON,T0IF
retfie
; Subrutina "Visualiza" -----------------------------------------------------------------
;
; Visualiza la distancia expresada en centímetros. Se hace de manera que cuando haya que
; visualizar un número mayor de 99 las decenas siempre se visualicen aunque sean cero.
; Y cuando sea menor de 99 las decenas no se visualicen si es cero.
;
; Si la distancia es menor de 3 cm o mayor de 250 cm aparece un mensaje de error.
;
Visualiza
call LCD_Borra ; Borra la pantalla anterior.
movlw MinimaDistancia ; Va a comprobar si es menor del mínimo admisible.
subwf Distancia,W ; (W)=(Distancia)-MinimaDistancia
btfss STATUS,C ; ¿C=1?, ¿(W) positivo?, ¿(Distancia)>=MinimaDistancia?
goto DistanciaMenor ; No ha resultado menor, y salta al mensaje de error.
movf Distancia,W ; Va a comprobar si es mayor del máximo admisible.
sublw MaximaDistancia ; (W)=MaximaDistancia-(Distancia)
btfsc STATUS,C ; ¿C=0?, ¿(W) negativo?, ¿MaximaDistancia<(Distancia)?
goto DistanciaFiable ; No, la medida de la distancia entra dentro del rango.
;
DistanciaMayor
movlw MaximaDistancia ; La distancia es mayor que el máximo.
movwf Distancia
movlw MensajeDistanciaMayor
goto VisualizaDistancia
;
DistanciaMenor
movlw MinimaDistancia ; La distancia es menor del mínimo fiable.
movwf Distancia
movlw MensajeDistanciaMenor
goto VisualizaDistancia
DistanciaFiable
movlw MensajeDistancia
VisualizaDistancia
call LCD_Mensaje
movlw .5 ; Centra la medida de la distancia en la segunda línea
call LCD_PosicionLinea2 ; de la pantalla.
movf Distancia,W
call BIN_a_BCD ; Lo pasa a BCD.
movf BCD_Centenas,W ; Primero las centenas.
btfss STATUS,Z ; Si son cero no visualiza las centenas.
goto VisualizaCentenas
movf Distancia,W ; Vuelve a recuperar este valor.
call BIN_a_BCD ; Lo pasa a BCD.
call LCD_Byte ; Visualiza las decenas y unidades.
goto Visualiza_cm
VisualizaCentenas
call LCD_Nibble ; Visualiza las centenas.
movf Distancia,W ; Vuelve a recuperar este valor.
call BIN_a_BCD ; Lo pasa a BCD.
call LCD_ByteCompleto ; Visualiza las decenas (aunque sea cero) y
Visualiza_cm ; unidades.
movlw MensajeCentimetro
call LCD_Mensaje
return
INCLUDE <RETARDOS.INC>
INCLUDE <LCD_4BIT.INC>
INCLUDE <LCD_MENS.INC>
INCLUDE <BIN_BCD.INC>
END
Te dejo un link para que veas como funciona.
http://www.robot-electronics.co.uk/htm/srf04tech.htm
-
.
-
Perdona por no haberme expresado bien,lo digo en el sentido de que no es como un interruptor que su estado es abierto o cerrado,si no que necesitas generar unos pulsos de una duracion x y luego leer por el receptor las señales recibidas.
Saludos y animo.
-
.
-
.
-
Me gusta, vas aprendiendo, al final terminaras dandome clases a mi, la electronica es la correcta me refiero al segundo esquema el que usa el sensor que tu tienes, solo dos cosas:
- Recuerda que puedes usar cualquiera de los pines de los puertos, en el esquema se usa el puerto A pero podrias usar el puerto B.
- Una cosa que no hemos comentado es la alimentacion, te aconsejo que separes lo que es la electronica de los motores para evitar interferencias en el pic o en el sensor.
Estoy impaciente por ver las fotos. :-/ :-/
-
.
-
http://picmania.garcia-cuervo.net/proyectos_aux_srf04.php
Aqui una excelente explicacion, como siempre, de Don Diego, el programa esta en C pero creo que os puede ayudar.
tapi8
-
Hola alpha44 (metiendome un poco al post) el sensor ultrasonico lo que hace es enviar un "sonido" y esperar el revote del mismo para asi poder calcular la distancia ya que Velocidad = Distancia / Tiempo de ahi sacas las medidas , ahora respecto al SRF04 si no me equivoco el pulso que tienes que enviar de la salida del pic a el Trigger del SRF04 no debe ser menor a 10us.
Ahora respecto al programa... sinceramente veo muy dificil que puedas manejar un sensor ultrasonico con lenguaje ASM siendo este tu primer proyecto en programacion. Hace unos meses yo realize un programa para verificar el buen estado de un SRF05 que es muy similar al tuyo estoy casi seguro que te servira pero mi proyecto esta echo en PicBasic , de cualquier forma te dejo el programa espero y te ayude en algo.
Include "modedefs.bas" ' Include serial modes
trisa = %00000000 ' set porta to outputs
trisb = %00001000 ' set portb pin 3 to input
lcd var PORTA.3 ' define variables and constants
piezo var PORTB.4
trigger var PORTB.2
echo var PORTB.3
left_led var PORTB.0
right_led var PORTB.1
baud con N2400
dist_raw var word
dist_inch var word
dist_cm var word
conv_inch con 15
conv_cm con 6
low trigger ' set trigger pin to logic 0
low left_led ' turn off left LED
low right_led ' turn off right LED
Serout lcd,baud,[254,1] ' clear lcd screen
pause 1000 ' give time to initialize lcd
Serout lcd,baud,[254,128,"- Sonar Ranger -"] ' display program title on the LCD
sound piezo,[100,10,50,5,70,10,50,2] ' Make startup sound
pause 1000 ' wait for 1 second
Serout lcd,baud,[254,128,"inches: "] ' set up the LCD display
Serout lcd,baud,[254,192,"centimeters: "]
main:
gosub sr_sonar ' get sonar reading
if dist_cm <= 100 then call LED
IF dist_cm >100 then call APA
Serout lcd,baud,[254,135,#dist_inch," "] ' display the distance in inches
Serout lcd,baud,[254,204,#dist_cm," "] ' display the distance in centimeters
Goto main
LED:
high PORTB.0
RETURN
APA:
low PORTB.0
RETURN
end
sr_sonar:
pulsout trigger,1 ' send a 10us trigger pulse to the SRF04
pulsin echo,1,dist_raw ' start timing the pulse width on echo pin
dist_inch = (dist_raw/conv_inch) ' Convert raw data into inches
dist_cm = (dist_raw/conv_cm) ' Convert raw data into centimeters
pause 1 ' wait for 10us before returning to main
return
Lo unico que tendrias que modificar seria las condisiones y la llamada del LED ( que ahi podrias poner los motores) no esta demas decirte que las condiciones vienen con una division que te permite poner la distancia en cm , por ejemplo yo tengo ahi 100cm.
Cualquier duda que tengas espero futuramente poder aclararla.
Saludos
PD: Disculpen si me equivoque en algo
-
.
-
Hola alpha44 , me alegra saber que te sirvio de algo mi aportacion y respecto a lo que me dises....si se conecto algo y es de vital importanci en todos los diagramas jejeje , mira donde dise VCC se refiere a 5 vdc y donde dise gnd se conecta la "tierra" de la fuente con la que estas alimentando el circuito con tierra me refiero ala terminal negativa.
Mucha suerte con tu proyecto
Saludos desde México :-/
-
.
-
.
-
VCC positivo y GND negativo, en este caso supongo que de 12V.
para el emisor de ultrasonidos si "bsf PORTB,1" tienes que configurar ese pin como salida al principio del programa ponerlo a 0
tapi8
-
.
-
.
-
Hola de nuevo alpha44, mira el primer error que veo es al declarar las variables de temporizacion, y es que las estas guardando en el mismo registro las tres
(EQU 0CH) y esto no es la manera correcta de hacerlo.
Se resuelve de la siguiente manera:
CBLOCK H'20'
PDel0
PDel1
PDel2
ENDC
Dicho trozo de codigo indica que empiezas a almacenar el valor de la primera variable en la direccion H'20' y el resto van correlativas, o podrias hacer lo mismo pero sin el H'20' y guardarias la primera variable en la primera direccion libre que tuvieras.
Lo siento pero me tengo que ir a una urgencia en el trabajo cuando pueda terminare de ojear el programa. :x
Saludos Miquel_S
-
.
-
Hola de nuevo, siento llegar tarde a la solucion pero he tenido problemas con una averia en el curro y francamente despues del trabajo lo que menos tenia eran ganas de estar delante del ordenador.
Pero de todas formas sigamos y lo sabras para la proxima:
1º Al poner el INCLUDE <P16F84A.INC> no es necesario que declares los registros STATUS,PORTA,TRISA PORTB,TRISB ni ningun otro ya que lo haces al poner el INCLUDE.
2º La forma correcta de empezar es:
ORG 0X00
goto Inicio ;Va a la primera instruccion del programa
;Aqui pondrias el vector de interrupcion 0X04 se usa cuando tienes interrupciones
ORG 0X05 ;Salta el vector de interrupcion
3º Referente a las macros del movimiento de las ruedas no puedo decirte si las tienes bien porque no se como tienes conectados los motores
Saludos y lo siento.
Miquel Servera
-
.
-
Algunos mensajes han sido eliminados por el usuario Alpha44. Aquí queda el tema completo por si algún usuario lo requiere.
Adjunto a este mensaje: páginas 1 y 2 del tema.
http://www.4shared.com/file/143768996/16bd6830/Robot_evita_obstculos.html
-
:shock:
-
Yo tambien estoy :shock: despues de haber ayudado en el proyecto. :mrgreen:
PD:No es que me arrepienta de nada pero no entiendo el porque ha quitado los post's.
Miquel_S