SlideShare a Scribd company logo
Fundamentos de
Programação
Tema XV: C++ e Arduino
Docente: Eugénio Xavier Domingos Caetano
Introdução a programação na linguagem
C++
 No mundo da programação nós podemos classificar
as linguagens de duas maneiras:
◦ Linguagem de Baixo Nível e Linguagem de Alto Nível.
 Quando nos referimos à linguagem de Baixo Nível
estamos nos referindo a sintaxes próximas ao
código de maquina, ou seja, a linguagem que o
computador consegue facilmente interpretar.
 Em contrapartida a definição de linguagem de Baixo
Nível nós encontramos as linguagem de Alto Nível,
com relação a esse tipo de linguagem podemos
afirmar que a mesma possui uma sintaxe próxima à
linguagem humana um exemplo desse tipo de
linguagem é o próprio C/C++, entre outras.
 O C++ foi inicialmente desenvolvido por Bjarne
Stroustrup dos Bell Labs durante a década de 1980
(originalmente com o nome C with Classes, como
um adicional à linguagem C) com o objectivo de
melhorar a linguagem de programação C ainda que
mantendo máxima compatibilidade.
Ambiente da linguagem
 O C++ pode ser chamado de linguagem compilada,
ou seja, além de escrever o código, é necessário
um outro software que possa entender esse código
e traduzí-lo para uma sintaxe que o computador
possa interpretar denominado Código de Máquina.
Instalação
 A primeira coisa a fazer antes de desenvolver
programas usando a linguagem C++ é instalar um
compilador.
 Existem diversos compiladores C++ disponíveis
