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

Luciano Ramalho

October 22, 2012
Tweet

More Decks by Luciano Ramalho

Other Decks in Technology

Transcript

  1. @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
  2. @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
  3. @ramalhoorg Arduino UNO • Um pequeno circuito com microcontrolador ATmega328

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

    • EEPROM: 1 KB • Flash: 32 KB • bootloader Arduino: 0,5 KB 7cm
  5. @ramalhoorg Entradas e saídas simplificadas • 14 pinos de entrada

    e saída digital • 6 com PWM • 6 pinos de entrada analógica
  6. @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)
  7. @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.
  8. @ramalhoorg Garoa Hacker Clube • Laboratório comunitário, aberto a todos

    (sócios ou não) • Operado e mantido pelos próprios sócios
  9. @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...
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. Mão na massA! * Voluntários? * Se não houver voluntários,

    o RANDORI pode ser terminado prematuramente!