SlideShare una empresa de Scribd logo
Universidad de Costa Rica
´
Escuela de Ingenier´ Electrica
ıa
IE-0107 Laboratorio de MIcrocontroladores

Bit´cora de Experimento 3
a

Red de sem´foros inteligentes en
a
plataforma MSP430 Launchpad
Autores:
Profesor:

Ernesto C´spedes, A31355
e

Daniel D´ Bola˜os
ıaz
n

Daniel Ram´
ırez, A44267

29 de octubre de 2013
IE0107 - Laboratorio de Microcontroladores

Experimento 3

´
Indice
1. Objetivos

2

2. Correcion y cambios a la soluci´n propuesta en el anteproyecto
o

3

3. Justificaci´n de los resultados
o

5

4. C´digo Fuente
o

6

4.1. Configuraci´n de los puertos GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . .
o

6

4.2. Primer m´quina de estados (ME1) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
a

6

4.3. Segunda m´quina de estdos (ME2) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
a

8

4.4. Rutina de atenci´n a iterrupciones . . . . . . . . . . . . . . . . . . . . . . . . . . . .
o

9

5. Observaciones y Recomendaciones

Escuela de Ingenier´ El´ctrica
ıa e

9

1

Universidad de Costa Rica
IE0107 - Laboratorio de Microcontroladores

1.

Experimento 3

Objetivos
Familiarizarse con la programaci´n de m´quinas de estado en lenguajes de alto nivel para la
o
a
implementaci´n en microcontroladores.
o
Desarrolar de manera profunda el manejo de puertos del microcontrolador.
Implementar una red de sem´foros inteligentes.
a

Escuela de Ingenier´ El´ctrica
ıa e

2

Universidad de Costa Rica
IE0107 - Laboratorio de Microcontroladores

2.

Experimento 3

Correcion y cambios a la soluci´n propuesta en el ano
teproyecto
En base a la primer propuesta de implementar la red de sem´foros como una unica m´quina de
a
´
a

estados, se presentan los siguientes cambios:

En primer lugar se consider´ dividir la red de sem´foros en dos m´quinas de estado separadas
o
a
a
donde una primer m´quina (ME1) se encarga de controlar el sem´foro peatonal y el semaforo vehica
a
ular 1 (SV1), la segunda m´quina de estados (ME2) maneja el sem´foro vehicular 2 (SV2). Aunque
a
a
ambas m´quinas de estado transitan entre sus estados de manera separada, difieren en que la transia
ci´n de estados de la primer m´quina ME1 es independiente de los est´dos de la m´quina ME2, solo
o
a
a
a
depende de la entrada SP de solicitud de paso petonal, mientras que la segunda m´quina depnde
a
tanto de la entrada SP como de los estados de la primer m´quina ME1, es decir es dependiente de
a
la m´quina ME1. La m´quina ME1 se muestra en la Figura 1
a
a
count < 2s

count > 3,6s
S6

S5

count < 10s

count < 3,6s

count > 10s
count < 2s

S4

S0
count < 3,6s

count > 2
S3

count < 12s
count > 3,6s

SP = 1count > 12s

S2
cunt > 5s
S1

count < 5s
Figura 1: Diagrama de Maquina de estados ME1
En segundo lugar se consider´ cambiar el manejo de tiempos con la funci´n _delay_cicles()
o
o
por un manejo con variables de conteo (contadores) los cuales se incrementan cada ciclo de ejecuci´n
o
del lazo infinito del programa principal. Esto permite que la transici´n de estados en cada m´quina
o
a
Escuela de Ingenier´ El´ctrica
ıa e

3

Universidad de Costa Rica
IE0107 - Laboratorio de Microcontroladores

Experimento 3

se ejecute de forma paralela, y que no se pierda tiempo en un estado sin ejecutar ninguna instrucci´n
o
como ocurre con la funci´n _delay_cicles().
o
La m´qiuina ME2 se muestra en la Figura 2
a
(count > 12s | (V P = 1 count > 15s))
count < 12s
S2

S0

count > 5s

(count > 12s | (V P = 1 count > 15s))
S1

count < 5s
Figura 2: Diagrama de Maquina de estados ME2
A continuaci´n se presenta una desripci´n de los estados de las m´quinas dese˜adas que se
o
o
a
n
muestran en las Figuras 1 y 2. Para la primer m´quina de estados, el estado 0 corresponde al estado
a
de LV1 = ON y VP = Off, la m´quina se mantiene en el estado por un tiempo m´
a
ınimo de 12 s,
antes de habilitar la solicitud de paso peatonal SP para cambiar al siguiente estado, los restantes
estado 1,2,3,4,5 y 6 solo tienen que cumplir un tiempo m´
ınimo de encendido de luces para poder
cambiar al siguiente estado. Destacan los estados 2 y 5 donde las luces LA1 y VP son intermitentes
respectivamente. En la segunda m´quina mostrada en la Figura 2 el primer estado o estado inicial
a
es el de LV2 = On y LR2 = Off, en este estado se debe cumplir un tiempo m´
ınimo de 12s, sin
embargo este tiempo puede aumentar dependiendo de estado del estado actual de la m´quina ME1,
a
espec´
ıficamente si se llega al estado 4 (VP = 1). Esto se implementa con el fin de dar mas tiempo a
los vehiculos que lograron pasar el primer sem´foro SV1. El estado siguiente (LA1 = On) solo debe
a
cumplir un tiempo m´
ınimo de 5 s. El estado 2 tiene la misma dependencia de ME1 como el estado
0, solo que en este estado se mantiene LR2 = On

