fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

Robot evita obstaculos

7 Respuestas
2 Usuarios
0 Reactions
2,240 Visitas
alpha44
Respuestas: 5
Topic starter
(@alpha44)
Active Member
Registrado: hace 15 años

Buenas a todos, antes que nada queria felicitaros por el foro ya que ofreceis mucha ayuda a los que como yo estamos empezando en el mundo de la robotica. Este año voy a cursar segundo de bachillerato y para mi treball de recerca estoy haciendo un robot que siga la luz, que siga lineas y que evite obstaculos. Para evitar obstaculos uso un pic 16f84a y un sensor srf04. Para la placa he utilizado el diseño del tarribot. Llevo mucho tiempo buscando y leyendo pero hay una duda que no he podido solucionar:
Estoy haciendo el programa en assembler y no consigo entender como recibir la información de la distancia y hacer que los motres se paren solo si la distancia es menor que x.

Siento la parrafada y muchas gracias.
Cuando tenga terminado el robot colgare fotos y datos y el programa.

Responder
6 respuestas
alpha44
Respuestas: 5
Topic starter
(@alpha44)
Active Member
Registrado: hace 15 años

alguien puede ayudarme?

Responder
fj_sanchez
Respuestas: 1083
(@fj_sanchez)
Ardero
Registrado: hace 19 años

He encontrado esto haciendo una búsqueda por Google: http://todopic.mforos.com/6510/3074498-medidor-de-distancias-con-srf04-srf08-o-srf10/ " onclick="window.open(this.href);return false;

Si buscas encontrarás mucha más información.
Un saludo y suerte.

Responder
alpha44
Respuestas: 5
Topic starter
(@alpha44)
Active Member
Registrado: hace 15 años

muchas gracias por la respuesta, eso ya lo habia encontrado pero nose como hacer que si la distancia es menos que x se pare y si es mas siga adelante

Responder
fj_sanchez
Respuestas: 1083
(@fj_sanchez)
Ardero
Registrado: hace 19 años

Fácil, una vez que tengas en el registro de trabajo (W) el valor leído del SRF04, lo que tendrás que hacer es restarle tu umbral, después de restar compruebas si el bit 0 del registro de estado (03h,0) está a 0 o a 1, ya que ese bit indica si se ha desbordado o no. Te pongo un ejemplo, imagina que en el registro 12h tengo el valor leído del sensor y que estoy en el banco correcto y que mi umbral es 120 (78h):
...
MOVF 12h,W -- Movemos el dato leído a W
SUBLW 78h -- Le restamos nuestro umbral
BTFSS 03h,0 -- Comprobamos si el bit C de STATUS está a 1, y si es así nos saltamos la siguiente instrucción
CALL 1234 -- Si estaba a 0 llamamos a la rutina que queramos, sino aquí se ejecutará un NOP
...

Esta es solo una forma de hacerlo, también puedes hacerlo al contrario usando BFSC.
Espero que te sirva.

Responder
Página 1 / 2
Compartir: