Arduino vs Microprocessador vs Microcontrolador

11

Qual é a diferença entre um Arduino, um microprocessador e um microcontrolador? Estou tentando determinar o que é melhor para operar uma tela de toque resistiva barata.

Martin Marino
fonte

Respostas:

21

Um microprocessador:

normalmente é encontrado em um PC ou laptop de mesa e contém uma CPU e uma interface de memória externa, além de vários barramentos de E / S para conectar-se ao mundo externo, como SPI, I2C, UART, USB, LCD e outros. Os microprocessadores também terão um cristal externo para fornecer um relógio.

A maioria dos microprocessadores não possui memória somente leitura no chip; em vez disso, há um chip externo na placa-mãe onde o código de inicialização inicial está localizado. Nos PCs baseados em Intel, isso é chamado de BIOS ( Basic Input / Output System ) e também contém rotinas de E / S, além do código de inicialização inicial. O código de inicialização começa com um POST ( Power-On Self Test ) e, em seguida, procura ver onde carregar o próximo estágio do código de inicialização - a partir de um disco rígido, CD (ou antigamente) um disquete. Essa inicialização de segundo nível carrega o sistema operacional. (Pode haver até três níveis de código de inicialização em alguns sistemas.)

Alguns microprocessadores (geralmente aqueles destinados a smartphones e tablets, que têm opções limitadas de inicialização) possuem uma pequena quantidade de memória somente leitura que contém o código de inicialização inicial.

Refiro-me ao código de inicialização como somente leitura; na verdade, em alguns sistemas, ele pode ser atualizado. No entanto, isso é bastante arriscado; se algo der errado, o sistema não poderá mais ser inicializado.

Ao contrário dos microcontroladores, que executam seus programas a partir da memória somente leitura, após a inicialização dos microprocessadores, carregam seus programas na RAM externa e executam a partir daí.

Um microcontrolador:

por outro lado, é um IC autônomo de chip único que contém uma CPU, memória somente leitura para armazenar o programa, RAM para armazenar variáveis ​​usadas na execução do programa e vários barramentos de E / S para conectar-se ao mundo externo, como como SPI, I2C, UART e outros. Por si só, ele não pode executar nenhum programa sem ser programado através de uma interface externa para um PC. Um microcontrolador também pode precisar de um cristal externo para fornecer um relógio, no entanto, alguns têm um relógio interno.

Alguns microcontroladores (como o PIC32 da Microchip) possuem duas seções de memória flash; um para armazenar o código de inicialização (inicialização) e outro para armazenar o aplicativo. Isso facilita a atualização do código do aplicativo no local.

Para seu propósito, você desejaria usar um microcontrolador, não um microprocessador. Para usar um microcontrolador, você teria que criar sua própria placa ou comprar algum tipo de placa de desenvolvimento.

Um Arduino:

é uma placa desse tipo e contém um microcontrolador, típico de um AVR de 8 bits, como o ATmega8, ATmega168, ATmega328, ATmega1280 e ATmega2560, além de fontes de alimentação, cristal e cabeçalhos femininos para interagir com várias placas periféricas.

Essas placas periféricas são chamadas de escudos e são projetadas para serem empilhadas umas sobre as outras (existem pinos masculinos na parte inferior das placas para se conectar ao próprio Arduino ou outro escudo, e cabeçalhos femininos na parte superior para aceitar os pinos masculinos da um escudo empilhado em cima dele).

Blindagens de exemplo são placas de controle de motores, placas de E / S gerais, placas de relé, placas Ethernet e LCDs, normalmente com uma tela de toque. No entanto, não conheço telas sensíveis ao toque resistivas que seriam usadas apenas para detecção (sem um LCD).

Além do hardware descrito acima, o Arduino também vem com um IDE (Integrated Development Environment) de plataforma cruzada, escrito em Java. Ele foi projetado para introduzir programação a artistas e outros iniciantes, assim como a linguagem BASIC fez 50 anos atrás. Um programa para Arduino é chamado de esboço .

Os programas do Arduino são escritos em C ou C ++, no entanto, muitos detalhes estão ocultos do usuário: apenas duas funções (chamadas pelo sistema) precisam ser definidas para criar um programa que circula continuamente (normalmente para programas incorporados)

setup(): a function run once at startup that performs initialization
loop(): a function called repeatedly until the board powers off

O IDE vem com uma biblioteca de software chamada "Fiação", que pode ser usada para operações comuns de entrada / saída.

