universidade positivo nÚcleo de ciÊncias exatas e ... · kit educacional robÓtico para...

25
UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS ENGENHARIA DA COMPUTAÇÃO Giovanna Fragoso Ferreira KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba, 2015

Upload: others

Post on 11-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

UNIVERSIDADE POSITIVO

NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS

ENGENHARIA DA COMPUTAÇÃO

Giovanna Fragoso Ferreira

KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO

EM LÓGICA DE PROGRAMAÇÃO

Orientador: Prof. Alessandro Brawerman

Curitiba, 2015

Page 2: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

RESUMO

A nova geração de estudantes, particularmente os de ensino fundamental, está

imersa em um cenário onde a tecnologia é facilmente percebida e sobre constantes

mudanças, dentro e fora do ambiente acadêmico. Devido a esse ritmo acelerado no

crescimento tecnológico, os estudantes precisam estar preparados para enfrentar os

desafios apresentados no seu cotidiano.

A construção e programação de um robô, por exemplo, exige a combinação de

conhecimentos de diversas áreas, o que faz da robótica uma área multidisciplinar. Desta

forma, a robótica pode ser entendida como a ciência que estuda a elaboração, montagem

e programação de robôs para execução de tarefas sendo controladas por computadores

ou autômatos. Por esses motivos, surge à importância de inserir a robótica na educação

fundamental, a fim de familiarizar os alunos com conceitos básicos de forma lúdica

através da construção e programação de robôs.

Construir e programar robôs requer dos alunos conceitos abordados em sala de

aula e muitas pesquisas, assimilando o conteúdo apresentado em aula com a prática,

ainda desenvolvendo conceitos como trabalho em equipe, integração de disciplinas,

capacidade de falar em público, solucionar problemas e empreendedorismo.

É com esta visão que este trabalho aborda o desenvolvimento de uma ferramenta

lúdica robótica em conjunto com um ambiente de programação de alto nível para

educação de lógica de programação, integrando estratégias educacionais com

ferramentas de aprendizagem, com a utilização de uma interface computacional e

interação robótica. O projeto apresenta o desenvolvimento de uma plataforma robótica

simples, um carrinho, com alguns sensores e um aplicativo Android que serve de

interface para o desenvolvimento de programas que controlarão o robô.

Palavras-chave: Programação, Robótica Educacional, Lúdica, Educação Tecnológica.

Page 3: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

ABSTRACT

The new generation of students, particularly elementary school, is immersed in a

scenario where technology is easily seen and on constant change, both inside and

outside the academic environment. Because of this fast-paced technological growth,

students need to be prepared to face the challenges presented in their daily lives.

Building and programming a robot, for example, requires a combination of

knowledge from different areas, which is a multidisciplinary area of robotics. This way,

the robot can be understood as the science that studies the development, assembly and

robot programming for task execution being controlled by computers or automatically.

For these reasons, it is approached the importance of inserting robotics in elementary

school in order to familiarize students with basic concepts in a playful manner by

building and programming robots.

Developing robots requires concepts that are discussed in class and a lot of

research, assimilating the content presented in class with practice, also developing

concepts such as teamwork, integration of disciplines, ability to speak in public,

troubleshoot and entrepreneurship.

In this matter this project describes the development of a robotic fun tool in

conjunction with a high programming environment level programming logic education,

including educational strategies learning tools with the use of a computer interface and

interact robotics. The project presents the development of a simple robotic platform, a

toy car, with some sensors and an Android application that interfaces to the

development of programs which controls the robot.

Keywords: Programming, Educational Robotics, Playful, Technological Education.

Page 4: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

SUMÁRIO

1 INTRODUÇÃO ................................................................................................................... 5

1.1 OBJETIVO GERAL .................................................................................................. 6

1.2 OBJETIVOS ESPECÍFICOS .......................................................................................... 6

2 FUNDAMENTAÇÃO TEÓRICA ..................................................................................... 7

3 ESPECIFICAÇÃO TÉCNICA ............................................................................................. 9

3.1 ANÁLISE DE REQUISITOS ....................................................................................... 11

3.2 RESTRIÇÕES............................................................................................................... 11

3.3 DESCRIÇÃO DAS PARTES E INTERFACEAMENTO ENTRE SISTEMAS .............. 12

4 DESENVOLVIMENTO.................................................................................................... 16

4.1 HARDWARE .............................................................................................................. 16

4.2 SOFTWARE ................................................................................................................ 18

5 TESTE E RESULTADOS ................................................................................................... 21

6 CONSIDERAÇÕES FINAIS ............................................................................................. 24

7 BIBLIOGRAFIA ............................................................................................................... 25

Page 5: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

1 INTRODUÇÃO

A presença de novas tecnologias aplicadas à educação tem se tornado cada vez

