Disciplina: Arquitectura Computadores ARDUINO · A última placa a ser lançada trouxe inovações...

18
ARDUINO Disciplina: Arquitectura de Computadores Realizado por: 20172111 – David Sotto-Mayor 20172128 – Gonçalo Roldão 20172133 – Dora Moreira Ideal para quem pretende entrar pela primeira vez no mundo da electrónica

Transcript of Disciplina: Arquitectura Computadores ARDUINO · A última placa a ser lançada trouxe inovações...

Page 1: Disciplina: Arquitectura Computadores ARDUINO · A última placa a ser lançada trouxe inovações a nível de hardware substituindo o conversor USB-Serial por um microprocessador

Disciplina:

Arquitectura de Computadores

Realizado por: 201721111 – David Sotto-Mayor Machado 20172128 – Gonçalo Roldão

20172133 – Dora Moreira

ARDUINO

Disciplina:

Arquitectura de Computadores

Realizado por: 20172111 – David Sotto-Mayor

20172128 – Gonçalo Roldão

20172133 – Dora Moreira

Ideal para quem pretende entrar pela primeira vez no mundo da electrónica

Page 2: Disciplina: Arquitectura Computadores ARDUINO · A última placa a ser lançada trouxe inovações a nível de hardware substituindo o conversor USB-Serial por um microprocessador
Page 3: Disciplina: Arquitectura Computadores ARDUINO · A última placa a ser lançada trouxe inovações a nível de hardware substituindo o conversor USB-Serial por um microprocessador

Arquitectura de Computadores Trabalho Final: Arduino

3

Índice Introdução ........................................................................................................................................ 5

O que é o Arduino ............................................................................................................................ 5

História do Arduino ........................................................................................................................... 6

Evolução das placas Arduino ....................................................................................................... 6

As aplicações do Arduino ................................................................................................................. 9

Jogos ........................................................................................................................................... 9

Residências ................................................................................................................................. 9

Comércio ..................................................................................................................................... 9

Indústria ....................................................................................................................................... 9

Brinquedos ................................................................................................................................... 9

Ensino .......................................................................................................................................... 9

Museus ........................................................................................................................................ 9

A Arqitectura do Arduino ................................................................................................................ 10

A Placa Arduino ......................................................................................................................... 12

Os Microprocessadores ATmega ............................................................................................... 13

O IDE ......................................................................................................................................... 16

Comparação com outros dispositivos ............................................................................................ 17

Beaglebone Black ...................................................................................................................... 18

Raspberry Pi .............................................................................................................................. 18

Intel Galileo ................................................................................................................................ 18

Page 4: Disciplina: Arquitectura Computadores ARDUINO · A última placa a ser lançada trouxe inovações a nível de hardware substituindo o conversor USB-Serial por um microprocessador
Page 5: Disciplina: Arquitectura Computadores ARDUINO · A última placa a ser lançada trouxe inovações a nível de hardware substituindo o conversor USB-Serial por um microprocessador

Arquitectura de Computadores Trabalho Final: Arduino

5

Introdução

O que é o Arduino “O Arduino é uma plataforma formada por um equipamento electrónico e um ambiente de programação integrado (Integrated Development Enviroment - IDE) para prototipagem electrónica e de software. O equipamento electrónico da plataforma Arduino consiste numa placa de circuitos integrados, devidamente equipada com os seus componentes electrónicos e cujo componente central é um microprocessador do tipo AVR da Atmel®.” 1

