Você está na página 1de 13

Revista Brasileira de Informtica na Educao, Volume 18, Nmero 3, 2010

RoboFcil: Especificao e Implementao de um Kit de Robtica para a Realidade Educacional Brasileira


Leonardo Cunha de Miranda Fbio Ferrentini Sampaio Jos Antonio dos Santos Borges Instituto de Computao Programa de Ps-Graduao em Informtica Ncleo de Computao Eletrnica Universidade Estadual de Campinas Ncleo de Computao Eletrnica Universidade Federal do Rio de Janeiro 13083-852, Campinas, SP, Brasil Universidade Federal do Rio de Janeiro 20001-970, Rio de Janeiro, RJ, Brasil professor@leonardocunha.com.br 20001-970, Rio de Janeiro, RJ, Brasil antonio2@nce.ufrj.br ffs@nce.ufrj.br

Resumo

Este artigo apresenta as tecnologias associadas a um kit de robtica de baixo custo com fins educacionais desenvolvido com o intuito de promover um maior acesso a esse tipo de recurso didtico nas escolas brasileiras. Para alcanarmos esse objetivo, primeiramente realizamos estudos comparativos entre os diferentes kits comercializados no mercado, focados nos custos e nos recursos de hardware e software desses produtos. Baseado nesse levantamento, que nos proporcionou um maior entendimento das necessidades de projeto e do seu aproveitamento em sala de aula, chegamos a especificao e a implementao de hardware e de software do kit de robtica educacional denominado RoboFcil. Palavras-Chave: Robtica Educacional, Hardware e Software, Informtica na Educao

Abstract This paper presents the technologies associated with a low cost educational robotics kit developed with the intent to promote access to this kind of educational technology in Brazilian schools. To reach our goal, we first conducted comparative studies with different kits commercialized in the market, mainly focusing on the costs and features of the hardware and software. These studies gave us a better understanding of project requirements and the employment during class, and led to the specification and implementation of hardware and software of the educational robotics kit called RoboFcil. Keywords: Educational Robotics, Hardware and Software, Computers in Education

Miranda; Sampaio; Borges

RoboFcil: Especificao e Implementao de um Kit de Robtica para a Realidade Educacional Brasileira

1 Introduo
H algumas dcadas diferentes tericos vm propondo e discutindo a insero das Tecnologias da Informao e da Comunicao (TICs) no ambiente educacional. Busca-se com o emprego dessas tecnologias na Educao, uma melhor qualidade do ensino e ambientes de aprendizagem mais ricos e motivadores para os discentes. Dentre o amplo espectro de ideias e propostas, no que se refere aos artefatos computacionais, notrio observar que as solues exploram, em sua maioria, apenas a vertente de software. No entanto, a demanda por novos aparatos de hardware na Educao vem crescendo sendo evidenciada, sobretudo, pelos esforos da comunidade acadmica em propor a insero da robtica com fins pedaggicos, apoiados em resultados favorveis sua aplicao como, por exemplo, os descritos em [1,3,6,7,14,16,17,18,20]. Em relao a esses trabalhos, vale destacar que a maioria fez uso de kits de robtica importados. De fato, poucos so os trabalhos publicados que apresentam alternativas de kits para o contexto nacional [4,5,15]. A robtica educacional uma atividade desafiadora e ldica, que utiliza o esforo do educando na criao de solues de hardware e software visando a resoluo de uma situao-problema proposto. Alguns projetos pedaggicos de robtica em sala de aula fazem uso, por exemplo, da teoria construtivista de Jean Piaget para auxiliar o processo de ensino permitindo ao aluno, no processo de construo do conhecimento, a oportunidade de participar de uma aprendizagem mais efetiva e desenvolver uma percepo mais acurada dos fenmenos cientficos. Para Schons et al. ([16], p. 5), a robtica pedaggica constitui nova ferramenta que se encontra disposio do professor, por meio da qual possvel demonstrar na prtica muitos dos conceitos tericos, s vezes de difcil compreenso, motivando tanto o professor como principalmente o aluno. Segundo Zilli [20], a robtica educacional pode desenvolver as seguintes competncias: raciocnio lgico; formulao e teste de hipteses; relaes interpessoais; investigao e compreenso; representao e comunicao; resoluo de problemas por meio de erros e acertos; aplicao das teorias formuladas a atividades concretas; criatividade; e capacidade crtica. Podemos citar algumas vantagens com a adoo de kits de robtica educacional existentes no mercado: i) hardware e software construdo direcionado a atender propsitos educacionais especficos; ii) flexibilidade na forma de utilizao em diferentes aplicaes; iii) existncia de documentao tcnica e manual do usurio dos

produtos incluindo, em alguns casos, material pedaggico de apoio s atividades do professor em sala de aula; e iv) maior facilidade para aquisio e operao por usurios no familiarizados/especializados com as tecnologias de eletrnica ou informtica. Poucos so os produtos que disponveis para comercializao no Brasil possuem uma boa relao entre recursos e custos. O acesso e o uso efetivo desses kits no Brasil dificultado pelo fato dos modelos importados terem, normalmente, um elevado custo para os padres nacionais e os fabricados no Brasil possurem limitaes de hardware ou software para algumas aplicaes como, por exemplo, a impossibilidade do hardware permanecer desconectado do computador durante sua execuo, ou de no permitir a reprogramao de seu comportamento via uma linguagem de programao visual. Entendemos que a gerao de solues alternativas para resolver os problemas mencionados podem ajudar na promoo de um maior emprego dessa ferramenta pedaggica nas escolas brasileiras com poucos recursos econmicos, principalmente pelo pblico-alvo desta pesquisa, ou seja, os estudantes adolescentes do Ensino Mdio. Nesse contexto, apresentamos neste artigo o kit de robtica educacional RoboFcil, que um produto resultante de um projeto de pesquisa [11] realizado com o objetivo de criar solues alternativas aos problemas supramencionados. Este artigo est organizado da seguinte maneira: a Seo 2 descreve as tecnologias de hardware e software que foram desenvolvidas nesta pesquisa; na Seo 3 realizamos uma discusso sobre as tecnologias apresentadas neste artigo; e na Seo 4 tecemos nossas consideraes finais e indicados trabalhos que podero promover a continuidade desta pesquisa.

