96
Universidade Estadual de Londrina Centro de Tecnologia e Urbanismo Departamento de Engenharia Elétrica Suzana Carnielli do Prado Estudo orientado de programação aplicada à robótica Londrina 2017

Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Embed Size (px)

Citation preview

Page 1: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Universidade Estadual de LondrinaCentro de Tecnologia e UrbanismoDepartamento de Engenharia Elétrica

Suzana Carnielli do Prado

Estudo orientado de programação aplicada àrobótica

Londrina2017

Page 2: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua
Page 3: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Universidade Estadual de Londrina

Centro de Tecnologia e UrbanismoDepartamento de Engenharia Elétrica

Suzana Carnielli do Prado

Estudo orientado de programação aplicada à robótica

Trabalho de Conclusão de Curso orientado pelo Prof. Dr. Er-nesto Fernando Ferreyra Ramirez intitulado “Estudo orientado deprogramação aplicada à robótica” e apresentado à Universidade Es-tadual de Londrina, como parte dos requisitos necessários para aobtenção do Título de Bacharel em Engenharia Elétrica.

Orientador: Prof. Dr. Ernesto Fernando Ferreyra Ramirez

Londrina2017

Page 4: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Ficha Catalográfica

Suzana Carnielli do PradoEstudo orientado de programação aplicada à robótica - Londrina, 2017 - 94p., 30 cm.Orientador: Prof. Dr. Ernesto Fernando Ferreyra Ramirez1. Linguagem de programação 2. Arduino. 3. Robótica. 4. Robótica pedagó-gica. 5. ProcessingI. Universidade Estadual de Londrina. Curso de Engenharia Elétrica. II.Estudo orientado de programação aplicada à robótica.

Page 5: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Suzana Carnielli do Prado

Estudo orientado de programação aplicada àrobótica

Trabalho de Conclusão de Curso apresentado ao Curso deEngenharia Elétrica da Universidade Estadual de Londrina,como requisito parcial para a obtenção do título de Bacharelem Engenharia Elétrica.

Comissão Examinadora

Prof. Dr. Ernesto Fernando FerreyraRamirez

Universidade Estadual de LondrinaOrientador

Prof. Dr. Aziz Elias Demian JúniorUniversidade Estadual de Londrina

Prof. Dra. Maria Bernadete de MoraisFrança

Universidade Estadual de Londrina

Londrina, 20 de fevereiro de 2017

Page 6: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua
Page 7: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua
Page 8: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua
Page 9: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Agradecimentos

Agradeço primeiramente a Deus que iluminou cada passo e caminho a ser trilhado.Agradeço aos meus pais pela vida, por cuidarem de mim, por me apoiarem em todasas minhas decisões e por terem contribuido na minha formação profissional de diversasformas. Agradeço aos meus irmãos, que foram os primeiros amigos da minha vida e tam-bém meus primeiros professores. Sem o amor incondicional deles, com certeza seria muitomais árdua a caminhada. Em especial, à minha irmã que dividiu o lar, o coração, e quasetodos os momentos desse trajeto. Junto aos meus irmãos, sou grata pelos cunhados, quecompletam nossa família. Agradeço aos meus amigos, que amo muito, em especial à mi-nha irmã de coração Franciele Bueno, a Lela, que hoje não está entre nós, mas que teveo papel fundamental de incentivo, amor, ensinando que a vida é rara, e que os problemassão todos passageiros. Agradeço à minha engenheira favorita, Bárbara Sfeir, que estevecomigo desde o primeiro dia letivo da graduação e que teve participação imprescindívelnesse percurso. Agradeço aos meus amigos engenheiros e futuros engenheiros Carol, Ha-vena, Teó, Nery, Rafa, Ricardo e Diego que tanto contribuiram durante todos esses anos.Agradeço aos amigos espalhados por onde passei que nunca me deixaram desistir e par-ticiparam de cada conquista. Agradeço aos colegas do estágio, colegas de Engenharia eaos meus professores do departamento de Engenharia Elétrica e outros departamentos,em especial ao meu professor orientador que não hesitou em ajudar e orientou da melhorforma possível o trabalho de conclusão de curso.

Page 10: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua
Page 11: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

“Que os vossos esforços desafiem as impossibilidadeslembrai-vos de que as grandes coisas do homemforam conquistadas do que parecia impossível.”

(Charles Chaplin)

Page 12: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua
Page 13: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Suzana Carnielli do Prado. Estudo orientado de programação aplicada à robótica.2017. 94 p. Trabalho de Conclusão de Curso em Engenharia Elétrica - UniversidadeEstadual de Londrina, Londrina.

ResumoA falta de acesso aos conteúdos relacionados à engenharia para alunos dos níveis funda-mental, médio e técnico é a base para a proposta desse trabalho, que fundamenta-se emdesenvolver um manual de implementação na área de robótica que consiga ser utilizadopara melhores práticas pedagógicas, contribuindo não só em uma restrita área da enge-nharia, mas abrangendo melhorias na educação e desenvolvendo métodos eficazes parao ensino. Essa proposta inicia-se com embasamento de uma pesquisa qualitativa sobreprojetos de extensão e desenvolve-se no estudo dos recursos oferecidos pelo ambiente dedesenvolvimento e comunicação chamado como Processing para implementação gradativade programas que auxiliem no aprendizado da linguagem de programação, bem como usoda interface Arduino. Além de implementações, a execução de um robô físico que executefunções enviadas por comandos através de portas seriais. Essas implementações são uti-lizadas na montagem do manual proposto para estudo dirigido.

Palavras-Chave: 1. Linguagem de programação 2. Arduino. 3. Robótica. 4. Robóticapedagógica. 5. Processing

Page 14: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua
Page 15: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Suzana Carnielli do Prado. Targeted study of programming applied to robotics.2017. 94 p. Monograph in Electrical Engineering - Londrina State University, Londrina.

AbstractThe lack of access to engineering-related content for students at the fundamental, middleand technical levels is the basis for the proposal of this work, which is based on developingan implementation manual in the area of robotics that can be used for best pedagogicalpractices, Contributing not only in a narrow area of engineering, but encompassing im-provements in education and developing effective methods for teaching. This proposalbegins with a qualitative research on extension projects and is developed in the studyof the resources offered by the development and communication environment called asProcessing for the gradual implementation of programs that aid in the learning of theprogramming language , As well as using the Arduino interface. In addition to imple-mentations, the execution of a physical robot that performs functions sent by commandsthrough serial ports. These implementations are used to construct the proposed manualfor targeted study.

Key-words: 1. Programming language. 2. Arduino. 3. Robotics. 4.Pedagogicalrobotics. 5. Processing

Page 16: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua
Page 17: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Lista de ilustrações

Figura 1 – Exemplo de um código para pisca-led . . . . . . . . . . . . . . . . . . . 29Figura 2 – Exemplo de uso de função . . . . . . . . . . . . . . . . . . . . . . . . . 30Figura 3 – Exemplo de uso de biblioteca . . . . . . . . . . . . . . . . . . . . . . . 31Figura 4 – Relação das linguagens de programação com Processing . . . . . . . . . 31Figura 5 – Código para desenho de figuras aleatórias . . . . . . . . . . . . . . . . 33Figura 6 – Resultado da execução do código referente à figuras aleatórias . . . . . 34Figura 7 – Código para desenho com variação da posição do cursor . . . . . . . . 35Figura 8 – Resultado da execução do código para variação de cursor . . . . . . . . 36Figura 9 – Arduino UNO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Figura 10 – Circuito para servo-motor . . . . . . . . . . . . . . . . . . . . . . . . . 38Figura 11 – Código para servo-motor . . . . . . . . . . . . . . . . . . . . . . . . . . 39Figura 12 – Hockey de mesa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Figura 13 – Formas utilizadas em fluxogramas . . . . . . . . . . . . . . . . . . . . . 43Figura 14 – Fluxograma para o algoritmo do Jogo . . . . . . . . . . . . . . . . . . 44Figura 15 – Circuito para potenciômetro . . . . . . . . . . . . . . . . . . . . . . . . 45Figura 16 – Coordenadas e movimentos executados pela garra robótica . . . . . . . 48Figura 17 – Esquema das conexões para servo-motores . . . . . . . . . . . . . . . . 49Figura 18 – Esquema das conexões para Joystick . . . . . . . . . . . . . . . . . . . 49Figura 19 – Fluxograma para Garra Robótica . . . . . . . . . . . . . . . . . . . . . 51Figura 20 – Esquemático da montagem da Garra robótica . . . . . . . . . . . . . . 52Figura 21 – Simulação de defesa de jogo . . . . . . . . . . . . . . . . . . . . . . . . 57Figura 22 – Placar do jogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57Figura 23 – Simulação de fim de jogo . . . . . . . . . . . . . . . . . . . . . . . . . . 58Figura 24 – Plataforma Arduino com potenciômetro . . . . . . . . . . . . . . . . . 62Figura 25 – Foto da montagem final da Garra robótica . . . . . . . . . . . . . . . . 63Figura 26 – Detalhe da Garra robótica . . . . . . . . . . . . . . . . . . . . . . . . . 64Figura A1 – Página inicial do Processing . . . . . . . . . . . . . . . . . . . . . . . . 75Figura A2 – Código para desenho de figuras aleatórias . . . . . . . . . . . . . . . . 76Figura A3 – Resultado da execução do código referente à figuras aleatórias . . . . . 77Figura A4 – Código para desenho com variação da posição do cursor . . . . . . . . 78Figura A5 – Resultado da execução do código para variação de cursor . . . . . . . . 79Figura B1 – Hockey de mesa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80Figura B2 – Fluxograma para o algoritmo do Jogo . . . . . . . . . . . . . . . . . . 81Figura B3 – Circuito para potenciômetro . . . . . . . . . . . . . . . . . . . . . . . . 84

Page 18: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Figura B4 – Coordenadas e movimentos executados pela garra robótica . . . . . . . 87Figura B5 – Esquema das conexões para servos-motor . . . . . . . . . . . . . . . . . 89Figura B6 – Esquema das conexões para Joystick . . . . . . . . . . . . . . . . . . . 90Figura B7 – Esquemático da montagem da Garra robótica . . . . . . . . . . . . . . 90Figura B8 – Fluxograma para Garra Robótica . . . . . . . . . . . . . . . . . . . . . 91

Page 19: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Lista de Siglas e Abreviaturas

IDE Integrated Development EnvironmentIEEE Institute of Electrical and Electronic EngineersMIT Massachusetts Institute of TechnologyNAAH/S Núcleo de Atividades de Altas Habilidades/SuperdotaçãoPC Personal ComputerPWM Pulse Width ModulationRGB Red, Green, BlueRX ReceiverTX TransmitterUEL Universidade Estadual de LondrinaUSART Universal Synchronous Asynchronous Receiver Transmitter

Page 20: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Sumário

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211.1 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221.2.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221.2.2 Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . 221.3 Estrutura do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . 23

2 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . 252.1 A educação e a robótica: Projetos de extensão . . . . . . . . . 252.1.1 A importância dos projetos de Extensão . . . . . . . . . . . . . 252.1.2 Exemplos de projetos de Extensão . . . . . . . . . . . . . . . . . 262.2 Linguagem de programação . . . . . . . . . . . . . . . . . . . . . 282.2.1 A linguagem de programação para Arduino . . . . . . . . . . . 282.2.1.1 Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.2.1.2 Dado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.2.1.3 Função . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.2.1.4 Estrutura de controle . . . . . . . . . . . . . . . . . . . . . . . . . . 302.2.1.5 Biblioteca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.2.2 A linguagem de programação do Processing . . . . . . . . . . . 312.2.2.1 Informações Gerais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.2.2.2 Introdução ao Processing . . . . . . . . . . . . . . . . . . . . . . . . 322.3 Plataforma Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . 362.3.1 Servo motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3 DESENVOLVIMENTO . . . . . . . . . . . . . . . . . . . . . . . 413.1 Metodologia Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.2 Pesquisa qualitativa com alunos do Ensino médio . . . . . . . . 413.3 Criação de um jogo básico . . . . . . . . . . . . . . . . . . . . . . 423.3.1 Fluxograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.4 Uso da porta serial . . . . . . . . . . . . . . . . . . . . . . . . . . . 453.5 Garra robótica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463.5.1 Materiais Utilizados . . . . . . . . . . . . . . . . . . . . . . . . . . 463.5.2 Eixos para Servo-motores . . . . . . . . . . . . . . . . . . . . . . . 473.5.3 Botão Joystick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493.5.4 Fluxograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Page 21: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

SUMÁRIO 19

3.5.5 Montagem dos circuitos . . . . . . . . . . . . . . . . . . . . . . . . 51

4 RESULTADOS E DISCUSSÕES . . . . . . . . . . . . . . . . . . 534.1 Resultado da pesquisa qualitativa . . . . . . . . . . . . . . . . . . 534.2 Criação de um jogo básico . . . . . . . . . . . . . . . . . . . . . . 544.3 Uso da porta serial . . . . . . . . . . . . . . . . . . . . . . . . . . . 594.4 Garra robótica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634.4.1 Bancada de montagem . . . . . . . . . . . . . . . . . . . . . . . . . 634.4.2 Implementação - Software . . . . . . . . . . . . . . . . . . . . . . 64

5 CONCLUSÕES E TRABALHOS FUTUROS . . . . . . . . . . 695.1 Consideraçoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . 695.2 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