Para responder à necessidade de construir um circuito interactivo de baixo custo e manuseamento fácil, nasceu o Arduino. Em termos simples, uma plataforma formada por dois componentes. A placa, que é o hardware usado para construir os projectos, e o IDE, software onde é escrito o código com as instruções para a placa. O IDE é escrito na linguagem Java e automatiza tarefas como depuração, compilação e envio do binário compilado para o microcontrolador na placa Arduino. O código utilizado pelo IDE, por sua vez, é uma variação da linguagem C, baseada na linguagem Wiring. O Arduino é resumidamente um pequeno computador que pode ser programado para processar entradas e saídas entre o dispositivo e os componentes externos a ele conectados, interagindo com o ambiente através do hardware e software. Existem variadíssimos kits e módulos, os shields, que podem ser integrados na placa do Arduino de maneira a conferir-lhe habilidades adicionais, conforme a necessidade de quem está a programar. É possível por exemplo, conferir ao Arduino a capacidade de comunicar via Bluetooth ou WIFI, ou ligá-lo a sensores de movimento, som, temperatura, entre muitos outros. Também é possível ver o Arduino pela óptica da Internet das Coisas, já que permite criar equipamentos com capacidade de transmitir dados e interagir directamente com a internet sem a intervenção humana. A grande vantagem do Arduino é a sua facilidade de utilização. Qualquer utilizador com interesse na área da electrónica e computação é capaz de aprender o básico e criar os seus próprios projectos em tempo útil.

1 In Ebook Arduino - Manual de iniciação à Electrónica

Page 6: Disciplina: Arquitectura Computadores ARDUINO · A última placa a ser lançada trouxe inovações a nível de hardware substituindo o conversor USB-Serial por um microprocessador

Arquitectura de Computadores Trabalho Final: Arduino

6

História do Arduino O Arduino foi criado em 2005, pelo professor Massimo Banzi em Itália para satisfazer a necessidade de introduzir no mercado placas de baixo custo programáveis que os seus alunos pudessem adquirir e usar nas suas aulas de programação e electrónica. A placa Arduino foi considerada um sucesso recebendo um prémio na categoria de comunidades Digitais em 2006, pela Prix Ars Electronica. Os Arduinos originais eram constituídos por microprocessadores da série megaAVR tais como os ATmega8, ATmega168, ATmega328, ATmega1280. O seu hardware actual possui um microprocessador RISC Atmel AVR de arquitectura Harvard modificada de 8-bit, sendo que diferentes Arduinos têm diferentes performances.

Evolução das placas Arduino As placas originais utilizavam uma ficha serial para se conectarem com o computador e um cabo Jack para alimentação da placa.

Figura 1 - Arduino Serial Figura 2- Arduino Serial V2.0

Devido à grande popularidade do uso das fichas USB e da possibilidade de alimentar directamente a placa através desta, foi criada a placa Arduino USB. Outro factor interessante é que estas placas possuem um jumper para seleccionar a alimentação da placa por USB ou por Jack.

Figura 3 - Arduino USB Figura 4 - Arduino USB 2.0

Page 7: Disciplina: Arquitectura Computadores ARDUINO · A última placa a ser lançada trouxe inovações a nível de hardware substituindo o conversor USB-Serial por um microprocessador

Arquitectura de Computadores Trabalho Final: Arduino

7

Depois do Arduino USB surgiu a placa Arduino Extreme que inovou a montagem dos seus componentes para SMD, o que facilita a montagem dos mesmos e permite a utilização das duas faces da placa pois não existem furos. Lançou também os conectores headers fêmea e foram introduzidos dois leds para indicar o tráfego de dados entre a placa e o computador. Este modelo ficou conhecido por “padrão Arduino”.

Figura 5 - Arduino Extreme Figura 6 - Arduino Extreme V2

A placa Arduino NG trouxe como grandes novidades a introdução do conversor USB-SERIAL: FT232RL que necessita de menor quantidade de componentes externos em relação ao seu predecessor e a introdução dos microprocessadores ATmega 168 que aumentaram a capacidade de memória para 16KB.

Figura 7 - Arduino NG Figura 8 - Arduino NG REV C

Page 8: Disciplina: Arquitectura Computadores ARDUINO · A última placa a ser lançada trouxe inovações a nível de hardware substituindo o conversor USB-Serial por um microprocessador

Arquitectura de Computadores Trabalho Final: Arduino

8