Escuela de Ingenier´ El´ctrica
ıa e

4

Universidad de Costa Rica
IE0107 - Laboratorio de Microcontroladores

3.

Experimento 3

Justificaci´n de los resultados
o
En resumen, los resultados obtenidos cumplieron las espectativas.
En primer lugar se logr´ conprobar el cumplimiento de los tiempos m´
o
ınimos de estado con
ayuda de un cron´metro.
o
Es sugundo lugar se verific´ que las m´quinas de estado se ejecutan de forma paralela, pues la
o
a
transici´n de estados de los sem´foros vehiculares ocurren independientes uno del otro, solo si
o
a
no se solicita el paso peatonal SP.
En el caso particular del conjunto sem´foro peatonal y sem´foro vehicular 1, se logr´ comprobar
a
a
o
que la solicitud SP no es atendida si no se cumple un tiempo de verde m´
ınimo de 12s, esto
se comprob´ presionando inmediatamente el bot´n varias veces antes de los 12s, despu´s de
o
o
e
cargar el programa en el microprocesador.
Se logr´ comprobar la dependencia de la segunda m´quina de estados respecto a los estados de
o
a
la primera, activando adecuadamente la solicitud de paso peatonal SP de modo que se activara
VP = 1 en los estados de la ME2, lo quen result´ en un incremento en los tiempos en los
o
estados 0 y 2 de la segunda m´quina de estados
a

Escuela de Ingenier´ El´ctrica
ıa e

5

Universidad de Costa Rica
IE0107 - Laboratorio de Microcontroladores

4.

Experimento 3

C´digo Fuente
o

4.1.

Configuraci´n de los puertos GPIO
o

La configuraci´n de los puertos de uso general se implement´ como lo muestra el siguiente c´digo,
o
o
o
para ello se tom´ en cuenta la funci´n de los registros PxDIR, PxOUT, PxIN y PxIE entre otros,
o
o
seg´n se especifica en la gu´ de usuario de la familia MSP430x2xx[3].
u
ıa

WDTCTL = WDTPW + WDTHOLD ;
// Stop Watch Dog Timer
DCOCTL =0 x00 ;
BCSCTL1 = CALBC1_1MHZ ;
// 1 MHZ Clock setting
DCOCTL = CALDCO_1MHZ ;
// ------- LEDs port configuration - - - - - - - - - - - - - - - - - - - - - P1DIR |= VP + RP + LV1 + LA1 + LR1 + LV2 + LA2 + LR2 ; // output port for leds
P1OUT = VP + RP + LV1 + LA1 + LR1 + LV2 + LA2 + LR2 ; // Turns on all LEDs
P1OUT &= ~( VP + LA1 + LR1 + LA2 + LR2 ); // Let only LV1 , LV2 and RP on
// ------- Port P2 .2 configuration - - - - - - - - - - - - - - - - - - - - - P2DIR &= ~ SP ;
// Port p2 . o as input
P2OUT |= SP ;
// Select pull up resistor
P2REN |= SP ;
// Enable pullup / pulldow resistors
// ------- P2 .2 interrupt configuration - - - - - - - - - - - - - - - P2IES |= SP ;
// Interrupt to falling edge
P2IE |= SP ;
// Enable interrupts for P2 .2
P2IFG &= ~ SP ;
// Clear the interrupt flag
_BIS_SR ( GIE );
// enable non - maskarable interrupts

4.2.

Primer m´quina de estados (ME1)
a

La primer maquina de estados se implement´ como se muestra en el siguiente bloque de c´digo:
o
o
// - - - - - - - - - - - - - - - - - - - - - -1 st state Machine - - - - - - - - - - - - - - - - - - - - currstate = next_state ;
// logic state variables
switch ( currstate ){
case 0:
// state 0: LV1 = On RP = Off
P1OUT |= LV1 ;
P1OUT |= RP ;
count +=1;
if (( count >=120000) && ( iRE ==1)){ // minimal LV1 time and SP request
iRE =0;
count =0;
next_state =1;}
break ;
case 1:
// state 1: LA1 = On LV1 = Off
P1OUT &= ~ LV1 ;
P1OUT |= LA1 ;
count +=1;

Escuela de Ingenier´ El´ctrica
ıa e

6

Universidad de Costa Rica
IE0107 - Laboratorio de Microcontroladores

Experimento 3

if ( count >50000){
next_state =2;
count =0;}
break ;
case 2:
// state 2: blinking LA1
for ( int i =0; i <6; i ++){
P1OUT &= ~ LA1 ;
__delay_cycles (300000);
P1OUT |= LA1 ;
__delay_cycles (300000);}
count =0;
next_state =3;
break ;
case 3:
// state 3: LR1 = On LA1 = Off
P1OUT &= ~ LA1 ;
P1OUT |= LR1 ;
count +=1;
if ( count >=20000)
// prudential time 2 s
next_state =4;
break ;
case 4:
// state 4: VP = On RP = Off
P1OUT &= ~ RP ;
P1OUT |= VP ;
count +=1;
if ( count >100000){
next_state =5;}
break ;
case 5:
// state 5: blinking VP
for ( int i =0; i <6; i ++){
P1OUT &= ~ VP ;
__delay_cycles (300000);
P1OUT |= VP ;
__delay_cycles (300000);}
count =0;
next_state =6;
break ;
case 6:
// state 6: RP = On VP = Off
P1OUT &= ~ VP ;
P1OUT |= RP ;
count +=1;
if ( count >20000){
P1OUT &= ~ LR1 ;
count =0;
next_state =0;}
break ;
default :
P1OUT |= LV1 ;
P1OUT |= RP ;
break ;}

