PocketBeagle – O que era bom ficou ainda menor! 2

A BeagleBone tem sido uma plataforma e tanto desde o seu surgimento, fazendo uso do SoC ARM Sitara AM335x, que “basicamente” é um ARM-Cortex A8 dotado de microcontroladores auxiliares (os chamados PRU – vale um artigo só sobre esses caras, tamanha complexidade deles!), além de GPU, controladores de rede e um forte aparato de interfaces para dispositivos embarcados, tais como USB, CAN, SPI, UART, I2C, ADC, etc. Todavia, a primeira versão da BeagleBone, chamada de “white”, tinha um preço um tanto quanto salgado (US$ 89.00), enquanto que uma Raspberry Pi custava lá seus sempre US$ 35.00. Com evoluções no projeto e demais parcerias, os projetistas da BeagleBoard.org conseguiram fazer uma nova versão que se consolidou no mercado – A BeagleBone Black. E agora temos, por sua vez, a versão “miniaturizada” da BeagleBone Black – a PocketBeagle!

PocketBeagle

Como foi possível reduzir tanto assim o tamanho de uma… para a outra?

O Segredo – System-In-Package

O que tornou possível essa miniaturização maior dos recursos da BeagleBone foi a adoção do chamado “System-In-Package” (SIP), que basicamente é um “chip” (tá mais para uma “placa”)  composto de todo um aglomerado de outros componentes mais, tais como processador, memória, controlador xyz, etc. E quem criou o SIP adotado na PocketBeagle foi a Octavo Systems.

SIP

O SIP empregado na PocketBeagle é o OSD335x-SM, que como mostrado na Figura 1, incorpora, num mesmo encapsulamento:

  • Processador ARM Cortex-A8 AM335x
  • Memória DDR3L de 512MB (detalhes da documentação)
  • Controlador de Energia TPS65217C
  • Regulador de tensão TL5209
Estrutura SIP
SIP OSD335x-SM – Fonte: https://octavosystems.com/octavo_products/osd335x-sm/

Ou seja, é bastante coisa num espaço só!

O mesmo SIP é adotado também na BeagleBone Black Wireless e na BeagleBone Blue. Acredito eu que será uma tendência daqui pra frente, dada a praticidade, redução de complexidade de projeto.

Lembrando que esses componentes na BeagleBone Black, por exemplo, estão cada um à parte na placa, ou seja, o processador, memória RAM, regulador de tensão e controlador de energia – são todos chips individualmente presentes na placa. E agora com a adoção do chip, todo mundo ficou apertado num lugar só, bem menor, mas ao mesmo tempo mantendo todas as funcionalidades anteriormente exercidas. Ou seja: diminui o espaço, mantendo o trabalho!

O SIP incorporou bastante gente, mas ainda fica a cargo do fabricante adotar externamente sua forma de persistência de dados – Em outras palavras, SIP não incorpora memória Flash! Assim, as placas/equipamentos que adotam SIP precisam incorporar ou uma memória Flash externa (como feito na BeagleBone Black Wireless e Blue), ou um acesso a um cartão de memória microSD (como feito na PocketBeagle).

Dessa forma, é necessário usar um cartão de memória microSD para gravar o sistema Linux a ser usado na PocketBeagle. A recomendação é de que seja um cartão com no mínimo 4GB de memória. Esse cartão será o “HD” da placa, onde ficará o sistema e os dados de aplicações e usuário. Para ver as imagens disponíveis para download, veja este link.

Detalhes sobre a PocketBeagle

A PocketBeagle é uma das placas capazes de rodar Linux Embarcado mais “simples” que eu conheço. Sem muitos componentes (porque o grosso da coisa ficou disfarçado pelo SIP Octavo), acaba sendo uma placa onde todo mundo se encontra em somente uma das faces da placa, que é a face superior. Ali estão o SIP, conector de cartão microSD, pinos de interace, LEDs, USB, botão de energia e circuito de clock.

Detalhes PocketBeagle

O diagrama de blocos que detalha como estão ligados os componentes da placa também acaba sendo bem simples.

Diagrama de blocos da PocketBeagle. Fonte: https://github.com/beagleboard/pocketbeagle/wiki

E tão simples como parece ser à vista, também é seu uso. Basta plugar ela num cabo USB e ligar o cabo no computador que ela será ligada, e pela USB serão criados canais de comunicação Serial, Rede e Armazenamento de Dados entre a placa e seu computador.