Todas as placas referidas até agora necessitavam de reset externo para ativar o bootloader sempre que se fazia upload do código desejado para a placa. Foi então criada a placa Arduino Diecimila para resolver este problema, pois possui um circuito de reset que permite que sempre que exista upload de código, a placa entre em modo bootloader automaticamente. Foram introduzidos também nesta placa, fusíveis para proteger a USB em caso de curto-circuito.

Figura 9 - Arduino Duemilanove Figura 10 - Arduino Diecimila

A última placa a ser lançada trouxe inovações a nível de hardware substituindo o conversor USB-Serial por um microprocessador ATmega8U2, que na revisão 3 foi substituído pelo ATmega16U2, além disto a descrição das entradas e saída foi melhorada para facilitar a identificação dos pinos. As principais inovações, contudo, ocorreram da revisão 2 para 3. Foram acrescentados mais 2 pinos após o conector AREF com a função de serem utilizados como entradas analógicas ou para comunicação I2C que é uma espécie de protocolo. Acrescentaram-se também 2 pinos no conector power, um IOREF que permite que os shields se adaptem à tensão da placa e o segundo pino fica reservado para aplicações futuras.

Figura 11 – Arduino UNO Figura 12 - Arduino UNO Rev2 Figura 13 - Arduino UNO Rev3

Page 9: Disciplina: Arquitectura Computadores ARDUINO · A última placa a ser lançada trouxe inovações a nível de hardware substituindo o conversor USB-Serial por um microprocessador

Arquitectura de Computadores Trabalho Final: Arduino

9

As aplicações do Arduino

Jogos Jogos interactivos que usam o movimento do utilizador para controlar o jogo, jogos de tiros, laser maze, em que o utilizador tem de ser desviar os feixes laser. Os clássicos como a batalha naval ou o famoso Snake da Nokia. Jogos de xadrez em que a movimentação das peças é controlada e registada pelo Arduino.

Residências Controlo automático da iluminação e temperatura. Estores automáticos controlados pelo telemóvel. Alimentadores de animais. Controlo por voz dos electrodomésticos. Sistemas de monitorização da qualidade da água. Construção de telecomandos multiusos. Sistema biométrico para abertura de portas automáticas.

Comércio Prateleiras de supermercado inteligentes que percebem a saída ou colocação de produto. Contagem de clientes. Exibição de peças publicitárias apenas com a aproximação de pessoas.

Indústria Máquinas para inspecção de peças. Controlo por voz de máquinas. Localização de ferramentas, equipamentos e produtos.

Brinquedos Carros controlados à distância, robôs que imitam os gestos de uma criança. Criar sons e luzes com o objectivo de entreter.

Ensino O próprio Arduino como ferramenta de aprendizagem. Simuladores interactivos de forças físicas. Medidores de gases, PH, força e peso.

Museus Desenvolver exibições que respondem à presença do visitante.

Page 10: Disciplina: Arquitectura Computadores ARDUINO · A última placa a ser lançada trouxe inovações a nível de hardware substituindo o conversor USB-Serial por um microprocessador

Arquitectura de Computadores Trabalho Final: Arduino

10

A Arqitectura do Arduino Falar da arquitectura de um Arduíno será quase descrever a anatomia de um sistema neurológico e sensorial implementado num circuito digital. O Arduino é pequeno, é barato, facilita a introdução de recém-chegados ao mundo da electrónica, tem menos memória e velocidade de processamento que alguns dos seus competidores mais directos (como veremos na secção seguinte) mas é uma máquina que representa a capacidade humana de receber estímulos sensoriais, interpretá-los, e agir de acordo com esses estímulos conforme a sua programação.

Modelo sensorial do Arduino2

Dessa anatomia, fazem 3 grupos de componentes fisícos, e um ambiente de desenvolvimento. O primeiro grupo de componentes físicos, são os sensores externos, que fornecem os inputs sensoriais, conferindo ao Arduino os cinco sentidos dos humanos.

• Tacto: sensores de pressão, sensores de temperatura

• Visão: sensores fotoeléctricos, sensores de movimento e outros

• Ouvido: sensores sonoros

• Cheiro: sensores como o MQ-136 podem identificar concentrações de determinadas moléculas no ar, identificando a presença de um cheiro, como por exemplo, determinada concentração de H2S – Sulfito de Hidrogénio, indica a presença do aroma de dejectos

• Paladar: Foram desenvolvidos sensores que permitem ao Arduino consegue medir os diferentes sabores3. Mais do que medir esses sabores, o Professor Nimesha Ranasinghe

2 Getting Started With Arduino, 2nd Edition, Massimo Banzi, O’Reilley 2007 3 Tese Phd. do Prof. Dr. Nimesha Ranasinghe http://scholarbank.nus.edu.sg/handle/10635/37546

Page 11: Disciplina: Arquitectura Computadores ARDUINO · A última placa a ser lançada trouxe inovações a nível de hardware substituindo o conversor USB-Serial por um microprocessador

Arquitectura de Computadores Trabalho Final: Arduino

11

descobriu como os reproduzir colocando um eléctrodo na língua de um humano. Eléctrodo esse comandado também pelo Arduino.

O segundo grupo de componentes físicos é composto pela placa, propriamente dita, onde o microprocessador recebe os inputs, os interpreta e processa de acordo com a sua programação, e transmite as operações correspondentes aos diferentes dispositivos de output que estiverem ligados. É por assim dizer, o cérebro deste autêntico sistema neurológico. Por fim, no terceiro grupo de componentes físicos temos os diversos mecanismos electrónicos que permitem ao Arduíno comunicar com o exterior. Estes mecanismos podem ir desde um simples led, a um monitor, ou de um simples motor a peças de robótica, de um emissor de um simples sinal sonoro, a comunicações wireless que o permite controlar sistemas mais complexos. Ou seja, em termos de comunicação com o exterior, o Arduino vai até ao limite da tecnologia existente. Por fim, o IDE (ambiente de desenvolvimento integrado), permite programar todo o comportamento do Arduino

Page 12: Disciplina: Arquitectura Computadores ARDUINO · A última placa a ser lançada trouxe inovações a nível de hardware substituindo o conversor USB-Serial por um microprocessador

Arquitectura de Computadores Trabalho Final: Arduino

12

A Placa Arduino A placa Arduino Uno é um circuito digital que cabe na palma da mão mas contém um autêntico computador num pequeno chip de 28 pinos, o microprocessador ATmega328

A placa Arduino Uno4

Além do microprocessador, estão presentes todos os componentes necessários para o correcto funcionamento da placa, e para a sua comunicação com um computador, independentemente de qual for seu sistema operativo.

• 14 pinos digitais de IO (numerados de 0 a 13), servem tanto para input como para output, cabendo ao utilizador programar a sua funcionalidade através do IDE

• 6 pinos analógicos de Input: Estes pinos estão reservados à conectividade com sensores que emitam sinais analógicos, como por exemplo voltagens, e são convertidos em valores de 0 a 1023 (10 bits)

• Porta USB: Utilizada para receber alimentação e para comunicação com um computador.

• Porta AC 2.1mm para alimentação de 9 volts, que pode ser fornecida por um transformador ou por uma pilha através do adaptador fornecido no pacote inicial.

4 Getting Started With Arduino, 2nd Edition, Massimo Banzi, O’Reilley 2007

Page 13: Disciplina: Arquitectura Computadores ARDUINO · A última placa a ser lançada trouxe inovações a nível de hardware substituindo o conversor USB-Serial por um microprocessador

Arquitectura de Computadores Trabalho Final: Arduino

13

Os Microprocessadores ATmega Consoante a versão de placa Arduino, estaremos perante um dos microprocessadores ATmega:

Modelo Microprocessador

