1 pontos por GN⁺ 2023-09-07 | 1 comentários | Compartilhar no WhatsApp
  • Hardware ainda é complicado por causa das limitações físicas, mas a capacidade de aproveitar código open source e o ecossistema de componentes tornaram muito mais fácil para desenvolvedores de software criarem dispositivos práticos por conta própria
  • Depois do Arduino, as placas de microcontrolador ficaram muito mais variadas, e placas como ESP32 e Pico W permitem implementar repetidamente lógica personalizada sobre componentes baratos, incluindo WiFi e Bluetooth
  • Componentes baseados em I2C e StemmaQT/Qwiic permitem conectar sensores e dispositivos de entrada sem solda, deixando o foco mais na combinação de bibliotecas e códigos de exemplo do que no desenho de circuitos
  • Com impressoras 3D e ferramentas CAD, também dá para criar gabinetes personalizados para abrigar o circuito, corrigindo repetidamente problemas de layout e calor com baixo custo de material e impressão rápida
  • À medida que a combinabilidade, a documentação e o suporte da comunidade no estilo open source chegaram à criação de hardware, surgiu um ambiente em que indivíduos podem criar produtos físicos para resolver os próprios problemas

Por que fazer hardware ainda é difícil, mas ficou mais fácil

  • Hardware tem um poder que é difícil obter só com software, porque produz resultados físicos que podem ser tocados, mas justamente por isso a complexidade também é maior
  • Circuitos podem ser mais difíceis de depurar do que código e, mesmo quando lógica e tensão estão corretas, ainda é preciso lidar com restrições físicas como fiação, disposição no espaço e dissipação de calor
  • Desenvolver um produto de hardware é como o desenvolvimento normal de produto com as limitações do mundo físico adicionadas
  • O projeto ThermTerm foi criado para mudar a interface difícil de ler e a experiência de programação incômoda de um controle remoto de bomba de calor existente, além de integrar a bomba de calor a um sistema de automação residencial
    • O dispositivo final foi instalado em 5 pontos da casa
    • O desenvolvedor não é engenheiro eletrônico, mas concluiu o dispositivo aproveitando código open source e o ecossistema de componentes
  • Usar código open source inclui explorar repositórios, entender código de outras pessoas, resolver problemas, buscar ajuda na comunidade e até distinguir projetos bons de projetos ruins
  • Essa experiência pode se expandir para além do mundo dos bits, chegando ao mundo dos elétrons e dos átomos

Microcontroladores e o ecossistema de software

  • O Arduino foi um ponto de virada na experiência do desenvolvedor ao permitir que iniciantes escrevessem código C simples e tivessem uma experiência de computação física em poucos minutos
  • Depois disso, o ecossistema de placas de microcontrolador se expandiu muito
    • Há placas em vários tamanhos e configurações, de algo do tamanho de um sanduíche até algo do tamanho de um selo postal
    • Microcontroladores se tornaram a base para repetir continuamente lógica personalizada sobre componentes baratos
    • Cada placa tem conectores, acessórios e arquitetura de chip diferentes
  • Placas baseadas em ESP32 ou a Pico W incluem até recursos de WiFi e Bluetooth
  • O eixo que une tantas placas diferentes é o ecossistema de software
    • Existe código Arduino open source que resolve vários problemas, como rede e tratamento de botões
    • Mesmo com arquiteturas diferentes, em geral há uma porta do ambiente Arduino, o que permite reaproveitar código existente no projeto
    • Se você prefere Python em vez de C/C++, MicroPython e CircuitPython podem ser usados como alternativas

