Introdução

No mundo do desenvolvimento de software embarcado, a produtividade e rendimento do desenvolvedor depende bastante do setup que ele dispõe. Um setup bem planejado e ajustado às necessidades desta profissão faz toda a diferença, proporcionando um ambiente que favoreça a produtividade, aliando também conforto ao desenvolvedor, algo fundamental para longas jornadas de trabalho.

Neste artigo, eu exploro as possibilidades que formam o setup ideal para os desenvolvedores de software embarcados, desde equipamentos essenciais (computador e monitor, por exemplo) até elementos que podem aumentar o conforto do desenvolvedor no ambiente de trabalho.

Partes de um setup para um desenvolvedor de software embarcado

Há muitos aspectos a serem discutidos na hora de compor um setup ideal para um desenvolvedor de software embarcado. Para simplificar a sugestão de periféricos do setup ideal, eu o divido nas seguintes partes:

  • Computador
  • Monitor
  • Teclado e mouse
  • HUBs USB
  • Alimentação
  • Instrumentação básica
  • Acessórios e periféricos para produtividade

Ao longo deste artigo, cada um destes itens será detalhado.

Computador

O elemento central do setup de um desenvolvedor de sistemas embarcados, em dúvidas, é o computador. O computador para o desenvolvedor é como um carro para um motorista: sem isso, ele não trabalha.

O computador que um desenvolvedor de software embarcado for utilizar para trabalho deve ter as seguintes características:

  • Ótima capacidade de processamento: a compilação de software exige muito do processamento do computador, sobretudo a compilação de imagens de sistemas operacionais pesados, como por exemplo o Android e imagens Linux feitas com build systems como o Yocto Project. Para deixar a compilação mais rápida e conseguir, em paralelo, fazer outras tarefas no computador, é fundamental ter um processador com vários Cores (ou núcleos).
    A recomendação aqui é utilizar processadores com 12 ou mais núcleos, pois assim você pode dedicar 2/3 dos núcleos para as compilações e os núcleos restantes para uso do computador enquanto a compilação é feita. Dessa forma, a compilação tem um bom número de núcleos para ocorrer de forma rápida, enquanto você continua trabalhando.
  • Boa quantidade de memória RAM e memória RAM do tipo adequado: uma boa quantidade de memória RAM e uma boa escolha do seu tipo são a chave de um computador rápido para desenvolvimento de software embarcado, sobretudo na compilação e emulação de projetos com sistemas operacionais pesados. Para não passar raiva com lentidão, eu recomendo a utilização de , ao menos, 32GB de RAM, do tipo DDR5 (se possível, com frequência de operação de 4800MHz ou superior).
  • Utilizar armazenamento via SSD (ou NVME) junto com HDs mecânicos tradicionais: o desenvolvimento de software embarcado exige muito armazenamento. Como armazenamentos mais rápidos (SSD ou NVME, por exemplo) são caros e, ainda, HDs mecânicos de grande capacidade são baratos, eu recomendo utilizar uma combinação de ambos armazenamentos: usar o armazenamento mais rápido para conter o sistema operacional do seu computador, programas que você usa no dia-a-dia e o projeto mais recente que está trabalhando; e usar o HD mecânico para armazenar os demais projetos, imagens e backups. Dessa forma, você trabalha de forma ágil e tem um armazenamento de boa quantidade para guardar sua coisas.
  • Compre um computador com boas capacidades de upgrades: a tecnologia evolui constantemente e, com ela, sobem também os requisitos mínimos que um computador de um profissional de desenvolvimento de software embarcado deve ter para trabalhar de forma ágil. Por conta disso, é inteligente comprar um computador que permite fazer upgrades (memória RAM e armazenamento, por exemplo) ao longo do tempo. Isso garante que seu computador mantenha-se bom para trabalhar por mais tempo, e também vai te fazer economizar um dinheiro bom ao não ter que comprar um computador inteiro novo em alguns poucos anos.

