SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
1TM 1
Programação C para
Arduino
INSTITUTO FEDERAL DE SANTA CATARINA
DEPARTAMENTO DE ELETRÔNICA
Prof. Charles Borges de Lima.
Maio/2013
2TM 2
SUMÁRIO
Introdução
O Arduino Uno
- O ATmega328
Programação
- Assembly
- Linguagem C
- IDE do Arduino
Registradores do
ATmega328
Trabalho com Bits
Produzindo um Código
Eficiente
Gravação do Firmware
Conclusões
Referências
Bibliográficas
3TM 3
INTRODUÇÃO
A IDE do Arduino não é destinada ao desenvolvimento profissional.
Arduino é uma plataforma eletrônica de
prototipagem baseada em hardware livre e
software, fáceis de usar e flexíveis.
Possui um IDE que permite a programação de
forma fácil de um microcontrolador AVR. Todavia,
não é eficiente e não permite o desenvolvimento
profissional de projetos.
Para um projeto profissional é necessário o uso
de ferramentas adequadas de programação e do
conhecimento técnico do microcontrolador
empregado.
4TM 4
O ARDUINO UNO
Como é estruturado o Hardware:
0-5 (azul) - pinos de entradas analógicas.
Entradas para o ADC, podem ser usados como I/O
digital.
0-13 (verde) - pinos de I/O digitais . Pinos 0 e 1
também são utilizados para a comunicação serial.
AREF(laranja) - referência analógica do ADC.
S1 (azul) - botão de inicialização.
ICSP (ciano) - conector de gravação In-Circuit.
USB (amarelo) - usado para gravar o Arduino ou
energizá-lo.
X1 (rosa) - fonte de alimentação externa
(9-12VDC, após diodo estará também em Vin).
Existem variações no layout da placa conforme o modelo.
20 Pinos de I/O
5TM 5
O ATmega328
O microcontrolador do Arduino Uno é o ATmega328 (AVR).
6TM 6
PINOS DO ATmega328 NO ARDUINO
Informações fundamentais para a programação.
7TM 7
PROGRAMAÇÃO ASSEMBLY
Assembly é a linguagem da CPU do microcontrolador.
Todo microcontrolador possui um conjunto próprio de instruções
representadas por mnemônicos (assembly) que após o
desenvolvimento do programa são convertidos nos zeros e uns
lógicos interpretáveis pelo microprocessador.
O assembly é uma linguagem de baixo nível e permite obter o
máximo desempenho de um microcontrolador, gerando o menor
número de bytes de programa combinados a uma maior velocidade
de processamento.
Todavia, o assembly só será eficiente se o programa estiver bem
estruturado e empregar algoritmos adequados.
Programar em assembly exige muito esforço de programação.
Assembly
8TM 8
EXEMPLO
9TM 9
EXEMPLO
Piscando um LED ligado ao pino PB5 (pino 13 no Arduino).
30 Bytes
15 instruções
10TM 10
PROGRAMAÇÃO C
Os compiladores convertem o C para o Assembly antes da geração do código de máquina.
Com a evolução tecnológica (compiladores), o
assembly foi quase que totalmente substituído pela
linguagem C.
As vantagens do uso do C são numerosas:
Redução do tempo de desenvolvimento.
O reuso do código é facilitado.
Facilidade de manutenção.
Portabilidade.
Linguagem C
11TM 11
O problema de desenvolver o código em C é que o
mesmo pode consumir muita memória e reduzir a
velocidade de processamento. Os compiladores tentam
traduzir da melhor forma o código para o assembly
(antes de se tornarem código de máquina), mas esse
processo não consegue o mesmo desempenho de um
código escrito exclusivamente em assembly.
Como os compiladores C são eficientes para a
arquitetura do AVR, a programação dos
microcontroladores ATmega é feita em C. Só existe a
necessidade de se programar puramente em assembly
em casos críticos.
PROGRAMAÇÃO C
12TM 12
EXEMPLO
216 Bytes
Otimização -Os
Usando cpl_bit(PORTB,LED) resultam 202 bytes.
13TM 13
IDE DO ARDUINO (Wiring)
Linguagem própria baseada em C e C++.
30 bytes Assembly
216 bytes C
1084 bytes IDE Arduino
14TM 14
REGISTRADORES DO ATmega328
Os registradores de I/O são o painel de controle do
microcontrolador, pois todas as configurações de trabalho,
incluindo acesso às entradas e saídas, se encontram
nessa parte da memória.
Total de 87 Registradores
Painel de Controle.
15TM 15
REGISTRADORES DOS PORTs
16TM 16
Exemplo
DDRD = 0b00000100;
DDRD | = 1<< PC2;
PORTD = 0b11111011;
set_bit(PORTD, 2);
clr_bit(PORTD, 2);
tst_bit(PIND, 7);
UCSR0B = 0x00; //desabilita RXD e TXD
17TM 17
TRABALHO COM BITS
O trabalho com bits é fundamental para a programação de um
microcontrolador. Assim, compreender como podem ser
realizadas operações com bits é primordial para uma
programação eficiente.
Exemplo:
18TM 18
Ativa Bit
Exemplo:
19TM 19
Limpa Bit
Exemplo:
20TM 20
Complementa Bit
Exemplo:
21TM 21
Testa Bit
Exemplo:
22TM 22
Exemplo
23TM 23
PRODUZINDO UM CÓDIGO EFICIENTE
Compile com a máxima otimização.
Use variáveis locais sempre que possível.
Use o menor tipo de dado possível (8 bits), unsigned se aplicável.
Use do{ } while(expressão) se aplicável.
Use laços com contadores decrescentes e pré-decrementados, se
possível.
Use macros ao invés de funções para tarefas menores que 2-3 linhas
de código em assembly.
Evite chamar funções dentro de interrupções.
Se possível junte várias funções em um módulo (biblioteca), para
aumentar o reuso do código.
Todas as constantes e literais devem ser colocados na memória flash.
Alterar – compilar, alterar – compilar, comparar.
24TM 24Evitar o uso de Ponto Flutuante.
Exemplo – sem ponto flutuante
unsigned int (16 bits)
25TM 25
GRAVAÇÃO DO FIRMWARE
avrdude.exe - GUI
Gravador
USBtiny/USBasp
ou diretamente
pelo Arduino
(conversor
serial/USB com
um µcontrolador
com Bootloader).
26TM 26
GRAVAÇÃO DO FIRMWARE
avrdude.exe – AVR8 Burn-O-Mat
27TM 27
CONCLUSÃO
O Arduino e seus Shields permitem um prototipação rápida, dado
o conjunto de funções e bibliotecas disponíveis. É fácil de
programar.
Todavia, a IDE do Arduino é muito limitada e inadequada ao
desenvolvimento profissional. O código não é otimizado e não
existem ferramentas de depuração.
O desenvolvimento profissional exige o conhecimento do
microcontrolador e da programação C.
Códigos eficientes são resultantes de bons algoritmos,
produzindo maior densidade de código (funcionalidade/bytes). É
fundamental conhecer a arquitetura interna do microcontrolador
para desenvolver os melhores programas.
28TM 28
LIMA, C. B.; VILLAÇA, M.V. M. AVR e Arduino: Técnicas de Projeto.
2ª. ed. Edição dos Autores, Florianópolis, 2012.
GANSSLE, Jack. The Firmware Handbook. 1ª ed. Elsevier, United
Kingdom, 2004.
ATmega48/88/168/328/A/PA/P: Microcontroladores AVR (Manual do
fabricante).
Atmel AVR4027: Tips and Tricks to Optimize Your C Code for 8-bit
AVR Microcontrollers (Application Note).
http://atmel.com/
http://www.avrfreaks.net/
http://arduino.cc/
http://fritzing.org/
http://borgescorporation.blogspot.com.br/
REFERÊNCIAS BIBLIOGRAFICAS
“A vida é dura pra quem é mole!
29TM 29
MUITO OBRIGADO
PELA ATENÇÃO!
borgescorp@gmail.com
Mars Robot Curiosity is Powered by Arduino ...