para os programadores, a decisão sobre qual
compilador utilizar pode ser baseada em vários
fatores:
◦ Qualidade do compilador (rapidez, está conforme com a
padronização da linguagem, a interface com o usuário é
agradável, possui ou não um IDE (Integrated
Development Enviroment), possui diversas opções de
◦ custo do compilador;
◦ documentação disponível e suporte.
Características do C++
 C++ pode ser visto como uma linguagem
procedimental tradicional com alguns construtores
adicionais.
 Começando pelo C, alguns construtores para
programação orientada a objetos e para melhorar a
sintaxe procedimental foram acrescentados.
 Um programa bem escrito em C++ irá refletir
elementos tanto do estilo de programação orientada
a objetos como programação procedimental
clássica.
 Isto porque o C++ é na verdade uma linguagem
extensível já que podemos definir novos tipos de tal
maneira que eles agem de mesmo modo que os
tipos pré-definidos que fazem parte da linguagem
padrão.
 Abaixo estão listados itens que caracterizam a
linguagem C++:
◦ Programação Orientada à Objetos: A possibilidade de
utilizar programação orientada a objetos permite ao
programador projetar aplicações de um ponto de vista
mais parecido com comunicação entre objetos que de
 Alem disso, permite a reusabilidade de código de uma forma mais lógica e
produtiva.
 A linguagem foi desenvolvida com o cuidado de prover atributos Orientados à
Objeto para a linguagem C sem comprometer a eficiência;
◦ Portabilidade: Pode-se praticamente compilar o mesmo
código C++ em qualquer tipo de computador e sistema
operacional sem fazer grandes mudanças.
 C++ é uma das mais usadas e portadas linguagens de
programação;
◦ Brevidade: Código escrito em C++ é muito menor em
comparação com outras linguagens, desde o uso de
caracteres especiais e preferidos antes de palavras
chave, evitando esforço;
História do Arduino
 O projeto iniciou-se na cidade de Ivrea, Itália, em
2005, com o intuito de interagir em projetos
escolares de forma a ter um orçamento menor que
outros sistemas de prototipagem disponíveis
naquela época.
 O sucesso foi sinalizado com o obtenção de uma
menção honrosa na categoria Comunidades Digitais
em 2006, pela Prix Ars Electronica, além da marca
de mais de 50.000 placas vendidas até outubro de
2008.
 Atualmente, o seu hardware é feito através de um
microcontrolador Atmel AVR, sendo que este não é
um requisito formal e pode ser estendido se tanto
ele quanto a ferramenta alternativa suportarem a
linguagem arduino e forem aceites pelo seu projeto.
 Considerando esta característica, muitos projetos
paralelos inspiram-se em cópias modificadas com
placas de expansões, e acabam recebendo os seus
próprios nomes.
 Apesar do sistema poder ser montado pelo próprio
utilizador, os manutentores possuem um serviço de
venda do produto pré-montado, através deles
próprios e também por distribuidores oficiais com
pontos de venda mundiais.
Arduino
 Arduíno é uma plataforma de prototipagem
eletrônica de hardware livre e de placa única,[6]
projetada com um microcontrolador Atmel AVR com
suporte de entrada/saída embutido, uma linguagem
de programação padrão,[7] a qual tem origem em
Wiring, e é essencialmente C/C++.
 O objetivo do projeto é criar ferramentas que são
acessíveis, com baixo custo, flexíveis e fáceis de se
usar por principiantes e profissionais.
 Principalmente para aqueles que não teriam
alcance aos controladores mais sofisticados e
ferramentas mais complicadas.
 Pode ser usado para o desenvolvimento de objetos
interativos independentes, ou ainda para ser
conectado a um computador hospedeiro.
 Uma típica placa Arduino é composta por um
controlador, algumas linhas de E/S digital e
analógica, além de uma interface serial ou USB,
para interligar-se ao hospedeiro, que é usado para
programá-la e interagi-la em tempo real.
 A placa em si não possui qualquer recurso de rede,
porém é comum combinar um ou mais Arduinos
deste modo, usando extensões apropriadas
chamadas de shields.
 A interface do hospedeiro é simples, podendo ser
escrita em várias linguagens.
 A mais popular é a Processing, mas outras que
podem comunicar-se com a conexão serial são:
Max/MSP,[11] Pure Data,[12] SuperCollider,[13]
ActionScript[14] e Java.
 Em 2010 foi realizado um documentário sobre a
Hardware de Arduino
 A sua placa consiste num microcontrolador Atmel
AVR de 8 bits, com componentes complementares
para facilitar a programação e incorporação noutros
circuitos.
 Um importante aspecto é a maneira padrão como
os conectores são expostos, permitindo o CPU ser
interligado a outros módulos expansivos,
conhecidos como shields.
 Os Arduinos originais utilizam a série de chips
megaAVR, especialmente os ATmega8,
◦ porém muitos outros processadores foram utilizados por
clones deles.[20]
 A grande maioria de placas inclui um regulador
linear de 5 volts e um oscilador de cristal de 16 MHz
(podendo haver variantes com um ressonador
cerâmico), embora alguns esquemas como o
LilyPad usem até 8 MHz e dispensem um regulador
de tensão embutido, por terem uma forma
específica de restrições de fator.
 Além de ser microcontrolador, o componente
também é pré-programado com um bootloader, o
que simplifica o carregamento de programas para o
chip de memória flash embutido, em comparação
com outros aparelhos que geralmente demandam
um chip programador externo.
 Conceptualmente, quando o seu software é
utilizado, ele monta todas as placas sobre uma
programação de conexão serial RS-232, mas a
forma de implementação no hardware varia em
cada versão.
Software
 O Arduino IDE é uma aplicação multiplataforma
escrita em Java derivada dos projetos Processing e
Wiring.[20][24] É esquematizado para introduzir a
programação para artistas e para pessoas não
familiarizadas com o desenvolvimento de software.
 Inclui um editor de código com recursos de realce
de sintaxe, parênteses correspondentes e identação
automática, sendo capaz de compilar e carregar
programas para a placa com um único clique.
 Com isso não há a necessidade de editar Makefiles
ou rodar programas em ambientes de linha de
Conlusoes
 Assim como a linguagem, sua biblioteca padrão
também sofreu melhorias ao longo do tempo.
 Sua primeira adição foi a biblioteca de E/S, e
posteriormente a Standard Template Library (STL);
◦ ambas tornaram-se algumas das principais
funcionalidades que distanciaram a linguagem em
relação a C.
 Criada primordialmente na HP por Alexander
Stepanov[9] no início da década de 1990 para
explorar os potenciais da programação genérica, a
STL foi apresentada a um comitê unificado ANSI e
 Após uma proposta formal na reunião do ano
seguinte, a biblioteca recebe o aval do comitê.
 Depois de anos de trabalho, o mesmo comitê
ANSI/ISO padronizou o C++ em 1998 (ISO/IEC
14882:1998).
 As placas de serie de um Arduino contêm um
simples circuito inversor para converter entre os
sinais dos níveis RS-232 e TTL.
 Atualmente, existem alguns métodos diferentes
para realizar a transmissão dos dados, como por
placas programáveis via USB, adicionadas através
 Algumas variantes, como o Arduino Mini e o não
oficial Boarduino, usam um módulo, cabo adaptador
USB, bluetooth ou outros métodos.
 Nestes casos, são usados com ferramentas
microcontroladoras ao invés do Arduino IDE,
utilizando assim a programação padrão AVR ISP.
 A maioria dos pinos de E/S dos microcontroladores
são para uso de outros circuitos.

More Related Content

What's hot

Linguagem c wellington telles - aula 02
Linguagem c   wellington telles - aula 02Linguagem c   wellington telles - aula 02
Linguagem c wellington telles - aula 02
profwtelles
 
Apostila de Linguagem C
Apostila de Linguagem CApostila de Linguagem C
Apostila de Linguagem C
Daniel Barão
 
05 - C# - componentes visuais v1.0
05 - C# - componentes visuais v1.005 - C# - componentes visuais v1.0
05 - C# - componentes visuais v1.0
César Augusto Pessôa
 
02 - Introdução a linguagem C# v1.0
02 - Introdução a linguagem C# v1.002 - Introdução a linguagem C# v1.0
02 - Introdução a linguagem C# v1.0
César Augusto Pessôa
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhany
Karen Costa
 
Gerador de Código-Objeto - Compiladores
Gerador de Código-Objeto - CompiladoresGerador de Código-Objeto - Compiladores
Gerador de Código-Objeto - Compiladores
Anderson Favaro
 
Linguagem Delphi-Introdução
Linguagem Delphi-IntroduçãoLinguagem Delphi-Introdução
Linguagem Delphi-Introdução
Carlos Eduardo Melo
 
Introdução a Linguagem de Programação
Introdução a Linguagem de ProgramaçãoIntrodução a Linguagem de Programação
Introdução a Linguagem de Programação
Jessica Ribeiro
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
orvel
 
Aula 01 introdução ao php
Aula 01   introdução ao phpAula 01   introdução ao php
Aula 01 introdução ao phpAdriano Castro
 
Fundamentos da linguagem c
Fundamentos da linguagem cFundamentos da linguagem c
Fundamentos da linguagem cMarcia Santana
 
Tutorial dev cpp 001 - criação, leitura e alteração de arquivos
Tutorial dev cpp   001 - criação, leitura e alteração de arquivosTutorial dev cpp   001 - criação, leitura e alteração de arquivos
Tutorial dev cpp 001 - criação, leitura e alteração de arquivos
Flávio Freitas
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
Rodrigo Teixeira Andreotti
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
Elaine Cecília Gatto
 
Paradigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoParadigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoAdriano Teixeira de Souza
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Kratos879
 

What's hot (19)

Linguagem c wellington telles - aula 02
Linguagem c   wellington telles - aula 02Linguagem c   wellington telles - aula 02
Linguagem c wellington telles - aula 02
 
Apostila de Linguagem C
Apostila de Linguagem CApostila de Linguagem C
Apostila de Linguagem C
 
05 - C# - componentes visuais v1.0
05 - C# - componentes visuais v1.005 - C# - componentes visuais v1.0
05 - C# - componentes visuais v1.0
 
02 - Introdução a linguagem C# v1.0
02 - Introdução a linguagem C# v1.002 - Introdução a linguagem C# v1.0
02 - Introdução a linguagem C# v1.0
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhany
 
Gerador de Código-Objeto - Compiladores
Gerador de Código-Objeto - CompiladoresGerador de Código-Objeto - Compiladores
Gerador de Código-Objeto - Compiladores
 
Linguagem Delphi-Introdução
Linguagem Delphi-IntroduçãoLinguagem Delphi-Introdução
Linguagem Delphi-Introdução
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Introdução a Linguagem de Programação
Introdução a Linguagem de ProgramaçãoIntrodução a Linguagem de Programação
Introdução a Linguagem de Programação
 
Paradigmas de Linguagem
Paradigmas de LinguagemParadigmas de Linguagem
Paradigmas de Linguagem
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Aula 01 introdução ao php
Aula 01   introdução ao phpAula 01   introdução ao php
Aula 01 introdução ao php
 
Fundamentos da linguagem c
Fundamentos da linguagem cFundamentos da linguagem c
Fundamentos da linguagem c
 
Tutorial dev cpp 001 - criação, leitura e alteração de arquivos
Tutorial dev cpp   001 - criação, leitura e alteração de arquivosTutorial dev cpp   001 - criação, leitura e alteração de arquivos
Tutorial dev cpp 001 - criação, leitura e alteração de arquivos
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Paradigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoParadigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - Introdução
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
 

More from Eugenio Caetano

18. arduino
18. arduino18. arduino
18. arduino
Eugenio Caetano
 
15. introducao ao c++
15. introducao ao c++15. introducao ao c++
15. introducao ao c++
Eugenio Caetano
 
8. matrizes
8. matrizes8. matrizes
8. matrizes
Eugenio Caetano
 
6. estruturas de controlo de fluxo
6. estruturas de controlo de fluxo6. estruturas de controlo de fluxo
6. estruturas de controlo de fluxo
Eugenio Caetano
 
5. introducao a linguagem c
5. introducao a linguagem c5. introducao a linguagem c
5. introducao a linguagem c
Eugenio Caetano
 
4. metodos de contrucao de algoritmo
4. metodos de contrucao de algoritmo4. metodos de contrucao de algoritmo
4. metodos de contrucao de algoritmo
Eugenio Caetano
 
Sala de aula em rede
Sala de aula em redeSala de aula em rede
Sala de aula em rede
Eugenio Caetano
 
11. Relatorios e OLE
11. Relatorios e OLE11. Relatorios e OLE
11. Relatorios e OLE
Eugenio Caetano
 
6. Estruturas de controlo de fluxo (decisao)
6. Estruturas de controlo de fluxo (decisao)6. Estruturas de controlo de fluxo (decisao)
6. Estruturas de controlo de fluxo (decisao)
Eugenio Caetano
 
5. Operadores
5. Operadores5. Operadores
5. Operadores
Eugenio Caetano
 
Introducao ao visual basic
Introducao ao visual basicIntroducao ao visual basic
Introducao ao visual basic
Eugenio Caetano
 
Importancia da comunidade virtual de aprendizagem
Importancia da comunidade virtual de aprendizagemImportancia da comunidade virtual de aprendizagem
Importancia da comunidade virtual de aprendizagem
Eugenio Caetano
 
2. ambiente de desenvolvimento do vb (parte 1)
2. ambiente de desenvolvimento do vb (parte 1)2. ambiente de desenvolvimento do vb (parte 1)
2. ambiente de desenvolvimento do vb (parte 1)
Eugenio Caetano
 
3. ambiente de desenvolvimento do vb (parte 2)
3. ambiente de desenvolvimento do vb (parte 2)3. ambiente de desenvolvimento do vb (parte 2)
3. ambiente de desenvolvimento do vb (parte 2)
Eugenio Caetano
 
Celular
CelularCelular

More from Eugenio Caetano (15)

18. arduino
18. arduino18. arduino
18. arduino
 
15. introducao ao c++
15. introducao ao c++15. introducao ao c++
15. introducao ao c++
 
8. matrizes
8. matrizes8. matrizes
8. matrizes
 
6. estruturas de controlo de fluxo
6. estruturas de controlo de fluxo6. estruturas de controlo de fluxo
6. estruturas de controlo de fluxo
 
5. introducao a linguagem c
5. introducao a linguagem c5. introducao a linguagem c
5. introducao a linguagem c
 
4. metodos de contrucao de algoritmo
4. metodos de contrucao de algoritmo4. metodos de contrucao de algoritmo
4. metodos de contrucao de algoritmo
 
Sala de aula em rede
Sala de aula em redeSala de aula em rede
Sala de aula em rede
 
11. Relatorios e OLE
11. Relatorios e OLE11. Relatorios e OLE
11. Relatorios e OLE
 
6. Estruturas de controlo de fluxo (decisao)
6. Estruturas de controlo de fluxo (decisao)6. Estruturas de controlo de fluxo (decisao)
6. Estruturas de controlo de fluxo (decisao)
 
5. Operadores
5. Operadores5. Operadores
5. Operadores
 
Introducao ao visual basic
Introducao ao visual basicIntroducao ao visual basic
Introducao ao visual basic
 
Importancia da comunidade virtual de aprendizagem
Importancia da comunidade virtual de aprendizagemImportancia da comunidade virtual de aprendizagem
Importancia da comunidade virtual de aprendizagem
 
2. ambiente de desenvolvimento do vb (parte 1)
2. ambiente de desenvolvimento do vb (parte 1)2. ambiente de desenvolvimento do vb (parte 1)
2. ambiente de desenvolvimento do vb (parte 1)
 
3. ambiente de desenvolvimento do vb (parte 2)
3. ambiente de desenvolvimento do vb (parte 2)3. ambiente de desenvolvimento do vb (parte 2)
3. ambiente de desenvolvimento do vb (parte 2)
 
Celular
CelularCelular
Celular
 

15. c++ e arduino

  • 1. Fundamentos de Programação Tema XV: C++ e Arduino Docente: Eugénio Xavier Domingos Caetano
  • 2. Introdução a programação na linguagem C++  No mundo da programação nós podemos classificar as linguagens de duas maneiras: ◦ Linguagem de Baixo Nível e Linguagem de Alto Nível.  Quando nos referimos à linguagem de Baixo Nível estamos nos referindo a sintaxes próximas ao código de maquina, ou seja, a linguagem que o computador consegue facilmente interpretar.
  • 3.  Em contrapartida a definição de linguagem de Baixo Nível nós encontramos as linguagem de Alto Nível, com relação a esse tipo de linguagem podemos afirmar que a mesma possui uma sintaxe próxima à linguagem humana um exemplo desse tipo de linguagem é o próprio C/C++, entre outras.
  • 4.  O C++ foi inicialmente desenvolvido por Bjarne Stroustrup dos Bell Labs durante a década de 1980 (originalmente com o nome C with Classes, como um adicional à linguagem C) com o objectivo de melhorar a linguagem de programação C ainda que mantendo máxima compatibilidade.
  • 5. Ambiente da linguagem  O C++ pode ser chamado de linguagem compilada, ou seja, além de escrever o código, é necessário um outro software que possa entender esse código e traduzí-lo para uma sintaxe que o computador possa interpretar denominado Código de Máquina.
  • 6. Instalação  A primeira coisa a fazer antes de desenvolver programas usando a linguagem C++ é instalar um compilador.  Existem diversos compiladores C++ disponíveis para os programadores, a decisão sobre qual compilador utilizar pode ser baseada em vários fatores: ◦ Qualidade do compilador (rapidez, está conforme com a padronização da linguagem, a interface com o usuário é agradável, possui ou não um IDE (Integrated Development Enviroment), possui diversas opções de
  • 7. ◦ custo do compilador; ◦ documentação disponível e suporte.
  • 8. Características do C++  C++ pode ser visto como uma linguagem procedimental tradicional com alguns construtores adicionais.  Começando pelo C, alguns construtores para programação orientada a objetos e para melhorar a sintaxe procedimental foram acrescentados.  Um programa bem escrito em C++ irá refletir elementos tanto do estilo de programação orientada a objetos como programação procedimental clássica.
  • 9.  Isto porque o C++ é na verdade uma linguagem extensível já que podemos definir novos tipos de tal maneira que eles agem de mesmo modo que os tipos pré-definidos que fazem parte da linguagem padrão.  Abaixo estão listados itens que caracterizam a linguagem C++: ◦ Programação Orientada à Objetos: A possibilidade de utilizar programação orientada a objetos permite ao programador projetar aplicações de um ponto de vista mais parecido com comunicação entre objetos que de
  • 10.  Alem disso, permite a reusabilidade de código de uma forma mais lógica e produtiva.  A linguagem foi desenvolvida com o cuidado de prover atributos Orientados à Objeto para a linguagem C sem comprometer a eficiência; ◦ Portabilidade: Pode-se praticamente compilar o mesmo código C++ em qualquer tipo de computador e sistema operacional sem fazer grandes mudanças.  C++ é uma das mais usadas e portadas linguagens de programação; ◦ Brevidade: Código escrito em C++ é muito menor em comparação com outras linguagens, desde o uso de caracteres especiais e preferidos antes de palavras chave, evitando esforço;
  • 11. História do Arduino  O projeto iniciou-se na cidade de Ivrea, Itália, em 2005, com o intuito de interagir em projetos escolares de forma a ter um orçamento menor que outros sistemas de prototipagem disponíveis naquela época.  O sucesso foi sinalizado com o obtenção de uma menção honrosa na categoria Comunidades Digitais em 2006, pela Prix Ars Electronica, além da marca de mais de 50.000 placas vendidas até outubro de 2008.
  • 12.  Atualmente, o seu hardware é feito através de um microcontrolador Atmel AVR, sendo que este não é um requisito formal e pode ser estendido se tanto ele quanto a ferramenta alternativa suportarem a linguagem arduino e forem aceites pelo seu projeto.  Considerando esta característica, muitos projetos paralelos inspiram-se em cópias modificadas com placas de expansões, e acabam recebendo os seus próprios nomes.
  • 13.  Apesar do sistema poder ser montado pelo próprio utilizador, os manutentores possuem um serviço de venda do produto pré-montado, através deles próprios e também por distribuidores oficiais com pontos de venda mundiais.
  • 14. Arduino  Arduíno é uma plataforma de prototipagem eletrônica de hardware livre e de placa única,[6] projetada com um microcontrolador Atmel AVR com suporte de entrada/saída embutido, uma linguagem de programação padrão,[7] a qual tem origem em Wiring, e é essencialmente C/C++.  O objetivo do projeto é criar ferramentas que são acessíveis, com baixo custo, flexíveis e fáceis de se usar por principiantes e profissionais.
  • 15.  Principalmente para aqueles que não teriam alcance aos controladores mais sofisticados e ferramentas mais complicadas.  Pode ser usado para o desenvolvimento de objetos interativos independentes, ou ainda para ser conectado a um computador hospedeiro.  Uma típica placa Arduino é composta por um controlador, algumas linhas de E/S digital e analógica, além de uma interface serial ou USB, para interligar-se ao hospedeiro, que é usado para programá-la e interagi-la em tempo real.
  • 16.  A placa em si não possui qualquer recurso de rede, porém é comum combinar um ou mais Arduinos deste modo, usando extensões apropriadas chamadas de shields.  A interface do hospedeiro é simples, podendo ser escrita em várias linguagens.  A mais popular é a Processing, mas outras que podem comunicar-se com a conexão serial são: Max/MSP,[11] Pure Data,[12] SuperCollider,[13] ActionScript[14] e Java.  Em 2010 foi realizado um documentário sobre a
  • 17. Hardware de Arduino  A sua placa consiste num microcontrolador Atmel AVR de 8 bits, com componentes complementares para facilitar a programação e incorporação noutros circuitos.  Um importante aspecto é a maneira padrão como os conectores são expostos, permitindo o CPU ser interligado a outros módulos expansivos, conhecidos como shields.  Os Arduinos originais utilizam a série de chips megaAVR, especialmente os ATmega8,
  • 18. ◦ porém muitos outros processadores foram utilizados por clones deles.[20]  A grande maioria de placas inclui um regulador linear de 5 volts e um oscilador de cristal de 16 MHz (podendo haver variantes com um ressonador cerâmico), embora alguns esquemas como o LilyPad usem até 8 MHz e dispensem um regulador de tensão embutido, por terem uma forma específica de restrições de fator.
  • 19.  Além de ser microcontrolador, o componente também é pré-programado com um bootloader, o que simplifica o carregamento de programas para o chip de memória flash embutido, em comparação com outros aparelhos que geralmente demandam um chip programador externo.  Conceptualmente, quando o seu software é utilizado, ele monta todas as placas sobre uma programação de conexão serial RS-232, mas a forma de implementação no hardware varia em cada versão.
  • 20. Software  O Arduino IDE é uma aplicação multiplataforma escrita em Java derivada dos projetos Processing e Wiring.[20][24] É esquematizado para introduzir a programação para artistas e para pessoas não familiarizadas com o desenvolvimento de software.  Inclui um editor de código com recursos de realce de sintaxe, parênteses correspondentes e identação automática, sendo capaz de compilar e carregar programas para a placa com um único clique.  Com isso não há a necessidade de editar Makefiles ou rodar programas em ambientes de linha de
  • 21. Conlusoes  Assim como a linguagem, sua biblioteca padrão também sofreu melhorias ao longo do tempo.  Sua primeira adição foi a biblioteca de E/S, e posteriormente a Standard Template Library (STL); ◦ ambas tornaram-se algumas das principais funcionalidades que distanciaram a linguagem em relação a C.  Criada primordialmente na HP por Alexander Stepanov[9] no início da década de 1990 para explorar os potenciais da programação genérica, a STL foi apresentada a um comitê unificado ANSI e
  • 22.  Após uma proposta formal na reunião do ano seguinte, a biblioteca recebe o aval do comitê.  Depois de anos de trabalho, o mesmo comitê ANSI/ISO padronizou o C++ em 1998 (ISO/IEC 14882:1998).  As placas de serie de um Arduino contêm um simples circuito inversor para converter entre os sinais dos níveis RS-232 e TTL.  Atualmente, existem alguns métodos diferentes para realizar a transmissão dos dados, como por placas programáveis via USB, adicionadas através
  • 23.  Algumas variantes, como o Arduino Mini e o não oficial Boarduino, usam um módulo, cabo adaptador USB, bluetooth ou outros métodos.  Nestes casos, são usados com ferramentas microcontroladoras ao invés do Arduino IDE, utilizando assim a programação padrão AVR ISP.  A maioria dos pinos de E/S dos microcontroladores são para uso de outros circuitos.