Embora um computador com tais características, muitas vezes, é caro, eu recomendo que o desenvolvedor de software embarcado nunca economize na hora de comprar seu computador. Afinal, esta é a principal ferramenta de trabalho deste profissional, e um computador que fica aquém das características ideais irá, com certeza, afetar o rendimento e produtividade deste profissional.

Se você está na dúvida de qual computador escolher, eu recomendo abaixo alguns computadores (no formato notebook e desktop) que são ideais para o desenvolvedor de software embarcado:

Notebooks:

  1. Marca: Dell (modelo: G15-i1300-M75P)
    Configuração: tela de 15.6″ Full HD, Processador Intel Core i7 de 13ª Geração, 16GB de RAM (tipo: DDR5 4800MHZ), 1TB de SSD de armazenamento e GPU NVIDIA RTX 4050
    Link para saber mais sobre esse notebook: https://amzn.to/4gEZmCK
  2. Marca: Samsung (modelo: Galaxy Book3 360)
    Configuração: processador Intel Core i7 de 13ª geração, 16GB de RAM (tipo: DDR4 2400MHz), armazenamento SSD de 512GB, tela de 15.6″ Full HD do tipo AMOLED
    Link para saber mais: https://amzn.to/4gnPYDU
  3. Marca: Avell (modelo: A70 ION)
    Configuração: processador Intel Core i7 de 13ª geração, 32GB de RAM (tipo: DDR5), GPU NVIDIA RTX 4060, 512GB de armazenamento SSD
    Link para saber mais: https://amzn.to/4gFvnL1

Desktops:

  1. Marca: Dell (modelo: XPS 8940)
    Configurações: processador Intel Core i7 de 11ª geração, 128 GB RAM (tipo: DDR4), Armazenamento SSD de 2TBD, GPU NVIDIA RTX 3070
    Link para saber mais: https://amzn.to/3BtTHRg
  2. Marca: Dell Allienware (modelo: Aurora R15)
    Configurações: processador Intel Core de 13ª geração, GPU RTX 3070, 32GB de RAM (tipo: DDR5), armazenamento SSD de 512GB
    Link para saber mais: https://amzn.to/4gnSFW2

Monitor

O monitor de um desenvolvedor de sistemas embarcados deve ser escolhido com cuidado, pois depois do computador e do teclado, é a parte que o desenvolvedor de software embarcado mais vai utilizar no dia a dia.

Na verdade, falar “monitor”, no singular, não é o mais correto para um profissional deste ramo. É altamente recomendável que o desenvolvedor de software embarcado possua duas telas. Essa necessidade se baseia no fato que, frequentemente, o desenvolvedor de software embarcado estará trabalhando em um código-fonte ao mesmo tempo em que consulta datasheets e manuais. Logo, ter uma tela para cada coisa é muito produtivo.

Entretanto, nem todos têm uma mesa de trabalho grande o suficiente para ter dois monitores, situação na qual eu me incluo. Neste caso, eu recomendo você utilizar um monitor ultrawide de 29 polegadas ou mais, pois dessa forma você consegue dividi-lo em dois e trabalhar em um código-fonte enquanto consulta um outro documento.

Como recomendações de bons monitores para desenvolvimento de software, eu destaco:

Monitores para usar em par (ou seja, ter dois de cada uma das indicações abaixo):

Monitores únicos do tipo Ultrawide:

Além disso, é importante utilizar suportes articulados para segurar o(s) monitor(es). Isso se faz necessário pois, na maioria das vezes, você desenvolvedor de software embarcado vai trabalhar com o hardware do projeto (placas e/ou equipamentos do projeto que está desenvolvendo) na sua mesa de trabalho. Como os suportes articulados eliminam a necessidade de instalar as bases nos monitores, eles liberaram um espaço precioso na sua mesa.

Eu recomendo o uso dos braços articulados da marca ELG, pois são fortes, confiáveis e tem uma excelente relação custo / benefício. Veja as minhas recomendações abaixo:

Teclado e mouse

Teclados e mouses, além de serem extremamente utilizados por desenvolvedores de software embarcado, tem um ponto de atenção: ergonomia. O uso de teclados e mouses que não sejam confortáveis para você – para o tamanho de sua mão e posição de digitação, por exemplo – levam a problemas ergonômicos muito sérios, como a LER (Lesão por Esforço Repetitivo), causando dores e desconfortos que vão afetar, negativamente, seu trabalho por longas e longas horas. Portanto, sempre busque por mouses e teclados adequados para seu corpo e ergonomia.

Além disso, pelo fato de um profissional desse ramo ter que trabalhar com o hardware do projeto (placas e/ou equipamentos do projeto que está desenvolvendo) na sua mesa de trabalho, eu recomendo fortemente utilizar mouse e teclado sem fio. Dessa forma, os hardwares de trabalho não ficarão “se enroscando” com fios do seu mouse e teclado (já passei por isso e acredite, atrapalha muito!).

Uma dica adicional: se você trabalha com escrita constante de textos e documentação em português, opte por teclados que seguem o padrão ABNT2. Ter o ‘ç’ faz uma diferença e tanto na hora de fazer documentação e manuais!

Sendo assim, opte por teclados e mouses sem fio, de boa qualidade, de marcas que prezam pelo conforto, ergonomia e durabilidade dos mesmos.

Como recomendações de bons mouses e teclados, estão:

Mouses:

Teclados:

Olhando pelo lado da boa ergonomia, recomendo fortemente você usar também mousepads e suportes de teclados com apoio para o pulso (ou apoio de punho). Esses apoios deixam o pulso mais confortável e evitam dores após longas jornadas de trabalho. Eu gosto bastante destes:

HUBs USB

Para desenvolvedores de software embarcado, quanto mais portas USB disponíveis, melhor. Profissionais desse ramo utilizam frequentemente as portas USB para comunicar o computador com os hardwares/placas do projeto, assim como para ligar seus periféricos – mouses, teclados, headsets, HDs externos, etc. – ao computador.

Como os computadores (sobretudo notebooks) oferecem poucas portas USB, a solução é utilizar HUBs USB para expandir o número de portas USB disponíveis. Neste caso, existem dois tipos de HUBs USB:

HUB USB passivo: não possui fonte de alimentação externa, logo ele usa a energia vinda de uma só porta USB do computador para alimentar todos os dispositivos USB ligados ao HUB. Embora seja a opção mais barata, este tipo de HUB USB não funciona com vários dispositivos plugados ao mesmo tempo, principalmente se entre eles tiver um HD externo (que consome bastante energia, por contar com um HD mecânico).

HUB USB ativo: possui fonte de alimentação externa, fornecendo a energia necessária a todos os dispositivos USB plugados nele. É a opção mais cara (pois envolve a compra de uma fonte externa junto com o HUB USB), mas é a mais adequada para quem usa muitos dispositivos USB plugados no mesmo HUB.

Eu recomendo que o profissional em desenvolvimento de software embarcado tenha, ao menos, um HUB USB ativo dentre seus HUBs USB, pois assim é garantia de que você terá como suportar muitos dispositivos USB ao mesmo tempo. Segue abaixo duas recomendações minhas de HUBs USB, sendo um ativo e um passivo:

Alimentação

Falando como um desenvolvedor de software embarcado, posso dizer com 100% de certeza: proteger nosso setup de surtos na rede elétrica é fundamental. Nosso setup é nosso ganha pão, e deixá-lo sem nenhuma proteção a problemas da rede elétrica é, pra dizer o mínimo, imprudente.