Más contenido relacionado

La actualidad más candente

Luminotecnia
LuminotecniaLuminotecnia
Luminotecnia
Estudante
 
Exprsaõ logicas e tabela verdade exercicios
Exprsaõ logicas e tabela verdade exerciciosExprsaõ logicas e tabela verdade exercicios
Exprsaõ logicas e tabela verdade exercicios
Joãopedro Machado
 
Apostila de CLP / PLC
Apostila de CLP / PLCApostila de CLP / PLC
Apostila de CLP / PLC
Ricardo Akerman
 
Técnicas de Deteção de Avarias
Técnicas de Deteção de AvariasTécnicas de Deteção de Avarias
Técnicas de Deteção de Avarias
Baguiasri
 

La actualidad más candente (20)

Programação em-arduino-módulo-básico
Programação em-arduino-módulo-básicoProgramação em-arduino-módulo-básico
Programação em-arduino-módulo-básico
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Aula 1: Conhecendo o Arduino
Aula 1: Conhecendo o ArduinoAula 1: Conhecendo o Arduino
Aula 1: Conhecendo o Arduino
 
Eletrônica digital aula 01
Eletrônica digital   aula 01Eletrônica digital   aula 01
Eletrônica digital aula 01
 
Automação com clp (ladder)
Automação com clp (ladder)Automação com clp (ladder)
Automação com clp (ladder)
 
