Robótica

Post on 04-Jul-2015

868 views 1 download

Transcript of Robótica

RobóticaIntroducción a los µcontroladores

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

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

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

Flowchart - >Basic

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

• PICAXE -> Convertir Flowchart to BASIC

Activar una salida

• Activar la salida 0 Presionar ->

High 0

Activar la salida 1

High 1 Cambiar 0 por

Desactivar una salida

• Se sigue el mismo proceso que para activarlas

Desactivar la salida 0

Low 0

Desactivar la salida 1

Low 1

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

Tiempos de espera

• Espera 5 sg Presionar

wait 5

Espera 1000 ms = 1sg

Pause 1000

Programa 1

• Vamos a diseñar un programa para que:

• Inicio

• Activar 0

• Espera 1 sg

• Apagar 0

• Espera 1 sg

• Vuelve a inicio

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

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

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:

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

Programa 3

Evaluar 2 entradas IN2 O IN3

Iabel_11:

If pin2 = 1 OR pin3 =1 then goto label_12

Goto label_11

Label_12:

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

Programa 4

Evaluar 2 entradas IN2 Y IN3

Iabel_11:

If pin2 = 1 AND pin3 =1 then goto label_12

Goto label_11

Label_12:

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

Programa 5

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

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:

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:

BUCLE – Diagrama de Flujo

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

Código Basic del subprograma