SOFTWARES PARA CONTROLE DE ROBÔ CÂMERA

Documentos relacionados
Objetivos MICROCONTROLADORES HARDWARE. Aula 03: Periféricos. Prof. Mauricio. MICRO I Prof. Mauricio 1. Arquitetura de um Microcontrolador

AULA 6 - INTRODUÇÃO AO ARDUINO Revisão de Eletrônica Digital e introdução aos Sistemas Computacionais.

KIT DIDÁTICO PIC-2377

ROBÔ PARA INSPEÇÃO DE ÁREAS CLASSIFICADAS E DE DIFÍCIL ACESSO COM TRANSMISSÃO DE IMAGENS SEM FIO

INTRODUÇÃO: MICROCONTROLADORES

Sistemas Embarcados:

Características técnicas Baseado no ATMega da empresa AVR, fabricante de micro-controladores em plena ascensão e concorrente do PIC Pode usar ATMega

Arduino Lab 02 Sensor de luminosidade e display de LCD 16 2

Comunicação USB com o PIC Vitor Amadeu Souza

Circuito Eletrônico. Entendendo o circuito eletrônico na robótica. domingo, 28 de agosto de 11

Suporta os microcontroladores: R. Leonardo da Vinci, Campinas/SP CEP F.: (19) Kit de Desenvolvimento ACEPIC 28

Objetivos MICROCONTROLADORES HARDWARE. Microcontroladores I. Prof. Mauricio. Micro-I Prof. Mauricio 1. Microcontroladores PIC. Requisitos de Hardware

Periféricos do PIC - Comparadores e UART

Introdução à Plataforma ARDUINO

Palavras-chave: Controle de temperatura, microcontrolador, sistema didático

Montagem do Robô. Especificações. domingo, 28 de agosto de 11

DESENVOVIMENTO E CONTROLE DE MANIPULADOR COM PROPÓSITO EDUCACIONAL

Família de Microcontroladores AVR

Arquitetura do Microcontrolador Atmega 328

KIT DIDÁTICO PARA MICROCONTROLADORES ARM7 - FAMÍLIA LPC 214X

Projeto de Sistemas Eletrônicos

Introdução à Eletrónica IV

-Periféricos -Dispositivos de Entrada/Saída - Unidade de medida. Gustavo Catarino da Costa Wilson Coelho Neto Paulo Wesley Fogaça

Notas da Aula 14 - Fundamentos de Sistemas Operacionais

Profª Danielle Casillo

Tutorial Multisim. Página inicial do Multisim

Microcontroladores PIC16 - XM 116 -

CONTROLE DE UM SERVO MOTOR

Parte II Arquitetura. professorferlin.blogspot.com. professorferlin.blogspot.com. Sociedade Paranaense de Ensino e Informática

Tutorial 133 DUO Criação de telas e utilização do teclado

Proposta de uma plataforma de monitoramento e acionamento remoto voltada para sistemas de hardware industriais utilizando LabVIEW

Lista de Exercícios 2

Lista de Exercícios 1

Disciplina : Microcontroladores AVR

Aula 10 Microcontrolador Intel 8051 Parte 1

MICROCOMPUTADORES. Professor Adão de Melo Neto

Linguagens de Domínio Específico

Manual SISTEMA GERENCIADOR DE SENHAS Versão SERVIDOR

Microprocessadores vs Microcontroladores

Período Saulo O. D. Luiz

Aplicações Avançadas de Microprocessadores. Professor: Marco Shawn Meireles Machado

Jadsonlee da Silva Sá

Sistemas Operacionais de Tempo Real - Teclados Matriciais

Scaling Up Inclusion: Robotics, a STEM focused Project. Centro de Formação de Associação de Escolas Paços de Ferreira, Paredes e Penafiel

Tutorial 132 CP DUO Configuração MODBUS Escravo

07/06/2015. Outras características importantes em Microprocessadores/Microcontroladores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

Prof. Adilson Gonzaga

Manual do Visorama. Sergio Estevão and Luiz Velho. Technical Report TR Relatório Técnico. August Agosto

UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE ENGENHARIA ELETRÔNICA DISCIPLINA DE INSTRUMENTAÇÃO ELETRÔNICA

Data Sheet FBEE Kit V05

ARDUÍNO PROCEDIMENTOS BÁSICOS

Cerne Tecnologia e Treinamento

Kit de desenvolvimento ACEPIC PRO V3.0

Programação de Periféricos

CP Introdução à Informática Prof. Msc. Carlos de Salles

MSP430 Lab 01 Instalação do Code Composer Studio e teste da Launchpad

Introdução ao Uso do LCD Inteligente (Versão Preliminar) Por Gilson Yukio Sato. Introdução

Conversor USB/Serial Instalação drive USB controlador CP-WS12/OEM e conversores USB/Serial

Microprocessadores e Microcontroladores. Professor Lucas Araujo do Nascimento

Placa Eletrônica para Robôs Móveis

Application Note FBEE Controle de Placas com entradas Analógicas REV01. 1 Rev01

Cerne Tecnologia e Treinamento

Kit Teclado TS 4x4 v1..0 Manual do usuário

CashDriver Android Instalação

O Sistema de Computação

Bem-vindo ao PhotoMetrix

Manual de operação. Fonte de tensão e corrente digital FTC-111

DS-1100KI Teclado para uso em rede. Especificações técnicas

Cerne Tecnologia e Treinamento

MÓDULO INTELIGENTE COM SOFTWARE SIMPLES E PRATICO PARA PROGRAMAÇÃO

MÓDULO INTELIGENTE COM SOFTWARE SIMPLES E PRÁTICO PARA PROGRAMAÇÃO

Prof. Adilson Gonzaga

PROCEDIMENTO OPERACIONAL PADRÃO Fazendo Escalas e Medidas no Sistema de Captura de Imagens Q Capture Pró

PIBIC/PIBITI/IC Jr Relatório das Atividades de Pesquisa 23ª SEMIC

Mapeamento de memória e conexões do Controlador CP-WSMIO2DI2DO

Microcontroladores PIC18 - XM 118 -

Palestra de Tecnologia. Assunto: Microcontroladores.

Supervisório Remoto aplicado em Dispositivo Móvel na Plataforma NI LabVIEW

MANUAL DO USUÁRIO SISTEMA GERENCIADOR DE SENHAS VERSÃO SERVIDOR

Hardware pode ser definido como sendo um conjunto de equipamentos que integram o computador como placas, drives, monitor, equipamentos periféricos

Tutorial sobre o uso da ferramenta de autoria A Ferramenta de Autoria - Célula

Controlando um Auto Modelo com um Programa Escrito em Java e o Hardware Arduino

Arquitetura e Organização de Computadores. Conjunto de Instruções da Arquitetura CompSim

Usando Display Gráfico com C18 e C30

ET53C - SISTEMAS DIGITAIS

Terminal de Operação Cimrex 90

Memória. Arquitetura de Von Neumann. Universidade do Vale do Rio dos Sinos Laboratório I Prof.ª Vera Alves 1 CPU. Unidade de controle ULA

Kit didático para controle de velocidade e posição de um motor de corrente contínua

Arquitetura de Computadores. Infraestrutura de TI: Hardware

DESENVOLVIMENTO DE INTERFACE GRÁFICA PARA UM SISTEMA DIDÁTICO EM CONTROLE DE PROCESSOS

Cerne. Conhecimento para o Desenvolvimento. Cerne Tecnologia e Treinamento

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

Guia da Placa de desenvolvimento PD Mega16 N1

Cerne Tecnologia e Treinamento (21) (11) MSN: Skipe: cerne-tec

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores

Controle e monitoramento da trajet ória de um Rover via RF(1)

Transcrição:

SOFTWARES PARA CONTROLE DE ROBÔ CÂMERA Phelipe Wesley de Oliveira Carlos André Dias Bezerra LABORATÓRIO DE PROTÓTIPOS EDUCACIONAIS E DE MECATRÔNICA DEMP CT - UFC phelipewesleydeoliveira@gmail.com cadbufc@gmail.com Resumo Este trabalho apresenta a programação de um microcontrolador usado para controlar servomotores através da comunicação serial RS232, bem como a programação de um software em linguagem Java utilizado como interface que recebe a imagem de um robô câmera permitindo fotografar, salvar as imagens e controlar o deslocamento do robô. Palavras Chaves: Robótica, Java, Servomotor, PIC. Abstract: This paper presents programming a microcontroller to control servomotors using RS232 serial communications to receive the commands and programming software in Java that receives the image of a camera robot can shoot and save the images and controls the displacement of the robot. Keywords: Robotics, Java, Servomotor, PIC 1-INTRODUÇÂO A utilização de robôs vem crescendo cada vez mais, seja para aumentar a produtividade ou para explorar locais perigosos para o ser humano. Para o controle desses robôs geralmente é utilizado um sistema computadorizado embarcado que é o responsável pelo processamento dos dados usados pelo robô, porém às vezes é necessário ou desejado um controle externo e um dispositivo de comunicação. Dentre os diversos tipos de robôs destacam-se os robôs de segurança e os de inspeção, que são capazes de navegar em ambientes diversos capturando imagens e enviando-as para uma unidade externa para análise e reconhecimento. O uso de microcontroladores e programação vêm sendo cada vez mais presente na robótica, seja para ser o cérebro do robô ou para permitir a interação com outros sistemas. Os microcontroladores da família PIC, fabricados pela Microchip Technology Incorporated, possuem grande quantidade de recursos, boa capacidade de processamento e preço razoável. Neste trabalho será apresentada a metodologia para o desenvolvimento de um sistema de controle do deslocamento de um robô câmera acionado por dois servomotores, capaz de fotografar e salvar imagens em uma unidade externa. O sistema de controle de deslocamento é composto pelo robô câmera, uma placa de controle para acionamentos dos servomotores utilizando um microcontrolador PIC e um software de controle. A linguagem escolhida para fazer a interface de controle foi Java que apresenta como características ser uma linguagem orientada a objetos e compilação de código fonte para uma máquina virtual, o que permite que o programa funcione em muitas plataformas diferentes. Neste projeto o PIC foi programado em C e usado para gerar a variação da largura dos pulsos PWM (Pulse Width Modulation), necessário para o controle dos servomotores e para permitir a comunicação com o programa de computador. Essas características e o fato de possuir muitas API, que facilitam o trabalho do programador, foram os motivos desta escolha. A figura 1 apresenta o robô que é controlado por esse sistema. Figura 1: robô câmera 2-PLACA DE CONTROLE A placa de controle controla os servomotores responsáveis pelo deslocamento do robô, no caso, dois servomotores Futaba S3003, sendo necessário o uso de um circuito do tipo PWM. O circuito de modulação por largura de pulso gera uma onda com frequência constante e com a largura do pulso variável. Alterando a largura do pulso altera-se o sentido de rotação dos