Escuela de Ingenier´ El´ctrica
ıa e

7

Universidad de Costa Rica
IE0107 - Laboratorio de Microcontroladores

4.3.

Experimento 3

Segunda m´quina de estdos (ME2)
a

La implementaci´n de la segunda m´quina de estados se resume en el siguiente bloque de c´digo.
o
a
o
// - - - - - - - - - - - - - - - - - - - 2 nd state machine - - - - - - - - - - currstate2 = next_state2 ;
switch ( currstate2 ){
case 0:
// state 0: LV2 = On LR2 = Off
P1OUT |= LV2 ;
P1OUT &= ~ LR2 ;
if ( currstate ==4){ // if VP =1 , increase delay
count2 +=1;
if ( count2 >150000){
count2 =0;
next_state2 =1;}}
else {
count2 +=1;
if ( count2 >120000){
count2 =0;
next_state2 =1;}}
break ;
case 1:
// state 1: LA2 = On LV2 = Off
P1OUT &= ~ LV2 ;
P1OUT |= LA2 ;
count2 +=1;
if ( count2 >50000){
count2 =0;
next_state2 =2;}
break ;
case 2:
// state 2: LR2 = On LA2 = Off
P1OUT &= ~ LA2 ;
P1OUT |= LR2 ;
count2 +=1;
if ( currstate ==4){
count2 +=1;
if ( count2 >150000){ // if VP =1 , increase delay
count2 =0;
next_state2 =0;}}
else {
count2 +=1;
if ( count2 >120000){
count2 =0;
next_state2 =0;}}
break ;
default :
P1OUT |= LV2 ;
P1OUT &= ~ LR2 ;
break ;}
}
}

Escuela de Ingenier´ El´ctrica
ıa e

8

Universidad de Costa Rica
IE0107 - Laboratorio de Microcontroladores

4.4.

Experimento 3

Rutina de atenci´n a iterrupciones
o

# pragma vector = PORT2_VECTOR
__interrupt void Port_2 ( void )
{
iRE =1;
// SP request enable
P2IFG &= ~ SP ;
// clear interrupt flag
}

Escuela de Ingenier´ El´ctrica
ıa e

9

Universidad de Costa Rica
IE0107 - Laboratorio de Microcontroladores

5.

Experimento 3

Observaciones y Recomendaciones
Investigar sobre la configuraci´n de los puertos de uso general de la plataforma MSP430 Launcho
pad, esto evitar´ inconvenientes con el manejo de interrupciones por puerto, y con el encedido
a
de los leds.
Plantear la soluci´n del problema como m´quinas de estado separadas que se ejecutan de forma
o
a
paralela, en vez de una sola m´quina de estados que puede resultar m´s extensa y compleja.
a
a
Trabajar ordenadamente con el cableado de la circuiter´ externa para facilitar la ubicaci´n de
ıa
o
errores de conexi´n cuando se presenten problemas.
o
considerar resistencias para los led y resistencia pull-up cuando utilice interrupci´n por un
o
boton externo a la tarjeta de desarrolo.

Escuela de Ingenier´ El´ctrica
ıa e

10

Universidad de Costa Rica
IE0107 - Laboratorio de Microcontroladores

Experimento 3

Referencias
[1] Texas Instruments MSP-EXP430G2 LaunchPad ExperimentUser’s Guide. (2013)
[2] Texas Instruments MSP430G2x53 Datasheet. (2013)
[3] Texas Instruments MSP430x2xx Family User’s Guide. (2013)
[4] MSP430 Simple Traffic Light, en http://www.psyelmer9.info

Escuela de Ingenier´ El´ctrica
ıa e

11

Universidad de Costa Rica

Más contenido relacionado

La actualidad más candente

Control y supervisión de un proceso electro neumático
Control y supervisión de un proceso electro neumáticoControl y supervisión de un proceso electro neumático
Control y supervisión de un proceso electro neumático
Jose Antonio Velasquez Costa
 
009. diseño de circuitos secuenciales electroneumaticos programados
009. diseño de circuitos secuenciales electroneumaticos programados009. diseño de circuitos secuenciales electroneumaticos programados
009. diseño de circuitos secuenciales electroneumaticos programados
guelo
 
Curso Micro Tema 3
Curso Micro Tema 3Curso Micro Tema 3
Curso Micro Tema 3
Luis Zurita
 
Micro2 tema 3
Micro2 tema 3Micro2 tema 3
Micro2 tema 3
Luis Zurita
 
Curso de microcontroladores capitulo 05
Curso de microcontroladores capitulo 05Curso de microcontroladores capitulo 05
Curso de microcontroladores capitulo 05
Hamiltonn Casallas
 
Electrónica digital: Diseño de circuitos con VHDL
Electrónica digital: Diseño de circuitos con VHDLElectrónica digital: Diseño de circuitos con VHDL
Electrónica digital: Diseño de circuitos con VHDL
SANTIAGO PABLO ALBERTO
 
Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06
Hamiltonn Casallas
 
Electrónica digital: Sistemas combinacionales y secuenciales
Electrónica digital: Sistemas combinacionales y secuenciales Electrónica digital: Sistemas combinacionales y secuenciales
Electrónica digital: Sistemas combinacionales y secuenciales
SANTIAGO PABLO ALBERTO
 
Micro2 tema 1
Micro2 tema 1Micro2 tema 1
Micro2 tema 1
Luis Zurita
 
Sem plc
Sem plcSem plc
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
jbersosa
 
Transferencia de datos entre registros
Transferencia de datos entre registrosTransferencia de datos entre registros
Transferencia de datos entre registros
Daniel Zuluaga
 
Curso de microcontroladores capitulo 03
Curso de microcontroladores capitulo 03Curso de microcontroladores capitulo 03
Curso de microcontroladores capitulo 03
Hamiltonn Casallas
 
Curso de microcontroladores capitulo 04
Curso de microcontroladores capitulo 04Curso de microcontroladores capitulo 04
Curso de microcontroladores capitulo 04
Hamiltonn Casallas
 
CONTADORES
CONTADORES CONTADORES
2 configuración de-las_vlan_estáticas
2   configuración de-las_vlan_estáticas2   configuración de-las_vlan_estáticas
2 configuración de-las_vlan_estáticas
Rodrigo Jimenez
 
Curso de microcontroladores capitulo 01
Curso de microcontroladores capitulo 01Curso de microcontroladores capitulo 01
Curso de microcontroladores capitulo 01
Hamiltonn Casallas
 
Curso de microcontroladores capitulo 07
Curso de microcontroladores capitulo 07Curso de microcontroladores capitulo 07
Curso de microcontroladores capitulo 07
Hamiltonn Casallas
 
MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5
Luis Zurita
 
Electrónica digital: diseño secuencial síncrono asistido por computadora
Electrónica digital: diseño secuencial síncrono asistido por computadora  Electrónica digital: diseño secuencial síncrono asistido por computadora
Electrónica digital: diseño secuencial síncrono asistido por computadora
SANTIAGO PABLO ALBERTO
 

La actualidad más candente (20)

Control y supervisión de un proceso electro neumático
Control y supervisión de un proceso electro neumáticoControl y supervisión de un proceso electro neumático
Control y supervisión de un proceso electro neumático
 
009. diseño de circuitos secuenciales electroneumaticos programados
009. diseño de circuitos secuenciales electroneumaticos programados009. diseño de circuitos secuenciales electroneumaticos programados
009. diseño de circuitos secuenciales electroneumaticos programados
 
Curso Micro Tema 3
Curso Micro Tema 3Curso Micro Tema 3
Curso Micro Tema 3
 
Micro2 tema 3
Micro2 tema 3Micro2 tema 3
Micro2 tema 3
 
Curso de microcontroladores capitulo 05
Curso de microcontroladores capitulo 05Curso de microcontroladores capitulo 05
Curso de microcontroladores capitulo 05
 
Electrónica digital: Diseño de circuitos con VHDL
Electrónica digital: Diseño de circuitos con VHDLElectrónica digital: Diseño de circuitos con VHDL
Electrónica digital: Diseño de circuitos con VHDL
 
Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06
 
Electrónica digital: Sistemas combinacionales y secuenciales
Electrónica digital: Sistemas combinacionales y secuenciales Electrónica digital: Sistemas combinacionales y secuenciales
Electrónica digital: Sistemas combinacionales y secuenciales
 
Micro2 tema 1
Micro2 tema 1Micro2 tema 1
Micro2 tema 1
 
Sem plc
Sem plcSem plc
Sem plc
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Transferencia de datos entre registros
Transferencia de datos entre registrosTransferencia de datos entre registros
Transferencia de datos entre registros
 
Curso de microcontroladores capitulo 03
Curso de microcontroladores capitulo 03Curso de microcontroladores capitulo 03
Curso de microcontroladores capitulo 03
 
Curso de microcontroladores capitulo 04
Curso de microcontroladores capitulo 04Curso de microcontroladores capitulo 04
Curso de microcontroladores capitulo 04
 
CONTADORES
CONTADORES CONTADORES
CONTADORES
 
2 configuración de-las_vlan_estáticas
2   configuración de-las_vlan_estáticas2   configuración de-las_vlan_estáticas
2 configuración de-las_vlan_estáticas
 
Curso de microcontroladores capitulo 01
Curso de microcontroladores capitulo 01Curso de microcontroladores capitulo 01
Curso de microcontroladores capitulo 01
 
Curso de microcontroladores capitulo 07
Curso de microcontroladores capitulo 07Curso de microcontroladores capitulo 07
Curso de microcontroladores capitulo 07
 
MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5
 
Electrónica digital: diseño secuencial síncrono asistido por computadora
Electrónica digital: diseño secuencial síncrono asistido por computadora  Electrónica digital: diseño secuencial síncrono asistido por computadora
Electrónica digital: diseño secuencial síncrono asistido por computadora
 

Similar a Bitacora3

Contador de 0 a 7 flip flop tipo D
Contador de 0 a 7 flip flop tipo DContador de 0 a 7 flip flop tipo D
Contador de 0 a 7 flip flop tipo D
Cristian Rodriguez
 
Diseño de maquinas de estado
Diseño de maquinas de estadoDiseño de maquinas de estado
Diseño de maquinas de estado
Cristian Rodriguez
 
PLC y Automatización: Libro de ejercicios resueltos de GRAFCET
PLC y Automatización: Libro de ejercicios resueltos de GRAFCETPLC y Automatización: Libro de ejercicios resueltos de GRAFCET
PLC y Automatización: Libro de ejercicios resueltos de GRAFCET
SANTIAGO PABLO ALBERTO
 
