Uso de kits comerciais para desenvolvimento de produtos
Editorial: Uso de kits comerciais para desenvolvimento de produtos
O objetivo deste post é discutir o uso de kits comerciais para desenvolvimento de produtos. Tópicos vão desde quando (tipos de aplicação) e onde utilizar (fases de desenvolvimento do projeto). Comparação entre desenvolvimento "from scratch", uso de SOMs e Single Board Computers. Comparação entre soluções open-source (Arduino, Raspberry Pi, BeagleBone Black, etc) e proprietárias (Toradex, Kontron , Congatec, etc).
Quando usar kits comerciais para desenvolvimento de produtos
Na fase de concepção de projeto, o uso de kits comerciais para desenvolvimento de produtos é um aliado muito importante no que tange a experimentação de uma nova tecnologia e a validação e prova de conceito de determinados componentes ou soluções. Isso porque permite que essas experiências sejam feitas de modo mais rápido do que seria desenvolver o projeto do zero nessa fase. Mas o que antes era utilizado apenas para aprendizado ou nos primeiros meses de um projeto ou nas bancadas de um curso técnico e nas universidades, se tornou uma ótima alternativa também para a concepção do produto, principalmente quando essa eletrônica não precisa operar em ambientes muito severos, sob temperatura extrema e abruptamente variável, perturbação eletromagnética ou vibração mecânica.
Costuma-se dizer que, com a adoção dos kits comerciais para desenvolvimento, Computer On Modules (COM) e Single Board Computers (SBC) em novos produtos e com o uso cada vez maior de ferramentas open-source, que aceleram o desenvolvimento de determinada ideia, faz com que o foco da equipe de desenvolvimento passe a ser o que agrega valor ao produto, o modelo de negócio adotado para ele. A arquitetura base, tanto de hardware quanto de firmware, do projeto passa a ser algo padronizado. O desenvolvimento de hardware, firmware e software é drasticamente reduzido, se compararmos com um desenvolvimento iniciado "from scratch", e o empresário pode passar mais tempo trabalhando outros aspectos da ideia e do negócio.
Placas makers como Arduino (criada para permitir que pessoas não familiarizadas com eletrônica possam experimentar um pouco esse mundo de maneira mais amigável), mini-pcs como a Raspberry Pi (desenvolvida visando o aprendizado de software para crianças) e kits comerciais para desenvolvimento como a Beaglebone Black (plataforma de desenvolvimento de baixo custo para uso da família AM335X de microprocessadores da TI) já fazem parte de diversos produtos que estão no mercado. Isso nos faz pensar sobre a demanda dessas placas e o que se ganha e o que se perde com o seu uso.
Segue um comparativo entre as categorias de soluções comercias.
Tabela 1 – Comparativo entre as soluções comerciais existentes
As principais vantagens da utilização de kits comerciais para desenvolvimento são:
Redução no tempo de desenvolvimento do projeto;
Melhor qualidade da aplicação final;
Eliminação da complexidade da comunicação entre sistemas compatíveis;
Aumento da compatibilidade com outros dispositivos que seguem protocolos padrões;
Possibilidade de portabilidade com aplicativos que seguem organização/arquitetura similar.
No caso do uso de uma placa que possui um processador e memória RAM embarcados, é poupado o tempo de roteamento (layout). Principalmente para o caso em que a frequência de interface com a memória é elevada, o roteamento dos pinos do processador e memória é muito crítico, o que demanda diversas horas de trabalho de profissionais muito qualificados em hardware, além da fabricação e montagem de alguns protótipos, o que adiciona tempo ao design. Além disso, os esforços de bring-up de uma placa customizada para um produto não são triviais.
Em geral kits comerciais para desenvolvimento contêm bibliotecas completas e testadas para uma implementação bem-sucedida, permitindo que programadores desenvolvam e validem/verifiquem aplicativos rapidamente. Muitas vezes kits de desenvolvimento requerem pouco treinamento. Os desenvolvedores podem escrever uma aplicação e testá-la em ambiente PC inicialmente, fazendo uso de mocks, por exemplo. Em seguida é possível usar o kit de desenvolvimento como plataforma de teste, executando, inclusive, depuração remota, fazendo uso do hardware da placa comercial. Caso seja desenvolvida em paralelo uma placa pela empresa, tem-se muito mais garantia com relação à qualidade e robustez da aplicação quando o projeto do hardware final é concluído. Portanto, uma vez que o aplicativo é criado, faz-se testes iniciais numa plataforma emulada, e, em seguida, é executada uma bateria de testes na plataforma real.
O ideal é que o fornecedor do kit de desenvolvimento disponibilize o código-fonte/distribuição para uma implantação real, sendo que esse pacote já esteja pronto para uso e tenha sido verificado e homologado pelo time de engenheiros dessa empresa. Dessa forma reduz-se ao mínimo o tempo desenvolvimento, além de mitigar as falhas que possam ocorrer em campo. Placas como Raspberry Pi e BeagleBone geralmente possuem suporte de software oferecido pela comunidade em fórums e outros canais. Quando se utiliza módulos proprietários, geralmente se tem o suporte do fabricante, além de diversos exemplos de softwares homologados. Porém deve-se ficar atento ao tipo de licença fornecido pelo fabricante.
Uma segunda vantagem dos kits comerciais para desenvolvimento é apresentar ao desenvolvedor de hardware uma implementação real da solução. Apesar da grande maioria dos dispositivos possuírem application notes, a tradução desses para a implementação real de um produto pode ser bastante agilizada pela observação e disponibilização do esquemático e layout dos kits. Além de acelerar o processo de desenvolvimento do hardware, a possibilidade da equipe de software trabalhar num hardware similar ao que está sendo desenvolvido pela equipe de hardware, permite que ambas as equipes comecem o desenvolvimento de suas partes quase que simultaneamente e, como consequência, minimizam os problemas para portar o código desenvolvido, considerando até então o kit de desenvolvimento, para o produto real.
Nem tudo é mil maravilhas. Fazer uso de plataformas comerciais e que sofrem modificações de acordo com a demanda do público, é algo a se considerar quando no início do projeto. Mini-pcs, como a Raspberry Pi, quando sofrem atualizações, geralmente as versões anteriores não são mais fabricadas. Isso cria uma dependência muito forte para o gerenciamento do projeto.
Onde comprar a placa? Deve-se comprar de um distribuidor oficial ou de revendedores? Se precisar de uma demanda alta de unidades, será possível atendê-la? Placas como a Odroid podem ser compradas somente da sua fabricante. Já a BeagleBone Black é distribuída por diversas empresas. Porém quando se trata diretamente com o fabricante tem-se a garantia de entrega para volumes altos além do tempo de vida da placa. Dessa forma tem-se segurança para vida do projeto e capacidade de fornecimento. Placa desenvolvidas para o movimento maker, geralmente não possuem esse compromisso e o fornecimento depende do revendedor.
Além disso pode ocorrer o problema de falhas em alguns lotes de placas, que podem atrapalhar o funcionamento do projeto em seu tempo de vida. Geralmente os módulo proprietários possuem rastreabilidade de suas placas e até podem disponibilizar programas de recall caso encontrem algum problema de projeto. Também há o problema de garantia da placa, algo que geralmente placas makers não possuem, diferentemente dos módulos proprietários.
O custo de projeto também é influenciado com o uso de plataformas já prontas. Quando se inicia o projeto de hardware "from scratch" é necessário investir em tempo de desenvolvimento e protótipos para teste. Utilizando COMs e SBCs esse custo é reduzido. No caso das SBCs é praticamente zero, mas em contra partida, com os COMs, é necessário desenvolver a placa base. Deve-se considerar que, com o uso de reference design, o tempo de projeto é reduzido.
Já o custo da unidade para um projeto utilizando placas de mercado é relativamente baixo para um volume baixo, porém pode ficar inviável para um volume alto, quando comparado a um projeto feito do zero e customizado para a aplicação. Geralmente nas SBCs não são utilizados todos os recursos, como conectores e isso entra no custo de aquisição.
Qual é a melhor solução? Aquela que resolve seu problema! Independente da placa usada, seja um kits comerciais para desenvolvimento, seja um SOM proprietário. Ambos possuem vantagens e desvantagens. Com quais deseja conviver?
Caso tenha adotado alguma dessas soluções, qual a sua impressão, leitor? Pode ser em seus projetos pessoais ou em projetos na empresa onde trabalha ou trabalhou. O seu feedback vai ser importante para a comunidade como um todo.
Gostaríamos de agradecer a todos os articulistas que participaram da escrita deste artigo: Diego Sueiro, Fábio Souza, Guilherme Fernandes, Henrique Rossi, Rodrigo Almeida, Rodrigo Pereira e Thiago Lima.
AnteriorAnteriorMódulo de Display LCD
PróximoESP8266 com ArduinoPróximo
Em breve estaremos lançando 4 projetos Made in Brasil para somar e ajudar quem deseja entrar nesse ramo da eletrônica.
Falta pouco, e tomara que eles sejam comentados aqui por vocês.
06/05/2015 10:43
Muito bom, Faltam projetos de kits de qualidade made in brasil em embarcados. Dá para contar nos dedos os existentes.
06/05/2015 12:13
placas mega versáteis, que utilizam, protocolos, zigbee, wifi, bluetooth, etc. Cara vai ser um sonho lançar uma projeto desses, tomara que der tudo certo !!!!
infelizmente não temos quase nada de grana, a gente tá pedindo emprestado até pra cunhado kkkkk.
Pedimos ajudar de Universidades para melhorar as interfaces e ninguem se manifestou :-(, busca por engebot no facebook pra ti ter ideia da coisa.
humm… acabei de ver aqui.
Claro grana kkkkk, mas estamos finalizando os orçamentos das caixas e espuma para envio pelo correio.
06/05/2015 09:14
Quando penso em kits comerciais geralmente penso em kits de desenvolvimento. Sei que é só um subconjunto do universo de kits industriais. Como citado no editorial, a aplicabilidade de um kit em um projeto depende de vários fatores, desde ambientais até de custo e logística de entrega dos mesmos. Para o caso de COM e SBCs eu acho totalmente válido utilizar em produtos finais pois, geralmente, aplicações que a equipe de engenharia opta por utilizá-las são projetos curtos ou com uma perspectiva de pouca venda (por exemplo, um projeto bem específico de automação ou coisa parecida, que precisará de poucas… Leia mais »
Excelente tema! Acredito que produtos voltados para aplicações industriais podem se valer tranquilamente de soluções utilizando SOM/COM e SBC. Entretanto, como o próprio texto expõe, SBC voltadas para hobbystas, como a BeagleBone e a Raspberry Pi, não parecem boas escolhas para essas aplicações, que não só necessitam de garantias de funcionamento em ambientes hostis, como devem ter garantias que ficarão no mercado por um tempo conhecido. Apesar dessa forte desvantagem, acho que essas placas podem ser importantes para o desenvolvimento do MVP (Produto viável mínimo), e consequentemente, permitirem que sejam aplicadas técnicas de agilidade no desenvolvimento de produtos eletrônicos, o… Leia mais »
03/06/2015 04:42
[…] argumentos muito fortes na adoção dessas soluções em produtos. Veja o artigo de editorial Uso de kits comerciais para desenvolvimento de produtos para mais discussões […]