• Nenhum resultado encontrado

Um Módulo de Controle para um Kit de Robótica Educacional Baseado em Hardware Reconfigurável

N/A
N/A
Protected

Academic year: 2021

Share "Um Módulo de Controle para um Kit de Robótica Educacional Baseado em Hardware Reconfigurável"

Copied!
6
0
0

Texto

(1)

Marcel Danilo Alves Siqueiraa; Marcos Banheti Rabello Vallima*

Resumo

Este estudo descreve um módulo de controle para um kit de robótica educacional baseado em hardware reconfigurável. A uma estrutura definida por módulos de controle de motores, módulos de sensoriamento, um sistema processado e um módulo de comunicação USB. As interfaces de entrada e saída utilizam técnica PWM, e são centralizadas em um sistema Nios II. A utilização de FPGA difere a plataforma proposta das comerciais pela propriedade de admitir atualizações de hardware. O estudo está contido em um projeto de pesquisa que objetiva a atração de talentos às áreas de engenharia e ciências.

Palavras-chave: Plataforma de Robótica. Lógica Reconfigurável. FPGA. Abstract

This study describe a module of control for a Educational Robotic Kit based on a reconfigurable hardware. A structure defined by engine control modules, sensorial modules, a processed system and USB Communication module. The input and output interfaces use PWM Technique, and they are centralized in a Nios II System. The utilization of FPGA highlights the commercial platform because of its property to admit hardware utilization. The study is part of a research project that aims to attract talents to Engineering and Science Areas.

Key-words: Robotic Plataform. Reconfigurable Logic. FPGA. 1 Introdução

Os sistemas de robótica exploram a rica natureza de sistemas integrados que incluem mecânica, elétrica e computação, e são utilizados como ferramentas para atrair estudantes para a ciência e a carreira de engenharia (CHUNG; ANNEBERG, 2003).

No Brasil, uma forma corrente de difusão da robótica são os kits de robótica educacional comerciais. Contudo, estes kits ainda não fazem parte da realidade das escolas brasileiras, pois apresentam custos elevados de aquisição (MEDEIROS FILHO; GONÇALVES, 2008).

Os kits comerciais geralmente são dotados de microcontroladores de hardware fixo, logo, com funções limitadas. Essa tecnologia, denominada ASIC (Application-Specific Integrated Circuit), não admite atualizações ou modificações da estrutura de hardware depois de fabricada.

O FPGA possibilita a substituição de parte de seu hardware para se adaptar a tarefas específicas, apresentando maior potencial em termos de adaptabilidade e desempenho (ROCHA; LOPES; LIMA, 2007). Estas características são ausentes na robótica educacional convencional.

Este estudo propõe a implementação de uma plataforma de hardware baseada em FPGA como alternativa às topologias de kits de robótica comerciais. Apresenta ainda, o desenvolvimento de uma estrutura de hardware para aplicação a uma plataforma de robótica educacional. O

sistema é composto de um núcleo de processador virtual Nios II, módulo de comunicação USB, módulos de controle de motores e módulos de entrada. Adotou-se a técnica de PWM (Pulse Width Modulation) tanto para o controle de motores quanto para leitura de sensores. Os circuitos lógicos foram implementados em um FPGA Cyclone II EP2C35F672 por meio de linguagem VHDL (VHSIC Hardware Description Language), VHSIC (Very High Speed Integrated Circuits). Assim o presente estudo demonstra o desenvolvimento do nível de hardware da plataforma a partir das ferramentas de desenvolvimento combinadas à metodologia.

2 Material e Métodos

Os módulos de hardware são os seguintes: Módulo controlador baseado em instruções, módulos de controle de motores, módulos de sensoriamento e um módulo de comunicação USB. Enfatizando a implementação desses blocos, esta seção apresenta o desenvolvimento conceitual e físico de hardware reconfigurável do kit.

2.1 Aplicação

Este trabalho faz parte do desenvolvimento de um kit de robótica educacional, uma meta física do projeto denominado “Ninho de Pardais”, e será usado como ferramenta de oficinas de trabalho com robótica em escolas públicas em sua região de abrangência. Estas oficinas harmonizam com a primeira ideia

Um Módulo de Controle para um Kit de Robótica Educacional Baseado em Hardware

Reconfigurável

A Module of Control for an Educational Robotic Kit Based on Reconfigurable Hardware

Universidade Tecnológica Federal do Paraná (UTFPR) – Campus Cornélio Procópio, PR, Brasil *E-mail: mvallim@utfpr.edu.br

(2)

do texto: A difusão da tecnologia pela robótica, com intuito direto de despertar o interesse pelos materiais, tecnologias e ideias que o trabalho com robôs pode apresentar.

O projeto Ninho de Pardais é resultado da parceria entre a Universidade Tecnológica Federal do Paraná (UTFPR) campus Cornélio Procópio e a Secretaria Estadual de Educação do Estado do Paraná (SEED-PR), com apoio da Financiadora de Estudos e Projetos (FINEP). É um projeto que envolve o tripé que constitui a base de uma universidade: Pesquisa, ensino e extensão (VALLIM, 2008).

2.2 Estrutura da plataforma de aplicação

O kit em desenvolvimento tem como caráter o suporte a diversos tipos de montagens e modelos de robôs, para viabilizar a incorporação de ideias dos alunos usuários sem comprometer o processo criativo por falta de recursos. Este kit possui três módulos principais: Componentes de software, componentes de hardware e componentes mecânicos.

2.2.1 Componentes de software

Os componentes de software são responsáveis por receber programação do usuário. Para a interface, utiliza-se um software em linguagem de programação Visual Basic orientada a objeto (VB.NET/OO). Com a criação e configuração de blocos lógicos, este software disponibiliza ao usuário funções que o robô pode realizar para executar alguma tarefa. Cada bloco é capaz de gerar um pequeno trecho de código em C, assim, unindo-se sequencialmente estes blocos, tem-se um programa modular e flexível. Depois de finalizada a programação do usuário, o software grava os dados em arquivo com extensão ‘.c’, com dados que são obrigatoriamente compiláveis em linguagem C. Este código em C, já fora do ambiente em Visual Basic, passa a uma etapa de compilação para ser gravado no sistema embarcado no FPGA.

2.2.2 Componentes de hardware

Os componentes de hardware se dividem em um sistema processado e módulos I/O, isto é, um controlador geral comandando módulos de controle de motores (saídas) e leitura de sensores (entradas).

A figura 1 ilustra essa estrutura. O sistema ilustrado na figura é um sistema Nios II, propriedade intelectual da Altera, fabricante do FPGA utilizado. Trata-se de um componente do circuito digital implementado no dispositivo. Contém um processador, memórias, interface de comunicação JTAG e barramentos paralelos, entre outros recursos. Os módulos de entrada e saída são conectados aos barramentos paralelos do sistema Nios II, e por meio de conversão binária/decimal de strings de 7 ou 8 bits realizam o controle de motores e leitura de sensores.

FPGA

Sistema Nios II Processador Nios II Módulo PWM motor Módulo PWM motor Módulo PWM motor PIO_out Módulo PWM motor Módulo PWM motor Módulo PWM motor Módulo PWM sensor Memória de Programa (40 kB) PIO_in

Figura 1: FPGA com o sistema de hardware da plataforma

2.2.3 Componentes mecânicos

Os componentes mecânicos são as partes estruturais do kit, dão forma física aos robôs. Por se tratar de um kit, as estruturas são modulares, de forma a oferecer uma gama de opções de montagem. Compõem esse conjunto barras planas, barras de dois e três planos, conectores, engrenagens, cantoneiras, bases, rodas e eixos.

2.3 Placa de Desenvolvimento DE2

Para o estudo do FPGA, foi adotada a placa DE2, da Altera, uma placa para pesquisa e desenvolvimento de sistemas com FPGA. Para a configuração de hardware do FPGA foi escolhida a linguagem VHDL, que é capaz de descrever circuitos digitais em aspectos estruturais e comportamentais.

A placa DE2 possibilita desde a implementação de pequenos circuitos lógicos até de sistemas multiprocessados. Contém um conjunto de hardware que suporta diversas configurações de projetos fornecidos pela própria Altera, como por exemplo, circuitos lógicos processados com sistema Nios II. Possui cabo de transferência denominado USB-Blaster embutido, que é capaz de, não apenas configurar circuitos digitais no FPGA, mas também de programar sistemas processados, como o sistema Nios II, apresentado a seguir.

