software livre para aplicações em robótica

Post on 19-Jun-2015

11.532 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

Palestra realizada por Alexandre Braga no FLISOL 2010 Maceió.

TRANSCRIPT

Software Livre para Software Livre para aplicações em Robóticaaplicações em Robótica

Prof. Esp. Alexandre BragaProf. Esp. Alexandre Braga

alex.professor@gmail.comalex.professor@gmail.com

Palestra sobrePalestra sobre

Robôs – O que nos vem à Robôs – O que nos vem à mente?mente?

Atualmente como são Atualmente como são usados os robôs?usados os robôs?

• Linhas de montagem• Limpeza de áreas perigosas• Desarme de artefatos explosivos• Missões de busca e resgate• Manipulação de objetos sob a água ou no espaço• Mineração profunda• Plataformas de petróleo e gás• Exploração espacial• Bichos de estimação• Veículos automáticos• Competições• Kits educativos• Personagens animatrônicos no cinema e na TV

Robótica como HobbyRobótica como Hobby

• Posso criar robôs sofisticados em casa?• Que materiais usar?• Como começar?• E a “inteligência” do robô?• Vou gastar toda a minha mesada, meu salário, minha aposentadoria?

Robótica como HobbyRobótica como Hobby

ContextualizarContextualizar ConstruirConstruir AnalisarAnalisar AbstrairAbstrair

Utilizando os componentes físicos e as ferramentas de programação temos condições de criar projetos seguindo a metodologia:

Robótica como HobbyRobótica como Hobby

Sua estrutura física (hardware)Sua estrutura física (hardware)

Sua inteligência comportamental Sua inteligência comportamental (software)(software)

Porém, para funcionar corretamente um robô precisa de duas coisas básicas:

Robótica como HobbyRobótica como Hobby

Placas de controle open sourcePlacas de controle open sourceArduino, Super Hobby, circuitos PWM, etc.Arduino, Super Hobby, circuitos PWM, etc.

Microcontroladores embarcadosMicrocontroladores embarcadosKits educacionais Lego, Modelix, VEX, etc.Kits educacionais Lego, Modelix, VEX, etc.

Hardware “enxuto” e limitado:

Robótica como HobbyRobótica como Hobby

Diagrama lógico de um microcontrolador

Robótica como HobbyRobótica como Hobby

Diagrama lógico de um microcontroladorO processador do Arduino é um AT mega 8 com clock de 16MHz. A velocidade parece baixa quando comparada ao computador, pois hoje um computador de médio desempenho possui um clock de 3GHz. Isto significa que o computador trabalha em uma freqüência aproximadamente 200 vezes superior ao controlador.

Esta diferença se deve às características do controlador e do computador. O computador precisa trabalhar em uma freqüência muito elevada para processar informações e realizar cálculos repetitivos em uma velocidade altíssima. O microcontrolador não necessita um processamento tão elevado, pois as tomadas de decisão dele são muito inferiores.

Robótica como HobbyRobótica como Hobby

Arduino – plataforma open source

Robótica como HobbyRobótica como Hobby

8Kb de memória Flash.8Kb de memória Flash. 1Kb de memória RAM.1Kb de memória RAM. Processador AT 16MhzProcessador AT 16Mhz 13 pinos entrada/saída digital13 pinos entrada/saída digital 5 pinos entrada/saída analógica5 pinos entrada/saída analógica

Arduino – Características

Robótica como HobbyRobótica como Hobby

Arduino – Exemplo de circuito eletrônico

Software Livre para Software Livre para aplicações em Robóticaaplicações em Robótica

JavaJava Robotics Studio (não tão livre assim!)Robotics Studio (não tão livre assim!) RIS (Robotics Invention System)RIS (Robotics Invention System) RobotC (Não é livre $$)RobotC (Não é livre $$) LuaLua Arduino (linguagem C)Arduino (linguagem C)

Existem várias ferramentas que podem ser usadas para programar robôs:

Software Livre para Software Livre para aplicações em Robóticaaplicações em Robótica

Java – Lejos é uma JVM simplificada que foi portada para trabalhar com tijolos programáveis da Lego (RCX e NXT).

• Orientada a objetos• Utiliza arrays para múltiplas funções• Recursiva• Faz uso de vários recursos das classes java.lang, java.util e java.io• Lida com exceções e com vários tipos de dados.

Software Livre para Software Livre para aplicações em Robóticaaplicações em Robótica

Lejos – Exemplo de comando usado para mover motores.

import lejos.nxt.*; // biblioteca compatível com NXTpublic class TestaMotor { public static void main(String[] args) { Motor.A.forward(); LCD.drawString(“PARA FRENTE", 0, 0); Button.waitForPress(); Motor.A.backward(); LCD.drawString(“PARA TRAS", 0, 1); Button.waitForPress(); Motor.A.reverseDirection(); LCD.drawString(“PARA FRENTE", 0, 2); Button.waitForPress(); Motor.A.stop(); } }

Software Livre para Software Livre para aplicações em Robóticaaplicações em Robótica

Robotics Developer Studio – Ferramenta desenvolvida pela Microsoft para simulação de robôs em ambiente 3D ou para controle de robôs reais.

Software Livre para Software Livre para aplicações em Robóticaaplicações em Robótica

Robotics Developer Studio – Exemplos

Software Livre para Software Livre para aplicações em Robóticaaplicações em Robótica

Robotics Invention System (RIS) – Ferramenta para programação de robôs da linha Lego Mindstorms.

• API gráfica• Uso de blocos para criar o comportamento do robô• Simplicidade de uso para crianças e adolescentes• Limitado aos kit de robótica da Lego

Software Livre para Software Livre para aplicações em Robóticaaplicações em Robótica

Robotics Invention System (RIS) – Exemplos

Software Livre para Software Livre para aplicações em Robóticaaplicações em Robótica

Linguagem LUA – Criada na PUC do Rio de Janeiro em 1993, também está sendo usada atualmente para controlar robôs devido a sua simplicidade de uso e poucos requisitos de memória.

Software Livre para Software Livre para aplicações em Robóticaaplicações em Robótica

Arduino – Todo um conjunto open source de hardware + software. Ambiente de desenvolvimento é uma API feita em Java, mas que permite total modificação ou customização para uso de várias maneiras diferentes.

Software Livre para Software Livre para aplicações em Robóticaaplicações em Robótica

Arduino – Exemplo de programa.

int ledPin = 13; // LED conectado a porta digital 13int intPin = 12; // Interruptor conectado a porta digital 12bool intEstado = LOW; // Variável que guarda o ESTADO do interruptorvoid setup() { // executa uma vez, ao energizar pinMode(ledPin, OUTPUT); // configura ledPin como porta saída pinMode(intPin, INPUT); // configura intPin como porta entrada}void loop() { // roda repetidamente e infinitamente intEstado = digitalRead (intPin); //lê a porta do interruptor if ( intEstado == HIGH ) digitalWrite(ledPin, HIGH); //Liga o LED else digitalWrite(ledPin, LOW); //Desliga o LED}

Software Livre para Software Livre para aplicações em Robóticaaplicações em Robótica

OBRIGADO!!

top related