mais frequentes nas escolas, principalmente as de ensino básico, com alunos mais

familiarizados com dispositivos eletrônicos de alta tecnologia para acesso a informação.

A utilização de novas tecnologias em atividades de ensino gera um impacto no

processo de aprendizagem, despertando curiosidade e maior interesse do estudante,

instigando-os a criar soluções aos problemas propostos, desenvolver novas estratégias e

inovação.

Para Ragazzi (RAGAZZI, 2007), a robótica educacional tem como objetivo

“levar os alunos a descobrir o funcionamento da tecnologia de uma maneira

divertida”, desta forma, a robótica pode também discutir o conhecimento acumulado e

contribuir para que os alunos possam “utilizar, dominar e desenvolver o pensamento

crítico”.

Uma forma de viabilizar o conhecimento científico-tecnológico tem sido vista

através da inserção da robótica educativa nas escolas. Instigando a solução de

problemas com conceitos multidisciplinares e motivando os alunos a refletirem sobre

estes conceitos. Uma vez que o conhecimento se torna mais eficaz se for possível

integrar conceitos teóricos a uma aplicação prática.

Com o grande avanço da tecnologia, a robótica tem sido um instrumento de

ensino muito eficiente em diversas áreas, desenvolvendo a capacidade de elaborar

hipóteses, investigar soluções, estabelecer relações e tirar conclusões. Como

consequência desta evolução, a lógica de programação é uma habilidade que encontra-

se em extrema escassez de mão de obra em setores críticos para desenvolvimento de

softwares, incluindo programadores, analista de softwares e engenheiros de todas as

especialidades, devido a dificuldade de aprendizagem das linguagens de programação,

no qual requer a necessidade de raciocínio estrutural e lógico (MOLES, 1995).

Page 6: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

1.1 OBJETIVO GERAL

Este trabalho destina-se a construção e desenvolvimento de uma plataforma robótica

para auxiliar na melhoria do raciocínio lógico, principalmente infantil, e no ensino

fundamental da lógica de programação.

1.2 OBJETIVOS ESPECÍFICOS

Para o desenvolvimento deste projeto, vários passos foram elaborados, gerando

assim os objetivos específicos do trabalho. São eles:

1. Fundamentar conhecimentos em tecnologias educacionais;

2. Estudo e análise de trabalhos relacionados;

3. Desenvolvimento de hardware para comunicação, movimentação, angulação,

velocidade, sensor de distância;

4. Desenvolvimento de protocolo de comunicação, para comunicação entre aplicativo

Android e robô;

5. Desenvolvimento de firmware;

6. Desenvolvimento de aplicativo Android;

7. Construção de um módulo robótico terrestre;

8. Execução de teste/experimentos práticos para validação do sistema;

Page 7: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

2 FUNDAMENTAÇÃO TEÓRICA

A lógica de programação envolve uma tomada de decisão de uma sequência a ser

executada para atingir o resultado desejado, assim surgindo a linguagem de

programação.

Segundo Castilho (CASTILHO, 2006), existem poucos registros sobre a história da

robótica aplicada na educação. Em grande parte da população, existe uma dificuldade

considerável quando se trata de aprender uma linguagem de programação, devido a

necessidade de raciocínio estrutural e lógico a ser desenvolvido desde a infância.

Ao primeiro contato com a programação, os estudantes encontram um grande

obstáculo em aplicar seus conhecimentos e habilidades, gerando uma fonte de medo,

frustração e desistência do ramo (CHAVES DE CASTRO, 2003).

Com este conceito, para solucionar esse desafio e suprir a necessidade de mercado

global, vários autores, como por exemplo, (CARVALHEIRO & SETZER, 1995; BEN-

ARI, 1998; ROSSO & DANIELE, 2000; TOBAR et al., 2001; HADEN & MANN,

2003; NEVES & COELLO, 2006; COSTA et al., 2010) sugeriram implantar a lógica de

programação nos institutos educacionais de forma mais intuitiva.

É neste momento que surge a necessidade de introduzir a lógica de programação na

educação robótica nas instituições escolares e mostrar à sociedade novas ferramentas de

ensino e estímulo voltado às áreas técnicas e de engenharia de modo a despertar o

interesse dos jovens.

Segundo Menezes apud (MENEZES, 2002) Dicionário Interativo da Educação

Brasileira afirma que robótica educacional é:

"Termo utilizado para caracterizar ambientes de

aprendizagem que reúnem [...] kits de montagem

compostos por peças diversas, motores e sensores

controláveis por computador [...] que permitam

programar de alguma forma o funcionamento dos

modelos montados.

Ainda complementam que nos ambientes destinados a robótica, os indivíduos

devem construir sistemas compostos por programas que os controla ao realizar uma