A APÊNDICE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75A.1 Introdução ao Processing . . . . . . . . . . . . . . . . . . . . . . . 75A.2 Tutorial básico de Programação com ênfase em Robótica . . . 79A.2.1 Nível I - Ferramenta Processing . . . . . . . . . . . . . . . . . . . 79A.2.2 Nível II - Uso da serial (Processing + Arduino) . . . . . . . . 83A.2.3 Nível III - Garra robótica . . . . . . . . . . . . . . . . . . . . . . . 87

Page 22: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua
Page 23: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

21

1 Introdução

A robótica é uma área extremamente abrangente, que possui uma aguçada inter-disciplinalidade e com o crescimento e desenvolvimento tecnlógico, sua representação sefortalece. Dessa forma, pode ser peça fundamental no âmbito educacional, e ser usadapara incentivar alunos - mesmo antes dos últimos anos do Ensino Médio - a se interessarempelas áreas relacionadas à Engenharia, bem como impulsionar boas relações em trabalhosrealizados em grupo, desenvolver o lado criativo do aluno, criar relação entre conteúdosteóricos das áreas exatas estudadas desde o Ensino Fundamental e prática e execução deprojetos.

Para (SILVA, 2009), em sua tese sobre um método educacional vinculado a robótica,essa área de pesquisa visa o desenvolvimento de robôs para, de algum modo, auxiliar adiminuir a complexidade de determinadas tarefas em diferentes áreas. Nos últimos anos,a robótica não só cresceu em áreas como automobilística e têxtil, mas também cresceu noagronegócio, indústria bélica, alimentícia, entre outras. Na educação, a robótica chegoupara constituir um novo mediador o processo de ensino-aprendizagem.

De acordo com (SUANNO, 2009) em seu artigo publicado no IX Congresso de Educa-ção, a robótica pedagógica consiste - em suma - na aprendizagem por meio da montagemde sistemas constituídos por robôs. Esses dispositivos autômatos passam a ser, na verdade,artefatos cognitivos que os alunos utilizam para explorar e expressar sua próprias idéias,ou “um objeto-para-pensar-com”, nas palavras de Papert(1986). Para (BACAROGLO,2005):

“a Robótica Educacional consiste basicamente na aprendizagem por meiode montagem de sistemas constituídos por modelos. Esses modelos são meca-nismos que apresentam alguma atividade física, como movimento de um braçomecânico, levantamento de objetos, etc., como os atuais robôs.”

Para a aplicação dos conceitos sobre robótica educacional, existem alguns softwares queservem de base para os alunos, inicializando os conceitos de linguagem de programação,tal como o Processing.

De acordo com as informações e descrições dos fundadores, FRY, B.; REAS, C. (2016),o Processing é conhecido como linguagem de programação e ambiente de desenvolvimentoe comunicação on-line. Foi criada em 2001, e desde então promove a alfabetização deprocessamento de software dentro das artes visuais e alfabetização visual dentro da tec-nologia.

Inicialmente criada para servir como um caderno de desenho de software e para ensinaros fundamentos de programação de computadores dentro de um contexto visual, evoluiu

Page 24: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

22 Capítulo 1. Introdução

para uma ferramenta de processamento e desenvolvimento para os profissionais. Hoje,existem dezenas de milhares de estudantes, artistas, designers, pesquisadores e amadoresque utilizam este processo de aprendizagem, protótipos e produção.

Para a implementação na robótica, utiliza-se muito Arduino, que é uma plataformaeletrônica de código aberto baseado em hardware e software de uso facilitado, destinadopara que um maior tipo de público possa fazer projetos interativos. De acordo comos fundadores do Arduino, BANZI, M.; CUARTIELLES, D.; IGOE, T.; MARTINO,G.;MELLIS, D. (2016b) a placa utilizada é capaz de detectar o ambiente , recebendoentradas de muitos sensores, e afeta seus arredores por luzes de controle, motores e outrosatuadores. Os comandos são enviados para a placa através de um software, escrevendocódigos em uma linguagem de programação específica, que se assemelha à linguagem C,e com isso desenvolvendo projetos interativos. Dessa forma, agregando o aprendizado delinguagem de programação com os softwares disponíveis para trabalho e uma metodologiade ensino adequada, torna-se possível a construção de um material de apoio para jovensalunos que não possuem em sua grade curricular conteúdo com essa especificidade.

1.1 Justificativa

A tecnologia, por seu caráter de desenvolvimento acelerado, engendra o seguinte ques-tionamento: como aproveitá-la de forma dinâmica e em um público apropriado? A áreada robótica tem sido amplamente explorada, contudo, a inserção de seus conhecimentosàs vezes é tardia. Sabe-se bem que a educação - tema central em diversos debates - é base,entretanto, ela aparece distante quando a abordagem é a área exata. Para o ensino dequalidade, uma boa referência pode não ser suficiente, então a montagem de um materialna forma de tutorial para transmitir o conhecimento é de suma importância. Através depequenas implementações e pesquisas demonstradas passo-a-passo, surgem novas possibi-lidades de projetos, e torna-se referência para um público jovem que pretende aprimorarconhecimentos e desenvolver projetos que são relacionados a robótica.

1.2 Objetivos

1.2.1 Objetivo Geral

• Construir um manual com instruções para usar a linguagem de programação à favordo desenvolvimento de projetos e implementações na área da robótica.

1.2.2 Objetivos Específicos

• Realizar uma pesquisa qualitativa com alunos de projeto de extensão;

Page 25: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

1.3. Estrutura do trabalho 23

• Introduzir conceitos sobre a ferramenta "Processing";

• Implementar um jogo básico com circuito externo e Arduino;

• Projetar e executar uma garra robótica através de comunicação serial;

• Elaborar um manual para estudo dirigido na área de programação com ênfase emrobótica.

1.3 Estrutura do trabalho

• O capítulo 1 faz uma introdução do conteúdo apresentado no trabalho: justifica otema, expõe os objetivos e descreve a estrutura do material.

• O capítulo 2 apresenta um referencial teórico que abrange todos os conteúdos utili-zados para a criação de uma metodologia adequada que por consequência pudesseproporcionar êxito nos resultados.

• O capítulo 3 descreve a metodologia utilizada para o trabalho feito, isto é, detalhao desenvolvimento, materiais e métodos utilizados para a prática de cada conteúdoabordado.

• O capítulo 4 apresenta os resultados obtidos de acordo com o bom emprego dametodologia proposta, através de códigos montados, esquemáticos e figuras queexplanam o cumprimento dos objetivos do trabalho.

• O capítulo 5 conclui o conteúdo do trabalho, mostrando as dificuldades encontradasna sua realização e também como os problemas foram solucionados para que aproposta fosse seguida adequadamente. Além disso, apresenta ideias para trabalhosfuturos.

• No apêndice, encontra-se o tutorial proposto nos objetivos, contendo roteiros prá-ticos das implementações sugeridas para alunos de Ensino Fundamental, Médio eTécnico, com objetivo de familiarização com a área da robótica.

Page 26: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua
Page 27: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

25

2 Fundamentação Teórica

2.1 A educação e a robótica: Projetos de extensão

2.1.1 A importância dos projetos de Extensão

A robótica pode ser vista como desenvolvimento e implementação de sistemas queoperam por comandos realizados por usuários reagindo de forma inteligente através decódigos e ferramentas disponíveis em mercado, no entanto, a robótica pode ser vinculadaà educação de forma extremamente produtiva em Projetos de extensão, que são açõesque envolvem consultorias, assessorias, cursos, simpósios, conferências, seminários, deba-tes, palestras, ações sociais, artísticas, esportivas e outras afins, proposta individual oucoletiva.

Dentro da área da Engenharia Elétrica, muitos projetos foram desenvolvidos nesseaspecto, e a robótica tem recebido destaque em projetos de Extensão em Universidadesque se utilizam dela para desenvolver métodos educacionais e alcançar alunos de EnsinoMédio, por exemplo. Além dessa premissa educacional, os projetos visam atrair estudantespara as áreas de Engenharia e afins, visto que dentro do currículo escolar não se temembasamento para o que é estudado em um curso de graduação relacionado a área deengenharia e tecnologia.

No artigo escrito por (PIAI et al., 2014) é apresentada uma situação em que a a robó-tica educacional é utilizada como ferramenta motivacional para o ensino de ciêcias exatasem diversos paıses ao redor do mundo. O artigo apresenta o processo de inserção destaatividade em um núcleo público de atendimento a crianças e adolescentes, identificadoscomo superdotados ou portadores de altas habilidades, conhecido como NAAH/S (Núcleode Atividades de Altas Habilidades/Superdotação). O atendimento a estes estudantes foirealizado no contraturno das aulas regulares do ensino básico, o objetivo foi proporcionaro contato dos alunos com a robótica através de atividades que utilizavam kits Mindstormsda LEGO e notebooks. Monitorias passaram a ser conduzidas no espaço sobre orientaçãode professores do núcleo e alunos de graduação em engenharia elétrica da UniversidadeEstadual de Londrina. O projeto possuía objetivos bem definidos para cada uma dasclasses envolvidas. Os estudantes participantes do núcleo passavam por um processo dedespertar de suas habilidades lógico-matemáticas e espaciais, estimulando-os assim aoscursos de engenharia. Os alunos de graduação, além de desenvolverem habilidades essen-ciais ao perfil do engenheiro, foram motivados através das atividades práticas, visandoreduzir a evasão nos primeiros anos de curso.

Page 28: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

26 Capítulo 2. Fundamentação Teórica

2.1.2 Exemplos de projetos de Extensão

II Robolon

De acordo com o portfólio exibido online pela Universidade Estadual de Londrina(2015), o evento correspondente à II Robolon foi promovido pelos Departamento de En-genharia Elétrica -Universidade Estadual de Londrina e Núcleo de Atividades de AltasHabilidades/Superdotação – NAAH/S, patrocinado pelo CNPq e pela própria UEL (Uni-versidade Estadual de Londrina).

Com o objetivo de motivar alunos da educação básica de Londrina à descoberta darobótica, consequentemente das engenharias, e ciências exatas, bem como proporcionaratividades em contra turno na melhoria da educação na cidade, iniciou-se o projeto quetem como resultado o II Robolon – mostra científica de robótica e automação de Londrina.

Foram quatro projetos realizados desde 2007, envolvendo aproximadamente 40 alunosde graduação e mais de 150 alunos da educação básica das escolas públicas de Londrina,especialmente os Colégios Estaduais: Vicente Rijo, Profa Maria José Balzanelo Aguilera,Professora Olympia Morais de Tormenta, Profa. Célia Moraes de Oliveira e Maria doRosário Castaldi.

Os objetivos da mostra científica fundamentaram-se em envolver diversas escolas pú-blicas de Londrina, fomentar ensino técnico prático em projetos de Engenharia para alunosda Educação básica, fomentar entre alunos de Engenharia o envolvimento com projetospráticos de Robótica e Eletrônica e fomentar a preocupação social em alunos da graduaçãoque são os monitores dos projetos nas escolas.

Os resultados da mostra científica são muito positivos, no portfólio os números resul-tantes são da I Robolon, isto é, da mostra científica realizada em 2014, no entanto, essesresultados são esperados para as Mostras seguintes. Em 2014 a I Robolon contou com 120alunos participantes da educação básica – expositores, 42 trabalhos apresentados, 28 mo-nitores da Graduação em Engenharia Elétrica, seis professores da UEL e dez professoresdo NAAH/S. Além disso, notou-se um aumento na motivação dos alunos de graduaçãopara projetos práticos de robótica e eletrônica, maior participação dos alunos em projetosde pesquisa ensino e extensão e também em atividades estudantis extra-curriculares, comoEmpresa Jr e IEEE-Ramo Estudantil.

Além da explanação do projeto e dos dados fornecidos pela organização do Proje-to/evento, faz-se necessário conhecer uma ferramenta de pesquisa importante: a pesquisaqualitativa. Em suma, essa pesquisa pode ser feita com um grupo de pessoas para obten-ção de informações amplas que qualificam o tema.

Para (GERHARDT, T.E.; SILVEIRA, D.T, 2009), a pesquisa qualitativa se preocupacom o aprofundamento da compreensão de um grupo social. Os pesquisadores que adotamessa abordagem opõem-se ao pressuposto que defende um modelo único de pesquisa paratodas as ciências, já que as ciências sociais têm sua especificidade.

Page 29: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

2.1. A educação e a robótica: Projetos de extensão 27

Portanto, a pesquisa qualitativa preocupa-se com aspectos da realidade que não podemser quantificados, centrando-se na compreensão e explicação da dinâmica das relaçõessociais.

Mulheres na engenharia, quebrando paradigmas

O objetivo geral do projeto foi despertar vocacional de alunas do ensino médio paracarreiras da engenharia, em particular da área das Telecomunicações. Alcançou-se esseobjetivo através do resgate de exemplos do presente e do passado de mulheres que con-tribuíram com a ciência e a engenharia. Pretendeu-se reproduzir o “fazer” na engenhariaatravés de recursos lúdicos compatíveis com o nível de ensino do público alvo. Este projetofoi desenvolvido juntamente a uma escola de ensino médio, a Escola Presidente JuscelinoKubitschek, em Areias, São José. Para a execução do projeto utilizou-se um conjuntode palestras, eventos e oficinas visando resgatar o papel histórico das mulheres na ci-ência e nas engenharias, em particular na Engenharia de Telecomunicações, de forma aquebrar preconceitos, romper com estigmas associados à área e mostrar o potencial femi-nino na ocupação de cargos neste domínio. Além disso, objetivou-se também despertar ointeresse pela profissão de engenheira, trazendo uma amostra do mundo de trabalho exe-cutado nessa profissão, na forma de um desafio tecnológico, envolvendo o desenvolvimentode miniprodutos, através de uma linguagem de programação educacional.