2.4 Sistema NIOS II

Durante o desenvolvimento do projeto, surgiu a necessidade de um módulo controlador baseado em instruções. Isso levou o trabalho à incorporação do Nios II, da Altera, que oferece recursos completos para rápidas implementações de sistemas processados, com plataforma de desenvolvimento de aplicativos e recursos de comunicação.

O Nios II é um núcleo de processador RISC de propósito geral, com set de instruções de 32 bits, e é um componente central do sistema Nios II. Um sistema Nios II é estruturado como um microcontrolador, com um processador e seus demais periféricos (ALTERA, 2009). Importantes módulos internos desse componente são os módulos PIO (Parallel

(3)

Input/Output), que neste trabalho viabilizaram a interconexão com os módulos de controle de motores e módulos de sensores.

Sistemas Nios II utilizam o software SOPC Builder (System on a Programmable Chip Builder), que automatiza seus processos de criação, com a alocação automática dos blocos implementados no FPGA.

Aplicativos para o sistema Nios II são gerados pelo ambiente de programação Nios II EDS (Embedded Design Suite), um conjunto de aplicativos voltados para a programação do sistema Nios II em linguagem C e C++. A comunicação de programação ocorre via um cabo de download, que para a DE2 é o USB-Blsater.

3 Resultados 3.1 Sistema NIOS II

O cérebro do robô é o local em que são executadas as instruções determinadas pelo usuário. Neste trabalho, este módulo central é o sistema Nios II, implementado junto a módulos de controle de motores e leitura de sensores. Seu principal objetivo é o gerenciamento lógico das tarefas, além da capacidade de comunicação com seu ambiente de

programação via comunicação USB. O uso do Nios II foi preferencial porque é o processador virtual de mais rica documentação disponível e de mais fácil iniciação para estudo e implementação.

Com o SOPC Builder foi possível construir um sistema Nios II que atendesse as necessidades da estrutura proposta. Listando-se os componentes do Nios II, implementou-se o seguinte:

• 1 processador: CPU Nios II; • 1 memória RAM onchip de 40kB; • 1 módulo JTAG UART;

• 4 módulos PIO de entrada (7 bits); • 3 módulos PIO de saída (8 bits);

• 1 módulo controlador para display LCD 16x2;

O sistema foi implementado em um FPGA Altera Cyclone II EP2C35F672, com soma de 7.982 elementos lógicos, de 33.216 disponíveis. O sistema não utilizou PLL, o clock utilizado foi de 50 MHz. O modelo do Nios II usado foi o Economy (/e core).

A versão final dos componentes desenvolvidos no FPGA é ilustrada pela figura 2. Sob esta mesma topologia, ficam os módulos PWM de entrada e saída, apresentados posteriormente.

PC

Nios II EDS

Compilador USB DriverJTAG /

Programa do usuário arquivo.c USB bus USB Blaster Controlador JTAG FPGA Sistema Nios II Processador Nios II Módulo PWM motor Módulo PWM motor Módulo PWM motor PIO_out Módulo PWM motor Módulo PWM motor Módulo PWM motor Módulo PWM sensor Memória de Programa (40 kB) PIO_in Placa DE2 JTAG UART

Figura 2: Visão geral do sistema implementado A figura 2 mostra também a estrutura de comunicação.

Essa conexão inicia no ambiente de programação Nios II EDS, em que após a geração de um aplicativo, um código de programação compilado é enviado pelo barramento USB. O dispositivo USB-Blaster é conectado à USB e transfere para o FPGA o aplicativo através de adaptação para JTAG. O programa é gravado em uma memória do sistema Nios II, já configurada com o vetor de inicialização.

3.2 Módulos de controle de motores

Os módulos de controle de motores são a interface do processador com os atuadores do sistema do robô. Esta subseção mostra informações sobre o desenvolvimento de módulos de controle em malha aberta com utilização de técnica PWM.

O módulo de controle implementado situa-se entre o Nios II e os pinos de saída do FPGA. Proveniente do Nios II há um barramento PIO de 8 bits. Este barramento fornece parâmetros de velocidade e sentido de rotação de um motor, informados na programação de alto nível realizada pelo usuário. A velocidade é extraída dos 7 bits menos significativos do barramento e o sentido do bit mais significativo.

