Robótica

27
Robótica Introducción a los μcontroladores

Transcript of Robótica

Page 1: Robótica

RobóticaIntroducción a los µcontroladores

Page 2: Robótica

Definición

• Un µcontrolador es un pequeño ordenador integrado en un chip.

• Básicamente consta de:

• CPU (Unidad de central de procesamiento)

• Memoria del programa y de datos

• Puertos de Entrada y Salida

• Temporizadores

• El microprocesador es un circuito integrado digital que puede

programarse con una serie de instrucciones, para realizar

funciones específicas con los datos

Page 3: Robótica

Arquitectura del PICAXE08M

• Consta de 8 patillas

• 1 = V+ 8=0V (Alimentación)

• 2 = Serial IN

• 3 = IN4/OUT4 4 = IN3

• 5 = IN2/OUT2 6 = IN1/OUT1

• 7 = OUT0

Page 4: Robótica

Programación

• Para programar usaremos el lenguaje BASIC mediante el Picaxe Programming Editor

• Y la versión Flowchart para programar mediante diagramas de flujo. Usaremos preferentemente esta ya que es más fácil de entender los diagramas de flujo

• El µcontrolador, interpreta el programa:

• Evalúa las entradas

• Lee las variables

• Hace los cálculos

• Envía los datos a las salidas

Page 5: Robótica

Flowchart - >Basic

• Una vez que tenemos el Diagrama de flujo en flowchartpodemos obtener el código basic:

• PICAXE -> Convertir Flowchart to BASIC

Page 6: Robótica

Activar una salida

• Activar la salida 0 Presionar ->

High 0

Activar la salida 1

High 1 Cambiar 0 por

Page 7: Robótica

Desactivar una salida

• Se sigue el mismo proceso que para activarlas

Desactivar la salida 0

Low 0

Desactivar la salida 1

Low 1

Page 8: Robótica

Bascular una salida

• Mediante la orden toggle n, basculamos una salida n. Es decir si vale 1 la ponemos a 0 y viceversa

Bascular la salida 0

Toggle 0

Page 9: Robótica

Tiempos de espera

• Espera 5 sg Presionar

wait 5

Espera 1000 ms = 1sg

Pause 1000

Page 10: Robótica

Programa 1

• Vamos a diseñar un programa para que:

• Inicio

• Activar 0

• Espera 1 sg

• Apagar 0

• Espera 1 sg

• Vuelve a inicio

Page 11: Robótica

Programa 2

• LED 1 : Out 0

• LED 2 : Out 1

• Programa para que encienda los LED 1 y 2 durante 1 sg. Los apague durante 1 sgy vuelva al principio

Page 12: Robótica

Evaluar las entradas

• Si tenemos conectado un pulsador NA a IN2. El sistema estará esperando a que se presione. Mientras no se presione valdrá «N» y cuando se presione valdrá «Y»

• Se presiona el bloque

Y se elige el bloque

Page 13: Robótica

Evaluar una entrada

• Conectaremos N a la entrada. Es decir estará en un bucle cerrado a la espera de que se pulse:

• Pin2 =1 entonces valdrá Y se ejecutará el código correspondiente

Label_11:If pin2 = 1 then goto label_12Goto label_11

Label_12:

Page 14: Robótica

Programa 3

• Inicio• Apagar OUT 0, 1• Esperar a que se pulse IN2• Si se pulsa IN2

• Activar 0• Espera 0,8 sg• Apagar 0• Espera 0,8 sg• Activar 1• Esperar 0,8 sg• Apagar 1• Esperar 0,8 sg• Volver a esperar que se pulse IN2

Page 15: Robótica

Programa 3

Page 16: Robótica

Evaluar 2 entradas IN2 O IN3

Iabel_11:

If pin2 = 1 OR pin3 =1 then goto label_12

Goto label_11

Label_12:

Page 17: Robótica

Programa 4

• Inicio• Apagar OUT 0, 1• Esperar a que se pulse IN2 o IN3• Si se pulsa IN2

• Activar 0• Espera 0,8 sg• Apagar 0• Espera 0,8 sg• Activar 1• Esperar 0,8 sg• Apagar 1• Esperar 0,8 sg• Volver a la espera de pulsar IN2 o IN3

Page 18: Robótica

Programa 4

Page 19: Robótica

Evaluar 2 entradas IN2 Y IN3

Iabel_11:

If pin2 = 1 AND pin3 =1 then goto label_12

Goto label_11

Label_12:

Page 20: Robótica

Programa 5

• Inicio

• Esperar a que se pulse IN2 Y IN3

• Si se pulsa IN2 y IN3

• Activar 0 , 1

• Espera 5 sg

• Apagar 0 , 1

• Espera 5 sg

• Volver a la espera de pulsar IN2 y IN3

Page 21: Robótica

Programa 5

Page 22: Robótica

Bucles

• Si deseamos que una acción se repita un número determinado de veces podemos recurrir al bucle FOR…NEXT

• Ejemplo: Activar la salida 0 durante 0,5 sg , apagarla durante 0,5 sg. Repetirlo 5 veces

• Hay que emplear variables del programa b0, b1, b2,…

For b0 = 1 to 5

High 0

Pause 500

Low 0

Pause 500

Next

Page 23: Robótica

Bucles II

• Podemos hacer lo mismo mediante una sentencia IF

• Es decir el bucle se ejecutará mientras se cumpla la condición

Let b0 = 0

Label_11:

High 0

Pause 500

Low 0

Pause 500

Inc b0

If b0 < = 5 then goto label_11

Label_12:

Page 24: Robótica

Bucles III

• Podemos hacer lo mismo mediante DO…LOOP WHILE

• Es decir el bucle se ejecutará mientras se cumpla la condición

Let b0 = 0

DO

High 0

Pause 500

Low 0

Pause 500

Inc b0

LOOP WHILE b0 < = 5

Label_12:

Page 25: Robótica

BUCLE – Diagrama de Flujo

Page 26: Robótica

Llamada a subprogramas

• Gosub sub0 -> llama al programa sub0

• Return -> vuelve al punto desde donde fue llamada

• Subprograma : comienza con el nombre sub0 y terminamos con Return

Page 27: Robótica

Código Basic del subprograma