360847567 libro-ejercicios-resueltos-grafcet-pdf
360847567 libro-ejercicios-resueltos-grafcet-pdf360847567 libro-ejercicios-resueltos-grafcet-pdf
360847567 libro-ejercicios-resueltos-grafcet-pdf
Carlos Benito
 
Plc
PlcPlc
Proyecto final grupo_21
Proyecto final grupo_21Proyecto final grupo_21
Proyecto final grupo_21
Fernand Bolivar C
 
Proyecto final grupo_21
Proyecto final grupo_21Proyecto final grupo_21
Proyecto final grupo_21
Fernand Bolivar C
 
ELECTRONEUMÁTICA AVANZADA.pdf
ELECTRONEUMÁTICA AVANZADA.pdfELECTRONEUMÁTICA AVANZADA.pdf
ELECTRONEUMÁTICA AVANZADA.pdf
Jesus orlando solarte caiza
 
Preinforme control motores AC
Preinforme control motores ACPreinforme control motores AC
Preinforme control motores AC
Lautaro Narvaez
 
Taller 4 josue stanley lazo rivera
Taller 4 josue stanley lazo riveraTaller 4 josue stanley lazo rivera
Taller 4 josue stanley lazo rivera
1000028858888
 
⭐⭐⭐⭐⭐ Lecciones Simuladas Sistemas Digitales MSS (1er Parcial)
⭐⭐⭐⭐⭐ Lecciones Simuladas Sistemas Digitales MSS (1er Parcial)⭐⭐⭐⭐⭐ Lecciones Simuladas Sistemas Digitales MSS (1er Parcial)
⭐⭐⭐⭐⭐ Lecciones Simuladas Sistemas Digitales MSS (1er Parcial)
Victor Asanza
 
Controladores automaticos enovys centeno
Controladores automaticos  enovys centenoControladores automaticos  enovys centeno
Controladores automaticos enovys centeno
licett lopez
 
Automatismo de control para el acceso a un garaje
Automatismo de control para el acceso a un garajeAutomatismo de control para el acceso a un garaje
Automatismo de control para el acceso a un garaje
Jomicast
 
Ccrep procedimientos de contingencia centro de control rep
Ccrep  procedimientos de contingencia centro de control repCcrep  procedimientos de contingencia centro de control rep
Ccrep procedimientos de contingencia centro de control rep
Red de Energía del Perú
 
Práctica no-2 6-ev2_caract_comp
Práctica no-2 6-ev2_caract_compPráctica no-2 6-ev2_caract_comp
Práctica no-2 6-ev2_caract_comp
Abraham Kv
 
Examen micros t1_06_solucion
Examen micros t1_06_solucionExamen micros t1_06_solucion
Examen micros t1_06_solucion
Jair BG
 
DigSILENT PF - 04 exercises distancia_s
DigSILENT PF - 04 exercises distancia_sDigSILENT PF - 04 exercises distancia_s
DigSILENT PF - 04 exercises distancia_s
Himmelstern
 
PLC: practica 9 Sistemas secuenciales complejos con lógica programada
PLC: practica 9 Sistemas secuenciales complejos con lógica programada PLC: practica 9 Sistemas secuenciales complejos con lógica programada
PLC: practica 9 Sistemas secuenciales complejos con lógica programada
SANTIAGO PABLO ALBERTO
 
Problema resuelto de Maquinas de estado
Problema resuelto de Maquinas de estadoProblema resuelto de Maquinas de estado
Problema resuelto de Maquinas de estado
HugoDanteGarciaMunoz
 
Control nivel luz
Control nivel luzControl nivel luz
Control nivel luz
Fernando Venegas Riera
 

Similar a Bitacora3 (20)

Contador de 0 a 7 flip flop tipo D
Contador de 0 a 7 flip flop tipo DContador de 0 a 7 flip flop tipo D
Contador de 0 a 7 flip flop tipo D
 
Diseño de maquinas de estado
Diseño de maquinas de estadoDiseño de maquinas de estado
Diseño de maquinas de estado
 
PLC y Automatización: Libro de ejercicios resueltos de GRAFCET
PLC y Automatización: Libro de ejercicios resueltos de GRAFCETPLC y Automatización: Libro de ejercicios resueltos de GRAFCET
PLC y Automatización: Libro de ejercicios resueltos de GRAFCET
 
360847567 libro-ejercicios-resueltos-grafcet-pdf
360847567 libro-ejercicios-resueltos-grafcet-pdf360847567 libro-ejercicios-resueltos-grafcet-pdf
360847567 libro-ejercicios-resueltos-grafcet-pdf
 
Plc
PlcPlc
Plc
 
Proyecto final grupo_21
Proyecto final grupo_21Proyecto final grupo_21
Proyecto final grupo_21
 
Proyecto final grupo_21
Proyecto final grupo_21Proyecto final grupo_21
Proyecto final grupo_21
 
ELECTRONEUMÁTICA AVANZADA.pdf
ELECTRONEUMÁTICA AVANZADA.pdfELECTRONEUMÁTICA AVANZADA.pdf
ELECTRONEUMÁTICA AVANZADA.pdf
 
Preinforme control motores AC
Preinforme control motores ACPreinforme control motores AC
Preinforme control motores AC
 
