• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Software Livre para Aplicações em Robótica
 

Software Livre para Aplicações em Robótica

on

  • 11,835 views

Palestra realizada por Alexandre Braga no FLISOL 2010 Maceió.

Palestra realizada por Alexandre Braga no FLISOL 2010 Maceió.

Statistics

Views

Total Views
11,835
Views on SlideShare
11,810
Embed Views
25

Actions

Likes
1
Downloads
168
Comments
0

1 Embed 25

http://www.slideshare.net 25

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Software Livre para Aplicações em Robótica Software Livre para Aplicações em Robótica Presentation Transcript

    • Software Livre para aplicações em Robótica Prof. Esp. Alexandre Braga [email_address] Palestra sobre
    • Robôs – O que nos vem à mente?
    • Atualmente como são 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 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 Hobby
      • Contextualizar
      • Construir
      • Analisar
      • Abstrair
      Utilizando os componentes físicos e as ferramentas de programação temos condições de criar projetos seguindo a metodologia:
    • Robótica como Hobby
      • Sua estrutura física (hardware)
      • Sua inteligência comportamental (software)
      Porém, para funcionar corretamente um robô precisa de duas coisas básicas:
    • Robótica como Hobby
      • Placas de controle open source
      • Arduino, Super Hobby, circuitos PWM, etc.
      • Microcontroladores embarcados
      • Kits educacionais Lego, Modelix, VEX, etc.
      Hardware “enxuto” e limitado:
    • Robótica como Hobby Diagrama lógico de um microcontrolador
    • Robótica como Hobby Diagrama lógico de um microcontrolador O 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 Hobby Arduino – plataforma open source
    • Robótica como Hobby
      • 8Kb de memória Flash.
      • 1Kb de memória RAM.
      • Processador AT 16Mhz
      • 13 pinos entrada/saída digital
      • 5 pinos entrada/saída analógica
      Arduino – Características
    • Robótica como Hobby Arduino – Exemplo de circuito eletrônico
    • Software Livre para aplicações em Robótica
      • Java
      • Robotics Studio (não tão livre assim!)
      • RIS (Robotics Invention System)
      • RobotC (Não é livre $$)
      • Lua
      • Arduino (linguagem C)
      Existem várias ferramentas que podem ser usadas para programar robôs:
    • Software Livre para aplicaçõ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 aplicações em Robótica Lejos – Exemplo de comando usado para mover motores. import lejos.nxt.*; // biblioteca compatível com NXT public 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 aplicaçõ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 aplicações em Robótica Robotics Developer Studio – Exemplos
    • Software Livre para aplicaçõ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 aplicações em Robótica Robotics Invention System (RIS) – Exemplos
    • Software Livre para aplicaçõ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 aplicaçõ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 aplicações em Robótica Arduino – Exemplo de programa. int ledPin = 13; // LED conectado a porta digital 13 int intPin = 12; // Interruptor conectado a porta digital 12 bool intEstado = LOW; // Variável que guarda o ESTADO do interruptor void 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 aplicações em Robótica OBRIGADO!!