• No results found

3 Bakgrunn for analysens bestandeler

3.1 Nasjonalitet

Seguindo o desenvolvimento deste trabalho com trabalhos futuros, os itens abaixo são sugestões de diversas possibilidades de pesquisa podem ser exploradas a partir dos resultados obtidos neste trabalho:

∙ Realizar a análise para múltiplos motores DC, oferecendo um método de calibragem para eles também.

∙ Realizar a análise para diferentes tipos de sensores como o mesmo propósito como os sensores de localização. A proposta de calibragem é válida para qualquer sensor linear, e os sensores de baixo custo do Arduino podem se beneficiar de mais precisão em muitas tarefas.

∙ Efetuar um estudo da relação de como o resultado de sensor pode implicar positivamente e ou negativamente em outro sensor, como nos classificados como complementares, através da compensação de erro por diversos sensores, compondo um sistema robusto e de baixo custo.

∙ Aplicar o método de correção em um caso prático de navegação que use o sonar, por exemplo, numa tarefa de navegação e mapeamento SLAM.

43

Referências

PIERI, E. R. D. Curso de robótica móvel. Santa Catarina, Florianópolis, 2002. Citado 3 vezes nas páginas 7, 13 e 14.

THRUN, S. et al. Stanley: The robot that won the darpa grand challenge. Journal of field Robotics, Wiley Online Library, v. 23, n. 9, p. 661–692, 2006. Citado 2 vezes nas páginas 7 e 18.

FREUND, J. Estatística aplicada: economia, administração e contabilidade. 11a

. [S.l.]: Ed, 2006. Citado 2 vezes nas páginas 7 e 23.

GEORGE, D.; MALLERY, P. IBM SPSS Statistics 23 Step by Step: A Simple Guide and Reference. Taylor & Francis, 2016. ISBN 9781134793334. Disponível em: <https://books.google.com.br/books?id=vKLOCwAAQBAJ>. Citado 3 vezes nas páginas 7, 23 e 24.

ACTION, P. "Teste de Shapiro-Wilk. 2017. Acessado em 16-11-2018. Disponível em: <http://www.portalaction.com.br/inferencia/64-teste-de-shapiro-wilk>. Citado 2 vezes nas páginas 7 e 25.

WOLF, D. F. et al. Robótica móvel inteligente: Da simulação às aplicações no mundo real. In: SN. Mini-Curso: Jornada de Atualização em Informática (JAI), Congresso da SBC. [S.l.], 2009. p. 13. Citado 2 vezes nas páginas 12 e 20.

SOUSA, L. et al. Ensino de programação em robótica móvel no ensino fundamental e médio. In: Anais dos Workshops do Congresso Brasileiro de Informática na Educação. [S.l.: s.n.], 2016. v. 5, n. 1, p. 399. Citado 2 vezes nas páginas 12 e 15.

PIO, J. L. de S.; CASTRO, T. H. C. de; JÚNIOR, A. N. de C. A robótica móvel como instrumento de apoio à aprendizagem de computação. In: Brazilian Symposium on Computers in Education (Simpósio Brasileiro de Informática na Educação-SBIE). [S.l.: s.n.], 2006. v. 1, n. 1, p. 497–506. Citado na página 12.

MARCHI, J. et al. Navegação de robôs móveis autônomos: estudo implementação de abordagens. Florianópolis, SC, 2001. Citado na página 12.

MATARIC, M. J. et al. Introdução à robótica. Ed Unesp, 2014. Citado 2 vezes nas páginas 14 e 18.

COUTO, L. N. Sistema para localização robótica de veículos autônomos baseado em visão computacional por pontos de referência. Dissertação (Mestrado) — Universidade de São Paulo, 2012. Citado 3 vezes nas páginas 16, 17 e 18.

PESSIN, G. et al. Ambiente virtual para simulação de robôs móveis inteligentes aplicados no combate de incêndios florestais. Disciplinarum Scientia| Naturais e Tecnológicas, v. 7, n. 1, p. 147–165, 2016. Citado na página 17.

Referências 44

SOUZA, J. R. d. Navegação autônoma para robôs móveis usando aprendizado supervisionado. Tese (Doutorado) — Universidade de São Paulo, 2014. Citado 2 vezes nas páginas 17 e 18. VASCONCELOS, W. D. S.; JUNIOR, I. F. V.; SOARES, A. A. A. F. Estudo e

desenvolvimento de uma rede sem fio baseada em bluetooth sobre a ferramenta de prototipagem arduino. In: IX Congresso de Iniciação Científica do IFRN. [S.l.: s.n.], 2013. Citado na página 21.