Cada saída de motor tem dois pinos, um para cada sentido. Em VHDL é montado um processo para monitorar o sentido de rotação do motor, alternando o pino de saída do sinal PWM do motor, determinado por outro processo paralelo.

O processo ocorre com a conversão do parâmetro de velocidade de binário (7 bits) para decimal, em uma variável com range de 0 a 100. O valor decimal é então utilizado como

(4)

parâmetro de duty cicle para um processo modulador PWM O modulador PWM consiste em um processo que controla o nível de um pino do FPGA. O processo inclui um contador cíclico, que sempre que incrementa um valor, compara-o ao valor do duty cicle. Quando o valor do contador é maior que o do duty cicle, o processo deixa o pino em nível zero, caso contrário em nível ‘1’. O resultado é uma forma de onda quadrada com largura da região alta variável.

Por se tratar de um controle de malha aberta, espera-se a observação de curva característica típica de motor de corrente contínua, que, segundo (BRÄUNL, 2006), tem caráter não-linear.

Como referencial de comparação, adotou-se o kit de robótica educacional Lego NXT Mindstorms, que também utiliza técnica PWM, ainda que com um driver de controle dedicado e realimentado. O método implementado em FPGA foi testado em um motor deste mesmo conjunto. O ambiente de programação da Lego oferece um parâmetro para a velocidade do motor com um valor entre 0 e 100, valor este relativo ao duty cicle do driver de controle. De forma equivalente, a plataforma proposta foi implementada também com valor de 0 a 100. Um levantamento gráfico foi realizado medindo-se a velocidade do motor com carga mecânica no eixo em função do duty cicle. Os resultados estão dispostos no gráfico 1.

140,0 120,0 100,0 80,0 60,0 40,0 20,0 0,0 Ve locidade [rpm ] 0 10 20 30 40 50 60 70 80 90 100

Parâmetro duty cicle [%]

Lego NXT (malha fechada) PWM (malha aberta)

Gráfico 1: Comparação do método de controle proposto a um

método comercial

O gráfico revela diferença considerável entre os controles testados. As diferenças são justificadas pelo hardware presente em cada kit. O controlador Lego tem um driver que converte um sinal PWM em um sinal constante, além de conter controle em malha fechada a partir de encoders internos do servomotor. Assim, via um controle dedicado pode-se fazer a linearização da curva, como mostra o gráfico.

O levantamento da curva para o método prospoto utilizou um transistor de potência para acionamento do mesmo motor, sob a mesma tensão nominal, fornecendo ao motor um sinal pulsado, e se verificou a ideia de Bräunl (2006), com um comportamento não linear. O maior problema observado é a ausência de torque de partida. Como não há realimentação, módulo simplesmente regula um nível de tensão média e experimenta o comportamento do motor em uma curva de partida com torque no eixo.

Neste ponto, nota-se grande vantagem de se utilizar um FPGA na implementação do kit. Como a estrutura utiliza lógica recnonfigurável, pode-se desenvolver um módulo de controle em malha fechada, adotando métodos de controle proporcional ou proporcional-integral, dentre outros. A implementação de módulos de controle internos evita a necessidade da utlizaçao de controladores externos, e assim, contribuindo para o objetivo de baixo custo da plataforma.

3.3 Módulos de entrada

Sem sensores, um robô é apenas uma máquina. Robôs precisam de sensores para deduzir o que está acontecendo em seu mundo e ser capaz de reagir a situações de mudança (MARTIN, 1992). A placa de desenvolvimento DE2, utilizada para o estudo, não possui módulos de conversão Analógico/ Digital, e dessa forma se fez necessária a busca por alguma maneira de se interpretar os sinais analógicos provenientes dos sensores. Com a mesma ideia de modulação PWM para o controle de motores, em conversão digital-analógico, utilizaram-se, neste trabalho, entradas com sinais PWM. Tratam-se de módulos de hardware dedicados à determinação e conversão de duty cicle em vetor lógico.