determinada atividade.

Page 8: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

Isto levou Saymourt Papert (PAPERT, 1964) dar início aos seus projetos

envolvendo robótica no Centro de Epistemologia Genética de Genebra, no Laboratório

de Inteligência Artificial do Instituo de Tecnologia de Massachussets.

Através da educação robótica o aluno vive a experiência de programar um robô ou

um sistema robotizado. O Instituto de Tecnologia de Massachusetts – MIT, nos Estados

Unidos, tem desenvolvido kits de robótica compostos por robôs ou conjuntos de peças,

motores, sensores, hardware e software de programação e controle desde os anos 70,

para utilização nas salas de aula americanas oferecendo a oportunidade de adquirir

meios de solucionar problemas constantes.

A RoboMind (HALMA, 2009) apresenta a ideia de uma IDE que oferece uma

linguagem de programação simples para movimentação de um robô e uma área de

mensagem, usada para visualizar erros sintáticos ou situações em que o robô apresenta

problemas na execução. O mesmo pode ser programado no Mindstorm (LEGO, 2009).

O Mindstorm, desenvolvido pela MIT, tem capacidade de ser programado em diversas

formas. Sensores podem ser programados para seguir linhas, desviar de obstáculos com

a opção de botões de controle, comunicação por Bluetooth e outros.

O Brasil, por sua vez, também apresenta inúmeros projetos, com elevado

desenvolvimento. O Instituto de Tecnologia da Informática e Comunicação – ITIC tem

elaborado inúmeros projetos envolvendo a robótica nas áreas educacional, exploração

de petróleo, simulação em ambientes virtuais e outros. O Paraná não deixa a desejar, já

com algumas instituições no qual implantaram a robótica em seus currículos como o

Colégio Marista Paranaense (PYKOCZ, 2012), “Quando o aluno se sente livre, aprende

mais fácil”, diz o diretor educacional do Marista, Mário José Pykocz.

O desenvolvimento de um trabalho de conclusão de curso elaborado e desenvolvido

por um aluno da Engenharia da Computação da PUC Paraná foi destaque em 2011, o

robô Tigrão (GAIOTO, 2011). Criado em 2006 com intuito de animar o ambiente

hospitalar onde crianças estão em tratamento médico. Com o mesmo intuito um robô

chamado Droidnet (NAGIME, 2013), desenvolvido por um aluno da Escola Técnica

Rezende-Rammel, virou grande notícia no Brasil devido a sua funcionalidade. O robô

foi desenvolvido quando o jovem aluno ao se reunir com sua família encontrou um dos

membros familiares doente, impossibilitado de ser visitado. Sendo assim, o robô de

quase dois metros, opera remotamente pela Internet e reproduz som e imagem do local

de onde se encontra.

Page 9: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

3 ESPECIFICAÇÃO TÉCNICA

O objetivo principal desde trabalho consiste em auxiliar no treinamento da

lógica de programação através de um pequeno módulo robótico móvel, um carrinho -

automodelo, com comunicação com um dispositivo Android via Bluetooth.

O trabalho consiste em uma base robótica, contendo dois motores DCs, com

caixa de redução e eixo duplo para movimentação juntamente com dois encoders, duas

chaves óticas PHCT204 para medição de velocidade e angulação, um sensor de

infravermelho E18-D50NK representando a cabeça do robô e um Stellaris LauchPad da

Texas Instrumental que possui microcontrolador ARM Cortex LM4F120H5QR. Por fim

uma interface gráfica desenvolvida para um aplicativo Android que fornece ao usuário a

opção de movimentos direcionais, alternação de velocidade, condições como loops,

if/else, angulação que o robô irá executar e desviar caso encontre um obstáculo.

O robô por sua vez recebe estes comandos do aplicativo através de uma

comunicação via Bluetooth HC-05 e com o uso de um firmware de controle no

microcontrolador, os interpreta e executa.

A Figura 1 ilustra a arquitetura do projeto, demonstrando como este foi

concebido, em relação de hardware, base e o firmware.

MOTORES

MICROCONTROLADOR

APLICATIVO

ENCODER

SENSOR

BLUETOOTH

Figura 1: Arquitetura do projeto.

Page 10: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

A Figura 2 mostra uma visão geral do projeto juntamente com a interligação dos

componentes principais. Os motores DC, encoders, sensor e Bluetooth são controlados

pelo microcontrolador, que ao receber um comando via Android, toma a decisão de

movimentação do robô. A Figura 3 apresenta uma foto do protótipo construído.

Figura 2: Visão geral do projeto.

Figura 3: Protótipo

Page 11: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

3.1 ANÁLISE DE REQUISITOS

As funcionalidades do Robbie, assim chamado o protótipo, têm como alvo