Arduino Uno ATmega 328 Arduino Duemilinove ATmega168 ou ATmega 328 Arduino Diecimilia ATmega168

Arduino Nano ATmega168 ou ATmega 328 LilyPad ATmega168V Pro ATmega168 ou ATmega 328 Pro mini ATmega168

Podemos comparar os microprocessadores analisando as suas características:

ATmega168

ATmega328

Flash 16 KB Flash 32 KB SRAM 1 KB SRAM 2 KB EEPROM 512 bytes EEPROM 1 KB Clock máx 20 MHz Clock máx 20 MHz

ADC 10 bit ADC 10 bit

Consumo a 25º C

250 mA 1 MHz (1.8 V)

Consumo a 25º C

250 mA 1 MHz (1.8 V)

Outros

PWM

Outros

PWM PC PC

SPI SPI RS232 RS232

As diferenças mais notórias são ao nível das memórias Flash, SRAM e EEPROM. De facto, o ATmega 168 e o ATmega328 partilham a mesma arquitectura variando essencialmente nas capacidades de memória.

Page 14: Disciplina: Arquitectura Computadores ARDUINO · A última placa a ser lançada trouxe inovações a nível de hardware substituindo o conversor USB-Serial por um microprocessador

Arquitectura de Computadores Trabalho Final: Arduino

14

A Arquitectura ATmega168 e ATmega3285

São microprocessadores de 8 bits baseados numa Arquitectura de Harvard modificada

O CPU

A memória interna de dados

Os principais blocos

Herda da Arquitectura de Harvard a utilização de vias de dados separadas para programas e dados e a memória de Flash pode ser usada para armazenar dados. No Arduino Uno, 512 bytes estão

5 https://sites.google.com/site/ronaldoecaetano/microcontrolador/atmega328

Page 15: Disciplina: Arquitectura Computadores ARDUINO · A última placa a ser lançada trouxe inovações a nível de hardware substituindo o conversor USB-Serial por um microprocessador

Arquitectura de Computadores Trabalho Final: Arduino

15

ocupados com o bootloader, e o restante dos 32KB está disponível para os programas que carregarmos na placa. A memória EEPROM está ligada ao controlador de periféricos de entrada e saída, não estando disponível para instruções de processamento de dados. O Program Counter, que aponta para a próxima instrução está ligado à memória Flash e o CPU dispõe dum pipeline de um nível, que permite o carregamento duma instrução enquanto a anterior está a ser executada. A memória interna de dados divide-se pelos registos de uso geral, pelos registos de entrada e saída e pela memória SRAM (2KB onde são armazenados os operandos das instruções em curso) Estes microprocessadores possuem 32 registos internos para uso geral, com 8 bits cada, mas os 6 últimos podem ser usados aos pares, como se fossem 3 registos de 16 bits (X, Y, e Z) pra endereçamento indireto da memória. A Unidade Aritmética e Lógica trabalha a 8 bits, obtendo os operandos dos registos e colocando o resultado da operação no primeiro registo, excepto em operações de multiplicação, que ao contrário das restantes operações que correm num único ciclo de clock, requerem dois ciclos para produzir resultados. .

Page 16: Disciplina: Arquitectura Computadores ARDUINO · A última placa a ser lançada trouxe inovações a nível de hardware substituindo o conversor USB-Serial por um microprocessador

Arquitectura de Computadores Trabalho Final: Arduino

16

O IDE O Sistema de Desenvolvimento integrado do Arduino é open-source, e está disponível para download gratuito em www.arduino.cc. É desenvolvido em Java, requerendo apenas que o computador tenha instalado o JRE-Java Runtime Environment. Está assim, disponível para Windows, Mac e Linux, variando essencialmente entres as suas versões os drivers da porta USB do Arduino. Como linguagem de alto nível, apresenta um conjunto de instruções herdadas da linguagem C.

Opções de Compilação, Depuração e Upload para o Arduino

Barra de tarefas

O IDE com um novo Sketch (programa)

