software livre para aplicações em robótica

23
Software Livre para Software Livre para aplicações em aplicações em Robótica Robótica Prof. Esp. Alexandre Braga Prof. Esp. Alexandre Braga [email protected] [email protected] Palestra Palestra sobre sobre

Upload: linux-user-goup-alagoas

Post on 19-Jun-2015

11.532 views

Category:

Technology


3 download

DESCRIPTION

Palestra realizada por Alexandre Braga no FLISOL 2010 Maceió.

TRANSCRIPT

Page 1: Software Livre para Aplicações em Robótica

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

Prof. Esp. Alexandre BragaProf. Esp. Alexandre Braga

[email protected]@gmail.com

Palestra sobrePalestra sobre

Page 2: Software Livre para Aplicações em Robótica

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

Page 3: Software Livre para Aplicações em Robótica

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

Page 4: Software Livre para Aplicações em Robótica

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?

Page 5: Software Livre para Aplicações em Robótica

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:

Page 6: Software Livre para Aplicações em Robótica

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:

Page 7: Software Livre para Aplicações em Robótica

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:

Page 8: Software Livre para Aplicações em Robótica

Robótica como HobbyRobótica como Hobby

Diagrama lógico de um microcontrolador

Page 9: Software Livre para Aplicações em Robótica

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.

Page 10: Software Livre para Aplicações em Robótica

Robótica como HobbyRobótica como Hobby

Arduino – plataforma open source

Page 11: Software Livre para Aplicações em Robótica

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

Page 12: Software Livre para Aplicações em Robótica

Robótica como HobbyRobótica como Hobby

Arduino – Exemplo de circuito eletrônico

Page 13: Software Livre para Aplicações em Robótica

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:

Page 14: Software Livre para Aplicações em Robótica

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.

Page 15: Software Livre para Aplicações em Robótica

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(); } }

Page 16: Software Livre para Aplicações em Robótica

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.

Page 17: Software Livre para Aplicações em Robótica

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

Robotics Developer Studio – Exemplos

Page 18: Software Livre para Aplicações em Robótica

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

Page 19: Software Livre para Aplicações em Robótica

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

Robotics Invention System (RIS) – Exemplos

Page 20: Software Livre para Aplicações em Robótica

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.

Page 21: Software Livre para Aplicações em Robótica

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.

Page 22: Software Livre para Aplicações em Robótica

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}

Page 23: Software Livre para Aplicações em Robótica

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

OBRIGADO!!