2 Kit RoboFcil
O RoboFcil um kit de robtica com fins pedaggicos composto por diferentes elementos de hardware e software, conforme descrevemos a seguir.

2.1 Hardware RoboFcil


O hardware RoboFcil baseado em uma CPU da famlia dos microcontroladores MCS-51 da Intel e contm uma extenso de 16 portas digitais de entrada e 16 portas de sada com buffer. O sistema prov a utilizao de circuitos externos plugins eletrnicos ou, simplesmente, plugins que permitem a interao do sistema com o mundo externo. Um plugin acoplado ao hardware pode assim controlar, por exemplo, motores de passo, sensores de luminosidade e

47

Miranda; Sampaio; Borges

RBIE V.18 N.3 2010

temperatura etc. De forma geral, os principais elementos eletrnicos que compem este hardware so: CPU Intel 8031AH (CMOS de baixo consumo); 32 KB de ROM de programa e 32 KB de RAM de programa; 8 KB de RAM de dados; Interface de comunicao RS-232C; Display de 1 linha com 16 colunas; Teclado com 5 botes; Controle de motores de passo; Controle de motores DC; Sensor de temperatura; Sensor de luminosidade; Conversor digital-analgico; Conversor analgico-digital. 2.1.1 Unidade de Controle e Sistema de Memria As caractersticas da unidade de controle derivam das propriedades operacionais das CPUs da linha Intel 8051, j projetada visando a implementao de sistemas de controle de equipamentos por microprocessador fazendo uso de um hardware mnimo. Existem diversos modelos dessas CPUs, cada um podendo ser configurado de diferentes formas. A CPU 8051 composta por trs conjuntos de portas externas bidirecionais de 8 bits endereveis bit a bit (P0, P1 e P2). Alguns modelos dessa CPU podem ser utilizados com ROM e RAM externas e, nesse caso, duas portas (P0 e P2) so empregadas para controle dos barramentos externos de dados e endereos. Ao implementar o barramento as portas P0 e P2 so concatenadas para formar um endereo de 16 bits, dando assim o mximo de 216=64 KBytes de acesso externo. A porta P0 multiplexada atravs de um circuito 74HCT373 para fornecer o barramento bidirecional de dados. A CPU implementa internamente um serializador/desserializador que serve para realizar a conexo serial do processador com o mundo externo. possvel configur-lo para comunicao sncrona e assncrona, embora tenhamos utilizado apenas a forma assncrona. A CPU possui sinais diferentes para leitura de programa e leitura de dados, aumentando teoricamente a quantidade possvel de memria. Esse fato foi aproveitado neste projeto, servindo-se de uma rea de ROM para rotinas bsicas (32 KB), uma rea de RAM para programa (32 KB) e uma rea de RAM para dados (8 KB). Dessa forma, simplificamos o processo de testagem de novas rotinas bsicas carregando-as, via interface serial, na rea de RAM de programa. Cabe comentar que o

bootstrap feito a partir das rotinas j existentes em ROM. Devido ao grande nmero de portas utilizadas neste projeto, foi escolhido o modelo de endereamento de portas no espao em memria. Assim, para os programas as diversas interfaces externas so lidas e gravadas como posies de memria. Dois circuitos NAND (74HCT00) e dois registradores de 4 bits (74HCT139) controlam e selecionam esses endereos e suas incompatibilidades com o espao real de memria. Apresentamos na Figura 1 o esquema do circuito eletrnico principal do RoboFcil. Os esquemas dos demais circuitos deste hardware esto disponveis em [11]. 2.1.2 Comunicao Os sinais de comunicao serial da CPU so TXD e RXD (Transmitter e Receiver Data), que so ligados ao exterior atravs de uma converso de nvel e corrente, realizada por um circuito MC145407. Esse circuito permite a interconexo de seis sinais que podem ser aproveitados para gerar quatro outros sinais viabilizando, dessa forma, o controle de um modem externo e permitindo, por exemplo, a sua conexo Internet. Esses sinais extras so lidos numa porta especfica a partir de um latch 74HCT244. Os sinais gerados por esse circuito so levados a um conector externo (DB-25F) preparado para conexo a um cabo serial que, por sua vez, conectado a um computador permitindo, desse modo, a carga e descarga de dados e programas. 2.1.3 Teclado e Display Foram implementados cinco botes, sendo quatro conectados a um registrador 74HCT244 e um ligado diretamente ao sinal INT0 da CPU. Esse ltimo foi pensado como uma forma dos programas serem interrompidos externamente numa aplicao de Stop/Load/Run de uma ROM de carga. Foi utilizado um display de cristal lquido (LCD) programvel ALFACOM de uma linha com dezesseis colunas, modelo LCM 1601 0630. Esse display foi escolhido por ter uma conexo e programao relativamente simples. Todo processo de controle da varredura e da memria interna feito por comandos de alto nvel, enviados ao display, segundo uma tabela fornecida pelo fabricante. A conexo desse display feita diretamente ao latch de dados e o endereamento pelo seletor da forma mais simples possvel, pois segue a mesma arquitetura empregada na implementao da conexo dos plugins nas portas de I/O do hardware RoboFcil.

48

Miranda; Sampaio; Borges