despertar o interesse na programação lógica, vista por muitos como um grande desafio.

A usabilidade do robô foi criada de uma forma lúdica através da interface gráfica,

composta blocos de comandos, facilitando o entendimento e aprendizagem do mesmo.

O robô permite que, através de um aplicativo Android, o usuário possa, com blocos de

comandos gráficos, criar uma sequência de comandos como loop, if/else, controlando

assim a velocidade e angulação.

Os blocos de movimentação consistem em movimentos para frente, trás,

esquerda, direita, com velocidade controlada por PWM em seu máximo de 255 e

angulação 90º. O usuário por sua vez tem a opção de selecionar com qual ângulo o robô

deve desviar ao encontrar um obstáculo e qual velocidade gostaria que ele executasse.

Desta forma o usuário consegue entender os princípios básicos de programação

juntamente com a criação de condições tais como o loop e if/else. O protótipo do

automodelo foi construído em um módulo de carrinho robótico com componentes

facilmente encontrados no mercado, diminuindo o seu custo total, fácil suporte e

segurança ao usuário.

3.2 RESTRIÇÕES

O produto final em desenvolvimento tem como foco um custo máximo de

R$500,00 para atender o mercado, como é mais simples, com componentes de baixo

custo, seu custo final também deve ser menor que os concorrentes, como exemplo o

Mindstorm da Lego. O sistema é alimentado via USB por baterias Li-ion recarregáveis,

com uma durabilidade máxima de 3 horas contínuas. Os componentes que compõem

este projeto não apresentam quaisquer tipos de risco elétrico, ao usuário devido à baixa

tensão de alimentação, porém não possui proteção a qualquer tipo de líquido.

Page 12: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

3.3 DESCRIÇÃO DAS PARTES E INTERFACEAMENTO ENTRE

SISTEMAS

O robô foi desenvolvido em um base de carrinho robótica, onde foram montados

nele, uma ponte H L298N, encoder com duas chaves óticas PHCT204, um módulo

Bluetooth HC-05, duas baterias Li-ion 5V, Stellaris LauchPad embutido um

microcontrolador LM4F120H5QR e um sensor E18-D50NK.

O microcontrolador LM4F120H5QR, Figura 4, utilizado no trabalho possui inúmeras

funcionalidades de extrema importância na construção do mesmo. Apresenta recurso de

conectividade com alto desempenho permitindo integrar uma variedade de periféricos

para aplicações específicas desejadas. Contendo um núcleo ARM Cortex-M4F, uma

memória flash integrada de até 256KB e 32KB de SRAM, com diversas interfaces de

comunicação e controle como UART, PWM, USB e ADC as quais foram utilizadas.

Como ilustrada na Figura 4, o diagrama de blocos do microcontrolador.

Embarcado no módulo robótico, o microcontrolador ARM Cortex

LM4F120H5QR, alimentado por uma bateria Li-ion de 5V, tem como atribuições o

controle de movimento dos motores, velocidade, aquisição de dados do sensor,

regulagem de tensão das baterias utilizada e a comunicação Bluetooth com o aplicativo

Android, como ilustrado pela Figura 5.

ARM Cortex-M4F

256 KB FLASH

32 KB SRAM

8 UARTS

Interfaces Serial

USB / 2 CAN

Clocks Reset

Sistema

GPIO´s

12 Timer PWM

Sensor Temp.

Controle de

Movimentação

3 Comparadores

Analógico

2x 12-bit ADC

16 saídas PWM

Timer

Comparador

Interupção

PWM

Gerador

PWM

Figura 4: Diagrama de blocos Stellaris microcontrolador ARM Cortex – M4F.

Page 13: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

Figura 5: Diagrama de Bloco

A ponte H alimentada pela segunda bateria de Li-ion de 5V, possui um chip ST

L298N, Figura 6, o qual é utilizado para controle dos motores. Consome uma corrente

de 0-36mA, construída com seis entradas, duas sendo analógicas que controlam o PWM

dos motores (EN1 e EN2) e as outras quatro, entradas digitais (S1-S4) que são

acionadas de forma alternada para o motor girar em um sentido determinado. Conforme

ilustra a Figura 7.

Figura 6: Ponte H L298N.

Page 14: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

Figura 7: Componente e Esquemático da Ponte H L298N.

Os motores utilizados na base do robô e conectados na ponte H são motores DC

com caixa de redução e eixo duplo, na qual através de um divisor de tensão da ponte H

são alimentados, operando em uma corrente entre 150mA e 200mA. Juntamente com os

motores um enconder foi utilizado para controle de alinhamento e angulação do mesmo.

O encoder consiste de um disco com 21 pontos, Figura 8, um raio de 3,34cm,

duas chaves óticas PHCT204, Figura 9, e duas portas do CI LM324, para cada motor.

