projeto bus-bus

12
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA BACHARELADO EM ENGENHARIA DE COMPUTAÇÃO MICROPROCESSADORES - II RAPHAEL RAMOS NOGUEIRA, WASHINGTON LUIZ PERONI DOCUMENTAÇÃO PROJETO: BUS-BUS BUS-BLOW UNLOCK SYSTEM CURITIBA 2011

Upload: washington-luiz-peroni

Post on 26-May-2015

239 views

Category:

Education


1 download

DESCRIPTION

O Projeto BUS-BUS foi pensado para desenvolver um sistema de destrava das janelas de emergência de onibus de forma mais automatizada, eficiente e inteligente. A idéia inicial era construir um sistema embarcado de segurança que identificasse várias situações, através da leitura por sensores do ambiente, como desaceleração, temperatura e inclinação. Como tal escopo é de abrangência que não poderíamos programar, foi decidido que para este projeto apenas o sensor de inclinação e de colisão serão implementados para a destrava automática das janelas.

TRANSCRIPT

Page 1: Projeto BUS-BUS

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ

CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA BACHARELADO EM ENGENHARIA DE COMPUTAÇÃO

MICROPROCESSADORES - II

RAPHAEL RAMOS NOGUEIRA, WASHINGTON LUIZ PERONI

DOCUMENTAÇÃO PROJETO: BUS-BUS

BUS-BLOW UNLOCK SYSTEM

CURITIBA

2011

Page 2: Projeto BUS-BUS

2

Sumário

Introdução………...............………………………………………………...03 Justificativas………………...............……………………………………...03 Objetivos………………………………..............………………………......04 Resultados esperados……………………...…...............………………...05 Desenvolvimento....................................................................................06 Código Fonte..........................................................................................08 Cronograma Final...................................................................................10 Conclusão...............................................................................................11 Imagens..................................................................................................11

Page 3: Projeto BUS-BUS

3

1. Introdução

Este relatório técnico tem a intenção de informar qualquer um que seja e que deseje reproduzir este projeto acadêmico com intenção educacional, comercial ou por lazer.

1.1 Justificativas

Tendo em vista esse fato, foi pensado desenvolver um sistema de destrava das janelas de emergência mais automatizado, eficiente e inteligente. A idéia inicial era construir um sistema embarcado de segurança que identificasse várias situações, através da leitura por sensores do ambiente, como desaceleração, temperatura e inclinação. Como tal escopo é de abrangência que não poderíamos programar, foi decidido que para este projeto apenas o sensor de inclinação e de colisão serão implementados para a destrava automática das janelas.

Estado da Arte – Tecnologia Atual de Janelas de Emergência em ônibus

Fig.1 Martelo de Emergência Fig.2 Alavanca de Emergência

1.2 Metodologia

Vamos desenvolver um sistema embarcado, ou seja, micro-controlado sem que haja a necessidade de um computador. Iremos usar o core do microprocessador 8051 e que possuirá um software padrão em linguagem assembly, além motores para ejeção das janelas, sensor acelerômetro para a inclinação, e também aparelhos de instrumentação básica como: multi-teste, osciloscópios, gerador de funções, protoboard, estação de solda, fluxo e estanho e componentes eletrônicos como: resistores, capacitores, indutores, transitores, placas de fenolite entre outros.

1.3 As responsabilidades

PUC: Fornecer suporte em infra-estrutura para o grupo seja em laboratórios, kits e material didático. Professores: Auxiliar o grupo em todas as dúvidas pertinentes ao projeto, assim como corrigir qualquer falha de elaboração, conceito e implementação, atendendo a disponibilidade previamente informada ao grupo. Integrantes: Cada integrante seguirá o cronograma e as atividades a que está responsável. Qualquer imprevisto que possa gerar atraso ao um dos processos, deve ser relatado ao Líder da equipe que por sua vez deve propor alternativas, ou consultar os professores se houver necessidade. Cada integrante independente da hierarquia tem autonomia para dirimir dúvidas técnicas com quem quer que seja, porém, queixas e outros contratempos internos, devem ser discutidos com a liderança da equipe e posteriormente com os professores se houver necessidade.

Page 4: Projeto BUS-BUS

4

2. Os objetivos