RoboFcil: Especificao e Implementao de um Kit de Robtica para a Realidade Educacional Brasileira

Figura 1: Esquema do circuito eletrnico principal do RoboFcil

2.1.4 Conversor D/A e A/D O hardware prov um conversor digital-analgico (D/A), implementado atravs de um circuito convencional R-2R, construdo sobre um conjunto de resistncias. O valor obtido est na faixa, aproximadamente, de 0 4 volts. A entrada do circuito um registrador 74HC374 que prov razovel isolamento eltrico. Para realizar a converso de sinal analgico para digital (A/D), optamos por no fazer uso de nenhum circuito de converso rpida, e sim realizar todo controle por comparao de nvel. A razo para tal de fcil entendimento: para medir um nvel de entrada analgica, gera-se um valor de tenso no conversor digital-analgico e compara-se o valor obtido com o valor de entrada, atravs de um comparador analgico construdo com amplificadores operacionais LM324 e resistncias. Por um processo de busca binria, no mximo em nove comparaes, chega-se ao valor da voltagem (valor digital). Devido existncia de um circuito conversor A/D no hardware RoboFcil torna-se possvel no futuro, por exemplo, que o Kit possa ser controlado por comandos de voz.

2.1.5 Plugins Um dos problemas mais complexos encontrados na construo de sistemas robticos definir exatamente quais sero as interfaces utilizadas. Colocando poucas interfaces, o sistema fica restrito; se muitas, o sistema fica oneroso e grande. Para solucionar esse impasse foi utilizado no RoboFcil um esquema baseado em plugins. Entendemos que a adoo desses plugins tambm permite um melhor aproveitamento do RoboFcil como ferramenta educacional, uma vez que flexibiliza sua configurao em diferentes situaes de uso. So dezesseis sinais de sada e dezesseis de entrada, isolados por registradores (74HCT374 e 74HCT244) que podem tolerar correntes relativamente altas protegendo, razoavelmente, o exterior da placa principal do hardware. Nessas entradas e sadas, ligadas a dois conjuntos de conectores, se acoplaro os diversos circuitos plugins. A dificuldade que essa soluo introduz a necessidade de uma programao cuidadosa e dependente das conexes realizadas. A verso atual do hardware RoboFcil conta com quatro plugins para controle de: i) motores de passo; ii) sensor de luminosidade; iii) sensor de temperatura; e iv) LEDs.

49

Miranda; Sampaio; Borges

RBIE V.18 N.3 2010

2.2 Firmware do RoboFcil


Uma vez definido que o pblico-alvo desta pesquisa so os estudantes do Ensino Mdio, observamos que a dificuldade de utilizao do Kit RoboFcil poderia ser elevada, visto que a programao da primeira verso do hardware RoboFcil era realizada apenas utilizando a linguagem Assembly do microcontrolador (MCU) do hardware. Um outro aspecto que poderia comprometer o projeto como um todo era a reduzida velocidade de transferncia dos programas desenvolvidos entre o computador e o hardware RoboFcil. Para contornar os problemas descritos acima e associar outras facilidades ao Kit, optamos pelo desenvolvimento de um novo firmware. Com isso em vista, buscamos no mercado ferramentas que nos permitisse gerar cdigo binrio no formato Intel HEX para o MCU do hardware fazendo uso das linguagens Assembly ou C. Dentre as possibilidades existentes, optamos pelo Keil C51 Professional Developers Kit [9], uma vez que esse ambiente de desenvolvimento constitudo pela integrao de uma diversidade de ferramentas notadamente teis aos desenvolvedores de bibliotecas bsicas como, por exemplo, compiler, debugger etc. A criao dessa camada intermediria de software firmware entre o hardware RoboFcil e os modelos a serem criados pelos usurios garante facilidades na utilizao do Kit, pois exime os usurios da necessidade de conhecer questes tcnicas aprofundadas sobre esse hardware, ou mesmo, ter que programar esse hardware em linguagem de baixo nvel. Desse modo, o controle dos dispositivos eletrnicos/eletromecnicos disponveis no RoboFcil ficam mais transparentes aos usurios. A metodologia adotada para dar origem ao novo firmware do RoboFcil foi baseada no paradigma dos sistemas operacionais em camadas. Nessa classe de sistemas uma camada sobrepe a outra, com a caracterstica de que cada uma possui mdulos com um conjunto de funes a serem utilizadas apenas pelos mdulos das camadas inferiores. Sendo assim, o firmware foi implementado seguindo semelhante estratgia com o objetivo de isolar funes e facilitar depuraes ou incorporaes de novas funcionalidades para controle/integrao entre todas as solues computacionais resultantes desta pesquisa. Demonstramos na Figura 2 as camadas implementadas neste firmware. A camada mais interna (primeira) comunicao serial e envio/recepo de um byte (firmware bsico) compe o bootstrap do hardware RoboFcil. Essas rotinas foram originalmente escritas na linguagem Assembly durante a primeira fase deste projeto e esto gravadas numa EPROM. Posteriormente, diferentes funcionalidades presentes nessa camada foram reescritas na

linguagem C objetivando criar facilidades de cunho operacional quando de sua integrao com as outras camadas. Por sua vez, a segunda camada bibliotecas bsicas de controle de todos os dispositivos eletrnicos e a terceira camada interpretador foram implementadas diretamente na linguagem C.

Figura 2: Camadas do firmware do RoboFcil

