Arduino x Raspberry Pi




Introdução

No #MovimentoMaker há duas plataformas de prototipagem que são muito populares e que são provavelmente as mais utilizadas neste meio. Elas são o Arduino e a Raspberry Pi. Se você é um aspirante do movimento Maker, certamente já trabalhou com uma delas, senão as duas, ou pelo menos já ouviu falar delas. Mas você sabe realmente qual é a diferença entre elas e quando utilizar uma ou outra?

Neste tutorial iremos te apresentar as principais diferenças entre uma placa Arduino e uma placa Raspberry Pi, e te ajudar a escolher a melhor plataforma para o seu projeto.

História do Arduino

O projeto Arduino nasceu em meados de 2003 no IDII (acrônimo de Instituto de Design de Interação Ivrea, um programa de pós-graduação em design e interação da cidade de Ivrea, uma cidade no norte da Itália) como uma tese de mestrado orientada por um dos fundadores da empresa Arduino, Massimo Banzi. A tese de mestrado defendia o desenvolvimento de uma ferramenta simples e de baixo custo que ajudasse pessoas que não eram engenheiros na criação de projetos digitais.

Depois desta tese de mestrado, a primeira placa Arduino comercial foi desenvolvida em 2005, usando apenas componentes de montagem through-hole. Ela pode ser vista na imagem abaixo.

primeira-placa-arduino-comercial
Primeira Placa Arduino Comercial
Fonte: Arduino

No início de 2008, os cinco co-fundadores oficialmente fundaram a empresa Arduino LLC para organizar o desenvolvimento e a comercialização como uma marca, que foi se popularizando ao passar dos anos e tornou as placas da plataforma Arduino uma ferramenta quase que essencial para todos os estudantes de engenharia, aspirantes da robótica e do #MovimentoMaker.

As placas da plataforma Arduino, como a tão famosa Arduino UNO, são Open Source (de Código Aberto), ou seja, qualquer um pode acessar os arquivos de desenvolvimento das placas para criar réplicas ou para criar versões modificadas. A BlackBoard UNO, por exemplo, é uma placa baseada nesse conceito, e você também pode fabricar a sua versão do Arduino, já que os arquivos das placas estão disponíveis para download (aba "Documentation").

História da Raspberry Pi

A Raspberry Pi é uma fundação de caridade criada em meados de 2009, que tem como objetivo fornecer a capacidade computacional para todas as pessoas do mundo e ensiná-las a aproveitar essa capacidade para o desenvolvimento de projetos digitais. O seu conceito foi criado por professores da Universidade de Cambridge do Reino Unido, que estavam vendo como o número e a qualidade dos alunos ingressantes ao curso de engenharia da computação estavam decaindo, e perceberam a necessidade de um computador compacto e que fosse economicamente acessível para a maioria dos estudantes.

Enfim, após anos de pesquisa e desenvolvimento, a primeira Raspberry Pi Model A foi fabricada em massa no final de 2012. Ela pode ser vista na imagem a seguir, que está um pouco desfocada por ter sido tirada usando um celular da época e às pressas pela gerente de produção da Raspberry Pi (é possível ver imagens de melhor qualidade no site da RasPi.TV).

primeira-placa-raspberry-pi-produzida-massa
Primeira Placa Raspberry Pi Produzida em Massa
Fonte: Raspberry Pi Blog

Em meados de 2013, a fundação Raspberry Pi foi finalmente registrada oficialmente como uma companhia de caridade pela Comissão de Caridade da Inglaterra e do País de Gales. Desde então, a fundação ganhou popularidade e as suas placas começaram a ser mundialmente utilizadas para projetos diversos, com uma comunidade muito unida, presente e que está sempre disposta a ajudar os iniciantes com suas dificuldades.

Principais Diferenças

Hardware