tcrosley
fonte
Eu não projeto mais hardware, depois de 25 anos, mas não conheço nenhum processador para computadores desktop que contenha memória somente leitura, muito menos qualquer memória que possa inicializar um computador.
Rob
@ Rob Você está certo de que todos os PCs de mesa que conheço usam um chip de inicialização externo. Mas a arquitetura OMAP3 da TI é um exemplo de um microprocessador com uma ROM de inicialização interna. A partir da descrição aqui, durante a inicialização do Linux, a primeira linha diz: "Na inicialização, um dispositivo OMAP3 inicia a inicialização da ROM de inicialização interna. Esse código é corrigido durante o processo de fabricação e não pode ser alterado. A ROM de inicialização lê os pinos de configuração de inicialização (SW4 no OMAP3 EVM), que informa à ROM de inicialização onde procurar o primeiro carregador de inicialização externo ". Eu atualizei minha resposta.
tcrosley
10

Arduino

Um Arduino é um PCB que contém um microcontrolador Atmel AVR e geralmente fornece um conjunto de conectores em um padrão padrão. O microcontrolador normalmente é pré-programado com um programa "carregador de inicialização" que permite que um programa (chamado de "esboço") seja carregado no microcontrolador por uma conexão serial TTY (ou serial virtual por conexão USB) a partir de um PC.

Microprocessador

Um microprocessador é um IC que contém apenas uma unidade central de processamento (CPU). O IC não contém RAM, ROM ou outros periféricos. O IC pode conter memória cache, mas não foi projetado para ser utilizado sem nenhuma memória externa.

Os microprocessadores não podem armazenar programas internamente e, portanto, normalmente carregam software quando ligados, isso geralmente envolve um processo de "inicialização" complexo em vários estágios, em que "firmware" é carregado a partir da ROM externa e, eventualmente, um sistema operacional é carregado a partir de outra mídia de armazenamento (por exemplo, disco rígido). )

Geralmente é encontrado em um computador pessoal.

Microcontrolador

Um microcontrolador é um IC que contém uma CPU, além de certa quantidade ou RAM, ROM e outros periféricos. Microcontroladores podem funcionar sem memória ou armazenamento externo.

Normalmente, os microcontroladores são programados antes de serem soldados a uma placa de circuito impresso ou programáveis ​​usando conectores de programação no sistema (ISP ou ICSP) por meio de um dispositivo "programador" especial conectado a um computador pessoal.

Os microcontroladores típicos são muito mais simples e lentos que os microprocessadores típicos, mas acredito que a distinção é principalmente de escala e aplicação.

Pode ser encontrado, por exemplo, em aparelhos simples, como máquinas de lavar básicas.

RedGrittyBrick
fonte
2

"Arduino" é um ambiente de desenvolvimento de software e qualquer uma das várias placas de microcontroladores para as quais o ambiente de software pode desenvolver programas. A maioria das placas usa microcontroladores Atmel AVR.

Peter Bennett
fonte
2

O Arduino é uma plataforma baseada em microcontrolador (ATMEGA 328 para a ONU). Em geral, um microcontrolador é mais adequado que um microprocessador para qualquer coisa que exija detecção de entradas. Isso ocorre porque microcontroladores como o ATMEGA 328 possuem conversores analógico para digital (ADCs) para detectar tensões e também possuem saídas PWM e E / S digitais.

Com o Arduino, você também possui o sistema Arduino Dev, que é mais fácil de programar para iniciantes e tem uma boa comunidade de suporte e bibliotecas.

Uma tela de toque resistiva se comporta como potenciômetros; um para x e um para y. Assim, você pode inseri-las nas entradas analógicas do Arduino. Veja aqui para detalhes .

Outra opção é converter para SPI ou I2C com algo parecido com isto e ler com o Arduino.

De qualquer maneira, acho que o Arduino é uma boa escolha.

akellyirl
fonte
@tcrosley ou qualquer outro membro de longa data .. algum conselho para um novo colaborador como eu sobre como evitar uma votação negativa como esta? Minhas respostas são precisas, respondem à pergunta e fornecem detalhes adicionais para interface com uma tela de toque resistiva. Mais alguma coisa que deveria ter incluído?
akellyirl
3
Não leve o voto negativo muito a sério. Eu acho que sua primeira frase é um pouco imprecisa. O Arduino é mais como uma plataforma composta por hardware e software. E uma placa Arduino não é um microcontrolador, mas uma placa projetada em torno de um microcontrolador.
1.01 de
1
Como Rev1.0 diz: "Arduino é um microcontrolador" não é verdade. O Arduino é um SBC (Computador de placa única).
flup
1

O Arduino consiste em um microcontrolador (o ATmega328 na versão UNO). Portanto, o Arduino é um PCB com os pinos do microcontrolador bem separados, uma fonte de alimentação, um cristal e o FTDI para a conexão USB com um firmware integrado, para que você possa programá-lo facilmente com seu próprio IDE. Aqui está uma lista sobre os componentes do arduino: http://learn.adafruit.com/arduino-tips-tricks-and-techniques/arduino-uno-faq

kimliv
fonte