A camada referente ao interpretador foi idealizada para satisfazer a transcrio do assembly virtual do hardware RoboFcil1 em instrues de mais baixo nvel compreendidas pelo hardware. Dessa forma, as tradicionais palavras instrues reservadas presentes na maioria dos assembly sero processadas de forma semelhante tais como: Desviar Para (01h), Carregar Contador (02h), Decrementar Contador (03h), Desviar Se Flag (04h), Desvir Se No Flag (05h), entre outras. Salientamos que se o processo de carga do firmware no fosse realizado via software, com a alterao de rotinas haveria a necessidade de regravar a EPROM e essa ROM ainda deveria ser instalada, fisicamente, no hardware RoboFcil. Essas tarefas, para a maioria dos usurios alunos e professores que utilizaro o Kit RoboFcil no intuitivo e nem trivial, necessitando de algumas habilidades especficas e conhecimentos de eletrnica para sua concretizao. Apresentamos na Figura 3, para maior entendimento, os nveis e fluxos dos processos realizados quando da utilizao integrada do hardware RoboFcil com sua linguagem de programao visual, ou seja, o software ProgrameFcil.

1 Neste trabalho quando falamos do assembly virtual do hardware RoboFcil ou dos macrocdigos assembly estamos nos referindo aos cdigos hexadecimais definidos neste projeto que representam os pseudocdigos de mquina deste hardware. Esses cdigos esto detalhados em [11].

50

Miranda; Sampaio; Borges

RoboFcil: Especificao e Implementao de um Kit de Robtica para a Realidade Educacional Brasileira

Figura 3: Nveis funcionais entre o hardware RoboFcil e o software ProgrameFcil

2.2.1 Loader e Interpretador Para colocao das instrues do assembly virtual do hardware RoboFcil em formato hexadecimal na RAM de dados do RoboFcil transferidos via interface serial foi incorporado ao firmware um novo loader. Assim, aps a alocao de um programa na memria, o hardware fica aguardando um comando do usurio pressionamento de um dos botes do teclado do hardware para iniciar a execuo do programa previamente carregado em sua memria. A execuo de um programa do usurio, instruo a instruo, s possvel a partir da prvia alocao de espao na RAM de dados. Em seguida, o interpretador executar os macrocdigos assembly enviados via ProgrameFcil, que foram gerados quando da compilao de modelos, permitindo dessa forma que o hardware RoboFcil execute um fluxo lgico de execuo. O assembly virtual do hardware RoboFcil possui dezessete instrues definidas, sendo quatro instrues de 8 bits, sete instrues de 16 bits, quatro instrues de 24 bits e duas instrues de 32 bits. As funes desse conjunto de instrues com seus respectivos parmetros podem ser consultadas em [11]. Para exercer cada instruo o interpretador segue a seguinte regra: aps identificar o cdigo da instruo verificado se a instruo possui ou no parmetros. Caso possua, seleciona os parmetros e executa; no existindo parmetros, executa a instruo diretamente.

Vale destacar que todas as funcionalidades associadas ao firmware foram agrupadas permitindo, assim, sua utilizao de forma simplificada pelo usurio. Na verso atual da soluo, a transferncia carregamento do firmware na memria RAM de programa do hardware RoboFcil realizada pelo acionamento do boto que representa essa ao na interface do software ProgrameFcil, que ser apresentado a seguir. Depois de concluda a transferncia, automaticamente, o interpretador executado, passando a assumir o controle do hardware e aguardando o envio de programas desenvolvidos pelos usurios para serem interpretados neste hardware. importante ressaltar que, na atual verso do Kit, esse firmware precisa ser transferido apenas uma vez, ou seja, aps o hardware RoboFcil ser ligado.

2.3 Software ProgrameFcil


A escolha pelo desenvolvimento do software ProgrameFcil foi impulsionada pela necessidade de um ambiente visual como o RoboLab [12] que tivesse uma interface de fcil utilizao, possibilitando aos usurios da ferramenta programar o comportamento do hardware RoboFcil de forma intuitiva e sem a necessidade de ter que conhecer sua a arquitetura eletrnica. O ProgrameFcil uma linguagem de programao visual do ingls, Visual Programming Language (VPL) que permite programar dispositivos eletrnicos e eletromecnicos como, por exemplo, lmpadas, displays, LEDs, motores de passo, e sensores de luminosidade e

51

Miranda; Sampaio; Borges

RBIE V.18 N.3 2010

temperatura, fazendo uso das tradicionais construes de programao estruturada, tais como, condicional e repetio. Inicialmente a linguagem foi desenvolvida para controlar o hardware RoboFcil, visto que a primeira verso desse hardware, como comentado anteriormente, era reprogramado apenas atravs da linguagem Assembly. As fases de concepo, projeto e implementao da VPL ProgrameFcil levaram sempre em conta a necessidade de criao de um ambiente intuitivo, de forma a torn-lo agradvel de usar e eficiente para o controle dos recursos eletrnicos do hardware RoboFcil. Neste sentido, concebemos o ambiente de interao com o usurio como sendo constitudo de dois mundos hipotticos: o primeiro, chamado de Meu Mundo, onde se especifica a configurao desejada do hardware motores, sensores, LEDs etc. e visualiza-se seu funcionamento com a simulao; o segundo, chamado de Meu Programa, onde permitido explicitar a programao do hardware detalhado no Meu Mundo. Tais mundos so implementados no ProgrameFcil atravs de duas diferentes janelas, que

compem o ambiente, conforme apresentamos na Figura 4. A adoo de etapas distintas e explcitas para desenhar e executar/simular modelos mapeados no ambiente em diferentes janelas tem como objetivo facilitar a averiguao da lgica empregada em cada programa criado pelo usurio. A fim de garantir maior flexibilidade e qualidade na forma de interao entre a trade Usurio ProgrameFcilRoboFcil, incorporamos um compilador a esta VPL e um interpretador ao firmware RoboFcil, conforme descrito na Seo 2.2. O compilador tem como funo converter os objetos icnicos que compem o programa criado pelo usurio em macrocdigos assembly. O interpretador, presente no firmware do RoboFcil permite, por sua vez, converter programas escritos nos macrocdigos assembly, gerados ou no automaticamente pelo ProgrameFcil, em instrues de mais alto nvel que podem ser executadas no hardware como, por exemplo, acender ou apagar um determinado LED, escrever uma mensagem no display ou movimentar um motor especfico.