A principal diferença entre as placas da plataforma Arduino e as placas da plataforma Raspberry Pi é que as placas Arduino são placas de prototipagem eletrônica e as placas Raspberry Pi são placas SBC ("Single Board Computer" - Computador de Placa Única), sendo mais poderosas que as placas Arduino. Na tabela abaixo é possível ver uma comparação das especificações técnicas das duas placas mais populares destas plataformas (até o momento), a Arduino UNO e a Raspberry Pi 3 Model B.

Arduino UNO Raspberry Pi 3
Model B
Dimensões 68 x 53 x 10 mm 85 x 53 x 19 mm
Processador/
Microcontrolador
ATmega328 Broadcom BCM2837B0,
Cortex-A53 64-bit
Frequência do Clock 16 MHz 1,4 GHz (com possibilidade
de "Overclock")
Memória de Flash 32 KB Varia de acordo com o cartão
microSD acoplado
Memória RAM 2 KB SDRAM 1 GB LPDDR2 SDRAM
Memória EEPROM 1 KB Nenhuma
Conectividade Wi-Fi Somente através de periféricos Wi-Fi 2,4 GHz e 5,0 GHz
IEEE 802.11.b/g/n/ac
Conectividade Bluetooth Somente através de periféricos Bluetooth 4.2 BLE
Conectividade Ethernet Somente através de periféricos 1x Conector RJ45
Portas USB Nenhuma 4x Portas USB 2.0
Saída de Vídeo Nenhuma 1x Conector HDMI padrão
Conexões Externas Nenhuma Conector DSI para display
Conector CSI para câmera
Conector P2 de 4 polos para áudio
Tensão Operacional 5 V 3,3 V
Entradas e Saídas 14 pinos digitais (6 com saída PWM),
6 pinos analógicos
40 GPIOs
(nenhuma analógica)
Comunicações Compatíveis UART, SPI, I2C UART, SPI, I2C
Alimentação 5 V pelo conector USB,
7 - 12 V conector P4
5 V pelo conector micro USB
Preço
(data de referência - 02/12/2020)
R$ 89,00 (BlackBoard UNO) R$ 399,00

Existem algumas placas Arduino com conectividade Wi-Fi e/ou Bluetooth, como algumas versões da Arduino Nano, por exemplo, e algumas placas que possuem conectividade Ethernet e porta USB já integradas, como a Arduino Yún. Além disso, as novas Raspberry Pi 4 possuem mais memória RAM, com opções entre 2, 4 e 8 GB, e agora elas também possuem uma memória EEPROM de 512 KB, além de duas saídas de vídeo micro HDMI. Entretanto, esse comparativo visa mostrar a diferença apenas entre os modelos mais populares e usados das duas plataformas.

Software

A segunda principal diferença entre as duas plataformas é no âmbito de software. As placas Arduino são programadas em qualquer computador usando a Arduino IDE, que também é Open Source e possui seu código acessível para modificação. A Arduino IDE e as suas ferramentas podem ser vistas na imagem abaixo.

arduino-ide-e-suas-ferramentas
Arduino IDE e suas Ferramentas (Legenda Abaixo)
Fonte: Sparkfun
  1. Verificar: compila e aprova o seu código. O compilador detectará erros de sintaxe (como ponto e vírgula ou parênteses faltantes);
  2. Carregar: envia o seu código para a placa Arduino;
  3. Novo: abre uma nova janela de código;
  4. Abrir: permite abrir um esboço existente;
  5. Salvar: salva o esboço atualmente ativo;
  6. Monitor serial: abre uma janela que exibirá qualquer informação serial que sua placa Arduino está transmitindo para o seu computador. Você estudará melhor essa funcionalidade ao longo do material;
  7. Nome do esboço: mostra o nome do esboço no qual você está trabalhando atualmente;
  8. Área do código: esta é a área onde você compõe o código para o seu esboço;
  9. Área de mensagens: é onde a IDE diz se houve algum erro no seu código ou se o código foi compilado e carregado corretamente;
  10. Console de texto: mostra mensagens de erro completas. O console de texto é muito útil para a depuração;
  11. Placa e porta serial: mostra a placa e a porta serial selecionadas.

