SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Luciano Ramalho
                           luciano@ramalho.org
                                   @ramalhoorg




Arduino: hardware hacking para todos
                               @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	


                                             @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
                                                @ramalhoorg
Família Arduino
     Uno              Mega




                               etc...
                     Nano
           Lilypad
                             @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               7cm
• Flash: 32 KB
 • bootloader
    Arduino: 0,5 KB


                      @ramalhoorg
Entradas e saídas
no ATmega328
• 28 pinos
• 23 pinos multi-
  funcionais




                    @ramalhoorg
Entradas e saídas
simplificadas
• 14 pinos de entrada
  e saída digital
 • 6 com PWM
• 6 pinos de entrada
  analógica



                        @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)

                         @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.

                                       @ramalhoorg
Garoa Hacker Clube
• Laboratório comunitário,
  aberto a todos
  (sócios ou não)
• Operado e mantido
  pelos próprios sócios




                             @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...
                              @ramalhoorg
apresenta
CoDIng dOjo
coM arduINO
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
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 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
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
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
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
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
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
display de 7 segmentos




 Arduino          potenciômetro
Mão na massA!

* Voluntários?
 * Se não houver voluntários,
 o RANDORI pode ser terminado
 prematuramente!
venhaM nos vIsITAR eM São Paulo,
     todos são bem-vindos!




     http://garoa.net.br

Mais conteúdo relacionado

Mais procurados

Conhencendo Python e por que ela importa?
Conhencendo Python e por que ela importa?Conhencendo Python e por que ela importa?
Conhencendo Python e por que ela importa?Marcel Caraciolo
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonFlávio Ribeiro
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e TkCarlos Campani
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantesrichardsonlima
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + PythonMateus Padua
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em PythonRodrigo Hübner
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolsoJean Lopes
 
Apresentação python fábio jr alves
Apresentação python   fábio jr alvesApresentação python   fábio jr alves
Apresentação python fábio jr alvesGrupython Ufla
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e djangoIgor Sobreira
 
Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonFlávio Ribeiro
 
Apresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonApresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonPriscila Mayumi
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonOsvaldo Santana Neto
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonAlvaro Oliveira
 
Python Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem PythonPython Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem Pythonantonio sérgio nogueira
 
Postgresql + Python = Power!
Postgresql + Python = Power!Postgresql + Python = Power!
Postgresql + Python = Power!Juliano Atanazio
 
De Zero à Web com Python e Django
De Zero à Web com Python e DjangoDe Zero à Web com Python e Django
De Zero à Web com Python e DjangoOsvaldo Santana Neto
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.comricobl
 

Mais procurados (20)

Conhencendo Python e por que ela importa?
Conhencendo Python e por que ela importa?Conhencendo Python e por que ela importa?
Conhencendo Python e por que ela importa?
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando Python
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e Tk
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantes
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em Python
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
 
Apresentação python fábio jr alves
Apresentação python   fábio jr alvesApresentação python   fábio jr alves
Apresentação python fábio jr alves
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
 
Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação Python
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Apresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonApresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação Python
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o Python
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
 
Python Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem PythonPython Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem Python
 
Postgresql + Python = Power!
Postgresql + Python = Power!Postgresql + Python = Power!
Postgresql + Python = Power!
 
De Zero à Web com Python e Django
De Zero à Web com Python e DjangoDe Zero à Web com Python e Django
De Zero à Web com Python e Django
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.com
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 
Python
PythonPython
Python
 

Semelhante a Arduino: hardware hacking & coding dojo

Arduino no Dia-Debian/RJ 2011
Arduino no Dia-Debian/RJ 2011Arduino no Dia-Debian/RJ 2011
Arduino no Dia-Debian/RJ 2011Álvaro Justen
 
Arduino - Desenvolvendo com hardware livre
Arduino - Desenvolvendo com hardware livreArduino - Desenvolvendo com hardware livre
Arduino - Desenvolvendo com hardware livreMarcelo Laranjeira Melo
 