Figura 4: ProgrameFcil apresentando (a) Meu Mundo e (b) Meu Programa

2.3.1 Modelo de Comportamento e Objetos Para um entendimento mais apurado do funcionamento do ProgrameFcil faz-se necessrio apresentar a definio do que compreendemos, no contexto desse software, por modelo de comportamento e objetos. Definimos no ProgrameFcil o termo modelo de comportamento ou, simplesmente, modelo como a configurao de um hardware de robtica, real ou hipottico, com o seu respectivo programa de controle. A materializao dessas ideias no ProgrameFcil foi alcanada atravs do conjunto de peas/componentes eletrnicos, ou

seja, objetos de hardware do Meu Mundo janela onde possvel especificar a configurao do hardware de um kit de robtica (rea a da Figura 4) e dos objetos de programao do Meu Programa janela onde possvel definir o programa que ir controlar o funcionamento do hardware de robtica (rea b da Figura 4). O modelo criado pelo usurio no ProgrameFcil poder retratar ou planejar arquiteturas, casos, atividades, comportamentos, falhas existentes ou no, contribuindo assim para a estruturao do pensamento e posterior simulao acerca dessa modelagem que permitir infinitas combinaes, passveis de averiguao no que tange lgica definida.

52

Miranda; Sampaio; Borges

RoboFcil: Especificao e Implementao de um Kit de Robtica para a Realidade Educacional Brasileira

Na prtica, para se criar um modelo na VPL ProgrameFcil necessrio realizar trs etapas distintas: i) especificar os objetos de hardware que sero utilizados no Meu Mundo; ii) incluir no Meu Programa os objetos de hardware e os objetos de programao que sero utilizados; e iii) estabelecer no Meu Programa o fluxo de execuo atravs do objeto Linha de Programao. As formas de manipulao da interface a fim de realizar os passos descritos acima esto detalhados na Ajuda do software. Um objeto no ProgrameFcil uma representao grfica semelhante a um cone que pode ser manipulado tanto no Meu Mundo, como no Meu Programa. Os objetos no ProgrameFcil foram divididos em trs categorias para melhor identificar seu propsito: i) objetos de hardware; ii) objetos de programao; e iii) objetos de apoio. Os objetos de hardware representam dispositivos eletrnicos e foram divididos em duas sub-categorias: i) objetos de hardware de entrada; e ii) objetos de hardware de sada. Os objetos de programao fazem referncia s estruturas utilizadas em linguagens de programao. Por sua vez, os objetos de apoio visam unicamente proporcionar facilidades e recursos operacionais aos usurios da ferramenta, tal como, o recurso para incluir comentrios textuais nos modelos. Os objetos de hardware de sada so nomeados igualmente em ambas as janelas. Todavia, possuem caractersticas distintas, por exemplo: o objeto LED do Meu

Mundo possui a particularidade de Cor e do Meu Programa a de Acender. Aps a incluso de um objeto de hardware no Meu Mundo possvel alterar as propriedades do mesmo utilizando, por exemplo, o objeto de programao Estrutura de Controle Se. Dessa forma, baseado em decises lgicas anteriores pode-se, por exemplo, mandar acender ou apagar um determinado LED, escrever uma mensagem no display ou acionar um motor por um certo tempo. 2.3.2 Meu Mundo e Meu Programa O Meu Mundo a janela onde o usurio poder especificar o mundo hipottico que representa uma configurao de hardware de um kit de robtica. Os objetos concretos que representam os elementos eletrnicos disponveis para escolha pelo usurio so apresentados em uma barra de ferramentas dessa janela, com exceo do objeto Comentrio que visa unicamente possibilitar a insero de texto no modelo. Apresentamos na Figura 5 a barra de ferramentas do Meu Mundo com seus objetos de hardware: 1) LED; 2) Display; 3) Lmpada; 4) Motor; 5) Sensor de Luminosidade; 6) Sensor de Temperatura; e 7) o recurso de Comentrio. Os objetos de hardware passveis de apresentao no Meu Mundo foram abstrados da vida real. Portanto, para associ-los a um hardware fsico necessrio conhecer suas caractersticas fsicas e aes permitidas na realidade.

Figura 5: Barra de ferramentas do Meu Mundo

O Meu Programa pode ser definida como o local onde o usurio constri o programa que ir controlar o funcionamento dos objetos existentes no Meu Mundo. Tal processo se d atravs da definio das aes e do encadeamento de estruturas, tais como condicional e repetio, utilizando elementos icnicos para representlas (presentes na barra de ferramentas da janela).

Apresentamos na Figura 6 a barra de ferramentas do Meu Programa com seus objetos de hardware: 1) LED; 2) Display; 3) Lmpada; e 4) Motor. Tambm esto disponveis os objetos de programao: 5) Temporizador; 6) Estrutura de Controle Se; 7) Incio de Looping; 8) Fim de Looping; 9) Linha de Programao; 10) Incio de Programa; 11) Fim de Programa; e 12) o recurso de Comentrio.

Figura 6: Barra de ferramentas do Meu Programa

A incluso de objetos de hardware no Meu Programa est atrelada sua existncia no Meu Mundo. Portanto, no Meu Programa, tanto objetos de hardware como objetos de programao podem ser utilizados.

O objetivo tornar possvel a construo de uma lgica de programao entre os elementos presentes, formando assim o que definido no contexto do ProgrameFcil como o programa do modelo ou, simplesmente,

53

