Componente · Controlador

Raspberry Pi

O Raspberry Pi é um computador Linux de placa única, do tamanho de um cartão, para robôs que precisam de visão, ROS ou computação avançada.

O que é

O Raspberry Pi é um computador completo do tamanho de um cartão de crédito. Enquanto um Arduino Uno é um microcontrolador que executa um único programa indefinidamente, o Pi executa Linux—portanto, pode controlar uma câmera, comunicar-se com a rede, rodar ROS 2 e executar o código do robô ao mesmo tempo. É o cérebro indicado quando um robô precisa pensar, não apenas reagir.

Esse poder também tem um custo: a multitarefa do Linux torna o Pi menos adequado a temporizações precisas em microssegundos do que um microcontrolador. Os dois são parceiros, não rivais.

Diagrama rotulado de um computador de placa única Raspberry Pi: uma PCB verde com um conector GPIO de 40 pinos e contatos dourados na borda superior, um SoC Broadcom e um chip de RAM no centro, um bloco empilhado de USB e Ethernet na borda direita, HDMI e alimentação USB-C na borda inferior e um slot para cartão microSD à esquerda.
Um Raspberry Pi concentra um computador em uma placa: o SoC e a RAM executam o Linux, o conector GPIO de 40 pinos se comunica com o hardware do robô e o microSD armazena o sistema operacional. Baixar SVG

Como funciona

O Pi inicializa um sistema operacional (normalmente o Raspberry Pi OS) a partir de um cartão microSD e se comporta como qualquer máquina Linux. Para robótica, a parte importante é o conector GPIO de 40 pinos: entradas e saídas digitais, além dos barramentos I²C, SPI e UART, que permitem ao Pi ler sensores e comandar hardware. A isso se somam os recursos de computação—USB, Ethernet, Wi-Fi e uma interface de câmera—que um microcontrolador simplesmente não tem.

Uma arquitetura comum é um robô de dois cérebros: o Pi cuida da percepção e do planejamento (visão, SLAM, nós ROS) e passa os comandos dos motores a um Arduino, que realiza o controle em tempo real.

Quando usar

Use um Pi quando o robô precisar da capacidade de um computador:

  • Visão computacional — uma câmera com OpenCV para detectar marcadores, objetos ou linhas.
  • ROS 2 — execução de nós, tópicos e da pilha de navegação.
  • Mapeamento / SLAM — construção de um mapa e localização nele.
  • Rede — painel web, controle remoto ou telemetria.

Fique com um Arduino ou ESP32 para tarefas puramente de controle em tempo real—são mais baratos, mais simples e mais precisos em temporização.

Conexões e armadilhas

  • Lógica de 3,3 V, sem tolerância a 5 V. Aplicar 5 V a um pino GPIO pode danificar o Pi. Faça a conversão de nível dos sinais de componentes de 5 V (por exemplo, a linha TX do HC-05).
  • Ele ainda não pode alimentar motores. O GPIO comanda sinais; a corrente dos motores passa por um driver de motor, como o L298N.
  • A alimentação exige cuidado. Forneça 5 V estáveis com corrente suficiente; quedas de tensão corrompem o cartão SD e causam reinicializações aleatórias.
  • Desligue corretamente. Retirar a alimentação de um sistema Linux em execução pode corromper o cartão—implemente um desligamento seguro ou use um sistema de arquivos somente leitura.

O conector de 40 pinos e quais pinos podem ser usados

O conector tem 40 pinos, mas apenas 26 podem ser usados como GPIO. Os demais são de alimentação e massa.

Função Pinos (numeração BCM) Observações
I²C-1 GPIO 2 (SDA), GPIO 3 (SCL) Resistores de pull-up fixos de 1,8 kΩ para 3,3 V na placa
SPI0 GPIO 10 (MOSI), 9 (MISO), 11 (SCLK), 8/7 (CE0/CE1)
UART GPIO 14 (TX), 15 (RX) Usada por padrão pelo console Linux — deve ser liberada
PWM de hardware GPIO 12, 13, 18, 19 Somente estes quatro; os demais usam PWM por software
Alimentação 3,3 V, 5 V 5 V vem direto da entrada — sem regulação
Uso geral Os demais

Duas dessas linhas frequentemente custam uma noite a muita gente.

A UART é o console. Por padrão, GPIO 14/15 carregam uma solicitação de login do Linux. Se você conectar a elas um módulo GPS ou um Arduino, receberá ruído de login em vez de dados. Libere-as com sudo raspi-config → Interface Options → Serial Port → login shell: no, hardware serial: yes. No Pi 3 e posteriores, há outra complicação: a UART principal é usada por padrão pelo Bluetooth, e a UART do conector é uma “mini UART” inferior, cuja taxa de transmissão varia com o relógio da CPU. Adicione dtoverlay=disable-bt a /boot/config.txt para trocá-las.

O PWM por software apresenta oscilações. Somente quatro pinos têm PWM de hardware. Todo o resto é gerado pelo kernel, e o escalonador do Linux o interrompe—o que, em um servomotor, aparece como vibração perceptível. Esta é a ilustração mais clara do que um Pi não faz bem.

O problema de temporização, sem rodeios

Este é o aspecto mais importante a entender sobre um Pi em um robô, e não é um defeito—é o comportamento de um sistema operacional.

Um microcontrolador que executa loop() executa seu código e nada mais, portanto um intervalo de 1 ms dura 1 ms. O Linux compartilha o tempo: o kernel pode interromper seu processo para atender a um pacote de rede, gravar no disco ou executar qualquer uma das centenas de tarefas em segundo plano.

Tarefa Microcontrolador Raspberry Pi (Linux padrão)
Malha de controle de 1 kHz Trivial, exata Possível, com falhas ocasionais na escala de milissegundos
PWM do servomotor Muito estável Visivelmente instável em pinos com PWM por software
Leitura de encoder a 20 kHz Rotina com interrupções Não confiável — algumas bordas são perdidas
Temporização do eco ultrassônico Precisão de microssegundo Erros aleatórios de vários centímetros
Visão, planejamento e rede Impossível É exatamente para isso que serve

A consequência é a arquitetura de dois cérebros, que não é uma solução de contorno, mas o projeto normal para um robô sério:

Raspberry Pi                        Microcontrolador
- câmera, visão                      - contagem de encoder
- SLAM, planejamento de trajetória <--> - controle de motor PID
- nós ROS 2                          - temporização do servomotor
- rede, painel                       - parada de emergência
        objetivos de alto nível           tempo real rígido

Eles se comunicam por serial USB, UART ou I²C, e cada um faz o que faz bem. Um Pi tentando contar bordas de encoder perderá algumas; um Arduino tentando executar OpenCV não consegue.

Alimentação e o problema do cartão SD

A alimentação é onde os robôs com Pi falham, e o modo de falha é especialmente caro: uma queda de tensão durante uma gravação corrompe o cartão SD, e você perde toda a imagem do sistema.

Modelo Fonte recomendada Sob carga
Pi Zero 2 W 5 V, 2,5 A ~350 mA normalmente
Pi 3B+ 5 V, 2,5 A ~500 mA, picos próximos de 1,2 A
Pi 4B 5 V, 3 A (USB-C) ~600 mA, picos próximos de 1,5 A
Pi 5 5 V, 5 A (USB-C PD) Ainda maior

As regras que decorrem disso:

  • Nunca alimente motores e um Pi pela mesma trilha. A corrente de partida de um motor é exatamente o transitório que corrompe um cartão.
  • Use um regulador chaveado, não linear, ao reduzir a tensão de uma bateria. Um regulador linear que converte 11,1 V em 5 V a 1 A dissipa 6 W.
  • Observe o ícone de raio. O Pi exibe um aviso de subtensão e registra o evento; vcgencmd get_throttled também informa o problema. Qualquer valor diferente de zero significa que a fonte é insuficiente e, eventualmente, corromperá o cartão.
  • Desligue corretamente. Use sudo shutdown -h now antes de cortar a alimentação. Um robô desativado por uma chave precisa de um botão de desligamento ligado a um GPIO ou de um sistema de arquivos raiz somente leitura.

O sistema de arquivos somente leitura merece consideração séria em um robô implantado: com overlayfs ativado, nada é gravado no cartão durante a operação, e a alimentação pode ser cortada a qualquer momento sem consequências. Você perde a possibilidade de salvar dados localmente, o que normalmente é uma troca justa.

Qual modelo usar em um robô

Modelo RAM Por que escolher
Pi Zero 2 W 512 MB Pequeno e leve. Suficiente para uma câmera e visão simples
Pi 3B+ 1 GB Barato, adequado ao ROS 2 com nós modestos
Pi 4B (4 GB) 4 GB A escolha prática para ROS 2 mais visão
Pi 5 4–16 GB Bem mais rápido; exige mais potência e refrigeração ativa

Para ROS 2 com câmera, 4 GB é o ponto em que as dificuldades diminuem. O RViz, um nó de visão e uma pilha de navegação juntos usarão mais de 1 GB, e um Pi que começa a usar o cartão SD como memória de troca fica inutilizavelmente lento—além de desgastar o cartão.