Nesta IDE, nós desenvolvemos códigos na linguagem C para dizer para a placa quais tarefas ela deve realizar, sejam elas a leitura ou escrita de pinos analógicos ou digitais, ou a comunicação serial com outra placa/módulo/sensor. Abaixo podemos ver o exemplo "Blink" da plataforma, um dos códigos mais simples e populares, que normalmente é o primeiro código gravado em uma nova placa, para verificar seu funcionamento.

Esse simples exemplo da Arduino IDE é gravado através de comunicação serial para a placa, e faz com que ela pisque o LED_BUILTIN (LED conectado ao pino 13 da grande maioria das placas Arduino) com o intervalo de 1 segundo.

Vale lembrar que existem algumas ferramentas e IDEs que permitem a programação de placas Arduino usando outras linguagens de programação, sejam elas em blocos, como o Scratch 4 Arduino, ou até em Javascript, como o Johnny-Five. Além disso, existem diversas bibliotecas adicionais que auxiliam na realização de diversas tarefas com as placas Arduino, desde ler um simples sensor ultrassônico HC-SR04, até a integração com o MatLab da MathWorks.

As placas Raspberry Pi, por sua vez, possuem um sistema operacional próprio e são usadas como o seu computador. O sistema mais popular é o "Raspberry Pi OS", antigamente chamado de "Raspbian", que é baseado em uma distribuição Linux, o Debian. Esse sistema operacional é basicamente igual ao de qualquer outro computador, com conectividade à internet através de navegadores, com programas e ferramentas para o uso diário. A imagem a seguir é uma captura de tela do "Desktop" do sistema operacional da Raspberry Pi.

desktop-raspberry-pi-os
Desktop do Raspberry Pi OS
Fonte: Showmetech

Como as placas Raspberry Pi possuem GPIOs acessíveis, podemos usá-los para acionar ou ler circuitos externos, ou até mesmo nos comunicar serialmente com outras placas/módulos/sensores. Pelo fato da Raspberry Pi ser o próprio computador, os códigos são desenvolvidos no próprio sistema operacional, e, embora existam bibliotecas que permitam a programação desta placa em outras linguagens de programação, a linguagem convencionalmente usada é o Python. Uma das maneiras mais simples e usadas para criar códigos nesta plataforma é através do programa Thonny Python IDE, que é basicamente como a Arduino IDE da Raspberry Pi. Entretanto, também é possível editar e executar códigos diretamente pelo terminal do sistema operacional. Para entender melhor a diferença na programação das duas plataformas (pelo menos na linguagem utilizada), abaixo temos o exemplo "Blink" visto anteriormente, porém em Python, e que pode ser usado para piscar um LED com a Raspberry Pi.

Como o código é desenvolvido na própria placa, não é necessário carregá-lo, porém temos que executá-lo, seja na IDE ou no terminal.

Vale lembrar que, como em placas Arduino, existem diversas ferramentas para Raspberry Pi que permitem a programação utilizando outras linguagens de programação, desde blocos, como a Raspblocks, até a programação em linguagem C, como a WiringPi. Além disso, assim como na Arduino IDE, é possível adicionar diversas bibliotecas para realizar tarefas variadas, desde ler um simples sensor de temperatura e umidade DHT11, até criar uma aplicação de Machine Learning ou Inteligência Artificial, como é o caso do TensorFlow.

E também é possível acessar as placas Raspberry Pi remotamente, para você poder aproveitar suas funcionalidades através do seu computador usando um terminal de acesso, como o Putty, por exemplo. Mas, nesta configuração, a saída de vídeo da placa é desabilitada e você só terá acesso ao terminal Linux do sistema operacional.

Outro ponto que vale ressaltar é que estão disponíveis na internet diversos sistemas operacionais que também são compatíveis com as placas Raspberry Pi, mas que são usados para funções específicas. O OctoPrint, por exemplo, permite que você controle uma impressora 3D pela internet. Entretanto, esses sistemas operacionais não são oficiais da Raspberry Pi, portanto eles podem apresentar alguns erros de funcionamento e não serem completamente otimizados para essas placas.