Miranda; Sampaio; Borges

RBIE V.18 N.3 2010

programa. Para alcanar esse propsito a linguagem foi construda em conformao com cinco regras de formao: (i) Cada objeto tem um ou nenhum sucessor na estrutura lgica de programao; (ii) O objeto Fim de Programa no poder ter sucessores; (iii) O objeto Estrutura de Controle Se ter at dois sucessores; (iv) Cada objeto pode ter um ou mais predecessores na estrutura lgica de programao; (v) O objeto Incio de Programa no poder ter predecessores. O programa estabelece a forma de comportamento de um hardware de robtica real ou hipottico e pode ser compreendido como o conjunto de objetos do Meu Programa com as suas respectivas aes definidas, interligados por um fluxo de execuo atemporal, ou seja, um fluxo constitudo sem nenhuma referncia temporal para execuo, estabelecido por meio do emprego do objeto Linha de Programao. O programa inicia com o objeto de programao Incio de Programa semforo verde e termina no objeto de programao Fim de Programa semforo vermelho quando da sua simulao no ambiente ProgrameFcil ou execuo no hardware RoboFcil. 2.3.3 Simulador e Compilador O simulador foi incorporado ao software a partir da necessidade de tornar exequvel virtualmente o modelo anteriormente criado no computador, antes de realizar a transferncia do programa criado para o hardware RoboFcil. Essa funcionalidade, entre outras vantagens, visa proporcionar um momento intermedirio de depurao do programa criado. As caractersticas de implementao do simulador permitem seu funcionamento de forma automtica, aps solicitao de incio pelo usurio, ou de forma interativa passo-a-passo. Assim, h dois semforos agregados ao ambiente sendo um no Meu Mundo e o outro no Meu Programa. Esses semforos esto posicionados no lado direito de cada janela, funcionam de forma conjunta e representando o mesmo estado. A funo desses semforos indicar o status do modelo, que pode estar em: desenvolvimento (sinal vermelho em ambas as janelas); pausa (sinal amarelo em ambas as janelas); simulao (sinal verde no Meu

Mundo); e execuo (sinal verde no Meu Programa). No Meu Mundo os objetos do hardware, real ou hipottico, quando em simulao vo alterando suas propriedades baseadas no programa desenvolvido. Conforme a simulao vai prosseguindo, no Meu Programa um ponteiro de execuo retngulo vermelho que contornam os objetos de hardware e de programao do Meu Programa vai indicando para o usurio o ponto atual de execuo do programa. A visualizao desse ponteiro configurvel pelo usurio. Com o intuito de converter o programa desenvolvido na VPL ProgrameFcil nos macrocdigos assembly definidos para o hardware RoboFcil, integramos nesse ambiente um compilador. A traduo engendrada atravs da correspondncia de macrocdigos assembly para cada objeto de hardware ou de programao presentes no programa. Desse modo, aps a compilao, temos um cdigo gerado no assembly virtual do RoboFcil que, ao ser carregado no hardware permite, por exemplo, ligar determinado motor do RoboFcil ou apagar um LED especfico do hardware. Cabe ressaltar que o processo de compilao do programa desenvolvido pelo usurio realizado apenas com um nico click do mouse sobre o boto correspondente a essa funcionalidade disponvel na interface do ProgrameFcil, visto que estvamos preocupados com a qualidade da interao do ambiente e conforto na utilizao da ferramenta minimizando, por exemplo, pr-requisitos como conhecimentos avanados de programao. Depois de concluda a compilao apresentada uma janela ao usurio com informaes do resultado do processo, ou seja, se a compilao foi realizada com sucesso ou com erros. Caso existam erros, a ferramenta indica possveis solues para contorn-los. 2.3.4 Exemplos Alguns exemplos sero apresentados a seguir com o intuito de mostrarmos os recursos implementados e as possibilidades de uso do ambiente. Apresentamos na Figura 7 um modelo simples construdo no ProgrameFcil. Esse primeiro modelo possui um nico LED vermelho (E1). Quando esse modelo executado no ProgrameFcil ou no hardware RoboFcil, E1 ir piscar indefinidamente a cada segundo.

54

Miranda; Sampaio; Borges

RoboFcil: Especificao e Implementao de um Kit de Robtica para a Realidade Educacional Brasileira

Figura 7: Exemplo de um LED piscando

Na Figura 8 apresentamos um outro exemplo com trs lmpadas L1 (amarela), L2 (verde) e L3 (vermelha) e um sensor de luminosidade (SL1). Quando esse modelo for executado no ProgrameFcil ou no hardware RoboFcil, a L1 ser ligada e o SL1 ser testado. Se esse sensor identificar a presente de luz no ambiente, a L2

ser ligada. Caso contrrio, apenas a L3 ligada. Note que a L1, que est ligada, est perto do SL1, ou seja, esse sensor est identificando presena de luz, portanto, a L2 foi ligada quando esse modelo foi simulado no ProgrameFcil.

Figura 8: Exemplo com lmpadas e sensor de luz

Na Figura 9 apresentamos o terceiro exemplo de modelo construdo no ProgrameFcil. Esse modelo possui dois LEDs verdes (E1 e E2), um sensor de luminosidade (SL1) e um display alfanumrico com fundo verde fluorescente (D1). O modelo apresentado tem o objetivo de ligar o E2 se o SL1 estiver sob incidncia de luz. Quando

esse modelo for executado no ProgrameFcil a mensagem No light permanecer escrita no D1 por cinco segundos, enquanto o SL1 no estiver sob incidncia de luz (essa foi a condio quando esse modelo foi simulado).

55

Miranda; Sampaio; Borges

RBIE V.18 N.3 2010

Figura 9: Exemplo com LEDs, sensor de luz e display