As entradas não inversoras são ligadas ao receptor e as entradas inversoras a um trimpot

ajustável. Quando a tensão aplicada na entrada não inversora for menor que a entrada

inversora, as saídas do LM324 se manterão em nível alto, mandando um pulso pro

microcontrolador, que fará a leitura e identifica o deslocamento do robô.

Figura 8: Disco do encoder.

Figura 9: Chave Ótica PHCT204.

Page 15: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

Para comunicação entre o módulo robótico e o aplicativo Android, um módulo

Bluetooth HC-05 alimentado por 3.3V proveniente do pino do microcontrolador foi

utilizado. Configurado como master, com um alcance de até 10m, e uma taxa de

transmissão de 8bits em 9600 baud rate, consumindo em cerca de 8mA durante a

comunicação e de 30 à 40mA no momento de pareamento. Figura 10 ilustrado esquema

elétrico do módulo.

Figura 10: Bluetooth HC-05 Esquemático Elétrico.

Para detecção de obstáculo um sensor E18-D50NK foi utilizado, e alimentado

com 5V pelo pino do microcontrolador, operando em uma distância de detecção de

18cm com uma resposta de 2ms. Como mostra a Figura 11 o funcionamento lógico do

sensor utilizado.

Figura 11: Funcionamento lógico do sensor E18-D50NK.

Page 16: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

4 DESENVOLVIMENTO

O desenvolvimento do Robbie contou com planejamento e construção de um

sistema embarcado na plataforma robótica, desenvolvimento de um firmware, sistema

de controle, comunicação Bluetooth e o desenvolvimento de um aplicativo Android

para que o usuário pudesse escrever um programa de controle a partir de uma interface

gráfica.

Ao projetar o Robbie, foi feita uma análise dos componentes que seriam

utilizados para seu desenvolvimento. Sendo assim, o microcontrolador utilizado tem

como importância possuir certas funcionalidades. Cada componente foi testado

separadamente para ter certeza que todos estavam funcionando antes mesmo de integrá-

los.

1 - Motores – Direção (frente, trás, esquerda, direita) e velocidade

2 -Bluetooth – Comandos enviados pelo aplicativo com a movimentação dos

motores

3- Sensor de distância – Detecção de obstáculos

4- Encoder – Alinhamento dos motores, ajuste de velocidade e angulação

Os motores DC utilizados com caixa de redução foram testados para trabalhar

em seu máximo desempenho, permitindo que a velocidade fosse regulada assim como a

execução dos movimentos.

Os outros componentes como o Bluetooth para a transmissão dos comandos

foram ajustados com 9600 baud rate enviando um comando a cada 3 segundos. O sensor

de obstáculos mede a distância a partir de 18 centímetros do objeto, fazendo com que o

robô desvie, continuando a sequência de comandos na qual foi determinada para

execução. O encoder incremental foi utilizado para fazer o alinhamento do robô assim

regulando a quantidade de giro de cada motor.

4.1 HARDWARE

Para o desenvolvimento do firmware, em linguagem C, do microcontrolador

ARM Cortex LM4F120H5QR, utilizado neste projeto, fez-se o uso do ambiente de

desenvolvimento Energia. Este tem como função interpretar as sequências de comandos

enviados pelo aplicativo e a partir disso fazer a execução dos mesmos. Através de um

Page 17: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

encoder que calcula o diâmetro da roda do robô e da quantidade das listas brancas e

pretas faz-se o cálculo para controlar a potência dos motores, devendo se movimentar

conforme os comandos enviados. A Figura 12 mostra o fluxograma de funcionamento

do firmware, demonstrando quais são as análises feitas pelo microcontrolador, ao

receber os comandos do aplicativo. Ao iniciar o aplicativo o firmware verifica se foi

realizada a conexão com o Bluetooth, se conectado o firmware espera a sequência de

comandos a ser criada e envia, caso não tenha conectado, o firmware não avança para

criação da sequência de comandos assim esperando que haja a conexão. Na sequência

de comandos o firmware espera quaisquer comandos que seja de velocidade, angulação

e principalmente de movimentação. Após receber a sequência o firmware faz a sua

analise e executa de acordo com cada comando enviado.

Figura 12: Fluxograma de funcionamento do firmware

Os motores são acionados pela utilização de uma ponte H, composta por um

dual full-bridge driver L298N. Como citado anteriormente, a mesma possui um

conector com quatro entradas digitais e duas entradas de PWM as quais são controladas

pelo ST L298N. As entradas digitais são ligadas nos pinos J1[3], J1[4], J2[14] e J2[15]

e os sinais PWM nos pinos J1[2] e J4[38] do microcontrolador.

Page 18: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