Dentro do projeto, foram promovidas oficinas, uma delas, noticiada pelo IFSC (2015).O projeto em questão recebeu alunos do terceiro ano da E.E.B. Presidente JuscelinoKubitschek para uma oficina de robótica. Ao longo das dinâmicas promovidas, o projetoenvolveu não só as meninas, mas todos os estudantes do terceiro ano da escola. Esseprojeto faz parte do Instituto Federal de Santa Catarina, campus São José.

No laboratório de redes do campus, os alunos foram recepcionados pelos bolsistas doprojeto, Matheus Fabro e Matuzalém Muller, que demonstraram como os robôs LegoMindstorms se movimentam através de programação simples, utilizando o softwares KitEV3 (The LEGO group, 1999). Depois, os estudantes puderam programar ações de sualivre escolha, utilizando principalmente os sensores sonoros e de movimentação dos robôs.

Após a oficina, o coordenador do projeto, Eraldo Silveira e Silva, explicou as perspecti-vas dos profissionais formados no curso de Engenharia de Telecomunicações oferecido peloCampus São José, além das oportunidades de pesquisa, extensão, intercâmbio, assistênciaestudantil e monitorias a disposição dos acadêmicos do curso.

João Victor, estudante do terceiro ano da escola Juscelino Kubitschek, disse que nuncahavia realizado nada na área de programação, e que a visita foi extremamente interessante.“Me fez pensar em fazer o vestibular para o curso de Engenharia do Câmpus São José",relata. O projeto prevê a oferta de novas oficinas e também realização de competição comrobôs.

Page 30: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

28 Capítulo 2. Fundamentação Teórica

2.2 Linguagem de programação

O primeiro conceito da base do desenvolvimento do trabalho é o reconhecimento dascaracterísticas de um sistema computacional. Esse sistema é o conjunto de dois termosimportantes: Hardware e software. O primeiro representa a parte física do sistema, isto é,os circuitos, as placas construídas, os dispositivos externos e os componentes de montagem.Já o software pode ser definido como a inteligência do programa. Atua na execução detarefas por meio de comandos, conhecidos como códigos. Esses códigos têm linguagenspróprias, a linguagem de programação. Cada ferramenta, interface utilizada, responde àum tipo de linguagem, tais como C, C++, Java, entre outras.

2.2.1 A linguagem de programação para Arduino

De acordo com as informações apresentadas por Luiz Fernando a respeito da linguagempara Arduino, (CHAVIER, L.F, 2013), os seres humanos precisam converter ideias paraque os computadores consigam processar, através da linguagem de máquina. Para oscomputadores, faz-se necessário um outro "idioma"especial para que ele consiga realizardeterminadas tarefas, que é a linguagem de programação.

Essas linguagens de programação também são chamadas de linguagens de programaçãode alto nível. A linguagem de programação utilizada no Arduino é a linguagem C++ (compequenas modificações), que é uma linguagem tradicional.

Para converter um programa escrito em uma linguagem de alto nível para linguagemde máquina, utiliza-se um compilador. A ação de converter um programa para linguagemde máquina é chamada compilar. Para compilar um programa, normalmente utiliza-se umambiente de desenvolvimento (ou IDE, do inglês Integrated Development Environment),que é um aplicativo de computador que possui um compilador integrado, onde se podeescrever um código e posteriormente compilá-lo. No caso do Arduino, esse ambiente dedesenvolvimento é o "Arduino IDE".

O texto contendo o programa em uma linguagem de programação de alto nível tambémé conhecido como o código fonte do programa.

2.2.1.1 Algoritmo

Algoritmos são as forma de indicar ao computador o que ele deve fazer. São normal-mente escritos em linguagens de programação de alto nível. Isso se aplica a praticamentequalquer computador, inclusive o Arduino, onde um algoritmo também é conhecido comosketch. Na figura 1 é apresentado um exemplo de código básico.

Page 31: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

2.2. Linguagem de programação 29

Figura 1 – Exemplo de um código para pisca-led

Fonte: (CHAVIER, L.F, 2013)

2.2.1.2 Dado

O tipo de dado de uma variável significa, como o próprio nome diz, o tipo de informaçãoque se pode armazenar naquela variável. Em muitas linguagens de programação, comoC++, é obrigatório definir o tipo de dado no momento da declaração da variável. No casodos módulos Arduino que usam processador ATmega, os tipos mais comuns de dados queutilizamos são:

• boolean: valor verdadeiro (true) ou falso (false);

• char : um caractere;

• byte: um byte, ou sequência de 8 bits;

• int: número inteiro de 16 bits com sinal (-32.768 a 32.767);

• unsigned int: número inteiro de 16 bits sem sinal (0 a 65.535);

• long: número inteiro de 16 bits com sinal (-2.147.483.648 a 2.147.483.647);

• unsigned long: número inteiro de 16 bits sem sinal (0 a 4.294.967.295);

• float: número real de precisão simples (ponto flutuante);

• double: número real de precisão dupla (ponto flutuante);

• string: sequência de caracteres;

• void: tipo vazio (não tem tipo);

Page 32: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

30 Capítulo 2. Fundamentação Teórica

2.2.1.3 Função

Uma função é, em linhas gerais, uma sequência de comandos que pode ser reutilizadavárias vezes ao longo de um programa. Para criar uma função e dizer o que ela faz,nós precisamos fazer uma declaração de função. Veja como uma função é declarada noprograma exemplo da figura 2

Figura 2 – Exemplo de uso de função

Fonte: CHAVIER, L.F (2013)

2.2.1.4 Estrutura de controle

Estruturas de controle são blocos de instruções que alteram o fluxo de execução docódigo de um programa. Com elas, torna-se possível executar comandos diferentes deacordo com uma condição ou repetir uma série de comandos várias vezes, por exemplo.Seguem as estruturas:

• while é uma estrutura que executa um conjunto de comandos repetidas vezes en-quanto uma determinada condição for verdadeira.

• for nada mais é do que um "while"acrescido de um comando de inicialização e umcomando de finalização.

• if é uma das estruturas mais básicas de programação em geral. Significa "se"e éexatamente isso que corresponde sua função: verificar uma expressão e, apenas seela for verdadeira, executar um conjunto de comandos.

2.2.1.5 Biblioteca

Em implementações mais complexas, em que se utiliza algum outro circuito conectadoao Arduino rende-se ao recurso muito importante que são as bibliotecas. Uma bibliotecado Arduino se apresenta normalmente como uma ou mais classes que possuem funções, osmétodos, para acionar dispositivos, configurá-los ou executar alguma outra tarefa. Umabiblioteca é basicamente composta de código fonte adicional que você adiciona ao seuprojeto por meio do comando "include", mostrado na figura 3.

Page 33: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

2.2. Linguagem de programação 31

Figura 3 – Exemplo de uso de biblioteca

Fonte: CHAVIER, L.F (2013)

2.2.2 A linguagem de programação do Processing

Uma boa síntese a respeito da ferramenta Processing é apresentada por João Faraco(2016) que pontua as características básicas da interface e suas respectivas funções.

2.2.2.1 Informações Gerais

O Processing é uma linguagem de programação destinada a designers e ilustradores.Foi criada no MIT, e é na verdade uma ramificação da linguagem Java, no entanto, possuialgumas facilidades destinadas a produção de peças gráficas, animações, interações etc.Ele utiliza uma linguagem de fácil compreensão. Assim como outras linguagens, por exem-plo, o JavaScript e o Python; mesmo sem experiência com programação, algumas linhasde código e um pouco de raciocínio podem produzir resultados significantes, sendo essaa premissa, desde quando John Maeda e estudantes do "MIT Media Lab" conceberam oprojeto em 2001. A relação das linguagens de programação do Processing é esquematizadana figura 4.

Figura 4 – Relação das linguagens de programação com Processing

Fonte: Rommes Murillo de Sousa (2015)

Page 34: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

32 Capítulo 2. Fundamentação Teórica

2.2.2.2 Introdução ao Processing

Para inicializar o Processing, deve-se primeiramente fazer o download (disponível naprópria página da ferramenta: www.processing.org/download).

A primeira função que é de fundamental importância é a função "size()", pois eladefine o tamanho da janela que será mostrado os desenhos resultantes da implementação.A função "background()" define a cor do fundo. Para inserir as cores, normalmente utiliza-se a mistura de cores através de valores entre 0 e 255, formato vermelho-verde-azul (RGB)separados por vírgulas.A cor branca é representada por "background(255, 255, 255)". Umvalor único de 0 a 255 também é um jeito rápido de definir tons de cinza, sendo 0 pretoe 255 branco.

O Processing tem muitas funções que criam desenhos e formas geométricas, comoelipse, retângulo e linha. Cada um tem sua sintaxe de entrada de dados que dizem comoeles vão ser desenhados. Esses dados são os números entre parênteses. Para desenho deelipse utiliza-se a função "ellipse()", para criar um retângulo utiliza-se "rect()"e para umalinha utiliza-se "line()". Os parâmetros podem ser escolhidos de acordo com o autor.

Para construir figuras com aparências mais elaboradas, o Processing disponibiliza for-mas de mudar a cor do preenchimento e contorno. De acordo com as informações exibidasacima, segue um código-exemlo na figura A2 para desenhar algumas figuras distintas, comcores e preenchimentos diferenciados.

Page 35: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

2.2. Linguagem de programação 33

Figura 5 – Código para desenho de figuras aleatórias

Fonte: da Autora.

Nesse código, há alguns comentários inseridos para ajudar na interpretação das linhasde comando. Nele é definido como criar cada forma de acordo com as características depreenchimento e de contorno. O compilador lê o código de cima pra baixo, e executaquando o usuário clica em "play". Seguindo essas instruções, a imagem obtida pode servista na figura A3.

Além das formas básicas que podem ser desenhadas no Processing, existem outrosmecanismos interessantes disponibilizados pelo Processing. Para isso utilizam-se novasfunções essenciais fornecidas pela ferramenta, conhecidas como "setup()"e "draw()".

Basicamente, a função "setup()"é executada uma só vez, e é usada pra declarações ini-ciais como tamanho da tela, isto é, inicializações do código. A função "draw()"é executadaem loop, uma vez a cada frame(intervalo de tempo). Com isso, pode-se inserir valores em"draw()"e variar a cada quadro. Com isso, pode-se utilizar do recurso do mouse e desenharformas de acordo com o movimento do usuário no mouse, tanto no eixo X quanto no eixoY. Para ilustrar essas características, segue um código exemplo na figura A4

Junto ao código mostrado na figura A4 pode-se observar alguns comentários que ser-vem como guia de código. Para esse caso, esses comentários são simples, no entanto, o

Page 36: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

34 Capítulo 2. Fundamentação Teórica

Figura 6 – Resultado da execução do código referente à figuras aleatórias

Fonte: da Autora.

uso de comentários em um código mais extenso torna-se fundamental e importante parainterpretação do próprio autor e de terceiros. O resultado do código pode ser visto nafigura A5

Page 37: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

2.2. Linguagem de programação 35

Figura 7 – Código para desenho com variação da posição do cursor

Fonte: da Autora.

Esses códigos-exemplo são feitos de acordo com as informações contidas nos livrosreferenciados na página oficial do Processing. Os autores (REAS; FRY., 2015) e (REAS;FRY., 2014) apresentam um conteúdo mais aprofundado para iniciar o uso do Processing.

Page 38: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

36 Capítulo 2. Fundamentação Teórica

Figura 8 – Resultado da execução do código para variação de cursor

Fonte: da Autora.

2.3 Plataforma Arduino

Para realizar implementações mais complexas com o uso do Processing, pode-se utilizarArduino, já que as duas ferramentas se comunicam. Para isso, faz-se necessário conheceralguns dispositivos que são fundamentais ou auxiliam bastante em projetos da área derobótica.

Primeiramente, a placa mais conhecida é a Arduino UNO. O Uno é programado usandoo software Arduino (IDE). O ambiente de desenvolvimento integrado comum a todas asfunções necessárias. Antes de utilizar a placa, deve-se instalar o software Arduino (IDE)no PC. Para conectar o Arduino UNO no computador, faz-se necessário um cabo USB.

Page 39: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

2.3. Plataforma Arduino 37

Figura 9 – Arduino UNO

Fonte: da Autora.

Page 40: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

38 Capítulo 2. Fundamentação Teórica

2.3.1 Servo motor

Uma das alternativas de montagens na robótica com Arduino é o uso de servo-motor,que é usado para gerar movimentos em giro com ângulos de 0 a 180 graus.

Acordando com as informações disponibilizadas por BANZI, M.; CUARTIELLES, D.;IGOE, T.; MARTINO, G.;MELLIS, D. (2016a), um servo-motor possui engrenagens quepodem ser controladas com precisão, ou seja, um determinado eixo pode ser posicionadoem vários ângulo, geralmente entre 0 e 180 graus. Essa rotação pode ser definida paravárias velocidades .