O método mais comum para interpretar um sinal analógico com um FPGA é através do uso de circuitos integrados com conversores AD (ADC). Contudo, o uso de módulos ADC requereria maior uso de pinos, ou, se em conjunto com comunicação serial, um dispêndio maior com componentes. Desta forma, foi abordada a técnica de interpretação de sinal PWM.

A tarefa de conversão teve por objetivo adquirir um sinal analógico e convertê-lo a um formato com valores discretos entre 0 e 100, uma faixa atendida por um conversor AD de 7 bits de resolução. Sob este paradigma, o ambiente de programação pode obter 100 diferentes níveis de um sensor de sinal analógico.

Este modo de leitura faz um cálculo simples da proporção entre as partes baixa e alta de um período completo de sinal PWM, e assim consegue determinar o valor de duty cicle correspondente e convertê-lo a uma string binária, a forma digital correspondente do sinal analógico.

O sistema proposto, de entrada PWM no FPGA, é composto por duas etapas, como ilustra a figura 4. A primeira é a modulação do sinal PWM, e ocorre fora do FPGA através de um circuito eletrônico composto por um gerador de onda triangular e um módulo de comparação de tensão. A segunda etapa é um circuito lógico descrito em HDL e implementado dentro do FPGA.

Na primeira etapa, o sinal PWM é gerado pela comparação de tensão entre uma onda triangular, de freqüência e amplitude constantes, e um nível de tensão variável, advindo de um transdutor qualquer. O sinal PWM é injetado diretamente na entrada do FPGA, no módulo da segunda etapa. Neste módulo é realizado o algoritmo que interpreta a onda PWM.

(5)

Este circuito lógico implementado dentro do FPGA é capaz de ler a onda modulada pela primeira etapa e formar uma variável interna em um vetor binário. A dimensão desse registrador define a precisão do sistema de conversão, que, para a plataforma foi fixado em 7 bits, fornecendo 100 níveis de tensão média. A figura 3 ilustra a integração das duas etapas.

+

-FPGA Sistema Nios II PIO_in 8 bits 1 via Módulo PWM

sensor comparador Sensor_1(nível cc) sinal triangular

Modulador PWM

Figura 3: Visão geral do sistema de leitura do sinal PWM

O fluxograma simplificado da figura 4 ilustra o método de interpretação de uma onda PWM. A resolução configurada é para 100 diferentes níveis de duty cicle. Este é o processo atual adotado na plataforma de robótica. Seu funcionamento é separado em três tarefas básicas: Contagem das regiões alta e baixa de um período, cálculo do duty cicle e conversão desse valor para um vetor binário, para envio por barramento PIO ao sistema Nios II.

Início do período (borda positiva) Incrementa “alto” enquanto a entrada estiver alta Incrementa “baixo” enquanto a entrada estiver baixa Duty Cicle =

(100 x alto) ÷ (alto + baixo)

Converte Duty Cicle decimal para um vetor

binário

Atualiza o barramento PIO de entrada Nios II com o vetor

Figura 4: Fluxograma do processo de leitura de uma entrada

PWM

Apesar de a plataforma necessitar de um range de apenas 100 níveis, com o uso de 8 bits, foram realizados testes para avaliação do desempenho a 10 bits. O método proposto equiparou-se a conversores AD comerciais.

A tabela 1 foi levantada em um ensaio de conversão a 10 bits. A resolução requerida determina quão maior a frequência de leitura de um período deve ser em relação à frequência do sinal PWM lido. Como neste exemplo a 10 bits, devem ser feitas no mínimo 1023 leituras durante um único período do sinal PWM, logo, a frequência de leitura deve ser 1023 vezes maior que a freqüência deste período.

Tabela 1: Resultados de uma entrada PWM com conversão a 10 bits

Duty cicle Variável teórica Variável coletada

0% 0 0 5% 51 51 10% 102 100 15% 153 153 20% 205 204 25% 256 256 30% 307 306 35% 358 355 40% 409 411 45% 460 461 50% 512 512 55% 563 563 60% 614 613 65% 665 666 70% 716 715 75% 767 767 80% 818 817 85% 870 870 90% 921 821 95% 972 972 100% 1023 1023

