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.
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_throttledtambé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 nowantes 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