A biblioteca disponibilizada no Arduino para Servo-motor suporta até 12 motoresna maioria das placas Arduino e 48 no Arduino Mega. Deve-se atentar sobre o uso deservo-motor porque em alguns casos específicos, dependendo do número utilizado, podebloquear a funcionalidade de PWM. No Arduino Mega até 12 servo-motores podem serutilizados sem interferir nesse aspecto.

Para realizar uma implementação básica e verificar o comportamento de um servomotor, sugere-se a montagem de um circuito básico fundamentado em três componentes:uma placa Arduino nano, um servo-motor e fios para fazer as conexões entre os pinos.

Os servo-motores têm três fios: alimentação, terra, e sinal. O fio de alimentação étipicamente vermelho, e deve ser ligado ao pino 5 V na placa Arduino. O fio terra étipicamente preto ou marrom e deve ser conectado a um pino terra na placa. O pino desinal é tipicamente amarelo, laranja ou branco e deve ser conectado a um pino de PWM,que pode ser o 9 da placa. Essa montagem pode ser vista na figura 10

Figura 10 – Circuito para servo-motor

Fonte: BANZI, M.; CUARTIELLES, D.; IGOE, T.; MARTINO, G.;MELLIS, D. (2016b)

Com o circuito montado, utiliza-se um código para que o motor receba comandos deposcionamento. Esse código pode ser feito de várias formas, a exemplo da figura 11

Page 41: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

2.3. Plataforma Arduino 39

Figura 11 – Código para servo-motor

Fonte: da Autora.

Sobre a alimentação do servo-motor, faz-se uma ressalva: é mais indicado que ela sejaindependente do Arduino, e que o terra do circuito seja comum entre a placa e o motor.Além do servo motor, é importante montar uma bancada básica com alguns componentesque auxiliam nos projetos com a placa Arduino. Na página oficial do Arduino, (BANZI,M.; CUARTIELLES, D.; IGOE, T.; MARTINO, G.;MELLIS, D. (2016b)) os autoresapresentam diversos projetos, contendo as informações necessárias a respeito dos códigose dos materiais fundamentais relacionados ao hardware.

Page 42: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua
Page 43: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

41

3 Desenvolvimento

3.1 Metodologia Geral

Para desenvolver um manual com instruções para familiarização com linguagem deprogramação alguns pontos devem ser analisados para fundamentar a metodologia deensino, visto que o tutorial é direcionado aos alunos dos níveis fundamental, médio etécnico.

Primeiramente realizou-se uma pesquisa qualitativa com alunos que passaram por umprojeto de extensão ligado à robótica para mostrar resultados (com as palavras dos alunos)que corroboram o objetivo do trabalho.

Além da concretização de trabalhos e projetos finais, deve-se salientar outro ponto: deacordo com (ZILLI, 2004) a Robótica Educacional é um recurso tecnológico bastante inte-ressante e rico no processo de ensino-aprendizagem, ela contempla o desenvolvimento doaluno, através de uma atividade dinâmica, permitindo a construção cultural e, enquantocidadão tornando-o autônomo, independente e responsável.

Com todos esses parâmetros, os métodos de ensino através do tutorial são desmem-brados em três atividades com níveis progressivos.

3.2 Pesquisa qualitativa com alunos do Ensino médio

No desenvolvimento de um trabalho que culmina em um tutorial para ser distribuídocomo material de apoio para alunos do ensino médio em projetos de extensão, recorre-sea uma análise comportamental de estudantes que já participaram de projetos similares.

O projeto em questão foi desenvolvido na cidade de Londrina que contribuiu para arealização da ROBOLON I (Feira de robótica), esse projeto foi orientado por professoresda Universidade Estadual de Londrina , teve como monitores alunos da graduação deEngenharia Elétrica e alunos de sos colégios Estaduais de Londrina (PR).

Dentre esses alunos, foram selecionados três deles para responder um questionário bá-sico sobre as experiências que tiveram durante os meses de aprendizado e desenvolvimentode projetos na área de robótica, visto que a visão direta deles torna a base do trabalhomais concreta. As perguntas do questionário foram dispostas a seguir:

1. Quais foram as maiores contribuições na sua vida com a participação em um projetode extensão voltado à robótica?

2. Você acredita que a robótica é capaz de ampliar os conhecimentos não apenas naárea de ciências exatas, mas também em outros setores? Quais?

Page 44: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

42 Capítulo 3. Desenvolvimento

3. Com a participação no projeto, você acredita que possa ter aumentado o interessedos alunos em cursos de graduação nas áreas de engenharia/computação?

4. Explique como era a relação entre professores/monitores/alunos. Como você avaliaessa interação de pessoas com diferentes idades, experiências?

Repassou-se esse questionário para um grupo pequeno de alunas do Ensino médio queparticiparam do projeto (já citado) durante o período letivo de 2014 no Colégio EstadualVicente Rijo, situado em Londrina (PR).

3.3 Criação de um jogo básico

A primeira atividade fundamenta-se em uma adaptação básica do conhecido jogo de"hockey de mesa", reproduzindo através do Processing um mecanismo de defesa de bolaatravés da movimentação de uma placa. O jogo - no formato real - pode ser visto nafigura 12

Figura 12 – Hockey de mesa

Fonte: Autor desconhecido (2016a)

Para implementar o jogo, faz-se necessário entender como funciona o jogo e como sãofeitas as adaptações. o disco circular se movimenta sobre a superfície plana tanto nacoordenada X quanto na coordenada Y, a defesa é feita através do movimento dos discos(situados nas pontas da mesa), no entanto esses discos só se movimentam em uma direção,da própria aresta de uma das laterais da mesa.

O Processing é capaz de reproduzir o desenho da mesa, da bola, e da defesa. Parasimplificar a implementação, utiliza-se apenas metade do desenho da mesa, pois utiliza-

Page 45: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

3.3. Criação de um jogo básico 43

se o mouse do computador como defesa, e por ser único, o desenho representado peloProcessing é unilateral.

3.3.1 Fluxograma

Para auxiliar a criação de códigos - modo geral - indica-se o uso de fluxogramas.Eles ajudam a organizar ideias, sequencias de operações e por consequência o códigofica mais claro e preciso, podendo ser feito com mais rapidez e eficiência. Para montarum fluxograma básico, utilizam-se formas básicas que possuem significados distintos paracada função no algoritmo. Essas formas são definidas na figura 13

Figura 13 – Formas utilizadas em fluxogramas

Fonte: PEREIRA, M.A. (2016)

De acordo com as funções de cada símbolo, inicia-se o processo de criação do jogo.Para implementar o jogo, define-se tamanho da tela que representará a mesa, tamanho dabola, e da caixa responsável pela defesa. Além disso, o Processing disponibiliza comandosespecíficos para realizar a leitura do movimento realizado pelo usuário através do mouse.O fluxograma para gerar o futuro código no Processing pode ser visto na figura 14.

Page 46: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

44 Capítulo 3. Desenvolvimento

Figura 14 – Fluxograma para o algoritmo do Jogo

Fonte: da Autora.

Page 47: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

3.4. Uso da porta serial 45

Através do sequencimento mostrado pelo fluxograma e conhecendo um pouco da lin-guagem de programação aceita pelo Processing, é posssivel criar um código básico paraimplementação desse jogo. O código e sua execução são discriminados na próxima seção.

3.4 Uso da porta serial

Após a familiarização com o Processing na atividade de criação de um jogo básico,incrementa-se o jogo utilizando circuito externo com Arduino UNO. A plataforma ofereceum leque de opções para implementação dos projetos. A transformação do jogo básicoocorre na mudança de controle pelo usuário, ou seja, o jogo não é mais controlado peloposicionamento do mouse, mas sim por um potenciômetro ligado ao Arduino que se co-munica com o computador através da porta serial. Para implementar o jogo com umpotenciômetro, primeiramente deve-se entender como é o seu funcionamento e como deveser ligado ao Arduino.

Potenciômetros são resistores que possuem resistência variável, criando dessa formauma limitação para o fluxo de corrente elétrica que passa por ele, e essa limitação pode serajustada manualmente através de um eixo giratório. Dessa forma a corrente pode sofrerelevação ou diminuição. Como sua funcionalidade é análoga aos resistores, o circuitomontado com arduino em uma protoboard convencional é simples e pode ser visto nafigura 15.

Figura 15 – Circuito para potenciômetro

Fonte: da Autora.

Com o circuito montado e com o Arduino conectado no computador, deve-se gerardois códigos distintos: um para o Processing e outro para a plataforma Arduino. Os doissoftwares se comunicam e executam o jogo de forma a ser controlado pelo potenciômetro.

Existe uma explicação adequada sobre o uso da porta serial. Os autores (BANZI,M.; CUARTIELLES, D.; IGOE, T.; MARTINO, G.;MELLIS, D., 2016b) apresentam na

Page 48: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

46 Capítulo 3. Desenvolvimento

própria página oficial do Arduino uma breve explicação sobre "serial port", bem comomostram exemplos de códigos e formas de utilização. Segundo eles, a comunicação serialpossibilita o Arduino se comunicar com um computador ou com outros dispositivos.

Todas as placas Arduino possuem pelo menos uma porta serial (também conhecidacomo UART ou USART). A comunicação ocorre através dos pinos digitais 0 (RX) e 1(TX), assim como uma conexão USB. Desta maneira, ao utilizar esta funcionalidade, ospinos 0 e 1 não poderão ser utilizados como entrada ou saída digital.

Na IDE do Arduino existe uma ferramente onde você pode monitorar a comunicaçãoSerial entre a placa do Arduino e o computador, seleciona-se a opção "serial monitor"nabarra de ferramentas e seleciona-se a mesma taxa de transmissão definida na funçãobegin().

O Arduino Mega possui três portas seriais adicionais: Serial1 nos pinos 19 (RX) a 18(TX), Serial2 nos pinos 17 (RX) e 16 (TX), Serial3 nos pinos 15 (RX) e 14 (TX). Parautilizar esses pinos para a comunicação com o seu computador pessoal, faz-se necessárioum conversor USB-Serial adicional, já que esses pinos não estão conectados ao adaptadorserial do Arduino Mega. Para uma comunicação externa com outros dispositivos, bastaconectar o pino TX do seu dispositivo ao pino RX do Arduino, e o pino RX do seudispositivo ao pino TX do Arduino, e o pino terra (ground) do Arduino Mega ao terra(ground) do seu dispositivo. (Não se deve conectar diretamente esses pinos a uma portaSerial RS232, que opera com uma tensão elevada de +/- 12 V, pois pode danificar a placautilizada.)

O código original do Processing para o Jogo simples sofre algumas alterações referentesao uso da porta serial que são apresentadas na próxima seção, bem como a montagemfísica do circuito mostrado acima.

3.5 Garra robótica

Com os conceitos pontuados no decorrer do trabalho, inicia-se o processo de construçãode um robô. Ele executa movimentos simples para três dimensões e sua criação incentivaro desenvolvimento mecânico através do uso de materiais reaproveitáveis além de ampliaro conhecimento na linguagem de programação com auxílio da ferramenta Arduino.

3.5.1 Materiais Utilizados

• 1 Placa Arduino UNO;

• 3 Servo-motores;

• 1 Cabo USB para Arduino;

• 1 Fonte de Tensão de 5V DC;

Page 49: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

3.5. Garra robótica 47

• 1 Botão do tipo joystick;

• 1 Protoboard;

• 1 Chaves de 2 posições;

• 2 Resistores 10 kΩ;

• Fios condutores (tamanhos diversos);

• Materiais reaproveitáveis (Tampa plástica, caixinha de papelão, acrílico);

• Fita isolante;

• Fita dupla-face;

3.5.2 Eixos para Servo-motores

Primeiramente, deve-se compreender os movimentos executados pelo robô, que se moveem 3 eixos (X, Y e Z), cada eixo desse é acionado por um servo motor. De forma simpli-ficada, a distribuição dos movimentos da garra robótica se resume no desenho da figura16.

Page 50: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

48 Capítulo 3. Desenvolvimento

Figura 16 – Coordenadas e movimentos executados pela garra robótica

Fonte: da Autora.

De acordo com a figura 16, os três servo-motores são representados pelos cilindros 1,2 e 3, um para cada eixo. As setas indicam como é o movimento de cada um em umsistema tridimensional. Como a união dos motores é a base para o robô, faz-se necessárioentender como são ligados. Para a implementação, é utilizada a placa Arduino UNO jáapresentada anteriormente, Os detalhes do servo-motor foram expostos no capítulo queapresenta a fundamentação teórica. Para compreender as ligações que devem ser feitasem relação aos cabos presentes no motor. A figura 17 ilustra as conexões necessárias entrea placa e os motores:

Page 51: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

3.5. Garra robótica 49

Figura 17 – Esquema das conexões para servo-motores

Fonte: da Autora.

3.5.3 Botão Joystick

Além disso, antes da implementação do software para a garra robótica, faz-se neces-sário a definição de conexões entre o botão joystick e a placa Arduino, visto que ele éresponsáve pelo controle do robô nas direções X e Y. A ilustração da figura 18 esquematizaos cinco pinos presentes no botão, no entanto, o terminal que ocupa a quinta posição nãodeve ser ligado, pois o movimento no eixo Z é executado através de outro tipo de chave.

Figura 18 – Esquema das conexões para Joystick

Fonte: da Autora.

Page 52: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

50 Capítulo 3. Desenvolvimento

3.5.4 Fluxograma

A criação de um código responsável pelos movimentos de um robô inicia-se na formaçãode um fluxograma para organizar a sequência de comandos executados pela interfaceutilizada.

