Robótica
-
Upload
luis-a-diaz-sanchez -
Category
Technology
-
view
868 -
download
1
Transcript of Robótica
![Page 1: Robótica](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/1.jpg)
RobóticaIntroducción a los µcontroladores
![Page 2: Robótica](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/2.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/3.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/4.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/5.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/6.jpg)
Activar una salida
• Activar la salida 0 Presionar ->
High 0
Activar la salida 1
High 1 Cambiar 0 por
![Page 7: Robótica](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/7.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/8.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/9.jpg)
Tiempos de espera
• Espera 5 sg Presionar
wait 5
Espera 1000 ms = 1sg
Pause 1000
![Page 10: Robótica](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/10.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/11.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/12.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/13.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/14.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/15.jpg)
Programa 3
![Page 16: Robótica](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/16.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/17.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/18.jpg)
Programa 4
![Page 19: Robótica](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/19.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/20.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/21.jpg)
Programa 5
![Page 22: Robótica](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/22.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/23.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/24.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/25.jpg)
BUCLE – Diagrama de Flujo
![Page 26: Robótica](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/26.jpg)
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](https://reader034.fdocumento.com/reader034/viewer/2022042816/55974df11a28abf7018b4694/html5/thumbnails/27.jpg)
Código Basic del subprograma