O ltimo exemplo apresenta uma situao um pouco mais complexa (Figura 10). Esse modelo possui uma lmpada amarela (L1), um sensor de temperatura (ST1), dois motores (M1 e M2) e dois displays com fundo azul (D1 e D2). Nesse exemplo, quando o ST1 estiver abaixo

do seu ponto de ativao, ou seja, enquanto no modelo a L1 permanecer longe do ST1, o M1 e o M2 sero ligados e esse fato ser avisado aos usurios via uma mensagem conjugada escrita no D1 e no D2.

Figura 10: Exemplo com lmpada, sensor de temperatura, motores e displays

3 Discusso
O tema robtica educacional apesar de no ser novo, ainda apresenta relativa escassez de aplicaes do gnero no Brasil. Esse fato pode ser corroborado, por exemplo, ao constatarmos o reduzido nmero de publicaes acadmicas acerca dessa temtica, se comparado com outras reas da Informtica na Educao (IE). Entendemos que falta um incentivo dos pesquisadores de IE na realizao

de trabalhos com foco no desenvolvimento de novos dispositivos de hardware com fins educacionais. Este trabalho, diferente daqueles que propem metodologias para uso da robtica educacional em situaes reais de ensino por exemplo, [17] , possui maior nfase no desenvolvimento de solues tecnolgicas viveis a realidade educacional e scio-financeira brasileira. Assim, no contexto das inovaes tecnolgicas, cabe nesse momento uma anlise comparativa das tecnologias apresentadas neste artigo com outras solues do gnero que acompanham quatro kits de robtica educacional utiliza-

56

Miranda; Sampaio; Borges

RoboFcil: Especificao e Implementao de um Kit de Robtica para a Realidade Educacional Brasileira

dos nas escolas do Brasil. O software que acompanha o Kit Robtica Fcil [13], diferentemente do ProgrameFcil, baseado numa interface de linha de comando. O programa que acompanha esse kit apresenta uma quantidade pequena de recursos, apenas possibilitando ligar ou desligar algum dispositivo eletrnico, tais como motor ou lmpada, e esperar alguma quantidade de tempo. Essa limitao da linguagem pode ser atribuda arquitetura eletrnica simples desse produto. O ambiente de programao nativo do Kit Super Robby [19], apesar de ser baseado numa interface visual, possui limitaes no desenvolvimento de modelos. Seu ambiente no permite que sejam utilizadas estruturas condicionais para tomada de deciso impossibilitando, por exemplo, que um determinado motor seja ligado caso um sensor de luminosidade identifique a presena de luz. Essa restrio de funcionalidades desse software parece ser reflexo dos poucos recursos de hardware disponibilizados nesse kit. O Kit GoGo Board [8] no apresenta uma linguagem de programao visual com foco educacional nativo para o seu hardware. Os idealizadores desse hardware disponibilizam na Internet bibliotecas prontas para controlar esse kit atravs de alguns ambientes comerciais de programao como, por exemplo, Visual C++ e Visual Basic. O Lego Mindstorms [10] acompanhado do software RoboLab [12] para controlar seu hardware. Esse um dos ambientes mais completos para programao visual do kit de robtica da Lego. Entretanto, a verso standard do RoboLab no apresenta algumas funcionalidades que podem ser almejadas por algumas escolas como, por exemplo, a simulao no ambiente de programao. Nesse contexto, a arquitetura eletrnica adotada pelo hardware RoboFcil o torna diferenciado em relao maioria dos kits de robtica para fins pedaggicos desenvolvidos no Brasil por exemplo, [4,5,15] , pois o mesmo possibilita ter seu comportamento alterado uma infinidade de vezes atravs de sua reprogramao via uma VPL com foco educacional ProgrameFcil no necessitando, portanto, da alterao eletrnica do circuito principal para mudana do comportamento do hardware. Uma outra particularidade desse hardware a possibilidade de manter esse equipamento desconectado do computador quando da execuo de um programa, previamente desenvolvido e transferido do computador do usurio para o hardware em questo. Tais diferenciais do hardware RoboFcil frente as outras alternativas desenvolvidas no Brasil, entre outras vantagens, proporciona flexibilidade de utilizao e aumenta as possibilidades pedaggicas de aplicao deste Kit em diferentes espaos

da escola. Por sua vez, uma importante caracterstica tecnolgica do software ProgrameFcil, em relao s outras solues de software [8,12,13,19] o recurso de simulao incorporado ao ambiente. Entre outras vantagens, tal caracterstica minimiza a necessidade de se possuir um hardware para cada grupo de alunos contribuindo, assim, para a reduo de custos na montagem de laboratrios de robtica. Entretanto, importante ressaltar que se deve ter um nmero de kits suficientes para que todos os alunos participem do processo de construo/montagem e controle do hardware de robtica educacional viabilizando, de fato, o fazer-aprendendo e o colocar a mo-namassa. Vale relembrar que a VPL ProgrameFcil foi originalmente projetada para utilizao com o Kit RoboFcil. Entretanto, dada as suas caractersticas de implementao possvel integr-la a diferentes projetos de hardware de robtica, afim de empreg-la em situaes de sala de aula voltadas ao Ensino Tcnico/Profissionalizante, Superior e de Ps-Graduao. De forma sinttica, apontamos os seguintes itens como principais diferenciais do Kit RoboFcil: i) hardware modular e escalonvel com a adoo dos plugins eletrnicos; ii) hardware reprogramvel via software; iii) VPL para kits de robtica com foco educacional; iv) sistema aberto; v) projeto e implementao totalmente nacional; e vi) boa relao custo/benefcio.