servomotores. A figura 2 mostra a variação de uma onda quadrada de um circuito PWM. robô possa ser controlado até mesmo por notebooks. Porém mudando a comunicação, o programa da interface de controle teria que ser mudado. Para evitar isso, utilizou um microcontrolador PIC da família 18, pois este possui pinos para comunicação USB, e foi utilizado o protocolo Communications Devices Class (CDC) na programação deste. O protocolo CDC é uma das formas mais simples de fazer a comunicação USB com microcontroladores PIC, ele emula uma porta COM RS- 232 virtual através do canal USB 2.0 full speed. Dessa forma ainda foi possível controlar a placa utilizando a interface que foi criada para se comunicar pela porta serial. A figura 4 ilustra o funcionamento do protocolo CDC. Figura 2: Variação de uma onda quadrada. Para gerar esses pulsos foi criado um circuito eletrônico que possui como componentes básicos: -um cristal de 20 Mhz para gerar a onda de referência para o controle de tempo; -dois capacitores de 22 pf para filtragem; -um botão para reiniciar o programa do caso seja necessário -um resistor de 2k2; -um microcontrolador PIC 16F628a. Um microcontrolador é um sistema computacional no qual estão incluídos internamente uma CPU, memória RAM, FLASH e EEPROM, pinos de I/O além de outros periféricos como osciladores, temporizadores, canais de comunicação, conversores A/D, entre outros, em um mesmo encapsulamento. No microcontrolador PIC escolhido têm-se os pinos especiais que podem ser usados para gerar os pulsos, porém estes são limitados em quantidade. Caso seja de interesse controlar muitos servomotores pode-se optar por gerar o PWM através de software. O programa foi feito de forma a gerar pulsos com a largura variando de acordo com o comando recebido pela porta serial, esses comandos são compostos de dois campos: letra identificando o servomotor (A, B, C etc) e um número de dois algarismos indicando o deslocamento desejado (02, 05, 15, 32 etc). Por exemplo: A05, B22 ou A27. Na figura 3 tem-se o protótipo da placa montado em uma matriz de contatos. Figura 4: ilustração do protocolo CDC 3- A INTERFACE DE CONTROLE EM JAVA O projeto da interface de controle envolveu duas fases, a primeira consistiu na captura da imagem da câmera e a segunda na transmissão de dados pela porta serial. Antes de iniciar a apresentação do programa em si, primeiro serão mostrados os principais componentes usados na interface: Botão de ação: componente para a interação com o usuário. Slider de controle: controle deslizante que permite configurar o valor que será enviado para a placa de controle. Combobox: componente para escolha entre uma de suas opções. Figura 3 protótipo da placa de controle Cada servomotor é conectado à placa controladora através de três fios: dois para alimentação (VCC e TERRA) e um para o controle, este é o que fornece a frequência para o controle do servomotor. Apesar da placa já ser o suficiente para o controle do robô, ela não pode ser usada em notebooks, já que estes não possuem porta serial nem paralela. Então foi desenvolvida outra placa com comunicação USB para assim permitir que o Campo de texto: componente para mostrar ou receber informações. Na construção do programa foram usadas API. Uma API é uma coleção de componentes de softwares que já vêm prontos e o programa só precisa usá-los. No Java a API é uma coleção muito grande de classes com as mais variadas utilidades. O uso

de API economiza o tempo do programador, já que ele não terá que criar tudo do zero. Para a primeira fase do projeto foi utilizada a API JMF (Java Media Framework), ela é totalmente desenvolvida em Java e permite a manipulação de áudio, vídeo e outras mídias. Ao ser iniciado, o programa pede para o usuário escolher a câmera usada. Na figura 5 tem-se a tela para escolha. controla um servomotor diferente. Para evitar que o usuário tenha de ficar usando muito o mouse, foram criados também atalhos, representados por uma tecla do teclado, conforme relação abaixo: Tecla I: inicia a captura de imagem da câmera. Tecla F: fotografa frame em andamento. Tecla C: conecta o programa com a porta selecionada. Tecla D: desconecta o programa da porta selecionada. Tecla das setas: controlam o deslocamento dos servomotores. Como houve o uso de muitas API o programa demora um pouco para carregar, cerca de trinta segundos variando de computador para computador, para evitar que o usuário pensasse que aconteceu algum erro foi criada uma tela de carregamento que pode ser vista na figura 7. Figura 5: tela de escolha. Feito isso aparecerá a interface para o usuário, feita com os recursos da JMF, que possui o botão iniciar para iniciar a captura de imagens através da câmera. Essa imagem será enviada para o computador e no monitor aparecerá a imagem em um componente quadrado (Figura 8). Há também o botão capturar para capturar o frame em andamento e salvá-lo como uma imagem. O formato desta imagem é escolhido através de um combobox, o nome que o arquivo assumirá e o local onde será salvo é visualizado em campos de texto. O usuário poderá escolher o local onde deseja salvar a imagem capturada, bastando clicar no botão... que ativará uma tela de escolha, nesta poderá escolher o destino da imagem. A figura 6 mostra a tela de escolha. Figura 7: tela de carregamento A tela do programa que serve para o controle pode ser vista na figura 8. Figura 6: tela de escolha do local Na segunda parte do programa foi utilizada a API RXTX que é baseada na API Javacomm da própria Sun. A RXTX apresenta a vantagem de ser portável para muitas outras plataformas e usada para a comunicação tanto serial quanto paralela. O programa também possui uma área destinada para configuração da comunicação, nela escolhe-se a porta serial bem como outros atributos necessários através de comboboxs. Feita a configuração do programa, o mesmo estará apto a enviar os comandos, quando se deslocam os componentes Sliders. A tela do programa possui dois destes componentes Sliders, cada um Figura 8: tela do programa em Java. O programa em si foi todo feito baseado em classes, que são os constituintes dos programas em Java. Elas incluem os métodos responsáveis por realizar as tarefas e retornar informações. As classes são responsáveis pela criação da interface gráfica, já foi apresentada acima, e pelo uso dos recursos das API que foram utilizadas. No programa foi utilizada a arquitetura MVC. A arquitetura MVC é usada em programação orientada a objetos e separa o programa em três camadas: modelo, vista e controlador. O modelo contém a lógica da programação em si, a vista é a parte do programa que faz a interface gráfica para o usuário e o controlador é o responsável de comunicar o modelo com a vista, unindo assim a lógica com a interface do usuário. Essa técnica de programação facilita a manutenção do programa e caso seja de interesse fazer modificações na interface gráfica não será necessário escrever novamente todo o código do programa, já que a camada da lógica não é a mesma camada da interface.