Os demais componentes utilizados neste trabalho foram alimentados de acordo

com seu funcionamento, ligados nos pinos do microcontrolador. O disco do encoder foi

colocado no eixo de cada motor, juntamente com as suas respectivas chaves óticas

PHCT204 para fazer a leitura dos pontos. Com o trimpot ajustado corretamente, os

pinos de saída do LM324 referente a cada motor foram ligados nos pinos J4[31] e

J4[40].

Um sensor infravermelho E18-D50NK posicionado na parte frontal do robô,

consiste em um conjunto de transmissor e receptor infravermelho, para fazer a detecção

de obstáculos com uma distância de 18 cm, desviando-o, com um tempo de resposta de

2 ms. No qual o sensor foi ligado no pino J1[10]. E por fim para comunicação entre o

aplicativo e o robô, o módulo Bluetooth foi conectado nos pinos J1[5] RX e J1[6] TX.

4.2 SOFTWARE

O software utilizado no projeto foi desenvolvido em linguagem Java, para a

plataforma Android 4.4 ou superior, utilizando a IDE de desenvolvimento Android

Studio. Este representa o conteúdo que está presente nos smartphones com plataforma

Android, fazendo a interação com o usuário, apresentando o aplicativo que permite com

que o usuário crie, graficamente, uma sequência de comandos para que o robô venha

executar.

A Figura 13 mostra o fluxograma do funcionamento do aplicativo utilizado no

Android. Ao iniciar o aplicativo a tela inicial apresenta um botão INICIAR, Figura 14,

na qual faz a conexão com o Bluetooth e permite o início da criação de uma sequência

de comandos. No caso de falha ou quebra na conexão do Bluetooth, o aplicativo retorna

a tela inicial forçando que a conexão seja realizada novamente.

Page 19: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

Figura 13: Fluxograma do software do aplicativo Android.

Figura 14: Tela Inicial

A tela de criação da sequência de comandos consiste de um ListView e um

GridView. O ListView armazena todos os botões de comando em um ArrayList, tais

como os de movimentação; frente, trás, esquerda, direita, o loop para repetir a sequência

quantas vezes desejar, LED como antena do robô, velocidades; SLOW, MEDIUM,

FAST, ângulos de 90° e 180° tanto para direita quanto esquerda e o botão go que

concatena os comandos em um ArrayList e envia para ser executado pelo robô.

Page 20: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

Estes botões de comandos permitem ao usuário criar uma sequência de

comandos, pressionando-os por alguns segundos e arrastando-os para o GridView.

Neste momento um Drag and Drop é realizado assim colocando os botões/comandos em

uma sequência e armazenando em outro ArrayList.

Com isso, após a verificação da conexão através do Bluetooth, o sistema valida se existe

uma sequência, se existir, os comandos armazenados no ArrayList do GridView são

executados pelo microcontrolador na sequência em que foram inseridos. Se não, uma

mensagem aparece na tela pedindo com que uma sequência seja criada. Após a criação e

execução da sequência de comandos, a tela onde foi criada, é limpa para que novas

sequências possam ser enviadas. Como ilustra a Figura 15.

Para que o aplicativo Android e o robô se comunicassem, foi preciso utilizar

uma permissão de conexão através do Android chamado,

"android.permission.BLUETOOTH" e "android.permission.BLUETOOTH_ADMIN".

Sendo assim, foi desenvolvido um protocolo de comunicação para o Bluetooth.

Na classe do Bluetooth foi utilizado não somente o socket para conexão como

também o OutputStream para leitura e envio dos comandos. O firmware do

microcontrolador, primeiramente verifica dentro de um loop, se a serial do Bluetooth

está disponível, assim inicializando a leitura do que está sendo enviado do aplicativo,

armazenando-o em um caractere declarado como char e executando simultaneamente.

Uma interrupção chamada attachInterrupt, foi utilizada no recebimento dos

comandos via Bluetooth que controla os motores juntamente com a interrupção do

sensor. Desta forma o sensor ao detectar um obstáculo deve continuar executando o

mesmo comando até conseguir desviar do obstáculo continuando a sequência enviada.

Este comandos são armazenados em um Arraylist e enviados pelo Bluetooth no qual

executa em 8 byte com o baud rate de 9600, como mencionado anteriormente.

GridView

ListView

Figura 15: Funcionamento das telas

Page 21: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

5 TESTE E RESULTADOS

Os componentes utilizados neste trabalho foram testados separadamente para

melhor desempenho do sistema. Primeiro teste realizado foram os motores, ponte H e

bateria. A princípio, uma bateria de 6V selada foi utilizada na alimentação dos

componentes descritos. Apesar de aumentar o torque dos motores a bateria durava em

torno de 1 hora em uso constante, devido ao alto consumo da ponte H, como citado

