Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Arduino: hardware hacking para todos

Arduino: hardware hacking para todos

Apresentação rápida sobre Arduino, seguinda de slides do Coding Dojo com Arduino, uma atividade do Garoa Hacker Clube

27c093d0834208f4712faaaec38c2c5c?s=128

Luciano Ramalho

October 22, 2012
Tweet

Transcript

  1. @ramalhoorg Luciano Ramalho luciano@ramalho.org @ramalhoorg Arduino: hardware hacking para todos

  2. @ramalhoorg Hardware hacking • Hacking: exploração ativa da tecnologia, motivada

    pela curiosidade • Hardware hacking: hacking de equipamentos • desmontar o despertador • lockpicking • reciclar motores de impressoras para fazer uma máquina de corte CNC
  3. @ramalhoorg Família Arduino • Pinos genéricos: entradas e saídas digitais,

    analógicas • Conexão USB • Uma interface universal para computação física • Uma plataforma para sistemas autônomos: • robôs, automação residencial, arte interativa... • Open Hardware: pode ser copiado livremente
  4. @ramalhoorg Família Arduino Lilypad Nano Uno Mega etc...

  5. @ramalhoorg Clone de Arduino em protoboard

  6. @ramalhoorg Arduino UNO • Um pequeno circuito com microcontrolador ATmega328

    e circuitos auxiliares • interface USB • regulador de voltagem 7-12V 7cm
  7. @ramalhoorg ATmega328 • clock: 16 MHz • SRAM: 2 KB

    • EEPROM: 1 KB • Flash: 32 KB • bootloader Arduino: 0,5 KB 7cm
  8. @ramalhoorg Entradas e saídas no ATmega328 • 28 pinos •

    23 pinos multi- funcionais
  9. @ramalhoorg Entradas e saídas simplificadas • 14 pinos de entrada

    e saída digital • 6 com PWM • 6 pinos de entrada analógica
  10. @ramalhoorg Eco-sistema Arduino • Vários livros publicados (no Brasil inclusive)

    • Incontáveis blogs e vídeos no YouTube com projetos • Mercado de shields (placas de expansão)
  11. @ramalhoorg Arduino na educação • Uma solução para o dilema

    da 1ª linguagem • Linguagem C, num contexto de uso simples porém estimulante • foco em algoritmos • sem a complexidade incidental de I/O via sistema operacional, strings etc.
  12. @ramalhoorg Garoa Hacker Clube • Laboratório comunitário, aberto a todos

    (sócios ou não) • Operado e mantido pelos próprios sócios
  13. @ramalhoorg Garoa Hacker Clube • Missão: facilitar a troca de

    conhecimento e experiência entre entusiastas de tecnologia • Inspirado pelos hackerspaces de Berlin, New York, San Francisco, Praga...
  14. apresenta

  15. CoDIng dOjo coM arduINO

  16. coding dojo * Treino coletivo de programação * Divertido e

    eficaz para: * Treinar boas práticas (Ex. TDD) * Aprender novas linguagens ou APIs * Integrar novos membros ao time
  17. o arduino do dojo

  18. randorI: treIno lIvRe * Duplas se sucedem resolvendo o problema

    usando TDD e baby steps * Uma dupla: piloto e co-piloto * Piloto opera o teclado * Co-piloto ajuda na solução * Após 5 minutos, piloto volta para a platéia; co-piloto vira piloto; voluntário da platéia é o novo co-piloto
  19. tdd = test-driven design * Escrever testes *antes* de implementar

    qualquer nova funcionalidade * Enquanto o teste não passa, a platéia não pode se manifestar (exceto a pedido dos pilotos) * Quando o teste passa, pessoas da platéia podem sugerir o próximo passo
  20. tdd com hardware? * É complicado automatizar testes com hardware

    * No DOJO COM ARDUINO fazemos testes manuais e observamos os resultados * Mas cada teste tem que ser documentado *antes* de implementar o próximo passo
  21. babY steps * Para avançar com segurança e constância, cada

    passo deve ser bem simples * Resista à tentação de resolver o problema todo de uma vez só, ou partir direto para abstração e generalização * Não tenha medo de sugerir passos bem pequenos e triviais
  22. exemplO: Primeiro teste * Piscar o led do pino 13

    * Para verificar a conexão USB e funcionamento básico do Arduino e do circuito sob teste
  23. O probleMa de hoje * Fazer uma animação simples acendendo

    e apagando sequencialmente os leds do perímetro do display de 7 segmentos, com a velocidade controlada pelo potenciômetro
  24. display de 7 segmentos potenciômetro Arduino

  25. Mão na massA! * Voluntários? * Se não houver voluntários,

    o RANDORI pode ser terminado prematuramente!
  26. venhaM nos vIsITAR eM São Paulo, todos são bem-vindos! http://garoa.net.br