Taller 4 josue stanley lazo rivera
Taller 4 josue stanley lazo riveraTaller 4 josue stanley lazo rivera
Taller 4 josue stanley lazo rivera
 
⭐⭐⭐⭐⭐ Lecciones Simuladas Sistemas Digitales MSS (1er Parcial)
⭐⭐⭐⭐⭐ Lecciones Simuladas Sistemas Digitales MSS (1er Parcial)⭐⭐⭐⭐⭐ Lecciones Simuladas Sistemas Digitales MSS (1er Parcial)
⭐⭐⭐⭐⭐ Lecciones Simuladas Sistemas Digitales MSS (1er Parcial)
 
Controladores automaticos enovys centeno
Controladores automaticos  enovys centenoControladores automaticos  enovys centeno
Controladores automaticos enovys centeno
 
Automatismo de control para el acceso a un garaje
Automatismo de control para el acceso a un garajeAutomatismo de control para el acceso a un garaje
Automatismo de control para el acceso a un garaje
 
Ccrep procedimientos de contingencia centro de control rep
Ccrep  procedimientos de contingencia centro de control repCcrep  procedimientos de contingencia centro de control rep
Ccrep procedimientos de contingencia centro de control rep
 
Práctica no-2 6-ev2_caract_comp
Práctica no-2 6-ev2_caract_compPráctica no-2 6-ev2_caract_comp
Práctica no-2 6-ev2_caract_comp
 
Examen micros t1_06_solucion
Examen micros t1_06_solucionExamen micros t1_06_solucion
Examen micros t1_06_solucion
 
DigSILENT PF - 04 exercises distancia_s
DigSILENT PF - 04 exercises distancia_sDigSILENT PF - 04 exercises distancia_s
DigSILENT PF - 04 exercises distancia_s
 
PLC: practica 9 Sistemas secuenciales complejos con lógica programada
PLC: practica 9 Sistemas secuenciales complejos con lógica programada PLC: practica 9 Sistemas secuenciales complejos con lógica programada
PLC: practica 9 Sistemas secuenciales complejos con lógica programada
 
Problema resuelto de Maquinas de estado
Problema resuelto de Maquinas de estadoProblema resuelto de Maquinas de estado
Problema resuelto de Maquinas de estado
 
Control nivel luz
Control nivel luzControl nivel luz
Control nivel luz
 