Introdução-à-Programação-Embarcada-com-Arduino.pdf
Introdução-à-Programação-Embarcada-com-Arduino.pdfIntrodução-à-Programação-Embarcada-com-Arduino.pdf
Introdução-à-Programação-Embarcada-com-Arduino.pdfCliverRaimundo2
 
TDC2014 - Internet das Coisas - Arduino & OpenDevice
TDC2014 - Internet das Coisas - Arduino & OpenDeviceTDC2014 - Internet das Coisas - Arduino & OpenDevice
TDC2014 - Internet das Coisas - Arduino & OpenDeviceRicardo Rufino
 
A evolução do Arduino: dos 8 aos 32-bits
A evolução do Arduino: dos 8 aos 32-bitsA evolução do Arduino: dos 8 aos 32-bits
A evolução do Arduino: dos 8 aos 32-bitsEronides Neto
 
Arduino: Soluções para o mundo moderno
Arduino: Soluções para o mundo modernoArduino: Soluções para o mundo moderno
Arduino: Soluções para o mundo modernoMarcelo Laranjeira Melo
 
Introdução a Sistemas Embarcados com Arduino - mini-curso
Introdução a Sistemas Embarcados com Arduino - mini-cursoIntrodução a Sistemas Embarcados com Arduino - mini-curso
Introdução a Sistemas Embarcados com Arduino - mini-cursoFelipe Martins
 
Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoÁlvaro Justen
 
Minicurso arduino eeep aurora
Minicurso arduino eeep auroraMinicurso arduino eeep aurora
Minicurso arduino eeep auroraJuliete Souza
 
Workshop Arduino SETi 2014
Workshop Arduino SETi 2014Workshop Arduino SETi 2014
Workshop Arduino SETi 2014Lucas Cabral
 
Fast track - Curso de Arduíno - Aldeia Coworking
Fast track - Curso de Arduíno - Aldeia CoworkingFast track - Curso de Arduíno - Aldeia Coworking
Fast track - Curso de Arduíno - Aldeia CoworkingAldeia Coworking
 
Arduino- Conceitos e Aplicações
Arduino- Conceitos e AplicaçõesArduino- Conceitos e Aplicações
Arduino- Conceitos e AplicaçõesCarlos Delfino
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaÁlvaro Justen
 
Workshop Franzininho: um Arduino para todos
Workshop Franzininho: um Arduino para todosWorkshop Franzininho: um Arduino para todos
Workshop Franzininho: um Arduino para todosEronides Da Silva Neto
 
Micropython - Python para microcontroladores
Micropython - Python para microcontroladoresMicropython - Python para microcontroladores
Micropython - Python para microcontroladoresFabio Souza
 

Semelhante a Arduino: hardware hacking & coding dojo (20)

Arduino no Dia-Debian/RJ 2011
Arduino no Dia-Debian/RJ 2011Arduino no Dia-Debian/RJ 2011
Arduino no Dia-Debian/RJ 2011
 
Arduino - Desenvolvendo com hardware livre
Arduino - Desenvolvendo com hardware livreArduino - Desenvolvendo com hardware livre
Arduino - Desenvolvendo com hardware livre
 
Introdução-à-Programação-Embarcada-com-Arduino.pdf
Introdução-à-Programação-Embarcada-com-Arduino.pdfIntrodução-à-Programação-Embarcada-com-Arduino.pdf
Introdução-à-Programação-Embarcada-com-Arduino.pdf
 
TDC2014 - Internet das Coisas - Arduino & OpenDevice
TDC2014 - Internet das Coisas - Arduino & OpenDeviceTDC2014 - Internet das Coisas - Arduino & OpenDevice
TDC2014 - Internet das Coisas - Arduino & OpenDevice
 
Introdução - Arduino - Renan Martins
Introdução - Arduino - Renan MartinsIntrodução - Arduino - Renan Martins
Introdução - Arduino - Renan Martins
 
A evolução do Arduino: dos 8 aos 32-bits
A evolução do Arduino: dos 8 aos 32-bitsA evolução do Arduino: dos 8 aos 32-bits
A evolução do Arduino: dos 8 aos 32-bits
 