I2C e StemmaQT/Qwiic viabilizaram projetos eletrônicos modulares

  • I2C é um padrão serial de dados de 2 fios lançado em 1982 e, somando mais 2 fios de alimentação e terra, permite ligar vários dispositivos a um mesmo barramento
  • Para quem faz hardware por hobby, a parte mais difícil costuma ser o projeto de circuitos
    • É uma área em que leis da física e décadas de conhecimento sobre componentes se entrelaçam
    • É preciso considerar regulação de tensão, controle de resistência e até uma montagem fisicamente robusta e fácil de manter
  • Assim como no desenvolvimento moderno de software se combinam bancos de dados, frameworks de UI e bibliotecas HTTP, em hardware também se tornou possível uma forma semelhante de composição
  • O StemmaQT da Adafruit e o Qwiic da Sparkfun são padrões de cabo baseados em I2C que permitem conectar rapidamente várias placas sem solda
  • No controlador da bomba de calor, os seguintes componentes são ligados por I2C
  • Cada placa esconde os detalhes internos de implementação como uma biblioteca bem feita
    • Não é preciso lidar diretamente com detalhes como gerenciamento de energia ou interpretação do sinal do encoder rotativo
    • Depois da fiação, basta encontrar o código de exemplo de cada componente e adaptá-lo ao projeto
  • Os vendedores de componentes mantêm ativamente bibliotecas de suporte e documentação, e a Adafruit oferece centenas de placas úteis e incomuns que apoiam essa forma de composição

Transformando o circuito em um objeto físico

  • Depois de criar um circuito funcional, você pode projetar e fabricar seu próprio gabinete personalizado
  • Com cerca de US$ 500, dá para comprar uma impressora 3D da Prusa
    • As impressoras da Prusa funcionam bem logo ao sair da caixa
    • Elas se integram bem ao software slicer multiplataforma da Prusa
    • A comunidade de usuários é muito ativa, então é fácil conseguir ajuda
    • O volume de impressão nessa faixa de preço não é grande, mas é suficiente para projetos eletrônicos
  • Vendedores de hardware aberto muitas vezes fornecem modelos 3D de seus produtos, o que permite projetar gabinetes exatos em programas CAD
  • Impressão 3D tem baixo custo por iteração e alta velocidade
    • Para testar um novo projeto, bastam alguns centavos em material e um tempo de impressão
    • No controlador da bomba de calor, o calor residual do microcontrolador distorcia as leituras do sensor de temperatura, e isso foi resolvido com iterações de projeto que moveram os dois sensores para a parte superior do gabinete
  • A impressão 3D tem curva de aprendizado
    • É preciso considerar restrições de calor e gravidade
    • A forma como as camadas se acumulam afeta a resistência e a durabilidade da peça, e a orientação de impressão pode influenciar o resultado
    • A escolha do material também importa
    • PETG foi adequado para esse tipo de trabalho por ser fácil de usar e durável
    • PLA é mais comum, mas quebrava com facilidade demais

CAD e comunidade reduziram a barreira de entrada

  • Habilidade com CAD também é necessária, mas pode ser menos dolorosa e mais divertida do que parece
  • Trabalhar com CAD se parece mais com esboçar formas planas simples, empurrá-las e puxá-las para virar objetos 3D e cortar pequenos detalhes
  • Vários softwares CAD de desktop baratos eram desconfortáveis, como usar um app antigo em Flash no IE6, mas o Shapr3D para iPad permite modelagem intuitiva com o Apple Pencil
  • Ao aprender novas tecnologias como impressão 3D, a comunidade tem um papel importante
    • Usuários hobbyistas estão profundamente envolvidos com impressão 3D
    • Dá para encontrar ajuda desde o planejamento do modelo até a depuração de problemas térmicos durante a impressão
  • O ambiente atual de criação de hardware incorporou a economia de esforço, a combinabilidade e a diversão do open source
  • Indivíduos também podem criar diretamente os dispositivos de que precisam e chegar a resultados como automatizar e controlar remotamente o equipamento de maior consumo de energia da casa, como no caso do controlador da bomba de calor

