SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
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 ...

Mais conteúdo relacionado

Mais procurados

Como instalar o processador
Como instalar o processadorComo instalar o processador
Como instalar o processadorsergiocef96
 
Principios de Eletronica
Principios de EletronicaPrincipios de Eletronica
Principios de EletronicaHelder da Rocha
 
Tecnicas de Detenção de Avaria
Tecnicas de Detenção de AvariaTecnicas de Detenção de Avaria
Tecnicas de Detenção de AvariaDiolene Sampaio
 
Fonte de alimentação
Fonte de alimentaçãoFonte de alimentação
Fonte de alimentaçãoCarlos Pereira
 
Aplicação dos microcontroladores no dia a dia
Aplicação dos microcontroladores no dia a diaAplicação dos microcontroladores no dia a dia
Aplicação dos microcontroladores no dia a diaDaniel Rodrigues de Sousa
 
Webinar: Desenvolvendo projetos com ESP32
Webinar: Desenvolvendo projetos com ESP32Webinar: Desenvolvendo projetos com ESP32
Webinar: Desenvolvendo projetos com ESP32Embarcados
 
Conexões de rede 1ª aula (1)
Conexões de rede 1ª aula (1)Conexões de rede 1ª aula (1)
Conexões de rede 1ª aula (1)Ribeiro Lelia
 
Hardware
HardwareHardware
Hardwareleiladb
 
Eletrônica digital (introdução aos sistemas digitais)
Eletrônica digital (introdução aos sistemas digitais)Eletrônica digital (introdução aos sistemas digitais)
Eletrônica digital (introdução aos sistemas digitais)val10z
 
Serviços de Convergência.pdf
Serviços de Convergência.pdfServiços de Convergência.pdf
Serviços de Convergência.pdfOs Fantasmas !
 
Curso de eletrônica basíca
Curso de eletrônica basícaCurso de eletrônica basíca
Curso de eletrônica basícaantonio rodrigues
 
Detecção de erros no computador-Arquitetura de Computadores
Detecção de erros no computador-Arquitetura de ComputadoresDetecção de erros no computador-Arquitetura de Computadores
Detecção de erros no computador-Arquitetura de ComputadoresGabriel Santos
 
Caderno de exercícios Sistemas digitais - Portas lógicas
Caderno de exercícios  Sistemas digitais - Portas lógicasCaderno de exercícios  Sistemas digitais - Portas lógicas
Caderno de exercícios Sistemas digitais - Portas lógicasCarlos Pereira
 
Oficina de Iniciação a Informática
Oficina de Iniciação a InformáticaOficina de Iniciação a Informática
Oficina de Iniciação a Informáticamarcelasb
 

Mais procurados (20)

Como instalar o processador
Como instalar o processadorComo instalar o processador
Como instalar o processador
 
Principios de Eletronica
Principios de EletronicaPrincipios de Eletronica
Principios de Eletronica
 
Tecnicas de Detenção de Avaria
Tecnicas de Detenção de AvariaTecnicas de Detenção de Avaria
Tecnicas de Detenção de Avaria
 
Modelo de von neumann
Modelo de von neumannModelo de von neumann
Modelo de von neumann
 
Fonte de alimentação
Fonte de alimentaçãoFonte de alimentação
Fonte de alimentação
 
Aplicação dos microcontroladores no dia a dia
Aplicação dos microcontroladores no dia a diaAplicação dos microcontroladores no dia a dia
Aplicação dos microcontroladores no dia a dia
 
Webinar: Desenvolvendo projetos com ESP32
Webinar: Desenvolvendo projetos com ESP32Webinar: Desenvolvendo projetos com ESP32
Webinar: Desenvolvendo projetos com ESP32
 
Conexões de rede 1ª aula (1)
Conexões de rede 1ª aula (1)Conexões de rede 1ª aula (1)
Conexões de rede 1ª aula (1)
 