Arduino: Soluções para o mundo moderno
Arduino: Soluções para o mundo modernoArduino: Soluções para o mundo moderno
Arduino: Soluções para o mundo moderno
 
Introdução a Sistemas Embarcados com Arduino - mini-curso
Introdução a Sistemas Embarcados com Arduino - mini-cursoIntrodução a Sistemas Embarcados com Arduino - mini-curso
Introdução a Sistemas Embarcados com Arduino - mini-curso
 
CURSO_ARDUÍNO.pptx
CURSO_ARDUÍNO.pptxCURSO_ARDUÍNO.pptx
CURSO_ARDUÍNO.pptx
 
Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremo
 
Minicurso arduino eeep aurora
Minicurso arduino eeep auroraMinicurso arduino eeep aurora
Minicurso arduino eeep aurora
 
Workshop Arduino SETi 2014
Workshop Arduino SETi 2014Workshop Arduino SETi 2014
Workshop Arduino SETi 2014
 
CPBR7 - Existe vida depois do Arduino?
CPBR7 - Existe vida depois do Arduino?CPBR7 - Existe vida depois do Arduino?
CPBR7 - Existe vida depois do Arduino?
 
TDC2014 - Arduino Legacy
TDC2014 - Arduino LegacyTDC2014 - Arduino Legacy
TDC2014 - Arduino Legacy
 
Minicurso de Arduino Básico
Minicurso de Arduino BásicoMinicurso de Arduino Básico
Minicurso de Arduino Básico
 
Fast track - Curso de Arduíno - Aldeia Coworking
Fast track - Curso de Arduíno - Aldeia CoworkingFast track - Curso de Arduíno - Aldeia Coworking
Fast track - Curso de Arduíno - Aldeia Coworking
 
Arduino- Conceitos e Aplicações
Arduino- Conceitos e AplicaçõesArduino- Conceitos e Aplicações
Arduino- Conceitos e Aplicações
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtiva
 
Workshop Franzininho: um Arduino para todos
Workshop Franzininho: um Arduino para todosWorkshop Franzininho: um Arduino para todos
Workshop Franzininho: um Arduino para todos
 
Micropython - Python para microcontroladores
Micropython - Python para microcontroladoresMicropython - Python para microcontroladores
Micropython - Python para microcontroladores
 

Mais de Luciano Ramalho

Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Luciano Ramalho
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Luciano Ramalho
 
Encapsulamento com descritores
Encapsulamento com descritoresEncapsulamento com descritores
Encapsulamento com descritoresLuciano Ramalho
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compactoLuciano Ramalho
 
Iteraveis e geradores em Python
Iteraveis e geradores em PythonIteraveis e geradores em Python
Iteraveis e geradores em PythonLuciano Ramalho
 
Encapsulamento com Descritores em Python
Encapsulamento com Descritores em PythonEncapsulamento com Descritores em Python
Encapsulamento com Descritores em PythonLuciano Ramalho
 
Python: Iteraveis, geradores etc
Python: Iteraveis, geradores etcPython: Iteraveis, geradores etc
Python: Iteraveis, geradores etcLuciano Ramalho
 
Jython no JavaOne Latin America 2011
Jython no JavaOne Latin America 2011Jython no JavaOne Latin America 2011
Jython no JavaOne Latin America 2011Luciano Ramalho
 
Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Luciano Ramalho
 
OO em Python sem sotaque
OO em Python sem sotaqueOO em Python sem sotaque
OO em Python sem sotaqueLuciano Ramalho
 
Alex Martelli's Python Design Patterns
Alex Martelli's Python Design PatternsAlex Martelli's Python Design Patterns
Alex Martelli's Python Design PatternsLuciano Ramalho
 
JavaScript agora é sério (TDC 2011)
JavaScript agora é sério (TDC 2011)JavaScript agora é sério (TDC 2011)
JavaScript agora é sério (TDC 2011)Luciano Ramalho
 

Mais de Luciano Ramalho (20)

Wiki-wiki S/A
Wiki-wiki S/AWiki-wiki S/A
Wiki-wiki S/A
 
Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)
 
