Your SlideShare is downloading. ×
Software Livre para Aplicações em Robótica
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Software Livre para Aplicações em Robótica

10,965
views

Published on

Palestra realizada por Alexandre Braga no FLISOL 2010 Maceió.

Palestra realizada por Alexandre Braga no FLISOL 2010 Maceió.

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
10,965
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
188
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!!