O teste para obtenção desta tabela foi realizado com um gerador de funções ajustado para formato triangular a 1 kHz, e foi implementado em matriz de contatos em circuito comparador com um amp op. O sinal PWM foi modulado com ajuste mecânico de um potenciômetro, de forma que o duty cicle comparado não correspondeu fielmente ao valor teórico. Contudo, vê-se que os valores dão condições suficientes para se interpretar até 1023 informações do nível de tensão referenciado. Para as aplicações na plataforma de robótica, a precisão é de apenas 100 níveis, logo, pela análise do modelo de 10 bits, julga-se um conversor de 7 bits como suficiente.

Modelos com 7 e 8 bits tiveram testes bem sucedidos. Novamente justificando o uso de lógica reconfigurável, alguns filtros de histerese foram implementados para algumas aplicações específicas, o que não seria possível em dispositivos de hardware fixo.

3.4 Programação do Sistema NIOS II

Os testes individuais para os módulos de sensores e motores em trabalho junto do Nios II foram bem sucedidos. Houve, então, a integração dos módulos simultaneamente. A programação básica do Nios II foi gravada em um arquivo de firmware, com rotinas de acesso ao hardware. Logo, puderam-se testar programas reais de desafios de robótica educacional. O desenvolvimento dessa programação se deu pelo Nios II EDS, especificamente no Nios II 10.1 Software Build Tools for Eclipse.

A ideia de programação modular é a montagem gráfica de um algoritmo com blocos de funções parametrizáveis, como o ilustrado na figura 5. A forma do programa se aproxima de um fluxograma, em que cada bloco representa uma função específica do robô, de modo a não exigir do usuário o conhecimento de lógica de programação.

A figura 5 mostra um bloco atuadores gerado em Visual Basic desenvolvido por alunos do Projeto Ninho de Pardais. Seu funcionamento consiste em inserir os parâmetros informados pelo usuário em um trecho padrão de código em C. Como

(6)

exemplo, a figura mostra a velocidade 30 e sentidos inversos para os motores b e c de um robô, valores que vão para o trecho de código referente ao bloco, como ilustra a figura posterior. Em um robô móvel o efeito dessa parametrização é de giro sobre o próprio eixo, uma manobra comum em robótica.

Atuadores Atuadores Velocidade Sentido Motor_a Motor_b Motor_c Gravar Horário 1 STOP Anti-Horário 30 STOP Horário 30 STOP   

Figura 5: Visão geral do sistema implementado

A figura 6 retrata parte do código gerado por um bloco denominado atuadores, que tem por objeto determinar valores de velocidade e sentido de motores. As funções conseguintes, como IOWR_ALTERA_AVALON_PIO_DATA, são responsáveis por acessar o barramento PIO informado, escrevendo ou lendo algum dado.

motor_b =30; motor_b_s = 1;

motor_c =30;

motor_c_s = 0;

out_b = 128*motor_b_s + (motor_b* (128/100)); IOWR_ALTERA_AVALON_PIO_DATA(PIO_OUT_B_BASE,out_b); out_c = 128*motor_c_s + (motor_c* (128/100)); IOWR_ALTERA_AVALON_PIO_DATA(PIO_OUT_C_BASE,out_c); }

Figura 6: Exemplo de trecho de código em C gerado por um

bloco atuadores

O texto do código em C lista a sequência de funções do sistema, formando então as ações de um robô. Uma vez compilado, o código deve ser escrito em memória para que o processador possa executar as instruções e o robô entre em funcionamento.

Não demonstradas neste artigo por serem longas, as aplicações práticas dos blocos de programação foram postas em campo e obtiveram sucesso. Os blocos de programação foram desenvolvidos em uma plataforma Visual Basic .NET, gerando códigos de programação em C. O software Nios II EDS transferiu os aplicativos ao robô, que rodaram com sucesso. O programação foi implementada tanto em robôs da Lego quanto em um protótipo funcional, e houveram desempenhos semelhantes diante de funções básicas como propulsão, decisão, e sensoriamento de faixas.

4 Discussão

O sistema processado Nios II possui bons materiais de apoio e proporcionou seu desenvolvimento e integração à plataforma em curto espaço de tempo. Porém sua utilização comercial tem custo, o que aumentaria significativamente o valor final do kit de robótica. Então, um caminho decorrente é a busca por processador de código aberto e gratuito, como um núcleo OR1200 OpenRISC. Núcleos de microcontroladores programáveis em lógica reconfigurável já estão sendo estudados, para a posterior substituição do sistema Nios II.