ELIAS, A. A. de A. et al. Ardweather: Uma estação meteorológica baseada no arduino e em web services restful. In: Proceedings of Safety, Health and Environment World Congress. [S.l.: s.n.], 2014. v. 14, p. 44–48. Citado na página 21.

LEOTTI, V. B.; COSTER, R.; RIBOLDI, J. Normalidade de variáveis: métodos de verificação e comparação de alguns testes não-paramétricos por simulação. Revista HCPA. Porto Alegre. Vol. 32, no. 2 (2012), p. 227-234, 2012. Citado na página 22.

CORREIA, M. S. B. B. Probabilidade e estatística. 2003. Citado na página 23.

WESTFALL, P. H. Kurtosis as peakedness, 1905–2014. rip. The American Statistician, Taylor & Francis, v. 68, n. 3, p. 191–195, 2014. Citado 2 vezes nas páginas 23 e 37.

FÁVERO, L.; BELFIORE, P. Manual de análise de dados: Estatística e modelagem multi- variada com Excel÷, SPSSR ÷ e StataR ÷. Elsevier Editora Ltda., 2017. ISBN 9788535285055.R

Disponível em: <https://books.google.com.br/books?id=SmlaDwAAQBAJ>. Citado na página 25.

FIELD, A. Descobrindo a estatistica usando o SPSS - 2.ed. Bookman, 2009. ISBN

9788536320182. Disponível em: <https://books.google.com.br/books?id=Zq059wGcnvwC>. Citado na página 25.

MILNE, I.; ROWE, G. Difficulties in learning and teaching programming—views of students and tutors. Education and Information technologies, Springer, v. 7, n. 1, p. 55–66, 2002. Citado na página 28.

ROBINS, A.; ROUNTREE, J.; ROUNTREE, N. Learning and teaching programming: A review and discussion. Computer science education, Taylor & Francis, v. 13, n. 2, p. 137–172, 2003. Citado na página 28.

BAILEY, T.; DURRANT-WHYTE, H. Simultaneous localization and mapping (slam): Part ii. IEEE Robotics & Automation Magazine, IEEE, v. 13, n. 3, p. 108–117, 2006. Citado na página 29.

FILIPEFLOP, S. "Código Sensor Ultrassônico HC-SR04". Acessado em 16-08-2018. Disponível em: <https://www.filipeflop.com/blog/sensor-ultrassonico-hc-sr04-ao-arduino/ >. Citado na página 30.

45

ANEXO A – Código do Sonar

1 // P r o g r a m a : C o n e c t a n d o Sensor U l t r a s s o n i c o HC - SR04 ao Arduino 2 // Autor : A d a p t a d o de F I L I P E F L O P

3

4 // Carrega a b i b l i o t e c a do sensor u l t r a s s o n i c o 5 # i n c l u d e < U l t r a s o n i c .h >

6 // Define os pinos para o trigger e echo

7 # d e f i n e p i n o _ t r i g g e r 4 8 # d e f i n e p i n o _ e c h o 5 9

10 // I n i c i a l i z a o sensor nos pinos d e f i n i d o s acima 11 U l t r a s o n i c u l t r a s o n i c ( pino_trigger , p i n o _ e c h o ) ; 12

13 int i ;

14 v o i d setup () {

15 Serial . begin (9600) ;

16 Serial . println (" Lendo dados do sensor ... ") ; 17 i =0;

18 }

19 v o i d loop () { 20 if(i >1001) {

21 Serial . print (" END ") ;

22 delay (10000) ;

23 i =0;

24 }

25 f l o a t cmMsec , inMsec ; // Le as i n f o r m a c o e s do sensor , em cm . 26 l o n g m i c r o s e c = u l t r a s o n i c . timing () ;

27 cmMsec = u l t r a s o n i c . convert ( microsec , U l t r a s o n i c :: CM ) ; 28 // Exibe i n f o r m a c o e s no serial monitor

29 Serial . print ( cmMsec ) ; 30 Serial . print (" ; ") ; 31 Serial . println ( i ) ; 32 delay (500) ;

33 i ++; 34 }

46

ANEXO B – Código dos Atuadores

1 // Motor 1 2 int d i r 1 P i n A = 2; 3 int d i r 2 P i n A = 3; 4 int s p e e d P i n A = 9; 5 6 // Motor 2 7 int d i r 1 P i n B = 4; 8 int d i r 2 P i n B = 5; 9 int s p e e d P i n B = 10; 10 11 v o i d setup () { 12 Serial . begin ( 1 1 5 2 0 0 ) ;