A construção de um fluxograma para a execução dos movimentos em três dimensõesfundamenta-se em analisar o ângulo assumido pelos servos-motor, isto é, no seu movimentosemicircular.

Para cada eixo, uma sequência de comandos deve ser respeitada, e é de suma impor-tância reconhecer que os movimentos são independentes um do outro. Para auxiliar ouso do robô, implementa-se uma chave de alimentação para que o robô não gaste ener-gia estando em repouso. Todas essas premissas são consideradas para o raciocínio deconstrução de um código, e são dispostas no fluxograma da figura 19.

As rotinas de incremento e decremento de ângulo para os eixos x e y são análogas, istoé, dependem de duas premissas: o ângulo desejado e a leitura do ângulo atual. A partirdisso o usuário pode observar o movimento nessas duas direções. No caso do movimentode garra, ou seja, abre e fecha, a chave de controle possui duas posições, sendo assim,em uma posição a garra se prepara para fechaar e na outra posição para abrir, o queconstitui uma mudança de estado simples baseada no ângulo de abertura do servo-motor.No fluxograma 19 observa-se que ao final da rotina dos três tipos de movimento (x, y ez) há o retorno para a leitura de posições, definido em [A].

Page 53: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

3.5. Garra robótica 51

Figura 19 – Fluxograma para Garra Robótica

Fonte: da Autora.

Através desse fluxograma, o código pode ser implementado com maior facilidade como auxílio do conteúdo já apresentado.

3.5.5 Montagem dos circuitos

Para realizar as ligações entre Arduino, alimentação e circuito externo, faz-se neces-sário escolher como cada motor vai ser ligado de acordo com as entradas disponíveis naplaca. Esquematizando as conexões e montagem, torna-se mais fácil para a execução doprojeto.

A figura 20 apresenta uma forma de montagem da Garra robótica, contendo Arduino,alimentação através de pilhas, três servos-motor, joystick e Protoboard e uma chave paracontrolar abertura e fechamento da garra. Essa é apenas uma opção de montagem decircuito, as portas do Arduino podem ser escolhidas de acordo com a preferência do au-

Page 54: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

52 Capítulo 3. Desenvolvimento

tor. Faz-se uma ressalva que o botão joystick na figura apresenta apenas quatro ligações,e originalmente ele possui cinco terminais. Essa diferença se dá porque a chave de duasposições representa o quinto terminal, agindo com maior segurança e precisão no aciona-mento.

Figura 20 – Esquemático da montagem da Garra robótica

Fonte: da Autora.

Page 55: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

53

4 Resultados e discussões

4.1 Resultado da pesquisa qualitativa

Acordando com o questionário apresentado, seguem as respostas dos estudantes sele-cionados durante a pesquisa. Para preservar a identidade por serem alunos menores deidade, foram dispostas apenas com numeração I, II e III para a respectiva representação.As respostas são resultados da transcrição direta da entrevista, sem correções.

1. Quais foram as maiores contribuições na sua vida com a participação emum projeto de extensão voltado à robótica?

I) Acredito que a maior contribuição foi o aprendizado adquirido em trabalhar emgrupo, o ato de compartilhar ideias e coloca-las em prática, além da experiência queganhamos ao fazer o projeto da Robolon, que nos possibilitou muitas descobertas.

II) Com o projeto pude perceber que a física vai além de cálculos difíceis e que bastaapenas um pouco de esforço para criar algo extraordinário e inovador.

III) Me ajudou a trabalhar com outras pessoas, a lidar com situações difíceis nasquais tivemos que enfrentar, sem contar todo o conhecimento que me proporcionou.

2. Você acredita que a robótica é capaz de ampliar os conhecimentos nãoapenas na área de ciências exatas, mas também em outros setores? Quais?

I) Sim, ela permite uma aproximação entre as pessoas, ao trabalhar num projeto, épreciso estar ciente que por ser um grupo há divergências, além disso, trabalha coma criatividade de cada um, ampliando seus conhecimentos, permitindo experimentarnovas áreas.

II) Acredito que o aprendizado através do curso, podemos aplicar no nosso dia adia, tanto na tecnologia como na vida.

III) Acredito sim, pois em situações nas quais não tínhamos ideia do que fazer, aotentar solucionar, pude perceber que nos exigiu muita pesquisa e atenção em tudoque fazíamos, o que contribui em diversas áreas.

3. Com a participação no projeto, você acredita que possa ter aumentadoo interesse dos alunos em cursos de graduação nas áreas de engenharia/-computação?

I) Com certeza, a participação em projetos desse tipo permite que pessoas adquiramexperiências que vão levar para vida toda e assim, consequentemente, se encantemcada vez mais pela parte da engenharia/computação.

Page 56: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

II) Tanto a minha perspectiva como a de outros que participaram mudou muito,percebemos que não é tão difícil quanto parece e com certeza, com as experiências,é extremamente interessante.

III) Claro, ao trabalhar no projeto me diverti muito e claro, aprendi muito. Tenhocerteza que muitos que participaram comigo criaram um interesse por essa área tãomaravilhosa.

4. Explique como era a relação entre professores/monitores/alunos. Comovocê avalia essa interação de pessoas com diferentes idades, experiências?

I) A relação entre os professores, monitores e alunos era muito boa, sentíamos de fatoque estávamos num grupo e que nesse podíamos opinar. Por terem mais experiência,tanto os professores quanto os monitores, davam dicas para contribuir com nossasideias, mesmo algumas vezes sendo um pouco mais complicada, eles incentivavam atentar e estavam a toda disposição para ajudar no que podiam.

II) Adquirimos conhecimento das duas partes, tanto dos alunos, quanto dos pro-fessores/monitores. Aprendemos a compartilhar conhecimento e até a lidar com asdiferenças.

III) A relação era a melhor possível, eram todos muito atenciosos.

Com o resultado da pesquisa, observou-se a satisfação dos alunos durante a participa-ção no projeto, como a relação interpessoal é importante para o crescimento pessoal deles.Essa estratégia de trabalho culminou em resultados positivos, uma experiência que - comcerteza - poderia atingir mais escolas, beneficiando tanto os estudantes, quanto monitorese professores.

4.2 Criação de um jogo básico

Acordando com o fluxograma montado, e utilizando a linguagem de programaçãodo Processing, montou-se um código para executar o Jogo. A seguir, o código parafuncionamento sem serial, apenas um jogo controlando defesa de bola com mouse pelousuário.

No início do código, fez-se o dimensionamento da bola para os dois eixos (diâmetro),definiram-se as variáveis para velocidade nos eixos x e y e tamanho da caixa. Além disso,inicializou-se o placar que recebe incremento a cada defesa de bola. Duas variáveis foramcriadas para definir o momento de defesa de jogo e de fim de jogo. Essa informação fezreferência trecho de código abaixo:

1 f l o a t bolaX=25;2 f l o a t bolaY=25;3

Page 57: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

4 f l o a t veloc idadeX =3;5 f l o a t veloc idadeY =3;6

7 f l o a t ca ixa = 50 ;8 i n t p l a ca r = 0 ;9 boolean FIM = f a l s e ;

10 boolean go l = f a l s e ;

A sequência do código se fundamentaou no uso da função "setup". Nesse momento docódigo, de acordo com o fluxograma da figura 14, definiu-se o tamanho da tela que o jogoé apresentado.

1 void setup ( ) 2 s i z e (600 ,400) ;3

O "void draw" corresponde ao corpo do programa, contendo todos os comandos/laçospara implementar as funções do jogo. "Draw", como o nome sugere (do ingles: desenhar),mostrou o desenho das formas utilizadas na implementação, bem como o movimento dasformas e como são controladas. É nesse momento que as regras do jogo foram definidaspelo código.

1 void draw ( ) 2 pr in t ( "X = " ) ;3 pr in t ( bolaX ) ;4 pr in t ( " \ t Y = " ) ;5 pr in t ( bolaY ) ;6 pr in t ( " \ t p l a ca r = " ) ;7 p r i n t l n ( p l a ca r ) ;

Foram feitos o primeiro e o segundo teste: se a posição da bola estiver dentro dos limitesdo campo, sua velocidade no eixo x recebe a velocidade inversa. Para o eixo y, a mesmalógica foi empregada. Observação: como o diâmetro é 25, utilizou-se esse mesmo valorpara descontar as bordas onde a bola não pode se posicionar.

1 i f ( bolaX < 25 | | bolaX > ( width −25) )2 veloc idadeX = − veloc idadeX ;3 i f ( bolaY < 25 | | bolaY > ( height −25) ) 4 veloc idadeY = − veloc idadeY ;5

Uma variável local foi criada: "distância". Essa variável recebeu o valor absoluto daposição assumida pelo mouse, descontando o diâmetro da bola.

1 f l o a t d i s t a n c i a = abs (mouseX−bolaX ) ;2

Foi realizado então um teste que analisa se a bola se encontra na mesma coordenadada caixa, isto é, se a caixa está na posição de defesa. A distância deve ser menor que o

Page 58: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

tamanho da caixa, o diâmetro da bola (eixo y) deve ser maior ou igual o comprimento docampo (descontando o tamanho da bola) e ’FIM’ deve ser diferente de "true"; SE essascondições forem atendidas o jogo continua, portanto, a variável GOL é "true", e o placarrecebe um incremento.

O teste seguinte verificou se a bola está em uma coordenada distinta da caixa, isto é,se não é possível defender a bola. A distância deve ser maior que o tamanho da caixa, odiâmetro da bola (eixo y) deve ser maior ou igual o comprimento do campo (descontandoo tamanho da bola). Como não houve defesa, a bola paralisou (velocidade nos eixos =0). Então ’FIM = true’ indicou o fim do jogo.

1 i f ( d i s t a n c i a < ca ixa & bolaY >= ( height −25)& FIM!= true ) 2 go l=true ;3 p laca r +=1;4 5 e l s e i f ( d i s t a n c i a > ca ixa & bolaY >= ( height −25) ) 6 veloc idadeX =0;7 veloc idadeY =0;8 FIM=true ;9

10

As variáveis ’bolaX’ e ’bolaY’ receberam o incremento de velocidade. Com a defesa,o desenho da caixa foi feito de acordo com o posicionamento do mouse, de acordo com ovalor contido nas variáveis bolaX e bolaY e o diâmetro definido como 35. Sem defesa (fimde jogo), o desenho foi feito da mesma forma que anteriormente, e a variável ’gol’ recebeu’false’ e encerrou-se o comando de desenho "void draw".

1 i f ( go l ) 2 f i l l ( 25 ,25 ,250) ;3 r e c t ( ( mouseX−ca ixa ) , height −15 ,2∗ caixa , 1 5 ) ;4 f i l l ( 20 ,20 ,250) ;5 e l l i p s e ( bolaX , bolaY ,35 , 35 ) ;6 7 e l s e i f ( ! go l ) 8 f i l l (50 ,100 ,200) ;9 r e c t ( ( mouseX−ca ixa ) , height −15 ,2∗ caixa , 1 5 ) ;

10 f i l l (200 ,100 ,250) ;11 e l l i p s e ( bolaX , bolaY ,35 , 35 ) ;12 13 go l=f a l s e ;14 15 16

Ao executar o código no Processing, a figura 21 mostrou um momento de jogo em quehouve defesa da bola, isto é, quando caixa e elipse estavam alinhadas.

Page 59: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Figura 21 – Simulação de defesa de jogo

Fonte: da Autora

De acordo com o andamento do jogo, o placar sofreu incremento pelo número de defe-sas, e mostrou-se como na figura 22. Além do placar, o quadro mostrou o posicionamentoda bola no momento de defesa (coordenadas x e y).

Figura 22 – Placar do jogo

Fonte: da Autora

O fim do jogo mostrou como a bola fica travada na tela do lado inferior da página dedesenho do Processing. A figura 23 ilustrou esse instante.

Page 60: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Figura 23 – Simulação de fim de jogo

Fonte: da Autora

Page 61: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

4.3 Uso da porta serial

A priori, montou-se um código na interface do Arduino para que haja comunicaçãoserial. Esse código fez a leitura das portas utilizadas na placa, no caso Arduino UNO.O embasamento para montar esse código foi retirado do próprio tutorial fornecido napágina oficial do Arduino por BANZI, M.; CUARTIELLES, D.; IGOE, T.; MARTINO,G.;MELLIS, D. (2016b) e foi disposto a seguir com explanação dos resultados.

Através do comando abaixo, inicializou-se a comunicação serial:

1 void setup ( ) 2 S e r i a l . begin (9600) ;3

A parte do código que segue, envia o valor da entrada analógica, no caso, utiliza-seA0 que fará a leitura do posicionamento do potenciômetro. O delay é inserido para quehaja espera de um bit para conversão analógica-digital depois da leitura realizada.

1 void loop ( ) 2 S e r i a l . p r i n t l n ( analogRead (A0) ) ;3 delay (1 ) ;4 5

Na interface do Processing, o código do jogo ficou muito semelhante ao código apre-sentado no item anterior, no entanto, apareceu o acréscimo do uso da porta serial. Segueo código e suas respectivas explicações.

Criou-se uma variável do tipo serial.

1 import p ro c e s s i ng . s e r i a l . ∗ ;2 S e r i a l myPort ;

A mudança desse início de código ocorreu devido ao acréscimo de uma variável con-tador que funciona como atraso para o início do jogo.

1 i n t xPos = 1 ;2 f l o a t inByte = 0 ;3 i n t contador = 0 ;4