O projeto deve conter os seguintes módulos: Módulo de Alimentação: Alimentará o módulo motor, o módulo sensor e o módulo processador. Será composto por fonte de tensão entre 5v a 15v, de corrente de 500 mA a 2A. Módulo Motor: Irá ejetar as janelas de emergência conforme comando do modulo processador. Módulo Sensor.Identificará a situação de emergência, no escopo do projeto, apenas o tombamento para a direita ou para esquerda e por colisões traseiras e frontais será composto por um inclinômetro analógico que se comunicará com o modulo processador, além de dois sensores piezelétricos que também se comunicarão com o módulo processador Módulo Processador: Se encarregará de receber as informações do módulo sensor, e acionar o modulo motor

3. Não está incluso no escopo deste projeto O projeto BUS-BUS não contemplará as seguintes funcionalidades. A ejeção das janelas nos seguintes casos. Incêndio. Obs.: Em caso de capotamento da maquete, as janelas eventualmente poderão ser ejetadas devido à inclinação de 90º ter sido ultrapassada, mas o foco do projeto será a ejeção das janelas de emergência em caso de tombamento para qualquer um dos lados.

4. O projeto O projeto será composto pelos seguintes módulos: Módulo de alimentação; Módulo Sensor; Módulo Motor; Módulo Processador. Descrição dos módulos. Módulo de alimentação: Fornecerá tensão e corrente aos outros módulos, terá tensão entre 5V a 15V e corrente entre 500 mA a 2 A. Provavelmente não será confeccionada, mas sim adquirida para facilitar o andamento do projeto, e uma seqüência saudável do cronograma. Módulo Sensor: Receberá a informação do mundo físico, conforme os parâmetros definidos, no escopo deste projeto, o módulo sensor conseguirá identificar, o tombamento do veículo, através de um sistema de acelerômetros ou giroscópios, ele será o responsável por enviar as informações ao módulo processador. Módulo Motor: É o módulo que fará a ejeção das janelas de emergência, ele receberá a informação de acionamento e parada do módulo processador, este módulo poderá ser construído com diversos sistemas de motores, os mais indicados serão servo motores de baixo consumo, motores dc e até motores de passo. Módulo Processador: Será o cérebro do projeto, estará encarregado de verificar o perfeito funcionamento do sistema, e da interpretação dos dados captados pelos sensores, do envio de comando de início e parada dos motores. É a CPU do projeto.

Page 5: Projeto BUS-BUS

5

Fig. 3 – Diagrama de Blocos Módulos projeto BUS-BUS

5. Os resultados esperados Como resultados deste projeto, serão apresentados aos professores os seguintes itens / funcionalidades: 1. Protótipo funcionando dos módulos: Alimentação, Motor, Processador, Sensor; 2. CD com arquivos, códigos-fonte e modelos dos módulos implementados; 3. Vídeo; 4. Documentação do projeto dos itens acima.

6. Os requisitos Para que este projeto possa ser realizado com sucesso, os seguintes requisitos são necessários e devem ser fornecidos pela PUCPR: 1. Disponibilidade de laboratórios para testes de software, hardware e toda a prototipagem do projeto. 2. Disponibilidade de instrumentos de medição, assim como kit's para os testes e execução do trabalho, além de qualquer outro material disponível no campus que haja necessidade de utilização. 3. Disponibilidade de docentes para sanar as dúvidas técnicas que surgirão, dentro de horários que não atrapalhem o andamento das atividades dos docentes e do grupo.

7. A Equipe de Desenvolvimento A equipe de desenvolvimento contará com os colaboradores: Washington Luiz Peroni – Líder da Equipe. Responsabilidades: Liderar a equipe, acompanhar e propor soluções as dificuldades do projeto. Auxiliar os demais nas atividades para cumprir o cronograma e o plano de trabalho. Atentar e executar tarefas pedidas pelo conselho deliberativo (Professor Afonso Miguel e o cliente externo). Executar atividades compatíveis mediante pedido dos superiores imediatos (Professores Afonso Miguel). Raphael Nogueira – Gerência de Qualidade e Engenharia do Produto. Responsabilidades: Gerenciar os processos de qualidade, selecionar fornecedores, acompanhar processos de acabamento e desenvolvimento de novas técnicas e ferramentas. Auxiliar os demais nas atividades para cumprir o cronograma e o plano de trabalho. Executar atividades compatíveis mediante pedido do superior imediato (Washington Luiz Peroni).

8. Desenvolvimento do Projeto A seguir etapas de confecção do projeto.

MOD. Alimentação

MOD. Sensor

MOD. Processador

MOD. Motor

Page 6: Projeto BUS-BUS

6

9. Hardware

9.1 Placa Controladora

Para confecção da placa de controle, foi utilizado atmega8 conforme a lista de materiais abaixo Mais informações no site: http://www.arduino.cc/en/Main/ArduinoBoardSerialSingleSided3

Itens adicionais: 2 Servo motores pequenos 2 Discos Piezo para sensor de colisão 1 Porta bateria 1 Bateria 9V

Fios para conexões

9.2 Inclinômetro

Para construir o inclinômetro será necessário:

1 Placa de fenolite pré-furada de 10x15 1 LM7805

Arduino RS232 BOM

Parts Qty Value Device Farnell RS ELFA Digikey

S1 1 Reset pusbutton 535916 35-656-29 SW400-ND

IC2 1 78xxL 7805 TO220 701853 73-000-16 LM7805CT-ND

X1 1 DB9 PCB female connector 4106118 44-057-00 A2100-ND

LED1 1 Green LED 656719 75-012-08 160-1144-ND

POWER 1 4 pin header 3291777 43-782-79 A26509-20-ND

J2 1 6pins header 43-782-95 A26509-20-ND

J1, J3 2 8 pins header 43-783-11 A26509-20-ND

X2 1 2.1mm power jack 224959 42-051-67 CP-102AH-ND

Q1 1 16 MHz Quartz 641029 74-517-01 300-6034-ND

D1 1 1N4004 1N4004 or equivalent 251707 70-003-91 1N4004GICT-ND

D2, D3 2 1N4148 1N4148 399390 70-005-57 1N4148FS-ND

R1 1 4k7 1/4 W resistor 509243 60-785-70 4.7KQBK-ND

R2 1 220 1/4 W resistor 509097 60-784-14 220QBK-ND

R3,R4 2 1k 1/4 W resistor 509164 60-784-97 1.0KQBK-ND

R5, R6, R7, R8, R9 5 10k 1/4 W resistor 509280 60-786-12 10KQBK-ND

C1, C5 2 100n Polyester Capacitor 146079 65-505-29 P4201-ND

C2, C3 2 22p Polyester Capacitor 896410 65-861-68 1330PH-ND

C6, C7 2 100u Electrolitic Capacitor 920629 67-010-80 P10269-ND

C8 1 10u Electrolitic Capacitor 920502 67-008-01 P11250-ND

IC1 1 ATMEGA8 Atmega8 28pin DIP microcontroller 3917927 73-672-04 ATMEGA8-16PI-ND

X3 1 28pin IC socket 48-161-87 ED3128-ND

T1 1 BC547 Transistor 357054 71-072-87 BC547BOS-ND

T2 1 BC557 Transistor 4399821 71-072-95 BC327OS-ND

ICSP 1 ICSP 2x3 pins header 3291947 43-717-12 A26509-20-ND

Page 7: Projeto BUS-BUS

7

1 CD40106 2 Chaves de contato 2 Sensores de Inclinação 2 Hastes metálicas finas 1 Tubo externo de caneta esferográfica Fios para conexões Cintas Hellerman para Fixação Solda Elétrica

10. Esquemas

Fig. 4 – Esquema Lógico Placa controladora Fig. 5 – Esquema PCB Placa Controladora

Fig. 6 – Esquema de Montagem Final Placa Controladora mais inclinometro analógico

Page 8: Projeto BUS-BUS

8

11. Software /*////////////////////////////////////////////////////////////////////////

12. * Código fonte do projeto integrado de microprocessadores

13. * Engenharia de Computação 2011 - noturno

14. * BUS - Blow Unlock System (BUS-BUS)

15. * Criado: 07/10/2011 10:42:44

16. * Autor: Raphael Nogueira

17. /*///////////////////////////////////////////////////////////////////////

18.

19. #ifndef F_CPU

20. #define F_CPU 1600000UL////define a frequência da classe delay em 1MHz

21. #endif

22.

23. #ifndef __OPTIMIZE__

24. #define __OPTIMIZE__

25. #endif

26.

27. #include <avr/io.h>

28. #include <util/delay.h>

29. #include <avr/interrupt.h>

30.

31. /////prototipos das funçoes/////

32. void init_ports(void);

33. void init_ADC(void);

34. void pisca_led(void);

35. void abreesquerda(void);