O diagrama de blocos foi “simples” no que tange aos conectores P1 e P2. Vamos ver esses caras com um pouco mais de detalhes.

Sinais de Interface

A BeagleBone tradicional possui 92 pinos de interfaces diversos (GPIO, ADC, PWM, etc). Todavia, optaram por projetar a PocketBeagle com 72 pinos de interface, o que resultou em uma redução de 20 pinos frente ao seu irmão maior. De toda forma, ainda é uma (grande) quantidade de sinais, que permitem toda sorte de projetos – de controle de displays a servo-motores, interface com sensores e componentes diversos. Veja adiante um apanhado resumido das interfaces presentes e expostas na PocketBeagle:

Característica Descrição
System-In-Package Octavo Systems OSD335x-SM em encapsulamento BGA (21mm x 21mm)
Elementos incorporados no SIP:
Processador Texas Instruments 1GHz Sitara™ AM3358 ARM® Cortex®-A8 com acelerador de ponto flutuante NEON
GPU Imagination Technologies PowerVR SGX530
Unidades de Tempo-Real 2x Unidades Programáveis de Tempo-Real (PRU) de 32-bit 200MHz
Coprocerrador ARM® Cortex®-M3 para funções de gerenciamento de energia
Memória SDRAM 512MB DDR3 800MHz RAM
Memória Não-Volátil 4KB I2C EEPROM para informações de configuração da placa
Gestão de Energia TPS65217C PMIC juntamente com TL5209 que fornecem energia ao sistema, com suporte a baterias LiPo de 1 célula
Conectividade:
SD/MMC Cartão de microSD para dados e boot de sistema
USB Conector microUSB 2.0 OTG
Suporte para Debug Pontas de prova para JTAG
Power Source Conector microUSB
Botão de Usuário (I/O) Botão de Energia com detecção de toque via TPS65217C PMIC
Sinais de Expansão:
USB Sinais de Controle para Interface USB 2.0 OTG
Analog Inputs 8 entradas analógicas sendo 6 de 1.8V e 2 de 3.3V com referência de 1.8V
Digital I/O 44 sinais GPIOs acessíveis, sendo 18 habilitados por padrão, sendo 2 compartilhados com entradas analógicas de  3.3V
UART 3 interfaces UART sendo 2 ativadas por padrão
I2C 2 Interfaces I2C
SPI 2 Interfaces SPI
PWM 4 sinais PWM sendo 2 habiliados por padrão
QEP 2 Encoders de Quadratura
CAN 2 Controladores CAN

Uma figura que havia ficado “oculta” até o momento é a face inferior da PocketBeagle. E para falar dos sinais de interface, agora apresento ela em detalhes na figura abaixo. O interessante da PocketBeagle é que os sinais estão bem legendados, o que facilita o uso dela em prototipagem e a devida conexão dos sinais. “Batendo o olho” nessa face inferior você já sabe qual é qual cada sinal da placa. Muito mais prático né?

Headers

Se você quiser ver em mais detalhes cada sinal e quais são os “grupos” de sinais presentes, tais como Power, USB, UART/SPI/I2C, PWM e ADC, veja na tabela abaixo presente na Wiki da PocketBeagle. Vale lembra que, a despeito de parecer confuso ver a face inferior da PocketBeagle com a legenda de componentes e a tabela abaixo, saiba que a tabela abaixo é a listagem dos Pinos P1 e P2 vendo a placa pela face superior, ok?

Conectores de Interface da PocketBeagle. Fonte: https://github.com/beagleboard/pocketbeagle/wiki

Usando a USB

Uma grande cartada da BeagleBone, desde a primeira versão, é a sutil facilidade de usar a placa por completo via USB. E isso se manteve na PocketBeagle, de forma que ao plugar a placa no computador, ela já aparece como uma unidade de disco, e dentro dessa unidade de disco estão drivers para configuração da placa e uma boa documentação de suporte.

PocketBeagle aparece como unidade de disco quando ligada via USB ao computador.

Em se tratando do sistema operacional Windows, é necessário instalar os drivers presentes na unidade de disco apresentada pela BeagleBone/PocketBeagle para que as funcionalidades de Rede via USB fiquem plenamente operacionais.