Neste trabalho, o modelo controla as classes responsáveis pela comunicação serial e também é responsável pelas funções de acionamento da câmera. Ao ser iniciado, o modelo procura as portas seriais que existem no computador, as transmite para o controlador e este as repassa para a vista, que as mostra para o usuário através de um combobox. Tendo recebido os dados, a vista é ativada e fica esperando o acionamento de eventos pelo usuário ou informações enviadas pelo modelo. A parti daí fica no controle do usuário com qual porta ele quer se comunicar, quando irá ativar a câmera e quanto deslocará os servomotores. As classes usadas e seus respectivos métodos podem ser visto na figura 9, ao final do trabalho. 4- CONCLUSÃO O controle de robôs envolve cada vez mais programação e interfaces gráfica agradáveis e confiáveis. Neste trabalho foi mostrado a utilização bem sucedida das linguagens C e Java na programação para controlar um robô do tipo câmera, uma no sistema embarcado e a outra na interface homem máquina, no computador. Foi mostrado também que mesmo sendo uma linguagem interpretada o Java pode ser usado para criar interfaces gráficas para uso em robótica. O programa usado no microcontrolador da placa controladora foi desenvolvido para controlar os atuadores (dois servomotores) através da variação da largura da onda quadrada (PWM), usando poucos comandos de fácil entendimento para iniciantes em robótica. Esta interface também pode ser usada para controlar e monitorar outras câmeras com dois atuadores. Como melhorias é possível fazer com que o robô possa ser controlado via internet, fazendo com que se possa receber as imagens em qualquer lugar. REFERÊNCIA BIBLIOGRÁFICA DEITEL, H. M.; DEITEL, P. J. Java : como programar, Editora Deitel, 6a. edição, 2005. Sandro jucá, Apostila de microcontroladores Pic e periféricos. George Leite Junior, Framework Java para manipulação de mídias parte 1, 2005. George Leite Junior, Framework Java para manipulação de mídias parte 2, 2005. Fábio Pereira, Microcontroladores PIC Programacao em C, Editora Érica Ltda, 2a. edição, 2003. Alcione, P.O.; Vinícius, V.M.; Java na Prática, 2002. Microchip Technology Incorporated, Data Sheet PIC16F627A/628A/648A, 2004. Microchip Technology Incorporated, Data Sheet PIC18F2455/2550/4455/4550, 2004.

Figura 9: Classes e métodos