anteriormente.

Um sensor de ultrasom HC-SR04, foi utilizado como teste juntamente com um

servo motor para movimentar o sensor em um ângulo específico. Este sensor trabalha

com uma tensão de 5V, uma corrente de 15mA, o qual foi ajustado para detectar

obstáculos com distância de 18 cm. Já o servo motor foi ajustado para detectar ângulos

entre 37° - 143°, conforme demonstra o calculo abaixo.

𝑦2 − 𝑦1

𝑥2 − 𝑥1

= 143 − 37

18 − 0= (

106

18)

𝑦2 − 𝑦1 = m (x- 𝑥1) (y − 37) = (106

18) (x – 0)

y = (106

18) x + 37

Ângulo do servo = (106

18) distância + 37

Com a utilização desde sensor, o robô apresentava dificuldade em saber para

quais ângulos deveria girar para desviar dos obstáculos. Após vários testes, foi

observado a necessidade de uma interrupção. Mesmo com o uso da interrupção, o robô

ainda apresentava problemas ao detectar e desviar dos obstáculos, sendo assim o sensor

foi subtituido pelo sensor infraverlho E18-D50NK.

O Bluetooth por sua vez foi testado com o aplicativo Android, através de um

Toast, que imprimia na tela do aplicativo os comandos enviados, armazenados pelo

ArrayList. Com isso, pode-se notar que o protocolo de comunicação estava em total

funcionalidade.

Novos testes foram realizados com o Bluetooth, em relação ao tempo de

transmissão de uma quantidade de comandos ilustrado no gráfico 16. Como se pode

observar, os comandos enviados são executados em torno de 3 segundos por comando.

Page 22: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

Figura 16: Tempo de Transmissão

Outro teste realizado se refere ao total de comandos executados com sucesso. O

teste envolveu a execução de 100 envios de comandos de movimentação (frente, trás,

esquerda, direita) com angulação default de 90º e velocidade default fast, com o PWM

em 255. O resultado mostrou um total de erro de 21% para os 100 envios de comando.

Da mesma forma foi realizado o teste com a opção de selecionar a mudança de ângulo

caso o robô detectasse um objeto e a troca de velocidade, apresentando um erro de 28%

dentre os 100 envios de comandos. Dado problema causado pela possibilidade de

liberação de memória do microcontrolador, uma vez que o microcontrolador possui uma

memória de processamento pequena como mencionado anteriormente.

Figura 18: Teste de Assertividade

10 25 50 100 250 500

Tempo 00:00:30 00:00:47 00:02:30 00:05:00 00:12:45 00:25:32

00:00:00

00:02:53

00:05:46

00:08:38

00:11:31

00:14:24

00:17:17

00:20:10

00:23:02

00:25:55

00:28:48

Tem

po

Comandos DefaultComandos com Velocidade +

Ângulo

100% 100 100

Erro % 21 28

0

10

20

30

40

50

60

70

80

90

100

Tota

l de

Ace

rtiv

idad

e

Page 23: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

Uma melhor solução seria a utilização da alocação dinâmica de memória,

gerenciada pela função malloc, a qual aloca um bloco de bytes consecutivos na

memória, devolvendo o endereço desse bloco. Esse endereço por sua vez é armazenado

num ponteiro no qual é retornado. Outra solução seria a implementação de uma

máquina de estados, que iria manter a verificação de qual estado o comando enviado se

encontra e caso viesse encontrar qualquer tipo de interrupção o mesmo iria saber onde

retomar o comando.

Outro dado obtido de confiabilidade realizada encontra-se no sensor de

obstáculo que apresentou 28% de erro em 100 comandos enviados. Devido a limitação

de angulação do sensor utilizado, ao executar alguns comandos de desvio foram

encontrados alguns problemas. Uma melhor solução para este problema seria a

utilização de sensores nas laterais do protótipo assim tendo uma angulação maior ao

desviar dos obstáculos, com a opção de utilizar uma chave de contato que mesmo

quando o protótipo entrasse em contato com algum objeto, iria forçar que o mesmo

desviasse do objeto e continuasse a sequência de comandos.

As baterias recarregáveis de 2200 mAh de 5V, possuem uma durabilidade de

aproximadamente 3 horas contínua nesta aplicação, onde a ponte H L298N consome

uma corrente de 36 mA na tensão de 2,5V, o Bluetooth 8 mA por comunicação e 30 mA

ao fazer o pareamento e o sensor óptico uma corrente de 100 mA. Sendo assim o total

aproximado de consumo de corrente totaliza em 166 mA sem o envio de comandos.

Para a bateria utilizada de 2.2Ah com 5V com a carga integra é possível fornecer em

torno de 6 horas, sem qualquer tipo de comando sendo executado. O uso dos periféricos