Modelos Semelhantes

Devido à popularidade destas plataformas, empresas concorrentes, ou até mesmo desenvolvedores independentes, começaram a desenvolver placas similares. A Raspberry Pi, por exemplo, possui diversas concorrentes, dentre elas a ASUS Tinker Board (imagem abaixo), a BeagleBone, a Jetson Nano da NVIDIA, e a Arduino Yún, que já mencionamos anteriormente.

asus-tinker-board-s
ASUS Tinker Board S

A Arduino, por sua vez, deve ser a plataforma que mais sofre com a concorrência de outras placas de prototipagem, e dentre elas temos, por exemplo, a STM32, a Franzininho DIY (imagem abaixo), o NodeMCU e o ESP32.

pinagem-franzininho-diy
Pinagem da Franzininho DIY
Fonte: Documentação da Franzininho DIY

Neste momento vale ressaltar que, embora essas placas mencionadas sejam semelhantes às plataformas Raspberry Pi e Arduino, elas geralmente não são compatíveis diretamente entre si, ou seja, normalmente não é possível trocar a placa de um projeto sem ter que fazer alguma modificação, seja no software, ou no hardware.

Qual Placa Escolher para o Projeto?

Essa deve ser a pergunta mais difícil de se responder no #MovimentoMaker, e ela só pode ser respondida por você, o desenvolvedor do projeto. Entretanto, isso não quer dizer que não possamos te ajudar um pouco nessa tomada de decisão.

As placas Arduino, por serem simples e terem acesso direto ao pinos do microcontrolador, costumam ser mais utilizadas para projetos que envolvem muito hardware, ou seja, projetos que dependem muito de módulos, sensores ou circuitos externos. Um bom exemplo disso é o nosso tutorial Criando uma Balança com o Arduino, onde usamos uma BlackBoard UNO para ler a variação da resistência de uma célula de carga e exibir o peso aplicado na célula em um display LCD através do circuito a seguir.

circuito-eletrico-projeto
Circuito Elétrico do Projeto

A princípio uma placa Arduino UNO, que é uma das mais simples da plataforma Arduino, já é amplamente suficiente para a grande maioria dos projetos, e embora tenha uma certa limitação de hardware, a relação custo-benefício das placas, dos acessórios e dos periféricos/módulos desta plataforma acaba sendo um fator decisivo e preferível quando a aplicação não exige alto poder de processamento.

Já as placas Raspberry Pi, por conta de seu poder de processamento, costumam ser usadas em projetos que trabalham com muito software, como servidores, Machine Learning, inteligência artificial, reconhecimento facial, dentre outros. Uma aplicação bem interessante e que tem sido recentemente muito usada com placas Raspberry Pi é a mineração de criptomoedas, como o Bitcoin, por exemplo. Neste tipo de projeto, as placas são responsáveis por acessar um servidor de transações de Bitcoins e encontrar blocos de transações feitas nesta moeda. Assim que um bloco é encontrado, o minerador, no caso a placa, é validado e recebe uma pequena parcela do valor do bloco de transações, como é mostrado no diagrama a seguir.

processo-mineracao-bitcoin
Processo de Mineração de Bitcoin
Fonte: Bitpanda

As placas Raspberry Pi possuem uma capacidade muito superior de processamento (computacional e de vídeo), quando comparadas com as placas Arduino, porém elas são relativamente mais caras, e o seu modelo mais acessível (Raspberry Pi 0 W), pode não ser o suficiente para algumas aplicações.

Conclusão

Neste tutorial vimos a história das plataformas Arduino e Raspberry Pi, juntamente com suas principais diferenças, as placas que são semelhantes à elas e um breve resumo de como escolher cada uma das plataformas para o seu projeto. Entretanto ressaltamos novamente que a escolha da plataforma ideal para o projeto é uma escolha do desenvolvedor, portanto estude com atenção todas as possibilidades para o seu projeto antes de tomar a decisão de qual placa usar.

Avatar