1 comentários

 
GN⁺ 2023-09-07
Opiniões do Hacker News
  • Eu diria de um jeito um pouco mais complexo: “se você consegue usar open source, também consegue criar protótipos de hardware”
    Fazer hardware também inclui torná-lo robusto o suficiente para aguentar o mundo real por longos períodos. É preciso considerar como um sensor de umidade é afetado pelo ambiente ao redor, até mesmo incluindo o saco da embalagem — e eu já me dei mal com isso na prática. Também é preciso ter um plano de recalibração quando o drift aumentar. Conectores para chicotes de cabos precisam aguentar o número de conexões/desconexões esperado ao longo da vida útil do produto, e o comprimento do chicote também precisa ser adequado para não ser danificado quando o gabinete for aberto para trocar a bateria etc.
    Também é preciso pensar no efeito do ambiente ao redor sobre o restante do projeto. Por exemplo, em ambientes úmidos, é preciso evitar uma situação em que você tenha de limpar os contatos periodicamente por não ter usado contatos banhados a ouro tanto no chicote quanto no conector
    Claro que aprendi a maior parte disso por conta própria, e um hobbista também consegue chegar lá. Mas há uma grande diferença entre trocar um controlador de relé inteligente por outro e criar um controlador de relé inteligente que seja bom o suficiente para dar de presente de Natal à sua cunhada

    • Apoio fortemente hardware open source, mas, como no texto acima, na prática ele exige conhecimento de várias áreas, muito raciocínio cuidadoso e tentativa e erro. Eletrônica e física não perdoam como processadores perdoam
      Mesmo chegando ao estágio de protótipo, hardware open source muitas vezes tende a ser útil apenas para a pessoa que o criou
      Há uma grande diferença entre criar um protótipo e documentar o processo de montagem com detalhes suficientes para que outro hobbista consiga replicar, modificar e usar. Documentação de hardware é muito mais difícil do que documentação de software e, se o projeto for interessante, pessoas sem nenhuma experiência em solda ou em encomendar peças cortadas a laser também vão querer participar — e é difícil dar suporte a elas
      Um passo além disso, mesmo que seja só vender algumas unidades a mais no Tindie, já vira vender o projeto para outros hobbistas; para vender ao público em geral, passa a ser necessária certificação de interferência da FCC, e se algumas casas pegarem fogo por causa de uma falha de projeto, a empresa passa a ser responsável. Há um motivo para empresas de hardware contratarem engenheiros de verdade que seguem padrões profissionais. Como o custo marginal por unidade não é menor que 1 centavo, como em software, também vêm junto problemas de fluxo de caixa e de negócio
      Em cada uma dessas etapas, muitas vezes é preciso iterar o hardware várias vezes, o que envolve lead time e custo
    • Mesmo somando tudo isso, o problema maior do hardware DIY, ou seja, o próprio DIY, não se resolve
      Se quebrar, você não pode simplesmente comprar um novo, nem chamar um técnico por um preço razoável. Se houver software junto, é bem provável que ele também precise de manutenção. Se você queria um, também é bem provável que precise de outro para expandir o projeto
      Dá para projetar um dispositivo de hardware confiável, mas, sem um orçamento grande, não dá para fazê-lo resistir a ser atingido por um taco de beisebol ou a ter epóxi derramado no conector. Por isso, quando alguém realmente me pede para construir algo, tento resolver com componentes prontos sempre que possível
      Projetos eletrônicos são muito divertidos, mas parte da diversão diminui pelo fato de que, no fim, sobra um objeto totalmente único e insubstituível. Se usado para algo importante, vira um fator de responsabilidade; normalmente fica preso a um único uso e, quando deixa de ser necessário, vira lixo, ao contrário de um produto pronto de uso geral
      ESPHome e módulos da Amazon, junto com impressão 3D, oferecem um equilíbrio bastante bom em muitos casos. Eles são reconfiguráveis e dão confiabilidade de solda industrial e uma stack de software pronta, mas ainda oferecem flexibilidade suficiente para criar coisas novas
    • Concordo. Para evitar que sua casa pegue fogo por causa de um erro no código ou de outro problema de projeto, também são necessários mecanismos de segurança passivos
      O projeto de hardware é a última linha de defesa antes de causar dano ao mundo real
      Elementos como fusíveis, proteção contra descarga eletrostática e surtos, e timers watchdog frequentemente ficam de fora até mesmo em projetos de hobby ou projetos open source. Saber quando essas coisas são necessárias às vezes exige experiência adquirida do jeito difícil
    • Isso me lembra quando eu estudava engenharia elétrica na universidade e trabalhava em uma loja de eletrônicos. O dono de uma aeronave pequena pediu ajuda com um regulador para reduzir 28 V para 12 V e lidar com alguns amperes
      Tentei evitar ajudar no projeto, mas ele insistiu, então sugeri ligar em paralelo alguns 7812 em encapsulamento TO-3. Funcionou no teste de bancada, e ele foi embora
      Alguns anos depois, aprendi que não se deve fazer desse jeito, porque um dos reguladores pode acabar assumindo a carga e sobrecarregar. Em vez disso, é preciso fazer um único regulador realizar o trabalho usando um transistor de passagem ou outro mecanismo. Até hoje me pergunto se o avião dele não caiu em chamas
    • “Se você consegue usar open source, também consegue criar protótipos de hardware” é uma afirmação válida para alguns tipos de hardware
      Dei uma olhada em criar algo que fosse além do que uma pequena placa de desenvolvimento com MCU em formato de módulo consegue fazer, mas não consegui assimilar bem. Havia muitos elementos em que eu não era bom
  • Há muito gatekeeping e cinismo nos comentários daqui. Sempre que algo difícil fica mais fácil, aparecem os puristas que sofreram mais para dizer que aquilo que você faz facilmente não é tão bom quanto a coisa difícil que eles vêm fazendo desde muito jovens
    A abordagem por composição é excelente para protótipos e produção em pequena escala. À medida que sua habilidade aumenta e você aprende otimização de BOM e design for manufacturability (DFM), vai começar a substituir placas MCU por projetos próprios. Você também vai perceber que um encoder rotativo I2C de US$ 10 pode ser substituído por US$ 1 em componentes, somando resistores, capacitores, diodos Schottky e inversores hex
    Como empresas como JLBPCB ou PCBWay oferecem serviços de impressão 3D e CNC, você nem precisa comprar uma impressora 3D para começar
    Além disso, com https://wokwi.com/, talvez você nem precise de peças de prototipagem

    • Concordo totalmente com o ponto sobre gatekeeping e cinismo. Como desenvolvedor de software entrando em hardware, parece haver uma quantidade enorme de frutos baixos para colher na área de regras de projeto que lidam com seleção e posicionamento de componentes em nível “pronto para produção” e condições ambientais
      O mercado de software para engenheiros de hardware parece menos criativo ou ambicioso do que o de software puro, DevOps ou infraestrutura
      Há uma grande oportunidade
  • Interessante, e estou na mesma situação que o autor. Recentemente comecei a mexer mais com dispositivos embarcados e estou construindo um sensor de nível de poço
    No início tentei usar uma placa baseada em NRF, mas fiquei travado no ecossistema do SDK. Parecia muito voltado a engenheiros embarcados experientes de empresas. Então voltei para uma placa ESP32-C3/S3, muito mais simples: é excelente, amplamente suportada, fácil de configurar e bastante estável. Consegui conectá-la ao sensor de distância HC-SR04 e fazer o cálculo de distância funcionar. Para alimentar por bateria, como o sensor exige 5 V, também preciso adicionar um conversor de tensão; depois de ler um pouco e errar algumas vezes, acabou sendo fácil o suficiente
    Depois disso, a placa e os cabos viram uma bagunça, e é preciso soldar na placa, o que exige ferramentas e um pouco de tentativa e erro. Agora, sem um gabinete, experimentei algumas caixas de junção comerciais, mas nenhuma ficou perfeita, e no fim decidi comprar uma impressora 3D. O futuro chegou: você imprime por conta própria e aprende modelagem
    A impressora 3D foi, na verdade, bem fácil em comparação com todo o resto. Menos de uma hora depois de receber a impressora, já tinha imprimido meu primeiro modelo; e modelagem programática com OpenSCAD ou, como prefiro agora, CadQuery, também foi fácil de aprender depois de brincar por algumas horas. Faz exatamente uma semana que tenho a impressora, já fiz quase uma dúzia de impressões bem-sucedidas e projetei algumas peças usáveis e funcionais
    Não é preciso ter medo de impressoras 3D. Também dá para comprar uma boa impressora por bem menos de 500 dólares. Comprei uma Sovol SV06 usada, pouco utilizada, por 150 euros; nova custa 220 euros e funciona muito bem
    Como não encontrei um sensor de nível de poço pronto que atendesse ao meu objetivo, estou fazendo o meu. O preço final da BOM provavelmente ficará em torno de 20 euros. Foram centenas de horas aprendendo e fuçando, e o custo das coisas que comprei para isso — impressora, alicate de crimpar conectores, cabos, MCU, placas de solda, sensores, suporte de bateria, componentes eletrônicos, filamento, ferro de solda etc. — já está por volta de 500 euros. Ainda assim, tudo valeu a pena

  • Impressão 3D tem uma curva de aprendizado, e talvez seja o elemento mais íngreme aqui
    Gosto de CAD, mas realmente detesto impressão 3D. Parece um dispositivo inventado para explicar a lei de Murphy: “tudo que pode dar errado vai dar errado”
    O bico de impressão entope toda vez. O filamento quebra no pior lugar possível e, para removê-lo, é preciso desmontar parte da máquina. Ela para sem motivo no meio de uma impressão longa. A mesa nunca está exatamente nivelada. Se você não deixar o carretel de filamento girar livre o bastante, a máquina puxa o filamento, derruba o carretel, e esse carretel, como vingança, puxa a máquina inteira para baixo
    E, claro, tudo leva horas
    Tive muito mais sorte usando serviços externos, em que você envia o arquivo e eles mandam o objeto. É caro e muitas vezes demora mais do que fazer em casa, mas tranquilidade não tem preço

    • A realidade física é assim mesmo. Tudo sempre quebra, e o processo precisa ser robusto a isso. Só que impressoras 3D de consumo tornam isso praticamente impossível em alguns aspectos. Por isso, tendo a achar CNC doméstico mais interessante por esse motivo
      Por exemplo, uma solução industrial para alguns problemas seria inspecionar a impressora com base em uma checklist a cada trabalho, mas em casa isso fica terrivelmente entediante
      Software que entra em contato direto com a realidade também sofre desse tipo de problema
    • Tenho a impressão de que estamos nos esforçando demais para não aprender as lições da fundição de metais
      Na metalurgia, fundição é uma técnica muito antiga. Eu não diria que é a mais simples, mas o fato de pessoas pré-industriais terem conseguido descobri-la diz algo sobre sua complexidade
      Trabalho em torno começa a partir de cilindros ou poliedros
      Mas nós só usamos métodos de esculpir formas a partir de poliedros ou de construir a partir do nada. Para objetos complexos, côncavos ou emaranhados, parece mais plausível combinar impressão aditiva de baixa resolução com usinagem subtrativa de alta resolução
      Talvez a máquina CNC precise de mais um grau de liberdade. Mesmo que não seja uma “cauda preênsil” completa, se a cabeça de corte pudesse inclinar cerca de 45 graus, a diferença entre as formas que a manufatura aditiva e a subtrativa conseguem produzir diminuiria bastante
    • O importante é comprar uma máquina que funcione bem logo de cara. Fuçar e resolver problemas também faz parte da experiência de impressão 3D, mas minha Prusa Mini quase não exige cuidados nem manutenção
    • Pode ser uma diferença entre impressoras 3D de consumo e industriais. Serviços externos normalmente usam impressoras industriais caras, projetadas para uso mais frequente ou contínuo, e é bem provável que sejam diferentes das impressoras comuns de consumidor
  • Como alguém que só trabalhou com software, este texto me dá bastante coragem para tentar projetos de hardware no futuro
    Sinceramente, acho que o problema maior é não ter exatamente uma finalidade a resolver com um projeto de hardware feito por mim. Não sinto, na minha vida ou na minha casa, alguma deficiência que precise ser corrigida com um projeto de hardware
    Além disso, em geral quero a melhor solução dentro do que consigo pagar. Até agora, produtos comerciais têm sido satisfatórios o bastante. Se posso pagar e comprar um produto que resolva o problema, prefiro fazer isso a quebrar a cabeça construindo eu mesmo, porque considero meu tempo mais valioso que qualquer outra coisa
    No fim, para eu colocar o pé em hardware, acho que precisaria haver um problema suficientemente irritante que não fosse resolvido por produtos prontos no mercado. Algo em que as opções prontas fossem péssimas ou simplesmente não existissem

  • Soa como conteúdo típico da internet de hoje. Tem buzzwords suficientes para um mecanismo de busca encontrar, mas é abstrato demais para ser realmente útil

    • Um post de blog não precisa necessariamente ser útil
    • É uma crítica válida, mas não acho que seja necessariamente culpa do autor
  • A frase “não dá para vencer a Prusa; a impressora funciona perfeitamente assim que sai da caixa” vem ao custo de ser antiga e lenta
    Depois que a Prusa basicamente entregou o mercado a outras empresas, fica difícil só elogiar
    Por 200 dólares dá para comprar uma Sovol SV06, que é uma iteração mais inteligente da MK3/MK3S, e tanto o hardware quanto o software são open source. Por 500 dólares dá para comprar uma Bambu P1P, muito mais rápida e ainda mais verticalmente integrada até no slicer. Pagando mais 100 dólares, dá para pegar a P1S, que faz o mesmo que a P1P e já vem preparada para impressão em alta temperatura

  • Acho que eu não conseguiria
    No exército, eu consertava equipamentos de comunicação por micro-ondas. A parte mais dolorosa do treinamento era a soldagem básica. Eu simplesmente não conseguia soldar, e minha destreza manual era do nível de um tijolo
    Há alguns anos, fiz uma avaliação abrangente de aptidão profissional que incluía um teste de destreza manual. Depois da prova, achei que tinha ido muito bem, mas me disseram que fiquei nos 5% piores. Se eu tivesse virado cirurgião, meu seguro contra erro médico teria custado mais do que meu salário anual

  • Isso não é fazer hardware, é conectar e fazer interface com componentes de hardware existentes
    Para a maioria dos usos, é bem provável que isso faça mais sentido do que projetar os próprios componentes de hardware
    Mas não é o mesmo que algo como projeto de circuitos e, nesse sentido, o título é um pouco enganoso

    • Claro que é fazer hardware. Só não é fazer tudo, e isso sempre vale em alguma medida, não importa o que façamos
      Se eu coloco madeira numa máquina CNC para usinar, considero que fiz alguma coisa. Mesmo que eu não tenha cultivado a árvore, nem a derrubado, nem secado a madeira, nem cortado no tamanho exato para colocar na CNC
    • Preparar uma caixa de macarrão com queijo também é cozinhar. Só não é cozinhar tudo do zero
  • Se você precisar de ajuda para realmente criar e lançar no mercado um projeto ou produto de hardware, fique à vontade para entrar em contato. Meus dados de contato estão no perfil