faz com que a porcentagem da durabilidade das baterias diminua. Desta forma, o envio

de comandos de forma contínua aumenta o total da corrente utilizada para 330 mA,

consumindo em cerca de 32% a mais das baterias, durando em média de 3 horas.

Page 24: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

6 CONSIDERAÇÕES FINAIS

O trabalho propôs um sistema educacional robótico para treinamento em lógica

de programação para melhor aprendizado do usuário, uma vez que a lógica de

programação é vista por muitos como um obstáculo. Sendo assim, este trabalho

desenvolvido em uma base de carrinho robótica, instiga a curiosidade do estudante ao

visualizar ludicamente uma das formas de lógica de programação.

A plataforma na qual o trabalho foi construído é de fácil acesso no mercado, que

consiste de dois motores DCs nos quais, normalmente, vem acoplado na base. Assim

como o dispositivo Bluetooth HC-05, muito utilizado em projetos de robótica,

especialmente para pareamento com outros dispositivos, permitindo a comunicação

entre eles.

Atualmente notamos a grande usabilidade de aplicativos em tablets e

smartphones. Por este motivo foi criado um aplicativo Android para os estudantes

possam através desde aplicativo, interagir com o robô de uma forma mais divertida,

treinando e desenvolvendo seu raciocínio na lógica de programação.

Page 25: UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E ... · KIT EDUCACIONAL ROBÓTICO PARA TREINAMENTO EM LÓGICA DE PROGRAMAÇÃO Orientador: Prof. Alessandro Brawerman Curitiba,

7 BIBLIOGRAFIA

BEN-ARI, M. (1998) “Constructivism in Computer Science Education” Twenty-

Ninth SIGCSE Technical Symposium on Computer Science Education, Atlanta, GA,

USA.

CARVALHEIRO, F. e Setzer, V. (1995) “Uma Introdução Geral aos Algoritmos”,

Anais do 3 o WEI, 4o Congreso Ibero Americano de Educación Superior em

Computación, 15o Congresso da SBC 1995, Brasil.

CHAVES DE CASTRO, T. et al (2003) “Utilizando Programação Funcional em

Disciplinas Introdutórias de Computação”, Anais do WEI 2003, Brasil.

COSTA, H.A.X.; Santos, R.P.; Werner, C.M.L. (2010) “Uma Análise do Processo de

Ensino e Aprendizagem de Engenharia de Software: Desafios e Soluções no

Contexto Brasileiro”, In: Proceedings of the XI International Conference on

Engineering and Technology Education, Ilhéus, BA, Brasil, 367-371

GAIOTO, Marcelo (2013) “Robô sai das aulas para alegrar hospitais”.

http://www.gazetadopovo.com.br/educacao/vida-na-universidade/pesquisa-e-

tecnologia/robo-sai-das-aulas-para-alegrar-hospitais-23vk9wjey69pn9tzcilmkzrri

HADEN, P and MANN, S. (2003) “The Trouble with Teaching Programming”,

Proceedings of the 16th Annual NACCQ, Palmerston North, New Zealand

NAGIME, Rayllonn (2013) “ Estudante apresenta Robô-avatar em feira da USP. A

proposta do projeto é ajudar pessoas enfermas e hospitalizadas”,

http://odia.ig.com.br/portal/cienciaesaude/rio-de-janeiro-tem-representante-em-feira-de-

tecnologia-1.550426

NEVES, M.F.; Coello, J.M.A. (2006) “OntoRevPro: Uma Ontologia sobre Revisão

de Programas para o Aprendizado Colaborativo de Programação Java”, In: Anais

do XVII Simpósio Brasileiro de Informática na Educação, Brasília, DF, Brasil, 569-578.

MENEZES, EbenezerTakunode; SANTOS, Thais Helena dos. Robótica Educacional

(verbete). Dicionário Interativo da Educação Brasileira. EducaBrasil. São Paulo:

Midiamix Editora, 2002. Disponível em: . Acesso em: Out. 2015.

MOLES, A.A. (1995). As ciências do impreciso. Rio de Janeiro: Civilização Brasileira.

TOBAR, C.M.; Rosa, J.L.G.; Coelho, J.M.A.; Pannain, R. (2001) “Uma Arquitetura

de ambiente Colaborativo para o Aprendizado de Programação”, In: Anais do XII

Simpósio Brasileiro de Informática na Educação, Vitória, ES, Brasil, 21-23.

RAGAZZI, Vivian. Robótica na Escola: é pra já! Disponível em: . Acesso em: Out.

2015.

ROSSO, A. e Daniele, M. (2000) “Our method to teach algorithmic development”,

ACM SIGCSE Bulletin, Volume 32, Issue 2, ACM Press, USA, pp 49-52.