5 f l o a t bolaX=25;6 f l o a t bolaY=25;7

8 f l o a t veloc idadeX =3;9 f l o a t veloc idadeY =3;

10

11 f l o a t ca ixa = 50 ;12 i n t p l a ca r = 0 ;13 boolean FIM = f a l s e ;14 boolean go l = f a l s e ;

Page 62: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

De acordo com o tutorial fornecido pelo próprio Processing, a variável "myPort" foiinicializada da seguinte forma:

1 void setup ( ) 2 s i z e (600 ,400) ;3

4 p r i n t l n ( S e r i a l . l i s t ( ) ) ;5 myPort = new S e r i a l ( th i s , S e r i a l . l i s t ( ) [ 0 ] , 9600) ;6 myPort . b u f f e r U n t i l ( ’ \ n ’ ) ;7 background (0) ;8

Essa parte do código permaneceu igual ao jogo montado sem a porta serial.

1 void draw ( ) 2 pr in t ( "X = " ) ;3 pr in t ( bolaX ) ;4 pr in t ( " \ t Y = " ) ;5 pr in t ( bolaY ) ;6 pr in t ( " \ t p l a ca r = " ) ;7 p r i n t l n ( p l a ca r ) ;8

9 i f ( bolaX < 25 | | bolaX > ( width −25) )10 veloc idadeX = − veloc idadeX ;11 i f ( bolaY < 25 | | bolaY > ( height −25) ) 12 veloc idadeY = − veloc idadeY ;13 f l o a t d i s t a n c i a = ( inByte−bolaX ) ;14 i f ( d i s t a n c i a < ca ixa & bolaY >= ( height −25)& FIM!= true ) 15 go l=true ;16 p laca r +=1;17 18 e l s e i f ( d i s t a n c i a > ca ixa & bolaY >= ( height −25) ) 19 veloc idadeX =0;20 veloc idadeY =0;21 FIM=true ;22 23 24 bolaX += veloc idadeX ;25 bolaY += veloc idadeY ;26 background (200) ;

Foi feito um laço em que o contador inicia-se em 0 e vai até 2000 ms para que issoseja o atraso no jogo, tornado possível - ao usuário - iniciar o jogo e ter um intervalo detempo para começar o controle do potenciômetro. Após esse contador, o código seguiucomo anteriormente.

1 i f ( contador == 0) 2 delay (2000) ;3 contador++;

Page 63: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

4 5

6 i f ( go l ) 7 f i l l ( 25 ,25 ,250) ;8 r e c t ( (2∗ inByte ) , he ight −15 ,2∗ caixa , 1 5 ) ;9 f i l l ( 20 ,20 ,250) ;

10

11 e l l i p s e ( bolaX , bolaY ,35 , 35 ) ;12 13 e l s e i f ( ! go l ) 14 f i l l (50 ,100 ,200) ;15 r e c t ( (2∗ inByte ) , he ight −15 ,2∗ caixa , 1 5 ) ;16 f i l l (200 ,100 ,250) ;17 e l l i p s e ( bolaX , bolaY ,35 , 35 ) ;18 19 go l=f a l s e ;20

Para finalizar o código, utilizou-se uma função específica para o evento do tipo serial,e assim, tornou-se possível realizar a comunicação com a placa e o Arduino.

1 \end2 void s e r i a l E v e n t ( S e r i a l myPort ) 3 // get the ASCII s t r i n g :4 St r ing i n S t r i n g = myPort . r e adSt r i ngUnt i l ( ’ \ n ’ ) ;5

6 i f ( i n S t r i n g != n u l l ) 7 i n S t r i n g = trim ( i n S t r i n g ) ;8 inByte = f l o a t ( i n S t r i n g ) ;9 p r i n t l n ( inByte ) ;

10 inByte = map( inByte , 0 , 1023 , 0 , he ight ) ;11 12 13

Com os dois códigos finalizados, montou-se o circuito básico para o potenciômetro, comoindicado na figura 15. A montagem feita em uma protoboard convencional e utilizandoArduino UNO foi apresentada na figura 24

Page 64: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Figura 24 – Plataforma Arduino com potenciômetro

Fonte: da Autora

Page 65: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

4.4 Garra robótica

A construção da Garra robótica fundamentou-se em um código realizado no softwareArduino, visto que a placa utilizada é um Arduino UNO, além disso, utilizou-se materiaisespecificados na metodologia.

Para que haja clareza na apresentação dos resultados obtidos, foram descritas as se-ções referentes à bancada de montagem (hardware) e a implementação do software parafuncionamento da Garra.

4.4.1 Bancada de montagem

De acordo com a figura 20, foi montado em uma plataforma de isopor pouco espessa.Essa montagem assemelhou-se ao esquemático e apresentou como a distribuição dos com-ponentes pode ser feita otimizando o espaço disponível.

A garra robótica pode ser vista na figura 26, observa-se que está sendo alimentadapelo conjunto de quatro pilhas, responsáveis pela tensão necessária de acionamento dosservos-motor.

As caixas de plástico/papelão servem para guardar os objetos que a garra pode segurar,além de guardar as pilhas quando o robô se encontra fora do estado de operação.

A protoboard contém os circuitos elétricos necessários para acionamento da chave deduas posições, que deve ser ligada conforme esquemático da figura 20. A foto da montagemfinal da Garra pode ser vista na 26.

Figura 25 – Foto da montagem final da Garra robótica

Fonte: da Autora.

Page 66: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Figura 26 – Detalhe da Garra robótica

Fonte: da Autora.

4.4.2 Implementação - Software

A partir do fluxograma apresentado na figura 19, o código foi desenvolvido de formadinâmca, através da subdivisão de tarefas executadas pelo robô, isto é, o código foi frag-mentado em três partes que executam movimentos nos eixos x, y e z.

O código - na íntegra - pode ser visto abaixo. A primeira parte consistiu em criar asvariáveis necessárias e relacioná-las com os componentes utilizados, por exemplo, servo-motor. Os comentários no decorrer do código auxiliam na compreensão do desenvolvi-mento do software.

1 #inc lude <Servo . h>2 boolean chavegarra = f a l s e ;3

4 // Assoc ia p inos do Joy s t i ck5 const i n t SW = 12 ;6 const i n t VRx = 0 ;7 const i n t VRy = 3 ;8

9 // Assoc ia p inos de c o n t r o l e dos s e rvo s ( f i o l a r a n j a )10 const i n t ControleServoX = 3 ;11 const i n t ControleServoY = 6 ;12 const i n t ControleServoGarra = 9 ;13

14 // c r i a ob j e t o s do t ipo Servo15 Servo meuServo1 , meuServo2 , meuServo3 ;16

17 void setup ( )

Page 67: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

18 19 S e r i a l . begin (9600) ;20 meuServo1 . attach ( ControleServoX ) ;21 meuServo2 . attach ( ControleServoY ) ;22 meuServo3 . attach ( ControleServoGarra ) ;23 pinMode (SW, INPUT) ;24 25 i n t k ;

Depois das inicializações, foi montado o ciclo de execução dos movimentos do robô.Para os eixos X e Y a implementação foi feita de modo similar, trabalhando com o girogradual do servo-motor, de 0 a 180 graus, de acordo com a atuação do usuário sobre obotão joystick.

1 void loop ( )2 3 //Movimento no e ixo x4 i n t x = analogRead (VRx) ;5

6 i n t anguloDesejadoX = map(x ,0 , 1023 , 0 , 180 ) ;7 S e r i a l . p r i n t l n ( anguloDesejadoX ) ;8 i n t anguloAtualX = meuServo1 . read ( ) ;9

10 i f ( anguloDesejadoX >= anguloAtualX )11 12 f o r ( i n t i = anguloAtualX ; i <= anguloDesejadoX ; i++)13 14 meuServo1 . wr i t e ( i ) ;15 delay (20) ;16 x = analogRead (VRx) ;17 anguloDesejadoX = map(x ,0 , 1023 , 0 , 180 ) ;18 19 20 i f ( anguloDesejadoX < anguloAtualX )21 22 f o r ( i n t i = anguloAtualX ; i >= anguloDesejadoX ; i −−)23 24 meuServo1 . wr i t e ( i ) ;25 delay (20) ;26 x = analogRead (VRx) ;27 anguloDesejadoX = map(x ,0 , 1023 , 0 , 180 ) ;28 29 30 //Movimento no e ixo y31 i n t y = analogRead (VRy) ;32 i n t anguloDesejadoY = map(y ,0 , 1023 , 0 , 180 ) ;33 S e r i a l . p r i n t l n ( anguloDesejadoY ) ;34

Page 68: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

35 i n t anguloAtualY = meuServo2 . read ( ) ;36 i f ( anguloDesejadoY >= anguloAtualY )37 38 f o r ( i n t j = anguloAtualY ; j <= anguloDesejadoY ; j++)39 40 meuServo2 . wr i t e ( j ) ;41 delay (20) ;42 y = analogRead (VRy) ;43 anguloDesejadoY = map(y ,0 , 1023 , 0 , 180 ) ;44 45 46 i f ( anguloDesejadoY < anguloAtualY )47 48 f o r ( i n t j = anguloAtualY ; j >= anguloDesejadoY ; j −−)49 50 meuServo2 . wr i t e ( j ) ;51 delay (20) ;52 y = analogRead (VRy) ;53 anguloDesejadoY = map(y ,0 , 1023 , 0 , 180 ) ;54 55

Para a garra, movimento no eixo z, o código foi feito de outra forma. O acionamentoda garra ocorre com uma chave de duas posições, dessa forma, em uma posição da chave,o movimento da garra é incrementado, e na outra posição da chave, o movimento da garraé decrementado. Partindo desse princípio, o código foi realizado como mostrado abaixo.

Faz-se uma ressalva para essa parte da implementação: o ângulo de giro é 180 graus,no entanto, para esse caso, foi deixado uma margem de 5 graus para que o motor nãotravasse, pois ao travar, ocorre gasto de energia. Então essa margem de 5 graus foicolocada no início e no final do movimento. Essa é a justificativa para os valores de 5 a175 graus.

1 // movimento da garra2 chavegarra = d ig i ta lRead (SW) ;3 S e r i a l . p r i n t l n ( chavegarra ) ;4 i f ( chavegarra == 0)5 6 k = meuServo3 . read ( ) ;7 f o r ( i n t i = k ; i >= 5 ; i −−)8 meuServo3 . wr i t e ( i ) ;9 delay (20) ;

10 11 12 e l s e13 14 k = meuServo3 . read ( ) ;

Page 69: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

15 f o r ( i n t i = k ; i < 175 ; i++)16 17 meuServo3 . wr i t e ( i ) ;18 delay (20) ;19 20 21 22

Com essa implementação acima, observou-se que a garra robótica executa os movi-mentos nas três dimensões corretamente, assim como era esperado inicialmente. O usuárioconsegue atuar de forma simplificada. O robô foi montado com materiais de baixo custo(reaproveitáveis), estabelecendo-se um projeto sustentável, pedagógico e eficaz.

Page 70: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua
Page 71: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

69

5 Conclusões e trabalhos futuros

5.1 Consideraçoes Finais

Através da análise e fundamentação da importância dos projetos de extensão já con-cluídos e/ou em andamento, iniciou-se uma pesquisa restringindo os projetos de extensãopara a área de robótica; dentro dessa área, aprofundou-se os conceitos da robótica paraestudantes do Ensino médio. Com essa temática, alguns projetos serviram de base paraa especificação dos objetivos do trabalho, juntamente a necessidade do aprendizado deprogramação para desenvolvimento de atividades relacionadas à robótica. Dentro da aná-lise dos projetos, foi realizada uma pesquisa qualitativa para endossar a importância ejustificativa da decisão temática do trabalho.

O produto final foi definido como um tutorial a ser utilizado em projetos de exten-são. Inicialmente, no desenvolvimento do trabalho, focou-se na familiarização com algunssoftwares básicos que auxiliam no aprendizado da linguagem de programação e comoisso pode ser repassado aos alunos de ensino médio de forma didática. Posteriormente,iniciou-se o desenvolvimento e criação de um robô com maior complexidade. Dentro desseprojeto, várias premissas puderam ser explanadas sobre linguagens de programação, fa-cilitando a execução e montagem mecânica do robô, bem como aprimorando o sentidopedagógico do trabalho.

Com a união da fundamentação teórica, da realização de pesquisa qualitativa e da exe-cução técnica e mecânica das propostas iniciais do trabalho, foi possível montar o tutorialde robótica/linguagem básica de programação para ser usado por alunos em projetos deextensão ou em atividades que visam esse tipo de aprendizado. Durante o cumprimentodos tópicos estabelecidos inicialmente, observou-se que dentro de cada objetivo, o aprendi-zado próprio crescia consideravelmente, fomentando conceitos adquiridos na graduação eagregando novos. Além disso, viu-se a importância de olhar o tema de forma ampla, con-siderando toda a sistemática, isto é, o desenvolvimento gradativo de tarefas, a análise dopúblico alvo, o trabalho com conceito de pedagogia dentro da engenharia, a importânciada sustentabilidade no desenvolvimento de projetos.

Uma das maiores dificuldades durante a graduação foi o aprendizado de programação,e essa dificuldade também propiciou desenvolver um trabalho que pudesse incentivar, em-basar os alunos que pretendem seguir para as áreas de engenharia elétrica ou computação.Durante a execução das tarefas, muitas dúvidas foram sanadas, e além disso, foi neces-sário introduzir uma forma de relacionar a linguagem de programação com mecanismospedagógicos para a montagem do tutorial, contribuindo diretamente com o crescimentopróprio na área, reparando a deficiência encontrada no anos precedentes.

Page 72: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

A robótica, as linguagens de programação, os softwares disponíveis, a criatividade,o trabalho com sucatas, o envolvimento com estudantes do Ensino Médio, as pesquisasrealizadas são os pontos a serem salientados no fechamento do trabalho, pois a soma dessesitens resultou em um trabalho que se encerra no enlace de dois pilares importantíssimos:conhecimentos técnico e pedagógico.

5.2 Trabalhos Futuros

Como o trabalho desenvolvido possui o foco em material de apoio para desenvolvi-mento de projetos na área de robótica, a ampliação desse material de apoio seria de sumaimportância. Sabe-se que existem diversos softwares disponíveis, além de linguagens deprogramações diversas, visto isso, em um futuro trabalho pode-se abranger essas premis-sas citadas, formando um tutorial mais abrangente, e que - por consequência - antinjamaior público. Um trabalho possível seria um manual que trabalhasse com o uso decomunicação wireless dentro da robótica.

Além disso, pode-se desenvolver um trabalho teórico com pesquisas dentro de todo oterritório brasileiro relacionadas à projetos de extensão em andamento, tratando refinada-mente a pesquisa qualitativa com alunos envolvidos nesse projeto para que possa aprimoraras técnicas pedagógicas empregadas nesse ramo, e através dos resultados, elaborar umaproposta às Universidades para a abertura de mais projetos de extensão, principalmentena área de engenharia e computação.

Tanto a área pedagógica aliada com a robótica, quanto a área de programação e osprojetos desenvolvidos ao longo do desenvolvimento do trabalho permitem continuidade napesquisa e na execução de projetos por serem temas com muito conteúdo a ser explorado,e que acompanham o desenvolvimento tecnológico.

Page 73: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

71

Referências

Autor desconhecido. Mini mesa hockey air infantil. 2016. Acesso em: 09 de setembro de2016. Disponível em: <http://www.globaleletro.com.br/brinquedos/jogos/tabuleiros/mini-mesa-hockey-air-infantil>. 42, 80

Autor desconhecido. Potenciômetro Monitor Serial. 2016. Acesso em: 15 de setembro de2016. Disponível em: <http://baudaeletronica.blogspot.com.br/2011/09/potenciometro.html>. 84

BACAROGLO, M. Robótica educacional: uma metodologia educacional. Dissertação,2005. 21

BANZI, M.; CUARTIELLES, D.; IGOE, T.; MARTINO, G.;MELLIS, D. Servolibrary. 2016. Acesso em: 5 de setembro de 2016. Disponível em: <https://www.arduino.cc/en/Tutorial/Sweep>. 38

BANZI, M.; CUARTIELLES, D.; IGOE, T.; MARTINO, G.;MELLIS, D. WHATIS ARDUINO? 2016. Acesso em: 25 de agosto de 2016. Disponível em: <https://www.arduino.cc/>. 22, 38, 39, 45, 59

CHAVIER, L.F. Programação para arduino: Primeiros passos. 2013. 28, 29, 30, 31

FRY, B.; REAS, C. Sip, Puff and Hands-Free Switches. 2016. Acesso em: 12 de junho de2016. Disponível em: <https://processing.org/>. 21

GERHARDT, T.E.; SILVEIRA, D.T. Métodos de pesquisa. 2009. Acesso em: 01 dedezembro de 2016. Disponível em: <http://www.ufrgs.br/cursopgdr/downloadsSerie/derad005.pdf>. 26

IFSC. Projeto de extensão promove oficina de robótica com estu-dantes de escola estadual. 2015. Acesso em: 23 de setembro de2016. Disponível em: <http://www.ifsc.edu.br/campus-sao-jose/4919-projeto-de-extensao-promove-oficina-de-robotica-com-estudantes-de-escola-estadual>.27

João Faraco. Introdução ao Processing. 2016. Acesso em: 25 de agosto de 2016. Disponívelem: <http://joaofaraco.com.br/arte_design/introducao-ao-processing/>. 31

PEREIRA, M.A. Formas para fluxograma. 2016. Acesso em: 13 de setembro de 2016.Disponível em: <http://www.feg.unesp.br/~mapereira/PC-I_arquivos/Parte2.pdf>. 43

PIAI, J. et al. O processo de inserÇÃo da robÓtica em um nÚcleo de atividades de altashabilidades/superdotaÇÃo. 2014. 25

REAS, C.; FRY., B. Processing: A Programming Handbook for Visual Designers andArtists (Second Edition). [S.l.]: The MIT Press, 2014. 35

REAS, C.; FRY., B. Getting Started with Processing, Second Edition. [S.l.]: MakerMidia, 2015. 35

Page 74: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Rommes Murillo de Sousa. Falando sobre Processing. 2015. Acesso em: 30 de agosto de2016. Disponível em: <http://imasters.com.br/linguagens/falando-sobre-processing/?trace=1519021197>. 31

SILVA, A. F. da. Roboeduc: uma metodologia de aprendizado com robótica educacional.Tese, 2009. 21

SUANNO, J. R. M. e M. V. R. RobÓtica pedagÓgica: PrÁtica pedagÓgica inovadora.IX Congresso Nacional de Educação - EDUCERE, p. 8073–8086, 2009. 21

The LEGO group. EV3 SOFTWARE DOWNLOAD (PC/MAC). 1999. Acesso em:09 de novembro de 2016. Disponível em: <https://www.lego.com/en-us/mindstorms/downloads/download-software>. 27

Universidade Estadual de Londrina. Portfólio - II Robolon. 2015. Acesso em: 03 denovembro de 2016. Disponível em: <http://www.uel.br/projetos/robotica/?page_id=23>. 26

ZILLI, S. R. A robótica educacional no ensino fundamental: Perspectivas e práticas.Dissertação de mestrado - UFSC, 2004. 41

Page 75: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua
Page 76: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua
Page 77: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

75

A Apêndice

A.1 Introdução ao Processing

Para inicializar o Processing, deve-se primeiramente fazer o download (disponível naprópria página da ferramenta: www.processing.org/download vista na figura A1)

Figura A1 – Página inicial do Processing

Fonte: da Autora.

A primeira função que é de fundamental importância é a função "size()", pois eladefine o tamanho da janela que será mostrado os desenhos resultantes da implementação.A função "background()" define a cor do fundo. Para inserir as cores, normalmente utiliza-se a mistura de cores através de valores entre 0 e 255, formato vermelho-verde-azul (RGB)separados por vírgulas.A cor branca é representada por "background(255, 255, 255)". Umvalor único de 0 a 255 também é um jeito rápido de definir tons de cinza, sendo 0 pretoe 255 branco.

O Processing tem muitas funções que criam desenhos e formas geométricas, comoelipse, retângulo e linha. Cada um tem sua sintaxe de entrada de dados que dizem comoeles vão ser desenhados. Esses dados são os números entre parênteses. Para desenho deelipse utiliza-se a função "ellipse()", para criar um retângulo utiliza-se "rect()"e para umalinha utiliza-se "line()". Os parâmetros podem ser escolhidos de acordo com o autor.

Page 78: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Para construir figuras com aparências mais elaboradas, o Processing disponibiliza for-mas de mudar a cor do preenchimento e contorno. De acordo com as informações exibidasacima, segue um código-exemlo na figura A2 para desenhar algumas figuras distintas, comcores e preenchimentos diferenciados.

Figura A2 – Código para desenho de figuras aleatórias

Fonte: da Autora.

Nesse código, há alguns comentários inseridos para ajudar na interpretação das linhasde comando. Nele é definido como criar cada forma de acordo com as características depreenchimento e de contorno. O compilador lê o código de cima pra baixo, e executaquando o usuário clica em "play". Seguindo essas instruções, a imagem obtida pode servista na figura A3.

Além das formas básicas que podem ser desenhadas no Processing, existem outrosmecanismos interessantes disponibilizados pelo Processing. Para isso utilizam-se novasfunções essenciais fornecidas pela ferramenta, conhecidas como "setup()"e "draw()".

Basicamente, a função "setup()"é executada uma só vez, e é usada pra declarações ini-ciais como tamanho da tela, isto é, inicializações do código. A função "draw()"é executadaem loop, uma vez a cada frame(intervalo de tempo). Com isso, pode-se inserir valores em"draw()"e variar a cada quadro. Com isso, pode-se utilizar do recurso do mouse e desenhar

Page 79: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Figura A3 – Resultado da execução do código referente à figuras aleatórias

Fonte: da Autora.

formas de acordo com o movimento do usuário no mouse, tanto no eixo X quanto no eixoY. Para ilustrar essas características, segue um código exemplo na figura A4

Junto ao código mostrado na figura A4 pode-se observar alguns comentários que ser-vem como guia de código. Para esse caso, esses comentários são simples, no entanto, ouso de comentários em um código mais extenso torna-se fundamental e importante parainterpretação do próprio autor e de terceiros.

Page 80: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Figura A4 – Código para desenho com variação da posição do cursor

Fonte: da Autora.

O resultado do código pode ser visto na figura A5

Page 81: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Figura A5 – Resultado da execução do código para variação de cursor

Fonte: da Autora.

A.2 Tutorial básico de Programação com ênfase emRobótica

A.2.1 Nível I - Ferramenta Processing

Introdução

Essa experiência fundamenta-se na familiarização de um software chamado Processing,esse software trabalha com a criação de figuras através de códigos simplificados. O Proces-sing torna-se interessante para interpretação da linguagem de programação C, que é bemsemelhante, além de abrir um leque de opções de pequenos projetos e implementações queprecisam de recurso visual.

Objetivos

• Conhecer a ferramenta "Processing" apresentada na seção "Introdução ao Proces-sing"

• Utilizar códigos específicos para criar formas geométricas.

• Criar um jogo baseado no princípio do Hockey.

Page 82: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Material necessário

• 1 computador para utilização do software Processing.

Procedimentos experimentais

1. Fazer o download do software e instalar adequadamente;

2. Assimilar conceitos importantes para implementações básica;

3. Implementar o jogo baseado em Hockey.

A atividade fundamenta-se em uma adaptação básica do conhecido jogo de hockey demesa, reproduzindo através do Processing um mecanismo de defesa de bola atravésda movimentação de uma placa. O jogo - no formato real - pode ser visto na figuraB1

Figura B1 – Hockey de mesa

Fonte: Autor desconhecido (2016a)

De acordo com o fluxograma explicativo da figura B2 a seguir, introduzir o códigointerface de programação do Processing.

Page 83: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Figura B2 – Fluxograma para o algoritmo do Jogo

Fonte:do Autor.

Page 84: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Na interface de programação, inserir o código abaixo:1

2 // c r i a c a o e i n i c i a l i z a c a o de v a r i a v e i s3

4 f l o a t bolaX=25;5 f l o a t bolaY=25;6

7 f l o a t veloc idadeX =3;8 f l o a t veloc idadeY =3;9

10 f l o a t ca ixa = 50 ;11 i n t p l a ca r = 0 ;12 boolean FIM = f a l s e ;13 boolean go l = f a l s e ;14

15 void setup ( ) 16 s i z e (600 ,400) ;17 18

19 // Montagem do p laca r do jogo20 void draw ( ) 21 pr in t ( "X = " ) ;22 pr in t ( bolaX ) ;23 pr in t ( " \ t Y = " ) ;24 pr in t ( bolaY ) ;25 pr in t ( " \ t p l a ca r = " ) ;26 p r i n t l n ( p l a ca r ) ;27

28 i f ( bolaX < 25 | | bolaX > ( width −25) )29 veloc idadeX = − veloc idadeX ;30 i f ( bolaY < 25 | | bolaY > ( height −25) ) 31 veloc idadeY = − veloc idadeY ;32

33

34 // l e i t u r a da pos i cao que o usuar io determina at rave s da movimentacaodo mouse

35

36 f l o a t d i s t a n c i a = abs (mouseX−bolaX ) ;37

38 i f ( d i s t a n c i a < ca ixa & bolaY >= ( height −25)& FIM!= true )

39 go l=true ;40 p laca r +=1;41 42 e l s e i f ( d i s t a n c i a > ca ixa & bolaY >= ( height −25) ) 43 veloc idadeX =0;44 veloc idadeY =0;

Page 85: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

45 FIM=true ;46 47 48 i f ( go l ) 49 f i l l ( 25 ,25 ,250) ;50 r e c t ( ( mouseX−ca ixa ) , height −15 ,2∗ caixa , 1 5 ) ;51 f i l l ( 20 ,20 ,250) ;52 e l l i p s e ( bolaX , bolaY ,35 , 35 ) ;53 54 e l s e i f ( ! go l ) 55 f i l l (50 ,100 ,200) ;56 r e c t ( ( mouseX−ca ixa ) , height −15 ,2∗ caixa , 1 5 ) ;57 f i l l (200 ,100 ,250) ;58 e l l i p s e ( bolaX , bolaY ,35 , 35 ) ;59 60 go l=f a l s e ;61 62

4. Analise o funcionamento do jogo através dos valores mostrados na tela do próprioambiente de programação, observando se os valores na movimentação do mousecorrespondem aos valores disponibilizados pelo Processing.

5. SUGESTÃO 1: Com o código disponível, faça modificações no jogo para que adefesa seja feita na superfície vertical da tela.

