Robótica
-
Upload
luis-a-diaz-sanchez -
Category
Technology
-
view
866 -
download
1
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