Nesse aspecto, há duas maneiras de se proteger:

  • Para quem tem notebook, é suficiente utilizar uma boa proteção contra surtos de rele elétrica, uma vez que a bateria do notebook já impedirá o risco de corromper os seus arquivos caso haja falta de energia. Se esse é seu caso, eu recomendo você utilizar adaptadores únicos da iClamper ou mesmo réguas da iClamper já com proteção
  • Para quem usa computador desktop, é recomendável utilizar um bom nobreak, uma vez que esses computadores não contam com baterias para suprir energia em caso de falta de energia elétrica da rede. É preciso dimensionar o nobreak correto para seu setup, de acordo com a energia que ele consome. Como referência de marca de nobreak no Brasil, eu elenco a SMS.

Instrumentação básica

Por mais que o trabalho do desenvolvedor de software embarcado seja, como o próprio nome sugere, desenvolver software, sempre há algum nível de interação com o hardware do projeto no qual ele trabalha. Para isso, é fundamental este profissional dispor de uma instrumentação básica, para poder diagnosticar problemas de hardware.

Como recomendações de instrumentação:

  • Multímetro: instrumento de medição básico para qualquer desenvolvedor de software embarcado. Simplesmente, não dá pra trabalhar sem ter um por perto, uma vez que esse instrumento serve para medir tensão, corrente e resistência (alguns modelos, medem também capacitância e o ganho de transistores). Como recomendação de multímetro, eu elenco o Multímetro digital ET-1507B, do fabricante Minipa
  • Fonte de bancada: equipamento também fundamental para todo desenvolvedor de software embarcado, que servirá para alimentar os hardwares / placas do projeto de forma controlada e segura. Recomendo a fonte de alimentação DC MPS-3005B, do fabricante Minipa
  • Analisador lógico: instrumento que ajuda muito, pois permite inspecionar linhas de comunicação e verificar quais dados estão sendo transmitidos, o que ajuda bastante no debug de sistemas embarcados. Existem analisadores lógicos muito completos e caros, mas um bom pra começar é o Analisador Lógico 8 Canais com Interface USB – Saleae Logic 8ch

Acessórios e periféricos para produtividade

Até o momento, tratei neste artigo de coisas que todo desenvolvedor de software embarcado precisa, obrigatoriamente, ter. Agora, chegou o momento de eu falar de alguns acessórios e periféricos não obrigatórios, porém que ajudam bastante para produtividade e conforto.

Se você trabalha em um ambiente barulhento, pode ser difícil concentrar. Para ajudar nisso, eu recomendo o uso de fones de ouvido com cancelamento ativo de ruído. Acredite, em ambientes agitados e muito ruidosos, um fone desses é algo quase mágico. Aposto que depois e usar uma única vez, você não trabalhará mais sem ele. Existem opções para todos os tipos de bolsos, e para quem não tem muito dinheiro para investir num fone, recomendo uma opção muito boa e barata: o fone JBL Tune 770NC.

Se você trabalha em casa (home office), você tem a liberdade de escolher como a iluminação do ambiente vai estar. Uns desenvolvedores de software gostam do ambiente mais claro, ouros gostam de trabalhar no escuro somente sob a luz do monitor, outros gostam de iluminações mais quentes ou mais frias. Enfim, as opções de opções são inúmeras. Uma forma de controlar a iluminação do ambiente a seu gosto – e também testar outras iluminações sem mudar nenhuma lâmpada sequer – é utilizar lâmpadas inteligentes. Estas lâmpadas apresentam iluminação com LEDs RGB ( = muitas opções de cores), com dimerização e são conectadas à Internet, permitindo que você as controle pelo seu celular, sem nem sair da sua cadeira de trabalho. Como recomendação de lâmpada inteligente boa, barata e que dura muito, eu elenco a Lâmpada Inteligente Smart Color 10W, do fabricante Elgin. Caso você goste de luminárias e queira estas mesmas características, recomendo a Smart Luminária de Mesa Wi-Fi, do fabricante Positivo.

Leia mais


Pedro Bertoleti

Informações completas em: http://pedrobertoleti.com.br/index.php/sobre/