Arduino ou Raspberry Pi?
João Alexandre da Silveira - autor do livro digital Experimentos com o Arduino Raspberry Pi 1280x853px

Todos nós técnicos e engenheiros de Eletrônica conhecemos ou já ouvimos falar do Arduino. O Arduino é uma plataforma programável para criação de protótipos de hardware baseada nos microcontroladores (MCU – MicroController Unit) ATmega328 e ATmega32u4 de 8 bits e 16 Mhz de clock, da fabricante americana Atmel Corp. O Arduino é uma pequena placa eletrônica de circuito impresso pouco maior que um cartão de crédito onde são montados o MCU, uma porta serial USB e um conjunto de conectores para entradas analógicas de sensores e saídas digitais que, sob controle de um pequeno programa, pode controlar relés, motores e outros circuitos externos. São 6 entradas analógicas de 10 bits e mais 14 portas digitais que podem ser programadas como entradas ou como saídas. Tambem essas 6 portas analógicas podem ser reprogramadas como portas digitais, totalizando 20 portas digitais de E/S. As funções que o Arduino deve realizar são escritas numa linguagem baseada no C e gravadas na memória de programação interna do tipo flash do MCU via porta serial de um PC. Talvez o modelo de Arduino mais conhecido e utilizado hoje seja o Duemilanove, como o da foto acima; porem recentemente foi lançado o modelo DUE baseado no MCU AT91SAM3X8E de 32 bits e 84Mhz de clock.

Concebido há quase uma década por um grupo de professores italianos de Computação Física com o propósito de ser uma ferramenta de baixo custo para criação de protótipos de circuitos eletrônicos que pudesse ser facilmente utilizada por não especialistas em computadores, como artistas e arquitetos, o Arduino fora do meio acadêmico logo alcançou grande sucesso nos dois primeiros anos de existência, quando mais de 50 mil unidades foram vendidas. Até o final de 2012 estima-se que mais de meio milhão de todos os modelos de Arduino foram vendidos.

Mas o Arduino não foi a primeira plataforma programável para desenvolvimento de protótipos de circuitos eletrônicos. Nos anos 1990 surgiram o BASIC Stamp e o PICAXE, duas ferramentas baseadas em MCUs PIC de 8 bits da Microchip e programadas com a linguagem BASIC.

Atualmente existe no mercado algumas outras plataformas programáveis de hardware para criação de protótipos de controles eletrônicos baseados em processadores bem mais poderosos. Merece destaque a plataforma Raspberry Pi. Veja foto da direita, acima. Essa ferramenta, um módulo eletrônico um pouco maior que o Arduino, originalmente foi concebida por um grupo de pesquisadores e estudantes ingleses da Universidade de Cambridge em 2006, mas só foi lançada comercialmente em fevereiro de 2012. Segundo um dos idealizadores dessa ferramenta, Eben Upton, o nome Raspberry (framboesa) é um resgate da tradição dos fabricantes de microcomputadores de dar às suas máquinas nomes de frutas. O complemento Pi faz referência a uma linguagem de programação de alto nível criada em 1980, Phyton, e originalmente escolhida para ser executada pela plataforma. Python é uma linguagem muito fácil de aprender, conheça-a mais nesse excelente tutorial interativo: http://www.learnpython.org/.


Arduino x Raspberry Pi pinout

O coração do Raspberry Pi é um processador para aplicações multimídia, o BCM2835, fabricado pela empresa de semicondutores Broadcom com tecnologia System-on-Chip (SoC), ou sistema em um chip, e tambem utilizado no iPhone, Samsung Galaxy e muitos outros smartphones e tablets. Dentro desse SoC existe uma CPU (Central Processing Unit) ARM1176JZF-S de 32 bits com clock de 700Mhz e uma GPU (Graphics Processing Unit), ou unidade de processamento gráfico, especialmente desenvolvido para cálculos pesados de manipulações de imagens 3D e chamada de VideoCore IV. Um banco de memoria RAM do tipo flash de 256Mb ou 512 Mb (conforme o modelo da plataforma, A ou B) é montado diretamente sobre esse processador com tecnologia Package-on-Package (PoP). Ainda na mesma placa existe uma porta USB, onde pode ser conectado um teclado ou mouse; um leitor de cartões de memoria SD, a mesma usada em câmeras digitais; um conector RJ45, para acesso a internet via modem ou roteador; e duas saídas de vídeo, HDMI e vídeo composto (NTSC ou PAL) num conector padrão RCA; e uma saída de áudio num conector padrão de 3,5mm. O Raspberry Pi possui duas linhas de 13 pinos, chamados de GPIO (General Purpose Input/Output), sendo 8 deles programáveis como entradas ou saídas digitais para controle de circuitos externos; porem, diferentemente do Arduino, o Raspberry Pi não possui pinos para entradas analógicas, requerendo para isso um conversor A/D externo. A alimentação de 5 volts é tomada através de um conector micro-SD de um carregador de celular com essa tensão que forneça 700 mA. O Raspberry Pi é cerca de 10 dólares mais caro que o Arduino. Veja nos diagramas acima como são distribuídos os componentes em cada uma dessas plataformas, no Arduino UNO e no Raspberry Pi; e na tabela abaixo as características de cada uma delas.