4 Consideraes Finais
A relevncia desta pesquisa est na fuso de conhecimentos de distintas reas das engenharias e cincia da computao que, integrados, proporcionaram a implementao de um kit de robtica com fins educacionais composto do hardware RoboFcil e do software ProgrameFcil. O kit de robtica educacional RoboFcil e suas caractersticas, como visto neste artigo, o fazem diferente das solues existentes no mercado brasileiro. O Kit visa atender a um pblico carente de alternativas nessa rea como, por exemplo, os alunos do Ensino Mdio. No descartando, todavia, outros segmentos do Ensino. Conjeturamos, num contexto scio-tcnico, que as solues aqui apresentadas podero ser utilizadas como base para novos desenvolvimentos, permitindo-nos tambm vislumbrar uma maior utilizao da robtica com fins pedaggicos por segmentos da sociedade ainda no atingidos com essa tecnologia. Visualizamos a utilizao deste Kit integrado s atividades curriculares de disciplinas das Engenharias, Cincia da Computao, Fsica e Matemtica, visto que metodologias didticas que privi-

57

Miranda; Sampaio; Borges

RBIE V.18 N.3 2010

legiem o uso de artefatos tecnolgicos em situaes reais de ensino abrem oportunidades aos discentes de relacionarem aspectos conceituais com situaes do dia-a-dia. Algumas simulaes de uso em contexto educacional realizadas com alunos de Ps-Graduao em Informtica, demonstraram o potencial de aplicao das solues aqui descritas. Tais testes permitiram ao nosso grupo de pesquisa obter uma viso mais prtica da utilizao dessas tecnologias em ambientes de ensino, nos dando um feedback de algumas melhorias a serem implementadas. Como estudo futuro propomos a realizao de um trabalho para viabilizar que outros hardware de robtica por exemplo, Arduino [2] possam ser programados e, at mesmo, simulados via ProgrameFcil.

ba, pginas 9-16, 1999. [8] [9] [10] [11] Gogo Board. http://www.gogoboard.org, Dez. 2010. Keil C51 Professional Developers http://www.keil.com/c51, Dez. 2010. Kit.

Lego Mindstorms. http://mindstorms.lego.com, Dez. 2010. L. C. Miranda. RoboFcil: Especificao e Implementao de Artefatos de Hardware e Software de Baixo Custo para um Kit de Robtica Educacional. Dissertao de Mestrado, Universidade Federal do Rio de Janeiro, Abril 2006. RoboLab Software. http://www.lego.com/eng/education/mindstorms/ home.asp?pagename=robolab. Robtica Fcil. Manual do Kit Robtica Fcil, 2003. C. F. Santos, C. S. Menezes. A Aprendizagem da Fsica no Ensino Fundamental em um Ambiente de Robtica Educacional. In Anais do XXV Congresso da Sociedade Brasileira de Computao, So Leopoldo, pginas 2746-2753, 2005. L. R. Sasahara, S. M. S. Cruz. Hajime Uma Nova Abordagem em Robtica Educacional. In Anais do XXVII Congresso da Sociedade Brasileira de Computao, Rio de Janeiro, pginas 459-461, 2007. C. Schons, E. Primaz, G. A. P. Wirth. Introduo a Robtica Educativa na Instituio Escolar para Alunos do Ensino Fundamental da Disciplina de Lngua Espanhola atravs das Novas Tecnologias de Aprendizagem. In Anais do I Workshop de Computao da Regio Sul, 2004. A. F. Silva. RoboEduc: Uma Metodologia de Aprendizado com Robtica Educacional. Tese de Doutorado, Universidade Federal do Rio Grande do Norte, Maro 2009. H. H. Steffen. Robtica Pedaggica na Educao: Um Recurso de Comunicao, Regulagem e Cognio. Dissertao de Mestrado, Universidade de So Paulo, 2002. Super Robby. http://www.arsconsult.com.br/produtos/srobby. S. R. Zilli. A Robtica Educacional no Ensino Fundamental: Perspectivas e Prtica. Dissertao de Mestrado, Universidade Federal de Santa Catarina, Outubro 2004.

[12]

Referncias
[13] [1] A. C. Alves, P. Blikstein, R. D. Lopes. Robtica na Periferia? Uso de Tecnologias Digitais na Rede Pblica de So Paulo como Ferramentas de Expresso e Incluso. In Anais do XXV Congresso da Sociedade Brasileira de Computao, So Leopoldo, pginas 2594-2602, 2005. Arduino. http://www.arduino.cc, Dez. 2010. M. T. Chella. Ambiente de Robtica para Aplicaes Educacionais com SuperLogo. Dissertao de Mestrado, Universidade Estadual de Campinas, Outubro 2002. S. M. S. Cruz, L. R. Sasahara, K. Sasahara et al. Hajime: O Relato de um Experimento em Robtica Educacional de Baixo Custo. In Anais do XVIII Simpsio Brasileiro de Informtica na Educao. So Paulo, pginas 176-179, 2007. M. E. J. K. Cruz, B. Lux, W. Haetinger et al. Formao Prtica do Licenciando em Computao para Trabalho com Robtica Educativa. In Anais do XVIII Simpsio Brasileiro de Informtica na Educao. So Paulo, pginas 422-431, 2007. J. V. V. dAbreu, L. M. G. Gonalves, M. F. Garcia et al. Uma Abordagem PrticoPedaggica para o Ensino de Robtica em Cincia e Engenharia de Computao. In Anais do XIII Simpsio Brasileiro de Informtica na Educao, Porto Alegre, pginas 428-439, 2002. J. V. V. dAbreu. Desenvolvimento de Ambientes de Aprendizagem Baseados no Uso de Dispositivos Robticos. In Anais do X Simpsio Brasileiro de Informtica na Educao, Curiti[16] [14]

[2] [3]

[15]

[4]

[5]

[17]

[18]

[6]

[19] [20]

[7]

58