Software Livre para Aplicações em Robótica

  • 10,770 views
Uploaded on

Palestra realizada por Alexandre Braga no FLISOL 2010 Maceió.

Palestra realizada por Alexandre Braga no FLISOL 2010 Maceió.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
10,770
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
183
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Software Livre para aplicações em Robótica Prof. Esp. Alexandre Braga [email_address] Palestra sobre
  • 2. Robôs – O que nos vem à mente?
  • 3. 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
  • 4. 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?
  • 5. 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:
  • 6. 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:
  • 7. 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:
  • 8. Robótica como Hobby Diagrama lógico de um microcontrolador
  • 9. 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.
  • 10. Robótica como Hobby Arduino – plataforma open source
  • 11. 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
  • 12. Robótica como Hobby Arduino – Exemplo de circuito eletrônico
  • 13. 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:
  • 14. 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.
  • 15. 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(); } }
  • 16. 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.
  • 17. Software Livre para aplicações em Robótica Robotics Developer Studio – Exemplos
  • 18. 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
  • 19. Software Livre para aplicações em Robótica Robotics Invention System (RIS) – Exemplos
  • 20. 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.
  • 21. 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.
  • 22. 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 }
  • 23. Software Livre para aplicações em Robótica OBRIGADO!!