O Arduino executa um programa de cada vez, que é gravado diretamente na memória de programação flash do seu microcontrolador por um PC via porta USB. O Raspberry Pi possui um sistema operacional (SO) gravado num cartão de memória flash SD, onde tambem são gravados os programas que ele deve executar. O SO do Raspberry Pi tem como base uma distribuição Linux. Dentre as distribuições disponíveis para esta plataforma a mais usada é a Raspbian (Raspberry+Debian), uma versão otimizada do Linux Debian. A maioria dos usuários de PC estão acostumados com SO’s gráficos, com menus e ícons coloridos que devem clicados com o mouse, como o Windows e o Apple OS-X. Sistemas baseados em Linux usam um programa chamado Shell, onde todos os comandos são enviados para o sistema pelo teclado, como nos velhos tempos do DOS (Disk Operational System).

Ítem Arduino Uno Rasberry Pi modelo 'B' Notas
Preço $35 $45Valores em dólares
Alimentação 5V x 250mA 5V x 700mA O Arduino pode ser alimentado pela porta USB de um PC
Processador ATmega328 ARM11 8 bits x 32 bits
Clock 16MHz 700MHz RBPi é 43X mais rápido
RAM 2KB 512MB RBPi tem 256K vezes mais RAM
Flash 32KB Cartão SD Linux num SD de 4GB
EEPROM 1KB - RBPi não possui EEPROM
E/S Digital 14 (20) 8 Somente 8 dos 26 pinos GPIO do RBPi são E/S digitais
E Analogica 6 de 10bits - RBPi não possui conversor A/D
PWM 6 - No RBPi saídas PWM podem ser implementadas por software
I2C 2 1 Duas portas no RBPi
Ethernet - 10/100 Arduino requer um shield para Ethernet
USB 1 2 Duas portas USB 2.0 no RBPi
Video - HDMI+RCA Vídeo composto na saída RCA
Áudio - HDMI+Analog Conector de áudio de 3,5 mmm no RBPi
Conexão LCD - LCD/OLED Conector de 15 pinos no RBPi

Alguns shields projetados para o Arduino podem ser conectados ao Raspberry Pi através de uma ponte, uma placa que é encaixada sobre o seu conector GPIO. Shields são módulos de hardware com funções específicas, como sensores analógicos e módulos GPS e ethernet, que são plugados sobre os conectores de entradas e saídas do Arduino.

No ano passado foi lançado um concorrente de peso para o Raspberry Pi: o BeagleBone Black, mais uma plataforma de hardware que utiliza o mesmo processador da Broadcom, porem uma versão adiante, o ARM Cortex-A8 de 32 bits e 1 GHz de clock. O BB Black, como é conhecido, tambem roda uma distribuição Linux que é residente em uma memória flash de 2 Gb, possui 512 Mb de RAM, conexão microHDMI, microSD (micro-cartão de memória flash), 1 ou 2 portas USB, 1 porta Ethernet 10/100, 66 portas digitais de E/S, 7 portas analógicas de 12 bits, e mais outras tantas conexões populares.

Resumo

O Arduino é a plataforma ideal para quem está se iniciando no mundo dos microcontroladores; possui interfaces básicas para criação de pequenos projetos ou para aqueles que devem ser alimentados com bateria; sua linguagem de programação baseada em C é fácil de aprender e compilar, e seu IDE (Ambiente de Desenvolvimento) é amigável; por ser uma plataforma mais antiga, tem uma grande rede de colaboradores ativos na web. O Raspberry Pi é para desenvolvedores mais experientes; tem um processador rápido, já vem pronto para a web e possui mais interfaces que o Arduino; o projetista deve ter um mínimo de conhecimento de Linux. O BeagleBone Black é das três a mais poderosa das plataformas.