36. void abredireita(void);

37. void init_janela(void);

38. unsigned char read_ADC(void);

39.

40. //funçao que le o valor da conversão analogica

41. unsigned char read_ADC(void)

42. {

43. unsigned char value;

44.

45. ADCSRA = ADCSRA | 0x40;

46.

47. while( (ADCSRA & 0x10) == 0 );

48.

49. value = ADCH;

50.

51. return value;

52. }

53.

54. //funçao para iniciar as janelas na posiçao inicial de 0°

55. void init_janela(void)

56. {

57. for(int i=0; i<30; i++)

58. {

59. PORTB = 0x03;

60. _delay_ms(1.5);

61. PORTB = 0x00;

Page 9: Projeto BUS-BUS

9

62. _delay_ms(18.5);

63. }

64. }

65.

66. //funçao que abre a janela do lado esquerdo 90°

67. void abreesquerda(void)

68. {

69. for(int i=0; i<30; i++)

70. {

71. PORTB = 0x01;

72. _delay_us(800);

73. PORTB = 0x00;

74. _delay_ms(19.2);

75. }

76. }

77.

78. //funçao que abre a janela do lado direito 90°

79. void abredireita(void)

80. {

81. for(int i=0; i<30; i++)

82. {

83. PORTB = 0x02;

84. _delay_us(800);

85. PORTB = 0x00;

86. _delay_ms(19.2);

87. }

88. }

89.

90. //liga o pisca alerta após a colisao

91. void pisca_led(void)

92. {

93. while(1)

94. {

95. PORTB = 0x04;

96. _delay_ms(500);

97. PORTB = 0X00;

98. _delay_ms(500);

99. }

100. }

101.

102. //inicia as portas do microprocessador configurando-as como entrada e/ou saida

103. void init_ports(void)

104. {

105. DDRB = 0xFF;

106. DDRC = 0x00;

107. DDRD = 0x00;

108.

109. PORTB = 0x00;

110. PORTC = 0x00;

111. }

112.

113. //configura os registradores do conversor AD para fazer as conversão utilizando referencia interna

114. void init_ADC(void)

Page 10: Projeto BUS-BUS

10

115. {

116. ADMUX = 0xE0;

117. ADCSRA = 0x87;

118. }

119.

120. /////Funçao principal do programa/////

121. int main(void)

122. {

123. init_ports();

124. init_ADC();

125. init_janela();

126.

127. while(1)

128. {

129. //if (bit_is_set(PIND,PIND2))

130. if (PIND & 0x01)

131. {

132. abreesquerda();

133. pisca_led();

134. }

135.

136. //if (bit_is_set(PIND,PIND3))

137. if(PIND & 0x02)

138. {

139. abredireita();

140. pisca_led();

141. }

142.

143.

144. unsigned char valor = ~read_ADC();

145. if (valor > 249)

146. {

147. abreesquerda();

148. abredireita();

149. pisca_led();

150. }

151. }

152.

153. return 0;

154. }

Page 11: Projeto BUS-BUS

11

12. Cronograma Final

13. Conclusão

O projeto seguiu o cronograma anexo ao final, porem tivemos muitas dificuldades para o seu funcionamento do protocolo I2C. Embora seja uma tecnologia posta, não houve êxito nesse quesito. Tivemos o auxilio do especialista Henrique Hinke como stakeholder, a quem mais uma vez agradecemos. Bem, com isso decidiu se construir um acelerômetro analógico, parar a detecção da inclinação, que conforme os testes ira satisfazer. Também seguindo o escopo, foi usado como sensor de colisão, pastilhas piezoeletricas, junto ao microntrolador Atmega 8, aproveitando seus conversor AD para captar a tensão gerada pela pastilha através da colisão, e converte la em nível lógico 1.

13.1 Maquete

A principio iríamos levar uma miniatura de um ônibus real, compramos uma via internet. Mas a qualidade da mesma deixou a desejar, e resolvemos utilizar algo maior, porem com detalhes de acabamentos, mais adaptáveis ao nosso projeto. Adeqüemos então uma miniatura de caminhão com carroceria vazada o que ficou ideal para a instalação das placas e motores. Pois facilitou o acesso para a instalação dos nossos dispositivos.

14. Imagens

Abaixo imagens da execução do projeto.

Page 12: Projeto BUS-BUS

12

Fig. 7 – Desenvolvimento do Projeto