Destacamos as seguintes funções do IDE:

• Verificar/Compilar: Verifica se há erros de sintaxe no código-fonte e executa a sua compilação.

• Carregar: Envia o sketch compilado para a placa Arduino.

• Incluir Biblioteca: É possível re-utilizar código pré feito e disponível nas bibliotecas padrão do Arduino.

Page 17: Disciplina: Arquitectura Computadores ARDUINO · A última placa a ser lançada trouxe inovações a nível de hardware substituindo o conversor USB-Serial por um microprocessador

Arquitectura de Computadores Trabalho Final: Arduino

17

Comparação com outros dispositivos É difícil nomear concorrentes directos ao Arduino. Encontram-se no mercado outros microcontroladores, com enormes diferenças no hardware utilizado, resultado de propósitos significativamente difentes aquando do seu desenvolvimento, e sobretudo, colossais diferenças de preço.

Nome Arduino Uno Raspberry Pi Beagle Bone

Modelo R3 3 B Black

Preço (Kuantokusta 03-02-2018)

17,70 € 44,99 € 42,59

Tamanho 2,95"*2,1" 3,37"*2,125" 3,4"*2,1"

Processador Atmega 328 ARMv8 Cortex

A53 Quad-Core

Cortex A8

Velocidade de Clock 16 MHz 1,2 Ghz 700 MHz

RAM 2 KB 1 GB 256 MB

Flash 32 KB cartão

microSD cartão

microSD

EEPROM 1 KB - -

Tensão de Alimentação 7 a 12 V min 2,1 V 5 V

Corrente Mínima 42 mA 700 mA 170 mA

Pinos GPIO 14 8 65

Entradas Analógicas 6 - 7

IDE Arduino IDLE, Scratch, Squeak, Linux,

Python

Scratch, Squeak, Linux,

Python

Ethernet Através de

Shields 10/100 10/100

Wireless Através de

Shields Wireless

Bluetooth 4.1 -

USB 1 USB 4 x USB 2 1 USB 2.0

Saída de Vídeo Através de

Shields HDMI 1.4

RCA HDMI

Saída de Áudio Através de

Shields Jack 3.5 HDMI

Embora falemos de conceitos semelhantes, as placas BeagleBone e Raspberry Pi já trazem tanto

software carregado, e têm capacidades de hardware tão diferentes que são procurados para outros

fins, nomeadamente para minicomputadores a correr distribuições Linux como Ubuntu ou Devian,

ou Android. O Arduino continua a prevalecer na introdução à electrónica pelo seu baixo custo, alta

Page 18: Disciplina: Arquitectura Computadores ARDUINO · A última placa a ser lançada trouxe inovações a nível de hardware substituindo o conversor USB-Serial por um microprocessador

Arquitectura de Computadores Trabalho Final: Arduino

18

modularidade e crescente disponibilidade de diferentes shields, simplicidade de interface, e

ambiente de desenvolvimento open-source e multiplataforma.

Beaglebone Black A BeagleBone é uma placa com maior poder de processamento que o Arduino, mais memória, pinos de entrada e saída, já com saída de vídeo HDMI, mas de desenvolvimento mais complexo que o Arduino. O preço é superior ao do Arduino, mas é pela facilidade de introdução à electrónica e à sua programação que o Arduino sobressai como placa de iniciação

Raspberry Pi

Pelo seu pequeno tamanho e elevado poder de processamento e capacidade de memória, número de portas USB e saída de vídeo HDMI, esta placa rapidamente foi adoptada pelo mercado como uma poderosa central de multimédia, sendo rápida a sua configuração com Linux e aplicações servidor como Plex, CouchPotato ou Sonarr.

Intel Galileo

A Galileo não é nem mais nem menos que um Arduino Uno com uma substituição do processo ATmega 328 por um Intel Quark 1000 a 400 MHz. O seu preço está acima dos 70€. A Intel tem no entanto um programa de disponibilização gratuita destas placas a instituições educativas.