13 // Define os pinos c o n t r o l a d o r e s da ponte h dupla L298N 14 pinMode ( dir1PinA , OUTPUT ) ;

15 pinMode ( dir2PinA , OUTPUT ) ; 16 pinMode ( speedPinA , OUTPUT ) ; 17 pinMode ( dir1PinB , OUTPUT ) ; 18 pinMode ( dir2PinB , OUTPUT ) ; 19 pinMode ( speedPinB , OUTPUT ) ; 20 21 delay (3000) ; 22 } 23 24 v o i d loop () { 25 // Para Frente 26 a n a l o g W r i t e ( speedPinA , 255) ; 27 d i g i t a l W r i t e ( dir1PinA , HIGH ) ; 28 d i g i t a l W r i t e ( dir2PinA , LOW ) ; 29 a n a l o g W r i t e ( speedPinB , 255) ; 30 d i g i t a l W r i t e ( dir1PinB , LOW ) ; 31 d i g i t a l W r i t e ( dir2PinB , HIGH ) ; 32 delay (2000) ; 33 34 // Stop 35 a n a l o g W r i t e ( speedPinA , 255) ;

ANEXO B. Código dos Atuadores 47 36 d i g i t a l W r i t e ( dir1PinA , LOW ) ; 37 d i g i t a l W r i t e ( dir2PinA , LOW ) ; 38 a n a l o g W r i t e ( speedPinB , 255) ; 39 d i g i t a l W r i t e ( dir1PinB , LOW ) ; 40 d i g i t a l W r i t e ( dir2PinB , LOW ) ; 41 delay (5000) ; 42 }

48

ANEXO C – Código de Calibragem

1 // P r o g r a m a : C a l i b r a g e m do sonar

2 // Autor : Leandro Magno

3

4 // Carrega a b i b l i o t e c a do sensor u l t r a s s o n i c o 5 # i n c l u d e < U l t r a s o n i c .h >

6

7 // Define os pinos para o trigger e echo

8 # d e f i n e p i n o _ t r i g g e r 4 9 # d e f i n e p i n o _ e c h o 5 10

11 // I n i c i a l i z a o sensor nos pinos d e f i n i d o s acima 12 U l t r a s o n i c u l t r a s o n i c ( pino_trigger , p i n o _ e c h o ) ; 13 // v a r i a v e i s

14 int medidas [9];// guarda as l e i t u r a s r e a l i z a d a s

15 // Captura s o m a t o r i a de y ( erros ) , x ( valor real ) , x ao q u a d r a d o e x * y 16 f l o a t somaY =0 , somaX =0 , somaQX , somaXY ;

17 f l o a t cmMsec , inMsec ; 18 19 // - - - - Funcoes - - - - 20 // ler a d i s t a n c i a do sonar 21 f l o a t l e r D i s t a n c i a () { 22 l o n g m i c r o s e c = u l t r a s o n i c . timing () ;

23 cmMsec = u l t r a s o n i c . convert ( microsec , U l t r a s o n i c :: CM ) ; 24 r e t u r n cmMsec ;

25 }

26 // c a l c u l a r as s o m a t o r i a s e salvar a d i s t a n c i a lidas 27 v o i d s a l v a r C a l c u l a r M e d i d a s () {

28

29 int dist = 50; // v a r i a v e l para i n f o r m a r a d i s t a n c i a a ser lida ; 30

31 // Este trecho sera r e s p o n s a v e l por ler os dados da posicao do

sonar para cada uma das medidas i n f o r m a d a s ;

32 Serial . println (" P o s i c i o n e o sonar a cada d i s t a n c i a i n f o r m a d a e

p r e s s i o n e enter para r e a l i z a r a leitura ") ;

ANEXO C. Código de Calibragem 49

34 Serial . println (" Informe a leitura para a medida de 2 cm ") ;

35 medidas [0]= l e r D i s t a n c i a () -2; // receber a d i f e r e n c a do valor lido

pelo sonar em relacao ao valor real

36 Serial . read () ; // ler a tecla enter 37

38 somaY = medidas [0]; // receber o p r i m e i r o valor da s o m a t o r i a do erro . 39 somaX =2; // recebe o p r i m e i r o valor da s o m a t o r i a da leitura ;

40 somaQX =2*2;// recebe o p r i m e i r o valor da s o m a t o r i a de x ao q u a d r a d o 41 somaXY = medidas [0]*2; // recebe o p r i m e i r o valor da s o m a t o r i a

42

43 // loop para r e a l i z a r a leitura das d i s t a n c i a e grava no vetor ; 44 for(int j =1; j < 9; j ++) {

45 Serial . print (" Informe a leitura para a medida de ") ; 46 Serial . println ( dist + " CM ") ;

47 Serial . read () ;// ler a tecla enter . 48 medidas [ j ]= l e r D i s t a n c i a () - dist ; 49 somaY += medidas [ j ];

50 somaX += dist ;

51 somaQX += dist * dist ;

52 somaXY += medidas [ j ]* dist ;

53 dist +=50;

54 } 55 }