Diodo
DiodoDiodo
Diodo
 
Arduino
ArduinoArduino
Arduino
 
Minicurso de Arduino Básico
Minicurso de Arduino BásicoMinicurso de Arduino Básico
Minicurso de Arduino Básico
 
Ab funcoes-logicas-portas-logicas
Ab funcoes-logicas-portas-logicasAb funcoes-logicas-portas-logicas
Ab funcoes-logicas-portas-logicas
 
Principios de Eletronica
Principios de EletronicaPrincipios de Eletronica
Principios de Eletronica
 
Eletronica de potencia
Eletronica de potenciaEletronica de potencia
Eletronica de potencia
 
Luminotecnia
LuminotecniaLuminotecnia
Luminotecnia
 
Exprsaõ logicas e tabela verdade exercicios
Exprsaõ logicas e tabela verdade exerciciosExprsaõ logicas e tabela verdade exercicios
Exprsaõ logicas e tabela verdade exercicios
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
Eletricidade básica
Eletricidade básicaEletricidade básica
Eletricidade básica
 
Apostila de CLP / PLC
Apostila de CLP / PLCApostila de CLP / PLC
Apostila de CLP / PLC
 
Técnicas de Deteção de Avarias
Técnicas de Deteção de AvariasTécnicas de Deteção de Avarias
Técnicas de Deteção de Avarias
 
Sistemas Digitais - Aula 03 - Sensores, Atuadores e Circuitos
Sistemas Digitais - Aula 03 - Sensores, Atuadores e CircuitosSistemas Digitais - Aula 03 - Sensores, Atuadores e Circuitos
Sistemas Digitais - Aula 03 - Sensores, Atuadores e Circuitos
 
Aula de fisica conceitos de eletricidade
Aula de fisica   conceitos de eletricidade Aula de fisica   conceitos de eletricidade
Aula de fisica conceitos de eletricidade
 

Similar a Programação em C para Arduino

Apostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFApostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDF
engelrfs
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
elliando dias
 

Similar a Programação em C para Arduino (20)

UFCD-6072-Microcontroladores-Registos.pptx
UFCD-6072-Microcontroladores-Registos.pptxUFCD-6072-Microcontroladores-Registos.pptx
UFCD-6072-Microcontroladores-Registos.pptx
 
V2 - Microcontroladores: a revolucao do arduino
V2 - Microcontroladores: a revolucao do arduinoV2 - Microcontroladores: a revolucao do arduino
V2 - Microcontroladores: a revolucao do arduino
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptx
 
10 apostila microcontroladores
10  apostila microcontroladores10  apostila microcontroladores
10 apostila microcontroladores
 
Oficina de IoT conhecendo ESP8266 #CPBR12
Oficina de IoT conhecendo ESP8266 #CPBR12Oficina de IoT conhecendo ESP8266 #CPBR12
Oficina de IoT conhecendo ESP8266 #CPBR12
 
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
 
Robótica e Sistemas interativos utilizando Arduino
Robótica e Sistemas interativos utilizando ArduinoRobótica e Sistemas interativos utilizando Arduino
Robótica e Sistemas interativos utilizando Arduino
 
Apostila cpic
Apostila cpicApostila cpic
Apostila cpic
 
Apresentando o Arduino - UESPI
Apresentando o Arduino - UESPIApresentando o Arduino - UESPI
Apresentando o Arduino - UESPI
 
Arduino na engenharia
Arduino na engenhariaArduino na engenharia
Arduino na engenharia
 
Slide - Introdução ao Arduino e Sensores.pdf
Slide - Introdução ao Arduino e Sensores.pdfSlide - Introdução ao Arduino e Sensores.pdf
Slide - Introdução ao Arduino e Sensores.pdf
 
Apostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFApostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDF
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
38698469 slides-arduino
38698469 slides-arduino38698469 slides-arduino
38698469 slides-arduino
 
Corpo relatorio
Corpo relatorioCorpo relatorio
Corpo relatorio
 
Introdução ao arduino palestra
Introdução ao arduino palestraIntrodução ao arduino palestra
Introdução ao arduino palestra
 
201728 22259 manual_picgenios
201728 22259 manual_picgenios201728 22259 manual_picgenios
201728 22259 manual_picgenios
 
Workshop iniciação à robótica - Farrusco
Workshop iniciação à robótica - FarruscoWorkshop iniciação à robótica - Farrusco
Workshop iniciação à robótica - Farrusco
 
Pic18xx
Pic18xxPic18xx
Pic18xx
 
18. arduino
18. arduino18. arduino
18. arduino
 

Último

Último (9)

Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
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
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

Programação em C para Arduino

  • 1. 1TM 1 Programação C para Arduino INSTITUTO FEDERAL DE SANTA CATARINA DEPARTAMENTO DE ELETRÔNICA Prof. Charles Borges de Lima. Maio/2013
  • 2. 2TM 2 SUMÁRIO Introdução O Arduino Uno - O ATmega328 Programação - Assembly - Linguagem C - IDE do Arduino Registradores do ATmega328 Trabalho com Bits Produzindo um Código Eficiente Gravação do Firmware Conclusões Referências Bibliográficas
  • 3. 3TM 3 INTRODUÇÃO A IDE do Arduino não é destinada ao desenvolvimento profissional. Arduino é uma plataforma eletrônica de prototipagem baseada em hardware livre e software, fáceis de usar e flexíveis. Possui um IDE que permite a programação de forma fácil de um microcontrolador AVR. Todavia, não é eficiente e não permite o desenvolvimento profissional de projetos. Para um projeto profissional é necessário o uso de ferramentas adequadas de programação e do conhecimento técnico do microcontrolador empregado.
  • 4. 4TM 4 O ARDUINO UNO Como é estruturado o Hardware: 0-5 (azul) - pinos de entradas analógicas. Entradas para o ADC, podem ser usados como I/O digital. 0-13 (verde) - pinos de I/O digitais . Pinos 0 e 1 também são utilizados para a comunicação serial. AREF(laranja) - referência analógica do ADC. S1 (azul) - botão de inicialização. ICSP (ciano) - conector de gravação In-Circuit. USB (amarelo) - usado para gravar o Arduino ou energizá-lo. X1 (rosa) - fonte de alimentação externa (9-12VDC, após diodo estará também em Vin). Existem variações no layout da placa conforme o modelo. 20 Pinos de I/O
  • 5. 5TM 5 O ATmega328 O microcontrolador do Arduino Uno é o ATmega328 (AVR).
  • 6. 6TM 6 PINOS DO ATmega328 NO ARDUINO Informações fundamentais para a programação.
  • 7. 7TM 7 PROGRAMAÇÃO ASSEMBLY Assembly é a linguagem da CPU do microcontrolador. Todo microcontrolador possui um conjunto próprio de instruções representadas por mnemônicos (assembly) que após o desenvolvimento do programa são convertidos nos zeros e uns lógicos interpretáveis pelo microprocessador. O assembly é uma linguagem de baixo nível e permite obter o máximo desempenho de um microcontrolador, gerando o menor número de bytes de programa combinados a uma maior velocidade de processamento. Todavia, o assembly só será eficiente se o programa estiver bem estruturado e empregar algoritmos adequados. Programar em assembly exige muito esforço de programação. Assembly
  • 9. 9TM 9 EXEMPLO Piscando um LED ligado ao pino PB5 (pino 13 no Arduino). 30 Bytes 15 instruções
  • 10. 10TM 10 PROGRAMAÇÃO C Os compiladores convertem o C para o Assembly antes da geração do código de máquina. Com a evolução tecnológica (compiladores), o assembly foi quase que totalmente substituído pela linguagem C. As vantagens do uso do C são numerosas: Redução do tempo de desenvolvimento. O reuso do código é facilitado. Facilidade de manutenção. Portabilidade. Linguagem C
  • 11. 11TM 11 O problema de desenvolver o código em C é que o mesmo pode consumir muita memória e reduzir a velocidade de processamento. Os compiladores tentam traduzir da melhor forma o código para o assembly (antes de se tornarem código de máquina), mas esse processo não consegue o mesmo desempenho de um código escrito exclusivamente em assembly. Como os compiladores C são eficientes para a arquitetura do AVR, a programação dos microcontroladores ATmega é feita em C. Só existe a necessidade de se programar puramente em assembly em casos críticos. PROGRAMAÇÃO C
  • 12. 12TM 12 EXEMPLO 216 Bytes Otimização -Os Usando cpl_bit(PORTB,LED) resultam 202 bytes.
  • 13. 13TM 13 IDE DO ARDUINO (Wiring) Linguagem própria baseada em C e C++. 30 bytes Assembly 216 bytes C 1084 bytes IDE Arduino
  • 14. 14TM 14 REGISTRADORES DO ATmega328 Os registradores de I/O são o painel de controle do microcontrolador, pois todas as configurações de trabalho, incluindo acesso às entradas e saídas, se encontram nessa parte da memória. Total de 87 Registradores Painel de Controle.
  • 16. 16TM 16 Exemplo DDRD = 0b00000100; DDRD | = 1<< PC2; PORTD = 0b11111011; set_bit(PORTD, 2); clr_bit(PORTD, 2); tst_bit(PIND, 7); UCSR0B = 0x00; //desabilita RXD e TXD
  • 17. 17TM 17 TRABALHO COM BITS O trabalho com bits é fundamental para a programação de um microcontrolador. Assim, compreender como podem ser realizadas operações com bits é primordial para uma programação eficiente. Exemplo:
  • 23. 23TM 23 PRODUZINDO UM CÓDIGO EFICIENTE Compile com a máxima otimização. Use variáveis locais sempre que possível. Use o menor tipo de dado possível (8 bits), unsigned se aplicável. Use do{ } while(expressão) se aplicável. Use laços com contadores decrescentes e pré-decrementados, se possível. Use macros ao invés de funções para tarefas menores que 2-3 linhas de código em assembly. Evite chamar funções dentro de interrupções. Se possível junte várias funções em um módulo (biblioteca), para aumentar o reuso do código. Todas as constantes e literais devem ser colocados na memória flash. Alterar – compilar, alterar – compilar, comparar.
  • 24. 24TM 24Evitar o uso de Ponto Flutuante. Exemplo – sem ponto flutuante unsigned int (16 bits)
  • 25. 25TM 25 GRAVAÇÃO DO FIRMWARE avrdude.exe - GUI Gravador USBtiny/USBasp ou diretamente pelo Arduino (conversor serial/USB com um µcontrolador com Bootloader).
  • 26. 26TM 26 GRAVAÇÃO DO FIRMWARE avrdude.exe – AVR8 Burn-O-Mat
  • 27. 27TM 27 CONCLUSÃO O Arduino e seus Shields permitem um prototipação rápida, dado o conjunto de funções e bibliotecas disponíveis. É fácil de programar. Todavia, a IDE do Arduino é muito limitada e inadequada ao desenvolvimento profissional. O código não é otimizado e não existem ferramentas de depuração. O desenvolvimento profissional exige o conhecimento do microcontrolador e da programação C. Códigos eficientes são resultantes de bons algoritmos, produzindo maior densidade de código (funcionalidade/bytes). É fundamental conhecer a arquitetura interna do microcontrolador para desenvolver os melhores programas.
  • 28. 28TM 28 LIMA, C. B.; VILLAÇA, M.V. M. AVR e Arduino: Técnicas de Projeto. 2ª. ed. Edição dos Autores, Florianópolis, 2012. GANSSLE, Jack. The Firmware Handbook. 1ª ed. Elsevier, United Kingdom, 2004. ATmega48/88/168/328/A/PA/P: Microcontroladores AVR (Manual do fabricante). Atmel AVR4027: Tips and Tricks to Optimize Your C Code for 8-bit AVR Microcontrollers (Application Note). http://atmel.com/ http://www.avrfreaks.net/ http://arduino.cc/ http://fritzing.org/ http://borgescorporation.blogspot.com.br/ REFERÊNCIAS BIBLIOGRAFICAS “A vida é dura pra quem é mole!
  • 29. 29TM 29 MUITO OBRIGADO PELA ATENÇÃO! borgescorp@gmail.com Mars Robot Curiosity is Powered by Arduino ...