Projeto de redes
Projeto de redesProjeto de redes
Projeto de redes
 
Hardware
HardwareHardware
Hardware
 
Aula 07 - Fontes
Aula 07 - FontesAula 07 - Fontes
Aula 07 - Fontes
 
Eletrônica digital (introdução aos sistemas digitais)
Eletrônica digital (introdução aos sistemas digitais)Eletrônica digital (introdução aos sistemas digitais)
Eletrônica digital (introdução aos sistemas digitais)
 
Motherboard
MotherboardMotherboard
Motherboard
 
Serviços de Convergência.pdf
Serviços de Convergência.pdfServiços de Convergência.pdf
Serviços de Convergência.pdf
 
Curso de eletrônica basíca
Curso de eletrônica basícaCurso de eletrônica basíca
Curso de eletrônica basíca
 
Detecção de erros no computador-Arquitetura de Computadores
Detecção de erros no computador-Arquitetura de ComputadoresDetecção de erros no computador-Arquitetura de Computadores
Detecção de erros no computador-Arquitetura de Computadores
 
Placa mãe (motherboard)
Placa mãe (motherboard)Placa mãe (motherboard)
Placa mãe (motherboard)
 
Caderno de exercícios Sistemas digitais - Portas lógicas
Caderno de exercícios  Sistemas digitais - Portas lógicasCaderno de exercícios  Sistemas digitais - Portas lógicas
Caderno de exercícios Sistemas digitais - Portas lógicas
 
Aula01- Informática Básica
Aula01- Informática BásicaAula01- Informática Básica
Aula01- Informática Básica
 
Oficina de Iniciação a Informática
Oficina de Iniciação a InformáticaOficina de Iniciação a Informática
Oficina de Iniciação a Informática
 

Semelhante a Programando Arduino em C

UFCD-6072-Microcontroladores-Registos.pptx
UFCD-6072-Microcontroladores-Registos.pptxUFCD-6072-Microcontroladores-Registos.pptx
UFCD-6072-Microcontroladores-Registos.pptxcentroclinicosalus
 
V2 - Microcontroladores: a revolucao do arduino
V2 - Microcontroladores: a revolucao do arduinoV2 - Microcontroladores: a revolucao do arduino
V2 - Microcontroladores: a revolucao do arduinoSamir Siqueira
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptxfmtpereira
 
10 apostila microcontroladores
10  apostila microcontroladores10  apostila microcontroladores
10 apostila microcontroladoresAlyson Cavalcante
 
Oficina de IoT conhecendo ESP8266 #CPBR12
Oficina de IoT conhecendo ESP8266 #CPBR12Oficina de IoT conhecendo ESP8266 #CPBR12
Oficina de IoT conhecendo ESP8266 #CPBR12Douglas Esteves
 
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
 
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 ArduinoDomingosRodrigues16
 
Arduino na engenharia
Arduino na engenhariaArduino na engenharia
Arduino na engenhariaLucas_Fonseca
 
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.pdfHenrique Alves
 
Apostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFApostila - Tutorial Arduino (Básico).PDF
Apostila - Tutorial Arduino (Básico).PDFengelrfs
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
38698469 slides-arduino
38698469 slides-arduino38698469 slides-arduino
38698469 slides-arduinoRui Alves
 
Introdução ao arduino palestra
Introdução ao arduino palestraIntrodução ao arduino palestra
Introdução ao arduino palestraVitor Ferreira
 
201728 22259 manual_picgenios
201728 22259 manual_picgenios201728 22259 manual_picgenios
201728 22259 manual_picgeniosBárbara Gama
 
Workshop iniciação à robótica - Farrusco
Workshop iniciação à robótica - FarruscoWorkshop iniciação à robótica - Farrusco
Workshop iniciação à robótica - FarruscoArticacc, Lda
 

Semelhante a Programando Arduino em C (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
 

Programando Arduino em C

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