Bitacora3

  • 1. Universidad de Costa Rica ´ Escuela de Ingenier´ Electrica ıa IE-0107 Laboratorio de MIcrocontroladores Bit´cora de Experimento 3 a Red de sem´foros inteligentes en a plataforma MSP430 Launchpad Autores: Profesor: Ernesto C´spedes, A31355 e Daniel D´ Bola˜os ıaz n Daniel Ram´ ırez, A44267 29 de octubre de 2013
  • 2. IE0107 - Laboratorio de Microcontroladores Experimento 3 ´ Indice 1. Objetivos 2 2. Correcion y cambios a la soluci´n propuesta en el anteproyecto o 3 3. Justificaci´n de los resultados o 5 4. C´digo Fuente o 6 4.1. Configuraci´n de los puertos GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 6 4.2. Primer m´quina de estados (ME1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . a 6 4.3. Segunda m´quina de estdos (ME2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . a 8 4.4. Rutina de atenci´n a iterrupciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 9 5. Observaciones y Recomendaciones Escuela de Ingenier´ El´ctrica ıa e 9 1 Universidad de Costa Rica
  • 3. IE0107 - Laboratorio de Microcontroladores 1. Experimento 3 Objetivos Familiarizarse con la programaci´n de m´quinas de estado en lenguajes de alto nivel para la o a implementaci´n en microcontroladores. o Desarrolar de manera profunda el manejo de puertos del microcontrolador. Implementar una red de sem´foros inteligentes. a Escuela de Ingenier´ El´ctrica ıa e 2 Universidad de Costa Rica
  • 4. IE0107 - Laboratorio de Microcontroladores 2. Experimento 3 Correcion y cambios a la soluci´n propuesta en el ano teproyecto En base a la primer propuesta de implementar la red de sem´foros como una unica m´quina de a ´ a estados, se presentan los siguientes cambios: En primer lugar se consider´ dividir la red de sem´foros en dos m´quinas de estado separadas o a a donde una primer m´quina (ME1) se encarga de controlar el sem´foro peatonal y el semaforo vehica a ular 1 (SV1), la segunda m´quina de estados (ME2) maneja el sem´foro vehicular 2 (SV2). Aunque a a ambas m´quinas de estado transitan entre sus estados de manera separada, difieren en que la transia ci´n de estados de la primer m´quina ME1 es independiente de los est´dos de la m´quina ME2, solo o a a a depende de la entrada SP de solicitud de paso petonal, mientras que la segunda m´quina depnde a tanto de la entrada SP como de los estados de la primer m´quina ME1, es decir es dependiente de a la m´quina ME1. La m´quina ME1 se muestra en la Figura 1 a a count < 2s count > 3,6s S6 S5 count < 10s count < 3,6s count > 10s count < 2s S4 S0 count < 3,6s count > 2 S3 count < 12s count > 3,6s SP = 1count > 12s S2 cunt > 5s S1 count < 5s Figura 1: Diagrama de Maquina de estados ME1 En segundo lugar se consider´ cambiar el manejo de tiempos con la funci´n _delay_cicles() o o por un manejo con variables de conteo (contadores) los cuales se incrementan cada ciclo de ejecuci´n o del lazo infinito del programa principal. Esto permite que la transici´n de estados en cada m´quina o a Escuela de Ingenier´ El´ctrica ıa e 3 Universidad de Costa Rica
  • 5. IE0107 - Laboratorio de Microcontroladores Experimento 3 se ejecute de forma paralela, y que no se pierda tiempo en un estado sin ejecutar ninguna instrucci´n o como ocurre con la funci´n _delay_cicles(). o La m´qiuina ME2 se muestra en la Figura 2 a (count > 12s | (V P = 1 count > 15s)) count < 12s S2 S0 count > 5s (count > 12s | (V P = 1 count > 15s)) S1 count < 5s Figura 2: Diagrama de Maquina de estados ME2 A continuaci´n se presenta una desripci´n de los estados de las m´quinas dese˜adas que se o o a n muestran en las Figuras 1 y 2. Para la primer m´quina de estados, el estado 0 corresponde al estado a de LV1 = ON y VP = Off, la m´quina se mantiene en el estado por un tiempo m´ a ınimo de 12 s, antes de habilitar la solicitud de paso peatonal SP para cambiar al siguiente estado, los restantes estado 1,2,3,4,5 y 6 solo tienen que cumplir un tiempo m´ ınimo de encendido de luces para poder cambiar al siguiente estado. Destacan los estados 2 y 5 donde las luces LA1 y VP son intermitentes respectivamente. En la segunda m´quina mostrada en la Figura 2 el primer estado o estado inicial a es el de LV2 = On y LR2 = Off, en este estado se debe cumplir un tiempo m´ ınimo de 12s, sin embargo este tiempo puede aumentar dependiendo de estado del estado actual de la m´quina ME1, a espec´ ıficamente si se llega al estado 4 (VP = 1). Esto se implementa con el fin de dar mas tiempo a los vehiculos que lograron pasar el primer sem´foro SV1. El estado siguiente (LA1 = On) solo debe a cumplir un tiempo m´ ınimo de 5 s. El estado 2 tiene la misma dependencia de ME1 como el estado 0, solo que en este estado se mantiene LR2 = On Escuela de Ingenier´ El´ctrica ıa e 4 Universidad de Costa Rica
  • 6. IE0107 - Laboratorio de Microcontroladores 3. Experimento 3 Justificaci´n de los resultados o En resumen, los resultados obtenidos cumplieron las espectativas. En primer lugar se logr´ conprobar el cumplimiento de los tiempos m´ o ınimos de estado con ayuda de un cron´metro. o Es sugundo lugar se verific´ que las m´quinas de estado se ejecutan de forma paralela, pues la o a transici´n de estados de los sem´foros vehiculares ocurren independientes uno del otro, solo si o a no se solicita el paso peatonal SP. En el caso particular del conjunto sem´foro peatonal y sem´foro vehicular 1, se logr´ comprobar a a o que la solicitud SP no es atendida si no se cumple un tiempo de verde m´ ınimo de 12s, esto se comprob´ presionando inmediatamente el bot´n varias veces antes de los 12s, despu´s de o o e cargar el programa en el microprocesador. Se logr´ comprobar la dependencia de la segunda m´quina de estados respecto a los estados de o a la primera, activando adecuadamente la solicitud de paso peatonal SP de modo que se activara VP = 1 en los estados de la ME2, lo quen result´ en un incremento en los tiempos en los o estados 0 y 2 de la segunda m´quina de estados a Escuela de Ingenier´ El´ctrica ıa e 5 Universidad de Costa Rica
  • 7. IE0107 - Laboratorio de Microcontroladores 4. Experimento 3 C´digo Fuente o 4.1. Configuraci´n de los puertos GPIO o La configuraci´n de los puertos de uso general se implement´ como lo muestra el siguiente c´digo, o o o para ello se tom´ en cuenta la funci´n de los registros PxDIR, PxOUT, PxIN y PxIE entre otros, o o seg´n se especifica en la gu´ de usuario de la familia MSP430x2xx[3]. u ıa WDTCTL = WDTPW + WDTHOLD ; // Stop Watch Dog Timer DCOCTL =0 x00 ; BCSCTL1 = CALBC1_1MHZ ; // 1 MHZ Clock setting DCOCTL = CALDCO_1MHZ ; // ------- LEDs port configuration - - - - - - - - - - - - - - - - - - - - - P1DIR |= VP + RP + LV1 + LA1 + LR1 + LV2 + LA2 + LR2 ; // output port for leds P1OUT = VP + RP + LV1 + LA1 + LR1 + LV2 + LA2 + LR2 ; // Turns on all LEDs P1OUT &= ~( VP + LA1 + LR1 + LA2 + LR2 ); // Let only LV1 , LV2 and RP on // ------- Port P2 .2 configuration - - - - - - - - - - - - - - - - - - - - - P2DIR &= ~ SP ; // Port p2 . o as input P2OUT |= SP ; // Select pull up resistor P2REN |= SP ; // Enable pullup / pulldow resistors // ------- P2 .2 interrupt configuration - - - - - - - - - - - - - - - P2IES |= SP ; // Interrupt to falling edge P2IE |= SP ; // Enable interrupts for P2 .2 P2IFG &= ~ SP ; // Clear the interrupt flag _BIS_SR ( GIE ); // enable non - maskarable interrupts 4.2. Primer m´quina de estados (ME1) a La primer maquina de estados se implement´ como se muestra en el siguiente bloque de c´digo: o o // - - - - - - - - - - - - - - - - - - - - - -1 st state Machine - - - - - - - - - - - - - - - - - - - - currstate = next_state ; // logic state variables switch ( currstate ){ case 0: // state 0: LV1 = On RP = Off P1OUT |= LV1 ; P1OUT |= RP ; count +=1; if (( count >=120000) && ( iRE ==1)){ // minimal LV1 time and SP request iRE =0; count =0; next_state =1;} break ; case 1: // state 1: LA1 = On LV1 = Off P1OUT &= ~ LV1 ; P1OUT |= LA1 ; count +=1; Escuela de Ingenier´ El´ctrica ıa e 6 Universidad de Costa Rica
  • 8. IE0107 - Laboratorio de Microcontroladores Experimento 3 if ( count >50000){ next_state =2; count =0;} break ; case 2: // state 2: blinking LA1 for ( int i =0; i <6; i ++){ P1OUT &= ~ LA1 ; __delay_cycles (300000); P1OUT |= LA1 ; __delay_cycles (300000);} count =0; next_state =3; break ; case 3: // state 3: LR1 = On LA1 = Off P1OUT &= ~ LA1 ; P1OUT |= LR1 ; count +=1; if ( count >=20000) // prudential time 2 s next_state =4; break ; case 4: // state 4: VP = On RP = Off P1OUT &= ~ RP ; P1OUT |= VP ; count +=1; if ( count >100000){ next_state =5;} break ; case 5: // state 5: blinking VP for ( int i =0; i <6; i ++){ P1OUT &= ~ VP ; __delay_cycles (300000); P1OUT |= VP ; __delay_cycles (300000);} count =0; next_state =6; break ; case 6: // state 6: RP = On VP = Off P1OUT &= ~ VP ; P1OUT |= RP ; count +=1; if ( count >20000){ P1OUT &= ~ LR1 ; count =0; next_state =0;} break ; default : P1OUT |= LV1 ; P1OUT |= RP ; break ;} Escuela de Ingenier´ El´ctrica ıa e 7 Universidad de Costa Rica
  • 9. IE0107 - Laboratorio de Microcontroladores 4.3. Experimento 3 Segunda m´quina de estdos (ME2) a La implementaci´n de la segunda m´quina de estados se resume en el siguiente bloque de c´digo. o a o // - - - - - - - - - - - - - - - - - - - 2 nd state machine - - - - - - - - - - currstate2 = next_state2 ; switch ( currstate2 ){ case 0: // state 0: LV2 = On LR2 = Off P1OUT |= LV2 ; P1OUT &= ~ LR2 ; if ( currstate ==4){ // if VP =1 , increase delay count2 +=1; if ( count2 >150000){ count2 =0; next_state2 =1;}} else { count2 +=1; if ( count2 >120000){ count2 =0; next_state2 =1;}} break ; case 1: // state 1: LA2 = On LV2 = Off P1OUT &= ~ LV2 ; P1OUT |= LA2 ; count2 +=1; if ( count2 >50000){ count2 =0; next_state2 =2;} break ; case 2: // state 2: LR2 = On LA2 = Off P1OUT &= ~ LA2 ; P1OUT |= LR2 ; count2 +=1; if ( currstate ==4){ count2 +=1; if ( count2 >150000){ // if VP =1 , increase delay count2 =0; next_state2 =0;}} else { count2 +=1; if ( count2 >120000){ count2 =0; next_state2 =0;}} break ; default : P1OUT |= LV2 ; P1OUT &= ~ LR2 ; break ;} } } Escuela de Ingenier´ El´ctrica ıa e 8 Universidad de Costa Rica
  • 10. IE0107 - Laboratorio de Microcontroladores 4.4. Experimento 3 Rutina de atenci´n a iterrupciones o # pragma vector = PORT2_VECTOR __interrupt void Port_2 ( void ) { iRE =1; // SP request enable P2IFG &= ~ SP ; // clear interrupt flag } Escuela de Ingenier´ El´ctrica ıa e 9 Universidad de Costa Rica
  • 11. IE0107 - Laboratorio de Microcontroladores 5. Experimento 3 Observaciones y Recomendaciones Investigar sobre la configuraci´n de los puertos de uso general de la plataforma MSP430 Launcho pad, esto evitar´ inconvenientes con el manejo de interrupciones por puerto, y con el encedido a de los leds. Plantear la soluci´n del problema como m´quinas de estado separadas que se ejecutan de forma o a paralela, en vez de una sola m´quina de estados que puede resultar m´s extensa y compleja. a a Trabajar ordenadamente con el cableado de la circuiter´ externa para facilitar la ubicaci´n de ıa o errores de conexi´n cuando se presenten problemas. o considerar resistencias para los led y resistencia pull-up cuando utilice interrupci´n por un o boton externo a la tarjeta de desarrolo. Escuela de Ingenier´ El´ctrica ıa e 10 Universidad de Costa Rica
  • 12. IE0107 - Laboratorio de Microcontroladores Experimento 3 Referencias [1] Texas Instruments MSP-EXP430G2 LaunchPad ExperimentUser’s Guide. (2013) [2] Texas Instruments MSP430G2x53 Datasheet. (2013) [3] Texas Instruments MSP430x2xx Family User’s Guide. (2013) [4] MSP430 Simple Traffic Light, en http://www.psyelmer9.info Escuela de Ingenier´ El´ctrica ıa e 11 Universidad de Costa Rica