Instalados os drivers, a PocketBeagle cria uma interface de rede, onde ela aparece como dispositivo com IP fixo 192.168.7.2. Se você acessar esse IP, caíra numa página com guia de primeiros passos para as placas BeagleBone. Ah, esse mesmo IP também pode ser usado para acessar a placa via SSH, quando conectada via USB ao computador.

Página de suporte presente na própria BeagleBone/PocketBeagle.

E além disso, é criada uma porta serial (série COM no Windows, ou na sequência /dev/tty no Linux). Pela porta Serial você consegue rapidamente acessar o console Linux do sistema em execução na PocketBeagle!

Testes da PocketBeagle Board
Acessando o console do Linux Debian da PocketBeagle via USB.

 PocketBeagle vs Raspberry Pi Zero Wireless

Se você também conhece a RaspberryPi Zero Wireless, deve estar se perguntando: “Por que eu usaria a PocketBeagle, se tem a RaspberryPi Zero Wireless”?

Bom, são placas realmente parecidas, mas com aplicações um tanto quanto diferentes. O foco da PocketBeagle é controle e automação. Observe que a PocketBeagle nem tem saída de vídeo – multimídia não é o seu foco. Já a RaspberryPi Zero Wireless tem saída HDMI.

PocketBeagle x Raspberry Pi Zero W

Em contrapartida à parte multimídia, a PocketBeagle tem toda sorte de interfaces semelhantemente um microcontrolador bem avantajado – controladores de rede CAN, encoders de quadratura, sinais de PWM, conversores ADC, mais interfaces UART, SPI e I2C, e mais uma porta USB disponível. Tudo isso somado ao fato de que possui um processador ARM para executar Linux e aplicações de usuário, além de 2 microcontroladores auxiliares (PRUs) também. Lembro também que a placa como um todo tem 72 sinais de interface, enquanto que a RaspberryPi tem 40.

Recursos como PWM podem ser feitos na RasperryPi? “Sim”, de forma emulada, via software, mas não usando recursos de Hardware igual a PocketBeagle. Já outros recursos como SPI, I2C e UART a RaspberryPi possui em menor quantidade. No que tange ao conversor analógico-digital, seria necessário usar um conversor externo para desempenhar essa funcionalidade na RaspberryPi, tal como o ADS1115.

A RaspberryPi Zero Wireless é tida como mais amigável para os leigos de Sistemas Embarcados e Linux Embarcado por possuir já uma maior documentação, livros. Possui também em sua imagem-base alguns “scripts” de setup do sistema, como o famoso “raspi-config”, além de já ter uma grande comunidade de usuários. Além do mais, ela vem com conectividade WiFi e Bluetooth, coisa que já não vem presente na PocketBeagle, sendo necessário o uso de um adaptador/componente externo pra isso.

Considerações

Se você é aluno de Engenharia Mecatrônica, Engenharia de Computação ou Engenharia Elétrica (e/ou cursos correlatos também), essa é uma placa interessante pra você. Ainda mais em se pensando em algum projeto de robótica ou Trabalho de Conclusão de Curso que envolva robótica e automação, por exemplo. Mas essa também é uma placa para entusiastas e curiosos de plantão.

Não encaro negativamente o fato de a PocketBeagle não vir com conectividade sem-fio. Imagino isso mais como uma “deixa” para a liberdade do usuário de escolher o que quer conectar – seja ZigBee, Bluetooth, WiFi, GSM, etc. As interfaces para falar com toda sorte de periféricos e componentes estão lá, e temos no mercado componentes acessíveis para toda sorte de conectividade também.

Além dos pontos que eu citei da PocketBeagle, os sistemas Linux fornecidos pela BeagleBoard.org também incorporam 2 IDEs online que você acessa pela rede se conectando à placa, o Cloud9 e o NodeRED, o que facilita o acesso e o desenvolvimento de código/aplicações na placa.

Se você gosta de colocar um pouco mais a mão na massa, extrair e conhecer mais do que os sistemas podem oferecer e fazer, eu recomendo fortemente a PocketBeagle pra você.

Gostou? Deixe seu comentário logo abaixo.

Faça seu comentário

Acesse sua conta e participe

2 Comentários

  1. Quando estará disponivel para venda na loja da FlipeFlop

  2. Muito bom! Gostei do artigo, leitura gostosa… Tenho que começar a estudar a Beagle black para um projeto da faculdade, mas acho que a pocket vai ser uma boa pedida pelo tamanho!