Dois acessórios que, na prática, não são opcionais: um dissipador ou ventilador (um Pi 4 com carga contínua reduz a frequência ao atingir 80 °C, e um Pi limitado perde quadros) e um cartão microSD de qualidade classe A2 ou, ainda melhor, a inicialização por SSD USB. A velocidade do cartão é o gargalo com muito mais frequência que a CPU.

Solução de problemas

Sintoma Causa provável Solução
Reinicializações aleatórias Fonte insuficiente Verifique vcgencmd get_throttled; use uma fonte de 3 A
Cartão SD corrompido repetidamente Alimentação cortada durante uma gravação Desligamento correto ou sistema de arquivos somente leitura
Ícone de raio Subtensão Use uma fonte e um cabo melhores—os cabos importam
A saída serial mostra ruído de login O console ainda está na UART Desative o login shell no raspi-config
Taxa de transmissão serial incorreta Mini UART ligada ao relógio da CPU dtoverlay=disable-bt para obter a UART principal
O servomotor vibra PWM por software somado ao escalonador Use um PCA9685 ou um microcontrolador
A contagem do encoder está errada Bordas perdidas sob carga Faça a contagem em um microcontrolador
Fica lento após alguns minutos Limitação térmica Dissipador ou ventilador
Um pino GPIO parou de funcionar 5 V em um pino de 3,3 V Faça a conversão de nível; o pino provavelmente foi danificado
Dispositivo I²C não detectado Interface não habilitada raspi-config, depois i2cdetect -y 1

Pi ou microcontrolador?

Arduino / ESP32 Raspberry Pi
Executa Seu código, sozinho Linux e seu código entre vários processos
Temporização Determinística até o microssegundo De melhor esforço, com instabilidade na escala de milissegundos
Tempo de inicialização Imediato 20–30 segundos
Corte de energia Inofensivo Pode corromper o sistema de arquivos
Visão, ROS 2 e rede Não Sim
Consumo Miliamperes Centenas de miliamperes a ampères
Custo US$ 3–8 US$ 35–80

O enquadramento honesto é este: eles não são concorrentes. Um Pi não consegue contar as bordas de um encoder de forma confiável, e um microcontrolador não consegue executar OpenCV. Quase todo robô de hobby mais capaz acaba com os dois, e reconhecer isso cedo evita muito esforço tentando fazer um executar o trabalho do outro.

Se todo o comportamento do seu robô couber em uma malha de controle—um seguidor de linha, um robô que desvia de obstáculos, um solucionador de labirinto—você não precisa de um Pi, e adicionar um torna o robô mais lento para iniciar, mais frágil e mais difícil de depurar.

Explore o grafo

Usado nestas montagens

Projetos, caminhos de aprendizagem e simuladores que incluem Raspberry Pi.

Comparar

Alternativas

Perguntas

Perguntas frequentes sobre Raspberry Pi

O que é um Raspberry Pi?

Um Raspberry Pi é um pequeno computador de placa única, de baixo custo, que executa um sistema operacional Linux completo. Diferente de um Arduino, que executa um único programa em um microcontrolador, o Pi é um computador de verdade—pode rodar uma câmera, um navegador, ROS e o código do robô ao mesmo tempo.

Raspberry Pi ou Arduino—qual devo usar?

Use um Arduino para controle de motores e sensores em tempo real; use um Raspberry Pi quando o robô precisar de visão, mapeamento, ROS ou rede. Muitos robôs usam os dois—o Pi como cérebro de alto nível e um Arduino como as mãos do robô em tempo real. A multitarefa do Linux torna o Pi pior, não melhor, para temporizações precisas em microssegundos.

Um Raspberry Pi pode controlar motores?

Seus pinos GPIO podem enviar PWM e sinais de direção, mas—como um Arduino—não conseguem alimentar um motor. Você ainda precisa acionar os motores por uma ponte H, como a L298N. Os pinos do Pi também operam em 3,3 V, portanto preste atenção aos níveis de lógica ao conectar componentes de 5 V.

É preciso ter um Raspberry Pi para fazer um robô?

Não. A maioria dos robôs para iniciantes (seguidores de linha e robôs que desviam de obstáculos) funciona bem em um Arduino, com uma fração do custo e da complexidade. Use um Pi somente quando a tarefa realmente exigir um computador—visão computacional, SLAM, execução do ROS 2 ou uma interface web.

Quais modelos do Raspberry Pi são melhores para robótica?

O Raspberry Pi 4 e o Pi 5 são as escolhas usuais—CPU e RAM suficientes para visão computacional e ROS. O Pi Zero 2 W é uma opção pequena e de baixo consumo para robôs leves, em que espaço e bateria importam mais que o desempenho bruto. Evite os modelos mais antigos (Pi 1 e 2) em tarefas que exigem muito processamento.

Leitura complementar

Referências