56 // calcula o valor da e x p r e s s a o ( formula ) a 57 f l o a t valorA () {

58

59 f l o a t part1 , part2 , result ;

60 // calcula a parte s u p e r i o r da e x p r e s s a o a ; 61 part1 = ( somaY * somaQX ) -( somaX * somaXY ) ;

62 // calcula a parte i n f e r i o r da e x p r e s s a o onde 9 e q u e i v a l e ao n ; 63 part2 = (9* somaQX - ( somaX * somaX ) ) ;

64 result = part1 / part2 ; // calcula a divisao da e x p r e s s a o ; 65 r e t u r n result ;

66 }

67 // calcula o valor da e x p r e s s a o b 68 f l o a t valorB () {

69

70 f l o a t part1 , part2 , result ;

ANEXO C. Código de Calibragem 50

72 part1 = (9* somaXY ) -( somaX * somaY ) ;

73 // calcula a parte i n f e r i o r da e x p r e s s a o onde 9 e q u e i v a l e ao n ; 74 part2 = (9* somaQX - ( somaX * somaX ) ) ;

75 result = part1 / part2 ; // calcula a divisao da e x p r e s s a o ; 76 r e t u r n result ;

77 }

78 v o i d setup () {

79 Serial . begin (9600) ;

80 Serial . println (" Lendo dados do sensor ... ") ; 81 }

82 v o i d loop () { 83

84 s a l v a r C a l c u l a r M e d i d a s () ;

85 Serial . print (" O valor e n c o n t r a d o para A e : ") ; 86 Serial . println ( valorA () ) ;

87 Serial . print (" O valor e n c o n t r a d o para B e : ") ; 88 Serial . println ( valorB () ) ;

89 }

51

ANEXO D – Código para obter leitura real do

Sonar

1 // P r o g r a m a : D i s t a n c i a Real do sonar

2 // Autor : Leandro Magno

3

4 // Carrega a b i b l i o t e c a do sensor u l t r a s s o n i c o 5 # i n c l u d e < U l t r a s o n i c .h >

6 // Define os pinos para o trigger e echo

7 # d e f i n e p i n o _ t r i g g e r 4 8 # d e f i n e p i n o _ e c h o 5 9

10 // I n i c i a l i z a o sensor nos pinos d e f i n i d o s acima 11 U l t r a s o n i c u l t r a s o n i c ( pino_trigger , p i n o _ e c h o ) ; 12

13 f l o a t a , b ; // recebe os dados da c a l i b r a g e m

14 f l o a t cmMsec , inMsec ;// v a r i a v e s para receber os dados do sonar 15 v o i d setup () {

16 Serial . begin (9600) ;

17 Serial . println (" Informe os dados da c a l i b r a g e m para : ") ; 18 Serial . print (" A : ") ;

19 a = Serial . read () ;

20 Serial . print (" \ nB : ") ; 21 b = Serial . read () ;

22 }

23 // funcao para ler d i s t a n c i a sonar 24 f l o a t l e r D i s t a n c i a () {

25 l o n g m i c r o s e c = u l t r a s o n i c . timing () ;

26 cmMsec = u l t r a s o n i c . convert ( microsec , U l t r a s o n i c :: CM ) ; 27 r e t u r n cmMsec ;

28 } 29

30 // funcao para c a l c u l c a r a d i s t a n c i a real . 31 f l o a t o b t e m D i s t a n c i a R e a l (f l o a t a , f l o a t b ) { 32 r e t u r n (( l e r D i s t a n c i a () - a ) / (1+ b ) ) ; 33 }

ANEXO D. Código para obter leitura real do Sonar 52

34 v o i d loop () {

35 Serial . print (" A d i s t a n c i a lida pelo Sonar : ") ; 36 Serial . println ( l e r D i s t a n c i a () ) ;

37 Serial . print (" A d i s t a n c i a real : ") ;

38 Serial . println ( o b t e m D i s t a n c i a R e a l (a , b ) ) ; 39 }