Encapsulamento com descritores
Encapsulamento com descritoresEncapsulamento com descritores
Encapsulamento com descritores
 
Iteraveis e geradores
Iteraveis e geradoresIteraveis e geradores
Iteraveis e geradores
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compacto
 
Iteraveis e geradores em Python
Iteraveis e geradores em PythonIteraveis e geradores em Python
Iteraveis e geradores em Python
 
Encapsulamento com Descritores em Python
Encapsulamento com Descritores em PythonEncapsulamento com Descritores em Python
Encapsulamento com Descritores em Python
 
Dojo com Processing
Dojo com ProcessingDojo com Processing
Dojo com Processing
 
Dojo com Arduino
Dojo com ArduinoDojo com Arduino
Dojo com Arduino
 
Python: Iteraveis, geradores etc
Python: Iteraveis, geradores etcPython: Iteraveis, geradores etc
Python: Iteraveis, geradores etc
 
Open Library no Mongodb
Open Library no MongodbOpen Library no Mongodb
Open Library no Mongodb
 
Jython no JavaOne Latin America 2011
Jython no JavaOne Latin America 2011Jython no JavaOne Latin America 2011
Jython no JavaOne Latin America 2011
 
Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)
 
OO em Python sem sotaque
OO em Python sem sotaqueOO em Python sem sotaque
OO em Python sem sotaque
 
Modelos ricos
Modelos ricosModelos ricos
Modelos ricos
 
Ensinando OO com Python
Ensinando OO com PythonEnsinando OO com Python
Ensinando OO com Python
 
Alex Martelli's Python Design Patterns
Alex Martelli's Python Design PatternsAlex Martelli's Python Design Patterns
Alex Martelli's Python Design Patterns
 
Dspace em 5 minutos
Dspace em 5 minutosDspace em 5 minutos
Dspace em 5 minutos
 
JavaScript agora é sério (TDC 2011)
JavaScript agora é sério (TDC 2011)JavaScript agora é sério (TDC 2011)
JavaScript agora é sério (TDC 2011)
 

Último

ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docxATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx2m Assessoria
 
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASCOI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASMarcio Venturelli
 
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPalestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPaulo Pagliusi, PhD, CISM
 
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIAEAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIAMarcio Venturelli
 
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)Alessandro Almeida
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Entrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiEntrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiPaulo Pagliusi, PhD, CISM
 
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docxATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx2m Assessoria
 

Último (8)

ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docxATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
 
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASCOI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
 
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPalestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
 
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIAEAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
 
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Entrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiEntrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo Pagliusi
 
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docxATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
 

Arduino: hardware hacking & coding dojo

  • 1. Luciano Ramalho luciano@ramalho.org @ramalhoorg Arduino: hardware hacking para todos @ramalhoorg
  • 2. 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 @ramalhoorg
  • 3. 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 @ramalhoorg
  • 4. Família Arduino Uno Mega etc... Nano Lilypad @ramalhoorg
  • 5. Clone de Arduino em protoboard @ramalhoorg
  • 6. Arduino UNO • Um pequeno circuito com microcontrolador ATmega328 e circuitos auxiliares 7cm • interface USB • regulador de voltagem 7-12V @ramalhoorg
  • 7. ATmega328 • clock: 16 MHz • SRAM: 2 KB • EEPROM: 1 KB 7cm • Flash: 32 KB • bootloader Arduino: 0,5 KB @ramalhoorg
  • 8. Entradas e saídas no ATmega328 • 28 pinos • 23 pinos multi- funcionais @ramalhoorg
  • 9. Entradas e saídas simplificadas • 14 pinos de entrada e saída digital • 6 com PWM • 6 pinos de entrada analógica @ramalhoorg
  • 10. 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) @ramalhoorg
  • 11. 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. @ramalhoorg
  • 12. Garoa Hacker Clube • Laboratório comunitário, aberto a todos (sócios ou não) • Operado e mantido pelos próprios sócios @ramalhoorg
  • 13. 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... @ramalhoorg
  • 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 Arduino potenciômetro
  • 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

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n