You are on page 1of 26

Luciano Ramalho luciano@ramalho.

org @ramalhoorg

Arduino: hardware hacking para todos @ramalhoorg

Hardware hacking
Hacking: explorao ativa da tecnologia, motivada
pela curiosidade

Hardware hacking: hacking de equipamentos desmontar o despertador lockpicking reciclar motores de impressoras para fazer uma
mquina de corte CNC!
@ramalhoorg

Famlia Arduino
Pinos genricos: entradas e sadas digitais, analgicas Conexo USB Uma interface universal para computao fsica Uma plataforma para sistemas autnomos: robs, automao residencial, arte interativa... Open Hardware: pode ser copiado livremente
@ramalhoorg

Famlia Arduino
Uno Mega

etc... Lilypad Nano


@ramalhoorg

Clone de Arduino em protoboard

@ramalhoorg

Arduino UNO
Um pequeno
circuito com microcontrolador ATmega328 e circuitos auxiliares

7cm

interface USB regulador de

voltagem 7-12V
@ramalhoorg

ATmega328
clock: 16 MHz SRAM: 2 KB EEPROM: 1 KB Flash: 32 KB bootloader

7cm

Arduino: 0,5 KB

@ramalhoorg

Entradas e sadas no ATmega328


28 pinos 23 pinos multifuncionais

@ramalhoorg

Entradas e sadas simplicadas


14 pinos de entrada
e sada digital

6 pinos de entrada
analgica
@ramalhoorg

6 com PWM

Eco-sistema Arduino
Vrios livros
publicados (no Brasil inclusive) vdeos no YouTube com projetos

Incontveis blogs e Mercado de shields


(placas de expanso)
@ramalhoorg

Arduino na educao
Uma soluo para o dilema da 1 linguagem Linguagem C, num contexto de uso simples
porm estimulante

foco em algoritmos sem a complexidade incidental de I/O via


sistema operacional, strings etc.
@ramalhoorg

Garoa Hacker Clube


Laboratrio comunitrio,
aberto a todos (scios ou no)

Operado e mantido

pelos prprios scios

@ramalhoorg

Garoa Hacker Clube


Misso: facilitar a troca
de conhecimento e experincia entre entusiastas de tecnologia

Inspirado pelos

hackerspaces de Berlin, New York, San Francisco, Praga...


@ramalhoorg

apresenta

CoDIng dOjo coM arduINO

coding dojo
* Treino coletivo de programao * Divertido e eficaz para: * Treinar boas prticas (Ex. TDD) * Aprender novas linguagens ou APIs * Integrar novos membros ao time

o arduino do dojo

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 soluo * Aps 5 minutos, piloto volta para a platia; co-piloto vira piloto; voluntrio da platia o novo co-piloto

tdd = test-driven design


* Escrever testes *antes* de implementar qualquer nova funcionalidade * Enquanto o teste no passa, a platia no pode se manifestar (exceto a pedido dos pilotos) * Quando o teste passa, pessoas da platia podem sugerir o prximo passo

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 prximo passo

babY steps
* Para avanar com segurana e constncia, cada passo deve ser bem simples * Resista tentao de resolver o problema todo de uma vez s, ou partir direto para abstrao e generalizao * No tenha medo de sugerir passos bem pequenos e triviais

exemplO: Primeiro teste


* Piscar o led do pino 13 * Para verificar a conexo USB e funcionamento bsico do Arduino e do circuito sob teste

O probleMa de hoje
* Fazer uma animao simples acendendo e apagando sequencialmente os leds do permetro do display de 7 segmentos, com a velocidade controlada pelo potencimetro

display de 7 segmentos

Arduino

potencimetro

Mo na massA!
* Voluntrios? * Se no houver voluntrios, o RANDORI pode ser terminado prematuramente!

venhaM nos vIsITAR eM So Paulo, todos so bem-vindos!

http://garoa.net.br

You might also like