SUGESTÃO 2: Implemente um código que tenha dois mecanismos de defesa, umatravés do mouse e outro através do teclado do computador.

A.2.2 Nível II - Uso da serial (Processing + Arduino)

Introdução

Para realizar implementações mais complexas com o uso do Processing, pode-se utilizarArduino, já que as duas ferramentas se comunicam.

A plataforma Arduino oferece um leque de opções para implementação dos projetos ecom isso, faz-se possível realizar uma transformação do jogo básico da experiência nível I.

Objetivos

• Incrementar o projeto nível I, alterando o tipo de controle do usuário.

• Realizar a comunicação entre Processing e a plataforma Arduino

Page 86: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Material necessário

• 1 computador com Processing e Arduino instalados adequadamente;

• 1 Arduino UNO;

• 1 Cabo serial;

• 1 Protoboard básica.

Procedimentos experimentais

1. Realizar as ligações entre potenciômetro, protoboard e Arduino de acordo com afigura B3 mostrada abaixo

Figura B3 – Circuito para potenciômetro

Fonte:Autor desconhecido (2016b)

2. Conectar o módulo Arduino ao computador através do cabo serial, e em seguidaabrir os dois ambientes de programação: Arduino e Processing.

3. Inserir os códigos abaixo para finalizar a implementação do Jogo. O primeiro códigocorresponde às tarefas do Arduino, já o segundo código é a parte referente aoProcessing.

CÓDIGO 1:

1 void setup ( ) 2 S e r i a l . begin (9600) ;3 4 void loop ( ) 5 S e r i a l . p r i n t l n ( analogRead (A0) ) ;6 delay (1 ) ;7

Page 87: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

CÓDIGO 2:1

2 // Faz a l e i t u r a da porta s e r i a l3 \end4 import p ro c e s s i ng . s e r i a l . ∗ ;5 S e r i a l myPort ;6

7 // Cria as v a r i a v e i s n e c e s s a r i a s e as i n i c i a l i z a8 i n t xPos = 1 ;9 f l o a t inByte = 0 ;

10 i n t contador = 0 ;11

12 f l o a t bolaX=25;13 f l o a t bolaY=25;14

15 f l o a t veloc idadeX =3;16 f l o a t veloc idadeY =3;17

18 f l o a t ca ixa = 50 ;19 i n t p l a ca r = 0 ;20 boolean FIM = f a l s e ;21 boolean go l = f a l s e ;22

23

24 // Determina o tamanho da t e l a e c r i a uma v a r i a v e l para a l e i t u r a daporta s e r i a l

25 void setup ( ) 26 s i z e (600 ,400) ;27

28 p r i n t l n ( S e r i a l . l i s t ( ) ) ;29 myPort = new S e r i a l ( th i s , S e r i a l . l i s t ( ) [ 0 ] , 9600) ;30 myPort . b u f f e r U n t i l ( ’ \ n ’ ) ;31 background (0) ;32 33

34 // Determina as i n s t r u c o e s para mostrar o p laca r do jogo35 void draw ( ) 36 pr in t ( "X = " ) ;37 pr in t ( bolaX ) ;38 pr in t ( " \ t Y = " ) ;39 pr in t ( bolaY ) ;40 pr in t ( " \ t p l a ca r = " ) ;41 p r i n t l n ( p l a ca r ) ;42

43 // Se a bola e a ca ixa e s tao na mesma direcao , e x i s t e a de fesa , casoi s s o nao ocorra , o jogo se ence r ra .

44

Page 88: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

45 i f ( bolaX < 25 | | bolaX > ( width −25) )46 veloc idadeX = − veloc idadeX ;47 i f ( bolaY < 25 | | bolaY > ( height −25) ) 48 veloc idadeY = − veloc idadeY ;49 f l o a t d i s t a n c i a = ( inByte−bolaX ) ;50 i f ( d i s t a n c i a < ca ixa & bolaY >= ( height −25)& FIM!= true ) 51 go l=true ;52 p laca r +=1;53 54 e l s e i f ( d i s t a n c i a > ca ixa & bolaY >= ( height −25) ) 55 veloc idadeX =0;56 veloc idadeY =0;57 FIM=true ;58 59 60 bolaX += veloc idadeX ;61 bolaY += veloc idadeY ;62 background (200) ;63

64 i f ( contador == 0) 65 delay (2000) ;66 contador++;67 68

69 i f ( go l ) 70 f i l l ( 25 ,25 ,250) ;71 r e c t ( (2∗ inByte ) , he ight −15 ,2∗ caixa , 1 5 ) ;72 f i l l ( 20 ,20 ,250) ;73 e l l i p s e ( bolaX , bolaY ,35 , 35 ) ;74 75 e l s e i f ( ! go l ) 76 f i l l (50 ,100 ,200) ;77 r e c t ( (2∗ inByte ) , he ight −15 ,2∗ caixa , 1 5 ) ;78 f i l l (200 ,100 ,250) ;79 e l l i p s e ( bolaX , bolaY ,35 , 35 ) ;80 81 go l=f a l s e ;82 83 void s e r i a l E v e n t ( S e r i a l myPort ) 84

85 St r ing i n S t r i n g = myPort . r e adSt r i ngUnt i l ( ’ \ n ’ ) ;86

87 i f ( i n S t r i n g != n u l l ) 88 i n S t r i n g = trim ( i n S t r i n g ) ;89 inByte = f l o a t ( i n S t r i n g ) ;90 p r i n t l n ( inByte ) ;91 inByte = map( inByte , 0 , 1023 , 0 , he ight ) ;

Page 89: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

92 93

4. Analise o funcionamento do jogo através dos valores mostrados na tela do próprioambiente de programação, observando se os valores na movimentação do potenciô-metro são coerentes.

5. SUGESTÃO 1: Com o código disponível, modifique-o para inserir um segundopotenciômetro afim de obter dois mecanismos de defesa, como em um jogo de futebol.

6. SUGESTÃO 2: Adicione mais uma bola ao jogo, ou quantas quiser, para dificultara defesa e aumentar o nível do jogo.

A.2.3 Nível III - Garra robótica

Introdução

Com os conceitos assimilados nos níveis I e II, torna-se viável a construção de umpequeno robô. Um robô que execute movimentos simples para três dimensões. Essas di-mensões são representadas pelos movimentos de três servos-motor. De forma simplificada,a distribuição dos movimentos da garra robótica se resume no desenho da figura B4.

Figura B4 – Coordenadas e movimentos executados pela garra robótica

Fonte: do Autor.

Objetivos

• Construir um robô simples que execute movimento nas coordenadas x, y e z.

Page 90: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

• Exercer a criatividade para construção física do robô.

• Assimilar os conceitos básicos de linguagem de programação ao final do trabalho.

• Executar as tarefas em grupo afim de trabalhar a diversidade de ideias.

Page 91: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

Material necessário

• 1 Placa Arduino UNO;

• 3 Servo-motores;

• 1 Cabo USB para Arduino;

• 1 Fonte de Tensão de 5V DC;

• 1 Botão do tipo joystick;

• 1 Protoboard;

• 2 Chaves de 2 posições;

• 2 Resistores 10 kΩ;

• Fios condutores (tamanhos diversos);

• Materiais reaproveitáveis (Tampa plástica, caixinha de papelão, acrílico);

• Fita isolante;

• Fita dupla-face;

Procedimentos experimentais

1. De acordo com a figura B5, fazer as ligações dos motores com um conjunto de pilhas,ou uma fonte de tensão.

Figura B5 – Esquema das conexões para servos-motor

Fonte: do Autor.

Page 92: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

2. Ligar o Joystick de acordo com o esquema mostrado na figura B6. O o terminal"SW"não deve ser ligado, pois o movimento no eixo Z é executado através de outrotipo de chave.

Figura B6 – Esquema das conexões para Joystick

Fonte: do Autor.

3. Montar a garra robótica de acordo com a esquematização da figura B7 que mostratodos os componentes: Arduino, alimentação através de pilhas, três servo-motores,joystick, protoboard e uma chave para controlar abertura e fechamento da garra. Ob-servação: Essa é apenas uma opção de montagem de circuito, as portas do Arduinopodem ser escolhidas de acordo com a sua preferência.

Figura B7 – Esquemático da montagem da Garra robótica

Fonte: do Autor.

Page 93: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

4. Interpretar o fluxograma que descreve o funcionamento da Garra robótica. Essaorganização em fluxos é apresentda na figura B8.

Figura B8 – Fluxograma para Garra Robótica

Fonte: da Autora.

5. Inserir o código abaixo na interface do Arduino para que o robô receba os comandosnecessários e atue como previsto:

1 // Inc lu sao da b i b l i o t e c a para servo−motor .2 // Criacao da v a r i a v e l para garra .3

4 #inc lude <Servo . h>5 boolean chavegarra = f a l s e ;6

7 // Assoc ia p inos do Joys t i ck8

9 const i n t SW = 12 ;10 const i n t VRx = 0 ;

Page 94: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

11 const i n t VRy = 3 ;12

13 // Assoc ia p inos de c o n t r o l e dos s e rvo s14

15 const i n t ControleServoX = 3 ;16 const i n t ControleServoY = 6 ;17 const i n t ControleServoGarra = 9 ;18

19 // c r i a ob j e t o s do t ipo Servo20

21 Servo meuServo1 , meuServo2 , meuServo3 ;22

23

24 // Relac iona a l e i t u r a do servo para cada movimento (x , y e z )25 void setup ( )26 27 S e r i a l . begin (9600) ;28 meuServo1 . attach ( ControleServoX ) ;29 meuServo2 . attach ( ControleServoY ) ;30 meuServo3 . attach ( ControleServoGarra ) ;31 pinMode (SW, INPUT) ;32 33 i n t k ;34

35 void loop ( )36 37 //Movimento no e ixo x38 i n t x = analogRead (VRx) ;39

40 // "map" u t i l i z a d o para trans formar o va l o r l i d o pe lo movimento dousuar io em angulos de 0 a 180 graus .

41 // " Read " e " wr i t e " sao r e spon save i s pe la l e i t u r a e e s c r i t a do angulono servo−motor .

42 // Angulo dese jado corresponde ao angulo pos i c i onado pe lo usuar io .43

44

45 i n t anguloDesejadoX = map(x ,0 , 1023 , 0 , 180 ) ;46 S e r i a l . p r i n t l n ( anguloDesejadoX ) ;47 i n t anguloAtualX = meuServo1 . read ( ) ;48

49 i f ( anguloDesejadoX >= anguloAtualX )50 51 f o r ( i n t i = anguloAtualX ; i <= anguloDesejadoX ; i++)52 53 meuServo1 . wr i t e ( i ) ;54 delay (20) ;55 x = analogRead (VRx) ;

Page 95: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

56 anguloDesejadoX = map(x ,0 , 1023 , 0 , 180 ) ;57 58 59 i f ( anguloDesejadoX < anguloAtualX )60 61 f o r ( i n t i = anguloAtualX ; i >= anguloDesejadoX ; i −−)62 63 meuServo1 . wr i t e ( i ) ;64 delay (20) ;65 x = analogRead (VRx) ;66 anguloDesejadoX = map(x ,0 , 1023 , 0 , 180 ) ;67 68 69 //Movimento no e ixo y70 i n t y = analogRead (VRy) ;71 i n t anguloDesejadoY = map(y ,0 , 1023 , 0 , 180 ) ;72 S e r i a l . p r i n t l n ( anguloDesejadoY ) ;73

74 i n t anguloAtualY = meuServo2 . read ( ) ;75 i f ( anguloDesejadoY >= anguloAtualY )76 77 f o r ( i n t j = anguloAtualY ; j <= anguloDesejadoY ; j++)78 79 meuServo2 . wr i t e ( j ) ;80 delay (20) ;81 y = analogRead (VRy) ;82 anguloDesejadoY = map(y ,0 , 1023 , 0 , 180 ) ;83 84 85 i f ( anguloDesejadoY < anguloAtualY )86 87 f o r ( i n t j = anguloAtualY ; j >= anguloDesejadoY ; j −−)88 89 meuServo2 . wr i t e ( j ) ;90 delay (20) ;91 y = analogRead (VRy) ;92 anguloDesejadoY = map(y ,0 , 1023 , 0 , 180 ) ;93 94 95 // movimento da garra96

97 chavegarra = d ig i ta lRead (SW) ;98 S e r i a l . p r i n t l n ( chavegarra ) ;99 i f ( chavegarra == 0)

100 101 k = meuServo3 . read ( ) ;102 f o r ( i n t i = k ; i >= 5 ; i −−)

Page 96: Estudoorientadodeprogramaçãoaplicadaà robótica · Estudo orientado de programação aplicada à robótica - Londrina, 2017 - 94 p.,30cm. ... EV3(TheLEGOgroup,1999). Depois,osestudantespuderamprogramaraçõesdesua

103 meuServo3 . wr i t e ( i ) ;104 delay (20) ;105 106 107 e l s e108 109 k = meuServo3 . read ( ) ;110 f o r ( i n t i = k ; i < 175 ; i++)111 112 meuServo3 . wr i t e ( i ) ;113 delay (20) ;114 115 116 117

6. Analisar o funcionamento da garra robótica através dos comandos com Joystick echave utilizados.

7. SUGESTÃO: Com o código disponível, modifique-o para trabalhar com robô queaceite comandos em que o usuário não necessite estar pressionando chaves ou botões,mas que reconheça quando o usuário apenas clicar e soltar.