As técnicas de controle de motores devem passar por atualização, com o desenvolvimento de sistemas de controle em malha fechada. Os módulos de sensoriamento desenvolvidos se mostraram boa alternativa ao que se tem em mercado, ao que toca a interpretação de sinais analógicos.

5 Conclusão

Este estudo apresentou a implementação de um módulo de controle aplicado à robótica educacional utilizando um FPGA. O sistema proposto, consistente de um processador e módulos de interface com sensores, motores e com um computador, foi alcançado. Os resultados demonstraram um sistema Nios II capaz de executar um programa de usuário, ler um sensor e controlar motores. Os próximos passos são para o aperfeiçoamento do sistema de controle de motores, à programação de rotinas de usuário mais avançadas, ao estudo de migração de plataforma de processador para hardware livre e à implementação final de um protótipo.

Agradecimentos

A FINEP - Financiadora de Estudos e Projetos (REF 4971/2006); a Fundação de Apoio à Educação, Pesquisa e Desenvolvimento Científico e Tecnológico da Universidade, da Fundação Araucária de Apoio ao Desenvolvimento Científico e Tecnológico do Paraná e ao Conselho Nacional de Desenvolvimento Científico e Tecnológico - CNPq Brasil.

Referências

ALTERA. Nios II processor reference handbook. San Jose: Altera, 2009.

BRÄUNL, T. Embedded robotics. 2.ed. Berlin: Springer, 2006. CHUNG, C.A.; ANNEBERG L. Robotics contests and computer science and engineering education. In: FIE’2003 - ANNUAL FRONTIERS IN EDUCATION. 3., 2003, Westminster.

MARTIN, F. G. Robot builder’s guide. 2.ed. Cambridge: MIT Press, 1992.

MEDEIROS FILHO, D.A.; GONÇALVES, P.C. Robótica educacional de baixo custo: uma realidade para as escolas brasileiras. In: WIE’2008 - WORKSHOP SOBRE INFORMÁTICA NA EDUCAÇÃO, 2008. Belém: UFPA. ERLANDSSON, M.; UNNEBACK, M.;BAXTER J. OR1200 OpenRISC processor. Disponível em: <http://opencores.org/ openrisc,or1200/>. Acesso em: 15 dez. 2010.

ROCHA, L.; LOPES, H.S.; LIMA, C.R.E. Um ambiente para apoio ao aprendizado de automação e controle e sua aplicabilidade no desenvolvimento de competências e habilidades. In: CONGRESSO BRASILEIRO DE EDUCAÇÃO EM ENGENHARIA, 35., 2007, Curitiba: UnicenP, 2007. VALLIM, M.B.R. Projeto Ninho dos Pardais: atraindo estudantes para carreiras na área tecnológica. In: WORKSHOP ROBOCONTROL, 8., 2008. Bauru: UNESP, 2008

Referências

Documentos relacionados

Predicted values were calculated by measuring the joint probability of effects on isopods’ biomass variation found for single exposures to different soil

Dada a maior probabilidade de ocorrência de erros na dispensa com este tipo de receitas, existem pontos que exigem a atenção do farmacêutico, como a especificação clara do utente,

After this matching phase, the displacements field between the two contours is simulated using the dynamic equilibrium equation that bal- ances the internal

Pinturas, depilatórios, unguentos mamilares, colorantes para o cabelo e até pomadas à base de vidro em pó (que, aparentemente, permitiam simular a virgindade) (Braunstein, 1990),

Figura A.164 – Custos de Exploração por metro cúbico de água faturada em função do número médio de trabalhadores para EG de gestão direta por grau de fiabilidade dos dados.

The strict partition problem is relaxed into a bi-objective set covering problem with k-cliques which allows over-covered and uncovered nodes.. The information extracted

No presente estudo, catorze animais (34,15%) apresentavam algum tipo de parentesco procedente de oito diferentes propriedades rurais (26,66%), ora relacionado à vaca, ora ao touro,

A partir da análise das Figuras 5.20, 5.21, 5.22 e 5.23 pode-se afirmar que a variação do início da altura de queda do bloco não alterou os resultados da energia cinética e alturas