Este documento apresenta uma introdução ao Arduino, discutindo seus principais tópicos como:
1) Apresenta diferentes modelos de Arduino e suas características;
2) Explica a arquitetura do Arduino UNO e do microcontrolador ATmega328;
3) Discutem conceitos básicos como manipulação de portas, comunicação serial, tipos de variáveis e estruturas de controle.
Palestra sobre o uso do Arduino e as possibilidades que existem além dessa plataforma. É abordado um pequeno histórico do desenvolvimento do Arduino, o seu uso e diversas placas.
Introdução para iniciantes sobre a plataforma Arduino.
Nessa introdução eu mostro alguns esquemas elétricos básicos para você ir montando na protoboard e ir acompanhando os exemplos que são mostrados.
Você pode acompanhar a leitura desse slide no youtube: https://www.youtube.com/watch?v=Xv-oT41FIRQ
Palestra sobre o uso do Arduino e as possibilidades que existem além dessa plataforma. É abordado um pequeno histórico do desenvolvimento do Arduino, o seu uso e diversas placas.
Introdução para iniciantes sobre a plataforma Arduino.
Nessa introdução eu mostro alguns esquemas elétricos básicos para você ir montando na protoboard e ir acompanhando os exemplos que são mostrados.
Você pode acompanhar a leitura desse slide no youtube: https://www.youtube.com/watch?v=Xv-oT41FIRQ
Esta apresentação inicia um estudo com a plataforma Arduino. Visa despertar o interesse pela tecnologia e fomentar os primeiros passos para quem se interesse pelo assunto.
Apresentação dos microntroladores, especialmente da linha pic16f, onde o alvo foi o PIC16f628a, que é bem simples de encontrar para comprar e de programar. Apesar de trabalhar com apenas 8 bits, é o robusto o suficiente para realizar automação que requeira PWM, comparação, USART; 16 I/O; e uma série de outras vantagens.
Neste slide é apresentado o Arduino de forma simples, mas muito simples mesmo, para as pessoas que gostariam de conhecer essa poderosa ferramenta. O Arduino pode ser utilizado para qualquer pessoa de qualquer área do conhecimento. Ao fim da apresentação é mostrado o primeiro programa, o blink, que é feito de forma padrão para quem quer iniciar seus estudos.
O Arduino Hack Day foi realizado em Ilheus, Brasilia, Campo Grande e São Paulo. Uma iniciativa Globalcode e EletronLivre em conjunto com diversas pessoas e instituições locais. http://www.globalcode.com.br/noticias/ArduinoHackDay
Introdução ao Arduino: Fundamentos e Aplicações de MicrocontroladoresCarlos Eduardo Pantoja
Curso oferecido aos alunos:
i) do Projeto Horta do CEFET/RJ unidade MG para automatização de uma horta vertical e um berçario de plantas;
ii) do Projeto Turing do CEFET/RJ unidade NF nos dias 18/11/2016 e 19/11/2016.
Veja mais trabalhos em: fb.com/turingproject
Instagram: @prof.pantoja
Palestra: Robótica com Arduino
Apresentada no Workshop de Robótica Educacional realizado durante a RoboCup, em 23 de julho de 2014.
Apresentada pela primeira vez no VII Encontro Técnico Estudantil organizado pela ISA-ES, em 13 de agosto de 2011.
Autor: Felipe Nascimento Martins
Esta apresentação inicia um estudo com a plataforma Arduino. Visa despertar o interesse pela tecnologia e fomentar os primeiros passos para quem se interesse pelo assunto.
Apresentação dos microntroladores, especialmente da linha pic16f, onde o alvo foi o PIC16f628a, que é bem simples de encontrar para comprar e de programar. Apesar de trabalhar com apenas 8 bits, é o robusto o suficiente para realizar automação que requeira PWM, comparação, USART; 16 I/O; e uma série de outras vantagens.
Neste slide é apresentado o Arduino de forma simples, mas muito simples mesmo, para as pessoas que gostariam de conhecer essa poderosa ferramenta. O Arduino pode ser utilizado para qualquer pessoa de qualquer área do conhecimento. Ao fim da apresentação é mostrado o primeiro programa, o blink, que é feito de forma padrão para quem quer iniciar seus estudos.
O Arduino Hack Day foi realizado em Ilheus, Brasilia, Campo Grande e São Paulo. Uma iniciativa Globalcode e EletronLivre em conjunto com diversas pessoas e instituições locais. http://www.globalcode.com.br/noticias/ArduinoHackDay
Introdução ao Arduino: Fundamentos e Aplicações de MicrocontroladoresCarlos Eduardo Pantoja
Curso oferecido aos alunos:
i) do Projeto Horta do CEFET/RJ unidade MG para automatização de uma horta vertical e um berçario de plantas;
ii) do Projeto Turing do CEFET/RJ unidade NF nos dias 18/11/2016 e 19/11/2016.
Veja mais trabalhos em: fb.com/turingproject
Instagram: @prof.pantoja
Palestra: Robótica com Arduino
Apresentada no Workshop de Robótica Educacional realizado durante a RoboCup, em 23 de julho de 2014.
Apresentada pela primeira vez no VII Encontro Técnico Estudantil organizado pela ISA-ES, em 13 de agosto de 2011.
Autor: Felipe Nascimento Martins
Following Apple's announcement of the new iPhone 6S, here's a visual look back at how the iPhone camera has changed over the years. Learn more: http://www.lynda.com/iOS-tutorials/iPhone-iPad-Photography-iOS-9/419364-2.html
Introdução a Sistemas Embarcados com Arduino - mini-cursoFelipe Martins
Mini-curso de Introdução a Sistemas Embarcados com Arduino.
Conteúdo:
- Sistemas embarcados;
- Arduino: características de hardware;
- Arduino: características de software;
- Microcontrolador;
- Eletrônica: conceitos básicos;
- Planejamento de programas;
- Sensores digitais (problemas e debounce);
- Sensores analógicos (Intensidade luminosa, deslocamento angular ou linear, Força/Torque, proximidade, aceleração/inclinação, temperatura);
- Comunicação serial (USART, SPI, I2C);
- Controle de cargas com PWM;
- LCD (displays de cristal líquido);
- Armazenamento de dados em cartão SD;
- Acionamento de motores e servomotores;
- Simulação de sistemas com Arduino;
- Práticas (montagem e programação);
- Avançando com o Arduino: shields, comunicação sem fio, Arduino com MATLAB, aplicações em robótica...
Introdução a plataforma arduino, com exemplos de codigos para serem feitos na hora da codificação.
Do basico ao avançado ,com exemplos que vai do blink ate exemplos com o ethernet shield.
Ensina de um simples loop, ate ligar um led usando a internet.
Workshop de iniciação à Robótica com o Farrusco (robô desenvolvido pela Artica, baseado em Arduino)
Objectivos deste workshop, visando o desenvolvimento das seguintes capacidades:
Pensamento Algorítmico
Resolução de Problemas
Computação Física
Linguagens de Programação
Microcontroladores
Electrónica
Robótica
Interacção Homem-Máquina (HCI, HRI)
3. http://facebook.com/CursoArduinoMinas
http://facebook.com/BasicaoDaEletronica
http://facebook.com/TelefoniaEAutomacao
Quem Sou?
FIC - Faculdade Integrada do Ceará - 2005
Projeto e Implementação de Redes de Computadores
Um dezena ou mais de cursos de programação e gestão de projetos desde 2003
Atuei como Bolsista em dois projetos de mestrado,
cheguei a ser cotado como bolsista para mestrado na UFC, com 4 semestres de faculdade.
Nós últimos 15 anos buscando influenciar e desenvolver um projeto Social de tecnologia, inspirado no Woz
(Worzniak)
A 6 anos conheci o xBee
A 3 anos conheci o Arduino
3
4. http://facebook.com/CursoArduinoMinas
http://facebook.com/BasicaoDaEletronica
http://facebook.com/TelefoniaEAutomacao
O que espero com este curso
Abrir a porta do mundo para quem quer conhecer as possibilidades de se criar seu
próprio projeto;
Apresentar os conceitos básicos do Arduino e tópicos relacionados;
Alimentar o desejo dos participantes na tecnologia e mostrar que é melhor criar do que
ser [CTRL+C]/[CTRL+V];
Se tornarem programadores de verdade, e mostrar que nem sempre o caminho mais fácil
é o mais adequado e elegante;
Programar é mais que escrever código, é tanto quanto escrever poesias e belos contos.
4
12. http://facebook.com/CursoArduinoMinas
http://facebook.com/BasicaoDaEletronica
http://facebook.com/TelefoniaEAutomacao
Microcontrolador: ATmega328
Voltagem padrão de Operação: 5V
Nível de voltagem de entrada recomendado: 7 a 12V, Limites: 6-20V
Pinos de Entrada e Saída Digital: 14 (sendo 6 com saída PWM)
+ 6 compartilhadas com as entradas Analógicas.
Pinos de Entrada Analógica: 6 (que também podem ser usadas como digital)
Limite de corrente por saída 5V: 40mA, máximo de 200mA simultâneo.
Memória Flash (Memória de programa): 32KB,
sendo 0.5KB é usado pelo Bootloader.
SRAM (Memória de dados): 2KB
EEPROM: 1KB
Clock: 16Mhz
12
Características Técnicas
17. http://facebook.com/CursoArduinoMinas
http://facebook.com/BasicaoDaEletronica
http://facebook.com/TelefoniaEAutomacao
O Arduino é composto por um framework chamado Wiring
Em sua forma original o Wiring dá suporte para cores AVR, AVR Xmega, AVR
Tiny, MSP430 da TI, PIC24/32 e STM M3 ARM
No Arduino podemos dizer que usamos um Dialeto C/C++ chamado Wiring, que é
nada mais que a Linguagem C/C++ empoderada com o Framework Wiring.
Compilador utilizado para Arduino é o GCC-AVR,
Há outros compiladores para a linha AVR: IAR, Eclipse + GCC, ATMel Studio
(Visual Studio + GCC)
17
C, C++ ou Wiring
21. http://facebook.com/CursoArduinoMinas
http://facebook.com/BasicaoDaEletronica
http://facebook.com/TelefoniaEAutomacao
Usando as Portas Analógicas
analogReference(type);
int analogRead(port);
analogWrite(port,value);
21
anlogReference: permite definir uma nova referência de
limites para conversão analógica, podendo ser
DEFAULT (5V), INTERNAL (1.1V), EXTERNAL (usa o
pino ARef)
analogRead: Faz a leitura do nível de tensão da porta
analógica A0 até A5, retornando um valor entre 0 e
1023, veremos mais a frente mais detalhes;
analogWrite: simula uma saída analógica, podem ser
usadas apenas em pinos que possuam recurso PWM,
sendo as portas 3,5,6,9,10,11. Permite valores entre 0
(0%) e 255(100%) do nível de tensão (5V)
23. http://facebook.com/CursoArduinoMinas
http://facebook.com/BasicaoDaEletronica
http://facebook.com/TelefoniaEAutomacao
Amostragens de 10bits, ou seja valores resultantes entre 0 e 1023, sendo 5V de
referência, resulta em 5V/1024, ou seja uma precisão de 0,0048V (5mV);
Tempo entre conversões de 500nS (0,5uS), Considerando que cada instrução no Arduino
gasta 62,5nS, é um tempo razoável;
Nunca mude a tenção de referência em ARef diretamente, primeiro ajuste para interno
(DEFAULT), ajuste a nova tensão, e retorne para EXTERNAL;
Sempre dê um 1mS entre leituras em portas diferentes;
Certifique-se que o resistor de Pull-Up está desativado sempre colocando a porta como
(INPUT) apenas;
23
Características da Conversão Analógica
24. http://facebook.com/CursoArduinoMinas
http://facebook.com/BasicaoDaEletronica
http://facebook.com/TelefoniaEAutomacao
Cada porta digital é capaz de fornecer 5V e uma corrente máxima de 40mA, a nível de stress;
O Arduino (ATmega) no total é capaz de fornecer 200mA, portanto apenas 5 portas em seu limite
de stress;
A conversão analógica leva .5uS para ser executada, porém há também um tempo necessário
para estabilização quando se troca o nível de tenção de referência;
Evite deixar as portas analógicas flutuando, procure colocar um resistor de pull-up ou pull-down
quando isso puder acontecer. Válido também para as portas digitais.
As portas de IO possuem um resistor de PULL-UP que podem ser ativado, cuidado ao usa-lo nas
portas analógicas, ele pode interferir na leitura dos valores da porta, seu valor é entre 20K até 50K
24
Detalhes e Macetes Portas
26. http://facebook.com/CursoArduinoMinas
http://facebook.com/BasicaoDaEletronica
http://facebook.com/TelefoniaEAutomacao
Sem muitos detalhes, TTL atua com 5V, RS232 atua de -12 a +12V;
É Preciso um conversor para adequar o sinal, as vezes um simples
conjunto de transistores para converter entre TTL e RS232;
Conversão para USB é feita nos modelos antigos usando um chip chamado
FTTI, nos modelos atuais usa um ATmega16U2, que traz grandes
possibilidades, pois o firmware pode ser atualizado.
O conversor USB Serial TTL do Arduino pode ser usado em diversas
situações, como acessar outros dispositivos.
26
TTL vs RS232 vs USB
28. http://facebook.com/CursoArduinoMinas
http://facebook.com/BasicaoDaEletronica
http://facebook.com/TelefoniaEAutomacao
Comunicação Serial
byte Serial.available();
char Serial.read();
char Serial.peek();
void SerialEvent(){}
28
available: Para saber se há dados disponíveis consulta
verifique consulte a serial usando available(), irá retornar o
número de bits;
read: lê o próximo caracter disponível na porta serial.
peek: lê o caracter que está disponível na serial, normalmente
o último caracter lido pela chamada de Serial.read();
SerialEvent: é uma função usada para capturar informações
enviadas entre interações do bloco "loop()", somente é
chamada quando há caracteres disponíveis na serial e a
função "loop()" termina.
35. http://facebook.com/CursoArduinoMinas
http://facebook.com/BasicaoDaEletronica
http://facebook.com/TelefoniaEAutomacao
Tipos de variáveis
char: 1 Byte, representações de caracteres,
limites entre -128 e +127, “unsigned char"
valores entre 0 e 255;
byte, similar ao "unsigned char", sempre
valores de 0 a 255;
bool, sempre “true” (1) ou “false” (0)
int, 2 Bytes, valores de -32768 a 32767,
“unsigned int” limites entre 0 e 65535;
long, 4 Bytes, valores de -2,147,483,648 a
2,147,483,647, “unsigned long” limites entre 0
a 4,294,967,295;
float, usado para números complexos e
representados por notação cientifica, limites
entre -3.4028235E+38 e 3.4028235E+38;
string/String, representa um arras de char
(char[]), usado para armazenar sequências de
caracteres, em especial finalizadas com “0”, já
String, com “S" maiúscula, é um objeto com
diverso recursos para manipulação de Strings.
35
41. http://facebook.com/CursoArduinoMinas
http://facebook.com/BasicaoDaEletronica
http://facebook.com/TelefoniaEAutomacao
long millis();
Retorna o tempo em milessegundos desde o momento de ativação do Arduino. Não funciona dentro
de interrupções, em 50 dias o Arduino zeta o valor;
long micros();
Retorna o tempo em microssegundos, tem resolução multiplica de 4, além disso seu valor zera a
cada 70 minutos, devido a limitação de memória.
delay(unsigned long);
Interrompe seu código pelo tempo em milessegundos informados. As interrupções continuam
funcionando, porém não funciona dentro das interrupções.
delayMicrosseconds(unsigned int);
Este delay é similar ao delay(), porem ocorre em microssegundos, pode ser usado até 16383uS.
41
Controlando o Tempo
47. http://facebook.com/CursoArduinoMinas
http://facebook.com/BasicaoDaEletronica
http://facebook.com/TelefoniaEAutomacao
Obrigado
Musica de Abertura: Underdog -
Kassabian
Arte base criada pelo Designer
Digital Elimar Santos de Sete Lagoas.
Imagens obtidas na internet,
reproduzidas conforme licenças.
Apoio: Ed Waldo, Thiago Munhoz,
Marcelino Freitas - IFPI
Eternamente grato aos amigos do
Ceará/Fortaleza, em especial Prof.
Aminadabe e Prof. Inacio
Eternamente Grato a muitos outros
amigos em Minas, Rio, Bahia,
Brasilia, Pernambuco, e pelo mundo a
fora.
Eternamente Grato a minha família.
47
Notas do Editor
Usa 4K para o bootloader porque ele nào tem o acoplador usb serial ttl, já que o próprio chip atmega32u4 tem a porta USB diretamente, portanto o código de adaptação USB já vem no bootloader.
Usa 4K para o bootloader porque ele nào tem o acoplador usb serial ttl, já que o próprio chip atmega32u4 tem a porta USB diretamente, portanto o código de adaptação USB já vem no bootloader.
Fale um pouco do ARM-M, ARM-A
OTG
consumo total em todas as portas Digitais 130mA
Não pode suar os pinos de 5V e 3.3V para alimentar a placa, pois é preciso ser regulado, pode danificar
Falar da Linguagem Wiring, sua origem.
O Framework Wiring completo pode ser obtida no site: http://wiring.org.co/
Wiring é uma iniciativa de Hernando Barragán da Universidade de Los Andes, da escola de Design e Arquitetura. Foi criada no Instituto de Interação e Design de Ivrea na Italia e é atualmente desenvolvida na Universidade de Los Andes na Colombia.
Já o IAR é um sistema integrado de desenvolvimento que gera código para uma ampla gama de microcontroladores e processadores, sendo produzido pela IAR System.
Falar da estrutura do código, funções:
void setup(){}
void loop(){}
void serialevent(){}
Aqui veremos o uso das portas Digitais tanto como entrada e saída, a escolha das portas e um pouco de PWM (Pulse Width Modulation) e interrupções além das portas que são de uso especifico como serial e SPI (Serial Processor Interface)
Neste ponto iremos tratar as portas analógicas, tanto para leitura (A0-A5) como também as portas PWM, trataremos superficialmente sobre o que é PWM. Na leitura analógica veremos os cálculos envolvidos, o uso da porta de controle analogRef.
Primeiras instruções, inicializa a serial, envia um valor, ou envia um valor e faz o salto de linha.
Baud Rates disponíveis:
300, 600, 1200, 2400, 4800, 9600 (Padrão), 14400, 19200, 28800, 38400, 57600,
ou 115200
fazer uma pequena pausa para esclarecer dúvidas e pegar o ritmo de novo.
Precisamos falar do conceito de blocos de código, para falar de contexto, sua identificação através de funções, e seu principalmente da importância na organização do código. E impacto na economia de memória.
Nas Arduinos de 16Mhz a função micros() retorna valores múltiplos de 4, já nos Arduinos de 8Mhz tem resolução de 8uS, ou seja retorna múltiplos de 8.
se der tempo vamos bater um papo sobre o assunto e analisar o Arduino voltando a discutir sua arquitetura.