terça-feira, 1 de setembro de 2015

Etapas de Projeto: Escolhendo uma plataforma


Projetos que usam plataformas de prototipagem, como os que mostramos aqui no blog e os que apresentamos no www.natalmakers.com, possuem, cada um, suas características e finalidades próprias. Seja o universo de atuação do projeto ou sejam os indivíduos envolvidos, muitas coisas podem determinar a escolha de uma plataforma para desenvolvimento. Quem trabalha com software sabe que existem etapas bem definidas no desenvolvimento de um programa. Via de regra, é preciso de um tempo com a pessoa que encomendou aquele programa, para poder entender o que é que, de fato, a pessoa precisa. Algumas vezes, nem mesmo ela sabe o que quer, isso porque as soluções que podem resolver o problema dele estão na mente do projetista. Então é um trabalho de aprendizado contínuo que passa por conversas e mais conversas. E a cada vez se descobre mais, muita coisa é refeita, e é preciso evitar, ao máximo, o desperdício de tempo. Com hardware embarcado  é similar, mas é preciso estar atento ao fato de que aqui estamos trabalhando com hardware e software, e isso pode trazer uma aumento de complexidade para o projeto. Que situações podem acontecer?

Escolher uma plataforma inadequada
Meu projeto é maior do que a plataforma suporta, ou ela é lenta demais para processar tudo o que ele pede. Por exemplo, sabemos que o clock do Arduino UNO é 16MHz. E agora eu quero trabalhar com processamento de imagens em tempo real. Seria essa a melhor escolha? Ou então eu quero armazenar dados de maneira persistente no Arduino UNO, que usa um ATMega328 (que possui 1024 bytes de EEPROM, uma memória que pode registrar informações mesmo quando o Arduino está desligado). Se a quantidade de informação cabe nesse espaço, é uma opção. Se não, devo partir para outra possibilidade.

Trocar de plataforma sem necessidade
Mesmo sabendo que a plataforma não possui os recursos que necessito para meu projeto, trocar de plataforma pode não ser a única opção. Existem os shields e módulos que servem para estender as funcionalidades do meu dispositivo. Nesse caso eu vou ter que tomar cuidado com a alimentação do dispositivo, porque colocar coisa demais e não fornecer energia suficiente também não é boa prática.

Serrar um graveto com uma serra elétrica
O oposto pode ocorrer. Posso estar querendo usar uma plataforma que possui recursos demais para fazer algo muito simples e que pode ser feito em uma plataforma menor e, certamente, mais barata. Existem muitas opções, e é preciso pesquisar e conversar.

Colocar shields e mais shields e mais shields...
Se uma plataforma não possui as funcionalidades que eu quero, comprar shields pode ser uma opção, mas antes disso posso ver outras plataformas que possuam a funcionalidade que eu quero já embutida. Isso ocorre muito em projetos que demandam comunicação sem fio. Algumas plataformas já trazem a comunicação embutida e muitas delas usam a mesma linguagem Wiring do Arduino para programação.

A solução não tem segredo: pesquisar, conversar, ler e descobrir a melhor opção. 




Um comentário: