sábado, 17 de outubro de 2015

Análise de Viabilidade em Projetos


Comumente, a idéia de um projeto vem em nossa mente como um furacão. E deve ser assim: a primeira pessoa que ele deve impressionar é a nós mesmos. Somos o primeiro a comprar a idéia, entendê-la e elogiá-la mentalmente, ainda que de modo inconsciente. Mas, uma hora ela precisa sair da nossa cabeça e se expor de modo concreto, tornando-se um projeto implementado. Cada projeto leva seu tempo e possui sua complexidade. Isso já falamos aqui diversas vezes. Nessa postagem queremos frisar uma palavra em especial: Viabilidade. Essa palavra está presente desde o início da implementação e direciona as escolhas feitas no projeto, no que tange a peças, acessórios, sensores, atuadores, plataformas, software, entre outras coisas. Além disso, tem uma relação com a complexidade e o custo do projeto. 

Via de regra, nenhum projeto pode ser considerado inviável, se você possui os recursos para implementá-lo. O problema é que, diversas vezes não consideramos o fato de que, o objetivo final de um determinado projeto pensado pode ser muito simples e realizado por um tipo de dispositivo mais simples ainda, o que torna o nosso projeto muitas vezes concorrente de algo mais barato e viável. Por exemplo: hoje em dia é muito fácil utilizar dispositivos móveis. Vemos todos os dias idéias de aplicativos que usam GPS que consideram cálculos por contagem de pontos de unidades móveis. Imagine um aplicativo que calcula a estimativa do número de pessoas em um show. O desenvolvedor considera de antemão que o seu aplicativo vai estar em um número minimo de celulares para poder efetuar essa contagem, como em uma amostragem. Estatisticamente, a probabilidade de atingir o êxito nessa empreitada está dependente sempre do sucesso do aplicativo. Caso muitas pessoas não usem, o aplicativo não pode gerar informações confiáveis. Assim, o projeto nasce com uma dependência de viabilidade que só será alcançada se isso acontecer. Isso dificulta a realização dos testes, entre outras coisas.

Esse exemplo citado acima ainda mostra um problema que tem relação com a viabilidade do projeto, que é a aceitação das pessoas. Se o projeto é direcionado para resolver um problema real, o projeto tem tudo para dar certo. Mas, nem sempre o que o idealizador do projeto considera como problema real é de fato, para os outros, um problema. Isso precisa ser verificado antes da implementação para não correr o risco de perder muito tempo em algo inútil.

Outro problema que enxergamos, em diversos projetos, é o uso de dispositivos e componentes muito precisos e caros para realizar tarefas muito simples. Por exemplo: um MP3 player feito com Raspberry / Arduino Tre / ou qualquer outra plataforma que usa um microprocessador. A menos que esse MP3 player possua funcionalidades específicas que exijam um processamento mais pesado (controle por voz, gestos ou inteligência artificial, por exemplo), não faz sentido usar uma plataforma tão cara. Existem módulos MP3 que podem ser controlados por Arduinos mais simples, e que não custam mais de 5 dólares.

Por isso, antes de desenvolver sua idéia em uma implementação, vale a pena pesquisar e analisar para que o custo, a complexidade e a falsa idéia de solução perfeita, não o decepcionem durante o caminho.


sexta-feira, 9 de outubro de 2015

Etapas de Projeto: O Case!



Proteger e fornecer um visual agradável para o seu projeto é uma tarefa tão importante quanto desenvolver suas funcionalidades. Mas no momento de escolher um case para sua placa de desenvolvimento é preciso decidir com base nas mesmas variáveis de projeto que influenciaram em outras etapas. Temos hoje, no mercado, diversos cases prontos, pré-fabricados, por encomenda e também os do tipo faça-você-mesmo (DIY). Mas nem todos se adequam a qualquer projeto. Caso você esteja à procura de um case para guardar seu dispositivo apenas, tem à sua escolha diversos modelos que possuem também suas diferenças. Alguns cases encapsulam a placa por completo, deixando à mostra apenas a porta USB ou Ethernet. Outros ainda tem aberturas para os cabos de prototipagem ou mesmo são vazados para permitir o melhor resfriamento do microcontrolador. 

Alguns tipos podem comprometer o bom funcionamento do seu projeto, caso você não considere as situações de funcionamento do dispositivo. Ambiente com sol, umidade excessiva, calor excessivo e maresia, por exemplo, podem causar problemas de funcionamento e até mesmo a perda do dispositivo. Quanto ao aquecimento do dispositivo, a preocupação não se restringe apenas ao funcionamento no ambiente final de trabalho. Um sensor conectado de  maneira errada pode superaquecer o seu dispositivo, provocando danos a ele. Por isso o constante monitoramento é necessário.


O material com o qual o case foi fabricado também deve ser levado em consideração. Se o objetivo é proteger o seu dispositivo, não adianta colocá-lo em um case feito de um material que não seja adequado ao seu projeto. Muitos cases são verdadeiras obras de arte e merecem elogios pela criatividade, mas, como diz o ditado: "Gaiola de ouro não alimenta o passarinho!". Seu projeto precisa funcionar bem, acima de tudo. 








domingo, 4 de outubro de 2015

Da difícil e simples arte de inovar...


INOVAR: Segundo o Michaellis:
i.no.var
(do latim innovare) vtd 1 Fazer inovações, introduzir novidades em... blá blá blá... 
Já viram esse modo de iniciar um artigo em algum lugar? Para mim não existe um modo melhor de entender um conceito do que mostrando um contra-exemplo. Às vezes delimitar o escopo do conceito, mostrando onde ele termina, nos faz perceber o quanto erramos em definir as coisas que produzimos. Antes de tudo é preciso separar duas coisas importantes nessa definição: a primeira é a inovação em si, a segunda é a inovação como conceito de mercado. Se considerarmos uma solução nova para um problema antigo, algum grau de inovação está contido nessa idéia. Mas para o mercado, não adianta se uma idéia é bonita e inteligente, precisa vender. Infelizmente, a mídia vende a idéia de inovação como sendo aqueles celulares que ficam obsoletos em seis meses e cujas novas versões não têm nada a acrescentar, além de uma câmera com maior definição, mais memória e mais dois núcleos de processamento. Isso passa uma idéia inalcançável de inovação e segrega as pessoas, fazendo-as pensar que ter boas idéias é algo reservado somente para grandes mentes iluminadas.



"Passamos anos das nossas vidas em uma escola, 
que premia os que tem uma memória muito boa, 
e reprime os que nasceram com a capacidade de questionar"

Inovar não é algo difícil. Muito mais difícil parece ser a coragem de mostrar que somos capazes de fazer algo novo. Isso vem de uma educação maltratada, que não encoraja o pensamento individual. Passamos anos das nossas vidas em uma escola, que premia os que tem uma memória muito boa, e reprime os que nasceram com a capacidade de questionar as coisas como elas são. Um livro nunca deveria ser o fim, mas o início de uma busca pelo conhecimento que parte dali para outras fontes e opiniões. 


"A verdade não deixa de ser verdade
por ter sido dita de um modo desagradável."

Pergunte-se: você tem coragem de mostrar aos outros uma idéia nova? uma música que você compôs? Um poema que você escreveu? Se essas perguntas o remetem ao medo das críticas, saiba que para inovar você precisa separar umas pessoas das outras. Seus pais sempre vão achar muito bonito o que você faz (via de regra), então, a opinião deles sempre será questionável, ainda que uma excelente fonte de apoio e nunca deverá ser desconsiderada. Mas pode não ser a opinião certa para indicar que você está num caminho certo. Por outro lado, a opinião dos críticos, pode não ser a mais agradável. Aprenda a não levar pelo lado pessoal, muitas vezes uma pessoa critica uma idéia pela simples inveja de não ser sua. Apesar disso, considere-as, pois podem ser as mais verdadeiras entre todas. A verdade não deixa de ser verdade por ter sido dita de um modo desagradável. Sendo assim, aproveite a oportunidade para crescer como pessoa e elevar o nível da sua idéia. 


"Ponha em prática ao menos uma 
das coisas que você tem vontade de fazer"

Passados todos esses poréns, liberte sua mente para inovar. Mude sua sala, alterne o caminho para o trabalho, tente fazer a mesma coisa de outro jeito, leia outros livros. Em outras palavras, ponha em prática ao menos uma das coisas que você tem vontade de fazer e nunca fez por medo do que os outros vão achar. Inovar é muito simples, e será uma construção, muito mais do que um talento nato. Uma idéia puxa outra que se conecta a outras e, quando menos esperar, vai estar surpreso com o que sua mente é capaz de criar.

sexta-feira, 2 de outubro de 2015

Idéias de projeto #1



As idéias para os projetos que construimos nascem de problemas reais e de sua análise. Vamos pensar um pouco e abrir alguns questionamentos sobre problemas que poderiam ser resolvidos com uma plaquinha de baixo custo e um pouco de criatividade?


Liduina possui um buffet e atende festas de aniversários, casamentos e outras mais. Liduina se especializou em comida gourmet e atende um público de alto requinte. Por pessoa, uma festa em média chega a custar $80 dólares. O fato é que Liduina enfrenta um problema sério. Controlar a entrada de penetras em suas festas. Habitualmente as pessoas chegam com uma senha impressa, ou deveriam chegar. A festa é um ambiente familiar e, as pessoas chegam e dizem que esqueceram a senha, mesmo assim, o buffet não pode impedí-las de entrar. Mas o que acontece normalmente é que muitas pessoas cedem sua senha para outras pessoas, que não eram contadas na lista, gerando um ônus extra de mais de 50% no orçamento. Começa então a discussão, pois o contratante passa a desconfiar que Liduina quer ganhar dinheiro desonestamente. No entanto, seria de muita serventia um sistema que garantisse o controle do número das pessoas na festa e que fosse confiável tanto para o contratante quanto para o contratado. Liduína quer saber: dá pra fazer?



Arlindo é um cara daqueles que conta cada centavo todo mês. Mas nos últimos quatro meses Arlindo viu algo que está tirando o seu sono: sua conta de água! Um aumento sem precedentes de mais de 4%. Arlindo verificou seus encanamentos, e não encontrou nada que justificasse aquele aumento absurdo. Arlindo sabe que a tarifa não aumentou, então existe um problema a ser resolvido. Um amigo de Arlindo falou que viu na TV alguns inventores que criam sistemas de controle de uso de recursos como água e eletricidade, e que assim ele poderia, nao somente resolver o problema, mas economizar ainda mais. Ele se interessou por esses sistemas e quer comprar um. Mas Arlindo já falou, não paga mais do que $50 dólares por ele. Arlindo quer saber: dá pra fazer?

Etapas de projeto: Testando o seu sistema


Ainda que pareça o fim do caminho, a etapa de testes de um projeto pode ser apenas o início de uma longa estrada. Dependendo da complexidade do projeto e de sua aplicação, os testes que são necessários para validar um sistema inteiro constituem um conjunto muitas vezes impossível de contemplar em um período de tempo limitado. Isso porque é muito difícil enxergar todas as possibilidades de situações que podem ocorrer durante o uso do sistema e que podem acarretar erros em sua utilização. É importante notar que os testes devem abranger diferentes níveis e que existem diferentes tipos de testes:

Testes para o software, embarcado ou não: o programa que está rodando em seu dispositivo ou em outros aplicativos que fazem parte do sistema inteiro precisam funcionar corretamente. Isso não quer dizer apenas estar livre de erros, mas estar adequado à funcionalidade para o qual se destina. O modo mais fácil de fazer isso é colocar o software para funcionar. Mesmo assim, os testes não precisam ficar somente para o final, durante todo o processo de desenvolvimento, pode-se testar as partes já terminadas.

Testes para o hardware: como o sistemas baseados em plataformas são constituídos de hardware e software, e, a integração desses dois componentes pode ser um desafio à parte, o hardware utilizado deve ser bem escolhido, bem como as outras partes constituintes do sistema, como sensores e atuadores. Entender e testar o funcionamento dessas partes é importante para não ter dores de cabeça posteriores. Exemplo: sensores digitais são constituídos de partes eletrônicas e muitos deles possuem pequenos chips que possuem uma faixa de temperatura para trabalho. O uso desses sensores em ambientes expostos ao sol podem danificá-los. O projetista não pode ignorar essas coisas.

Testes de funcionalidades: Funcionar corretamente pode não significar que o sistema funciona de acordo com o que necessita ou foi pedido. Deve-se perguntar ao final de tudo se o projeto responde às questões levantadas no início do seu desenvolvimento. É normal acontecer que, ao desenvolvermos um sistema solicitado por alguém, percebermos que nem mesmo a pessoa sabe o que quer. Isso acontece porque o ferramental disponível está na mente do desenvolvedor, e para ele é mais fácil perceber a solução para o problema. É com a experiência que se consegue entender o que o outro quer, mas mais ainda, o que ele precisa, e o que de fato é viável, com a tecnologia atual e com os recursos e tempo disponíveis.


quinta-feira, 1 de outubro de 2015

Questões e Decisões de projeto: Monitoramento de Lâmpadas - Chocadeira controlada por Arduino



A escolha de sensores para monitoramento de dispositivos em um projeto depende sempre da natureza do evento produzido pelo dispositivo, mas também deve atender às restrições do projeto. Ao fazermos o monitoramento de lâmpadas em um ambiente, doméstico, por exemplo, o custo do projeto não deve ultrapassar a economia produzida pelo dispositivo monitor, considerando que este é pensado para evitar o gasto desnecessário. Existem diversos sensores para se verificar o estado de uma lâmpada. Podemos utilizar sensores de corrente elétrica para ver se a lâmpada está sendo alimentada, sensores de temperatura, para verificar se a lâmpada está acesa e até sensores de luminosidade. É precisa levar em conta o tipo de lâmpada que você vai utilizar. Lâmpadas incandescentes (daquelas antigas) quando queimam, rompem o filamento, e não permitem a passagem da corrente elétrica. As lâmpadas atuais são diferentes, possuem um circuito eletrônico, e, pode acontecer que, mesmo que elas não estejam funcionando como deveriam, continuem consumindo energia. Nesses casos, verificar a corrente passando no fio que alimenta a lâmpada vai indicar um evento falso. Um dos sensores mais básicos para isso é o sensor de luminosidade LDR, que nada mais é do que um resistor que varia seu valor de resistência à corrrente de acordo com a quantidade de luz que recebe. São muito baratos e simples de utilizar, e podem fornecer a resposta  necessária para o monitoramento.  Projetos mais complexos podem necessitar da combinação de mais de um sensor. Vamos pensar na criação de uma chocadeira controlada por Arduino e que utiliza lâmpadas incandescentes de filamento para produzir calor. A temperatura nesse ambiente deve ser controlada rigorosamente, assim como a umidade. O ideal aqui seria monitorar a lâmpada, para verificar o seu estado e ainda ter uma lâmpada reserva que deve ser acionada caso esta primeira queimar. Sensores de luminosidade, corrente, umidade do ar e temperatura, devem ter seus estados verificados e o resultado a ser interpretado vem a ser uma combinação dos estados dos diversos sensores.

domingo, 13 de setembro de 2015

Conceito: Domótica, Casa Inteligente e Automação Residencial



Desde o surgimento dos microcontroladores, existem ambiente controlados remotamente, mais comumente direcionados para indústrias. Mas atualmente existem muitas outras tecnologias (gsm, gprs, wap, WiFi...) que acrescentaram inúmera possbilidades de conexão e monitoramento, a um custo relativamente baixo se comparados às mais antigas. Apesar de ser uma tendência futurista, não parece ser um conceito novo. Desde muito tempo se deseja construir sistemas de controle que facilitam a vida das pessoas.



Uma casa inteligente pode ser concebida como um espaço residencial evoluído, por contemplar soluções integradas e racionais, baseadas em tecnologia, de modo a oferecer uma infra-estrutura tecnologicamente avançada que permita aos seus habitantes usufruir de um conjunto de serviços e funcionalidades, tais como segurança, gestão de recursos, conforto, automatização de tarefas domésticas , entretenimento, monitoramente, etc. 
Ao se criar um projeto de casa inteligente, deve-se levar em consideração um fato importante e que tem âmbito legal: as organizações que são responsáveis, por algum modo, de regularizar os ambientes construídos, como o CREA, por exemplo, podem interferir em seu projeto. Existe, de fato, uma movimentação para se regularizar esses tipos de projetos, em vista de evitar futuros problemas com a segurança e o bem-estar das pessoas que venham a utilizar o ambiente. Existe também uma tendência a fomentar esse tipo de projeto, levando em conta que eles ajudam na economia de energia e no uso racional de recursos de água e comunicação.




sábado, 12 de setembro de 2015

Etapas de projeto: A adequação de componentes



Na hora de escolher componentes para o seu projeto, você vai perceber que existe uma grande variedade de opções. A sua escolha vai depender de muitos fatores, entre eles, a natureza do seu projeto e os agentes envolvidos. Nesse momento, todo o conhecimento possível a respeito do seu projeto, da sua plataforma e do seu público, serão importantes. Não existe um padrão, cada projeto pode envolver diferentes variáveis que influenciam nessa escolha de modo bastante sensível. Via de regra, projetos de acessibilidade são alguns dos que mais exigem do projetista, pois atendem a um público bastante específico e também trata da interação com pessoas com limitações. Qualquer projeto precisa ser bem analisado. Dispositivos que vão ficar expostos às intempéries do tempo, por exemplo, precisam de um cuidado maior também nessa escolha. Sensores são componentes eletrônicos e trabalham dentro de uma faixa de temperatura. A variação dessa temperatura pode influenciar no dado de leitura fornecido pelo sensor, e o projetista precisa estar ciente disso. Muitas vezes os sensores mais simples também podem não fornecer uma resposta em tempo hábil, ou ainda uma resposta com precisão adequada ao projeto. Um caminho para resolver isso é ficar atento ao projeto, antes, durante e depois de executado, na sua fase de testes, para entender bem o seu funcionamento e realizar as modificações necessárias.

sexta-feira, 11 de setembro de 2015

O Portal do Software Público Brasileiro


https://softwarepublico.gov.br/social/

O Governo brasileiro disponibiliza um portal com uma variedade bastante interessante de software distribuídos sob a licença de software livre (englobando as quatro liberdades). O Software Público Brasileiro é um tipo específico de software que adota um modelo de licença livre para o código-fonte, a proteção da identidade original entre o seu nome, marca, código-fonte, documentação e outros artefatos relacionados por meio do modelo de Licença Pública de Marca – LPM e é disponibilizado na internet em ambiente virtual público denominado Portal do Software Público Brasileiro. O catálogo de softwares disponível no site inclui sistema de gestão de aprendizagem para educação a distância, um framework para desenvolvimento de aplicativos desktop multiplataforma em C++, software para gerenciamento de processos de impressão, sistema para gerenciamento de fila de atendimento ao público, software para planejamento cirúrgico, entre outros. Por ser de código aberto, eles podem ser usados para compor projetos e suas implementações podem ser de bastante ajuda no entendimento do funcionamento de diversos processos que compõem esses mesmos projetos. Conheça!


quinta-feira, 10 de setembro de 2015

Etapas de projeto: O software embarcado



Durante o processo de definição de um projeto baseado em plataforma, um cuidado especial se dá ao software que será implementado. Quando os microcomputadores pessoais apareceram, havia muitas restrições quanto à rapidez do processamento, ou ao uso de memória, e diversos artifícios eram utilizados para se aproveitar recursos da melhor forma possível. Atualmente, programar para um PC comum não é uma tarefa que exija muito conhecimento do hardware. Lança-se mão de diversas bibliotecas, sem muitas vezes tomar cuidado com o código que se está inserindo no seu projeto. Mas, no desenvolvimento de um software para um sistema com restrições de energia, espaço, memória, prazos de execução, etc... a coisa é um pouco diferente. Vamos usar um exemplo: Um sistema que monitora a ocorrência de relâmpagos em uma área qualquer. Se no momento do evento o software não estiver de prontidão para captar a sua ocorrência, de nada serve um hardware potente. O processamento pelo hardware pode ser muito rápido, mas tem-se que considerar os acessos a memória, ou acessos de entrada e saída quando no momento do registro do evento, para que o dispositivo retorne à prontidão exigida no momento certo e possa esperar por outros eventos. É uma restrição de tempo muito rígida e que pode afetar o funcionamento do sistema inteiro, se esse software não for bem escrito. Quanto ao uso de memória, tem-se que considerar que, normalmente, os dispositivos não dispõem de muita memória, então, meu código não pode usar variáveis à vontade, como muitas vezes fazemos ao desenvolver para um computador comum. Quanto ao uso da energia, posso estar preso a uma restrição ainda pior. Nesse caso, como vou alimentar o meu sistema interfere diretamente no seu bom funcionamento e na sua eficiência. Desenvolver software embarcado exige um mínimo conhecimento do hardware usado. Então não ignore as especificações do seu sistema, busque entendê-las ao máximo. É necessário também desenvolver o software em etapas de refinamento que incluem modificações para otimizar o seu código, várias e várias vezes. 

quarta-feira, 9 de setembro de 2015

A Memória persistente no Arduino - EEPROM



Quando desligamos um dispositivo microcontrolador, os dados armazenados em sua memória de acesso aleatório se perdem. Muitos projetos, porém, exigem o armazenamento de algumas informações para uso posterior, ou simplesmente para continuar de onde o dispositivo parou, quando uma queda de energia faz o dispositivo reiniciar, por exemplo. O microcontrolador do Arduino possui uma memória EEPROM (Electrically-Erasable Programmable Read-Only Memory, em português Memória Programável Somente para Leitura Apagável Eletricamente). Essa memória é capaz de armazenar dados mesmo sem energia, mas é importante lembrar que as operações de gravação e deleção só podem ser feitas por um número de vezes limitado, algo entre 100.000 e 1.000.000 de vezes, o que já vem a ser o bastante para boa parte dos projetos. Os microcontroladores ATmega328 possuem EEPROM de 1024 bytes, o ATmega168 e o Atmega8 possuem 512 bytes. A gravação na EEPROM é feita utilizando-se a biblioteca <EEPROM.h> e enviando-se byte a byte para a memória. Considere, porém, que isso não faz da EEPROM uma memória a ser utilizada da mesma forma que a RAM, onde você escreve as variáveis do seu programa. O procedimento de escrita na EEPROM é mais demorado, e, como já dissemos anteriormente, não pode ser usado infinitamente. E se seu projeto exige uma quantidade maior de dados armazenados de forma persistente, a melhor opção será a memória flash, presente nos cartões SD. 



domingo, 6 de setembro de 2015

Dispositivo: Teensy - um mini completo



Para quem deseja miniaturizar seu projeto e ao mesmo tempo oferecer um pouco mais de poder processamento, uma opção pode ser o Teensy, que chega à sua versão 3.1 utilizando um ARM cortex-M4 de 72MHz. Uma das diferenças do Teensy 3.1, em relação aos dispositivos que já conhecemos aqui, é a tolerância a sinais de até 5V em seus 34 pinos de entrada e saída digitais. Toda a programação possui o suporte USB onboard sem necessidade de utilização de nenhum outro dispositivo extra. O Teensy, em todas as suas versões, é uma placa minimalista, e não possui conexões para cabos de prototipagem do tipo jumpers, de modo similar ao Arduino Pro Mini. Possui uma IDE para programação que pode ser facilmente instalada em qualquer Sistema Operacional. A página dos desenvolvedores do Teensy possui ainda exemplos de projetos e um Fórum.

sexta-feira, 4 de setembro de 2015

Etapas de Projeto: A divisão das tarefas!


Existem similaridades entre as diversas naturezas de projetos, mas existem também diferenças importantes entre eles. Projetos de software podem ser divididos em camadas, que particionam o processamento, para simplificar a implementação e sobretudo a compreensão e manutenção do sistema inteiro. Essas camadas precisam se comunicar de maneira perfeita e essa divisão favorece o que chamamos também de portabilidade de um sistema. Por exemplo, se você cria um sistema em software para uma instituição qualquer e opta por fazer em forma de software instalado nas máquinas, sua manutenção e seu uso em diferentes máquinas, até mesmo da mesma localidade, pode requerer um pouco de trabalho. Cada nova atualização necessita ser recompilada para e reinstalada em cada máquina. Já quando você opta por fazer em um ambiente web, você tem a possibilidade de permitir o acesso a partir de um browser que hoje é presente em qualquer computador, além de poder utilizar templates responsivos que permitem o uso do seu software em também em dispositivos móveis. Quando se trata de um projeto baseado em plataforma de hardware, existe uma divisão que é fundamental no seu projeto: é a divisão das tarefas entre sua plataforma de hardware e o software associado. Se você está fazendo uma coleta de dados em um campo aberto, por exemplo, e você necessita economizar para que seu dispositivo esteja ligado durante um período mais longo de tempo, você pode optar por manter um baixo nível de processamento, sempre considerando uma quantidade de dados mínima necessária para a sua correta interpretação. Considere que esses dados sejam guardados em um banco de dados, o software associado ao banco de dados precisa trabalhar um pouco mais, para poder colher, guardar e interpretar esses dados mínimos de uma forma correta. Essa divisão de tarefas é dependente da natureza do seu projeto. Quando seu projeto necessitar, economizar energia pode não ser uma opção, para não haver o risco de perdas na qualidade do resultado obtido. São decisões que cabem aos desenvolvedores, levando em conta as características do projeto.



quarta-feira, 2 de setembro de 2015

Dispositivo: ATtiny84 - uma opção de meio termo!




Já postamos aqui no blog sobre o ATtiny85, e agora gostaríamos de apresentar um outro microcontrolador da família Atmel. Apesar do número em seu nome ser menor que 85, o Attiny84 é um meio termo entre o ATmega328 (usado nos Arduinos e Genuinos), e o ATtiny85 (usado na GEMMA).  O Attiny84 vem em versões com 2k, 4k ou 8K Bytes de memória flash programável (com uma vida média de 10mil ciclos de escrita e reescrita). O que o situa entre um chip intermediário é o número de pinos de entrada e saída que, neste dispositivo, são apenas 12. Possui também um espaço de memória EEPROM (aquela memória persistente para guardar informações mesmo depois de desligado) que pode ser reescrito até 100mil vezes e você ainda pode usar sua placa Arduino para programar o chip usando a mesma IDE. Em termos de opção de projeto, é mais um dispositivo dentro do universo de plataformas que você terá à sua disposição. Sua similaridade aos dispositivos já conhecidos fazem dele um excelente candidato a projetos mais simples e pode representar uma boa redução de custos em seus projetos. 

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. 




segunda-feira, 31 de agosto de 2015

Shield VGADuino: usando o Arduino com seu monitor ou TV


O que você acha de ter um monitor a cores, grande, para mostrar textos, valores e resultados de processamento do seu Arduino? Fabricantes, desenvolvedores e entusiastas que desejam criar projetos Arduino que exigem qualquer tipo de TV ou monitores com RGB ou portas Audio-Vídeo, podem se interessar por esse novo shield Arduino VGA: O VGADuino. A placa, no entanto, é um projeto do Kickstarter, um site de Crowdfunding, o que significa dizer que  projetista do shield ainda não dispõe de unidades para venda. Faltam 23 dias para o prazo e ele já tem aproximadamente 70% do dinheiro que precisa para começar o projeto. O projeto do shield já inclui as bibliotecas e amostras para que você possa  importar para a sua Arduino IDE e iniciar a programação. A resolução da tela é de 640 x 480 VGA. Ele tem 17 linhas de texto e cada linha pode mostrar até 27 caracteres.



domingo, 30 de agosto de 2015

Etapas de projeto - Definição da idéia



Quando se deseja realizar qualquer tarefa um mínimo de organização é necessário, e, em um dado momento, esta organização se impõe, como determinante no sucesso daquele empreendimento. Ao pensarmos num projeto com dispositivos embarcados, alguma coisas precisam ser definidas desde o início, e isso é muito importante. 

Pensando na viabilidade da idéia: Nada mais frustrante do que iniciar o projeto e parar por falta de verba, material ou mesmo tecnologia suficiente. É preciso pesquisar um pouco e entender o funcionamento dos diversos dispositivos, módulos e sensores. Pode ser que a plataforma escolhida inicialmente não possua recursos bastantes para o projeto, e essa é a hora de redefinir. 

Pensando na utilidade do projeto: A  menos que eu mesmo queira me divertir com o que estou fazendo (o que já é um ótimo motivo para começar), não adianta pensar que vou vender um produto espetacular. Muitas ótimas idéias não se encaixam nos padrões do mercado. A palavra "utilidade" está diretamente relacionada à demanda. Meu projeto pode atender uma necessidade minha, do mercado ou de um grupo específico. Procure conhecer esse público.

Pensando nas peças que vou usar: Assim como a grande quantidade de plataformas, temos também ao nosso dispor um número muito grande de módulos, sensores e componentes eletrônicos. Muitos fazem a mesma coisa com precisão diferente ou usam tecnologias diferentes. É importante ter em mente quais eu pretendo usar e saber se elas se adequam de modo satisfatório ao meu projeto.

Pensando no domínio da minha aplicação: Assim como os projetos de software puro, os projetos de software e hardware embarcados englobam conhecimentos de áreas diferentes da computação. Por exemplo, se seu projeto é um medidor de temperatura para um confinamento de aves, o projetista vai precisar de um mínimo de conhecimento a respeito das aves com as quais está trabalhando. Isto pode ser feito através de pesquisa ou mesmo de uma conversa com as pessoas interessadas no projeto e que trabalham diretamente com esses animais. 

Outras etapas virão. Mas nessa primeira etapa se compõe uma base para o projeto. É importante tomar nota de alguma coisa para não fugir do essencial e manter um padrão em seu projeto desde o início.

sábado, 29 de agosto de 2015

José, o peixe que anda!



Os projetos do Adam Ben-Dror sempre impressionam por sua genialidade e criatividade. Quem pensaria em treinar um peixe para que ele pudesse andar pela casa? Durante um período de algumas semanas Adam treinou seu peixe Betta, chamado José, para saltar para fora da água quando recebesse um comando. Ele também ensinou-o a seguir sua mão enquanto se movia ao redor do aquário. O Abovemarine é um veículo que permite José, ou qualquer outro peixe movimentar-se livremente pelo chão. Usando Arduino, câmera e visão computacional, este pequeno dispositivo permite que o peixe possa interagir com outras espécies, incluindo os seres humanos e animais de pequeno porte. José é capaz de "andar" com sucesso em um quarto, enquanto nada para trás (para parar o Abovemarine) antes de bater em obstáculos. O Abovemarine move usando rodas Omni-direcionais, permitindo-lhe viajar em qualquer direção. Assista o vídeo.



sexta-feira, 28 de agosto de 2015

Projeto: Um bafômetro que fala



Um bafômetro personalizável que fala e diz o quanto você ainda pode beber. Essa é a proposta desse dispositivo baseado em Arduino. Também é open-source e pode ser facilmente modificado com seu próprio texto na tela LCD e MP3 de áudio. Quando ligado a um PC com um cabo USB, possui recursos adicionais, incluindo animações de personagens, tweets de bafômetro, e outros. Não é um bafômetro profissional e o autor aconselha seu uso apenas para fins de diversão. O projeto completo pode ser encontrado no link




quinta-feira, 27 de agosto de 2015

Dispositivo: SeeedStudio BeagleBone Green


Dispositivos novos são sempre bem-vindos. Esse além de funcionalidades excelentes, tem um preço também muito atraente. Estava previsto para custar 50 dólares, mas foi lançado a 39. A BeagleBone Greenproduzida pela parceria SeeedStudio / BeagleBoard, é baseada no projeto de hardware open-source do BeagleBone Black e desenvolvida como uma diferenciação dessa primeira, incluindo à Black dois conectores Grove, para facilitar a conexão com a grande família de sensores Grove. Suas especificações: 

Processador: Sitara AM3359AZCZ100 1GHz, 2000 MIPS 
Memória: SDRAM 512MB DDR3L 606MHZ
Onboard Flash: 2GB
Alimentação: através da microUSB

Se você deseja conhecer projetos criados com essa e outras BeagleBoards, acesse a página de projetos.


quarta-feira, 26 de agosto de 2015

Mais um Adafruit: MintySyth Kit



Alguns dispositivos encantam pelo design do case também. É o caso do MintySyth da Adafruit. Este dispositivo (vendido desmontado, em forma de kit), foi criado para ser colocado dentro de uma lata de pastilhas Altoids. Altoids são uma marca de pastilhas de hortelã. A marca foi criada pela Smith & Company na década de 1780. O kit MintySynth é um ótimo dispositivo para  projetos com música, e une esse prazer à experiência com eletrônica e programação. Open-source e customizável, o MintySynth é um kit Arduino-compatível. Lembrando que o kit é pra montar, então é uma boa oportunidade também para treinar habilidades com solda de estanho. A lata de pastilhas também é vendida separadamente. 







terça-feira, 25 de agosto de 2015

Projeto: Pinokio, uma lâmpada viva!




Existem projetos que são realmente inspiradores. Adam Ben-Dror, em sua página do Vimeo compartilha seus projetos de robótica e eles são bastante interessantes. Um deles é o Pinokio. Pinokio, segundo as palavras do próprio criador do projeto, é uma aventura dentro do potencial expressivo comportamental da computação robótica. Um código customizado e um circuito eletrônico confere a Pinokio a capacidade de perceber e de interagir com o ambente à sua volta. O mais impressionante no projeto é que Pinokio parecer ter reações próprias, como se tivesse vida. As reações de um ser humano diante de Pinokio podem ser até emocionalmente confusas, dada a perfeição com que o projeto foi desenvolvido. E ainda, Pinokio tem em sua base de controle um Arduino.  Aprecie!




segunda-feira, 24 de agosto de 2015

Bluetooth 4.0: Eis o LightBlue Bean!







O LightBlue Bean+ pode ser definido, essencialmente, como uma placa Arduino com um Bluetooth LE (Low Energy) integrado. Não somente para comunicação, mas é possível também programá-lo via Bluetooth. O time que está desenvolvendo o projeto prevê sua venda para início de dezembro desse ano. Abaixo seguem as funcionalidades do dispositivo:


  • Acelerômetro de 3-eixos
  • Sensor de temperatura    
  • LED RGB    
  • Bateria CR2032     
  • Microcontrolador ATmega 328p     
  • 8 MHz clock    
  • Voltagem de trabalho 3V
  • 6 pinos digitais de Entrada e Saída
  • 2 pinos analógicos  
  • Bluetooth LE periférico
  • Programação Wireless     
  • Suporte para OS X, iOS e Windows 8

domingo, 23 de agosto de 2015

Projeto: Um Arduino que sobe em árvores!


Ben_k, do Instructables diz:

"Depois que me senti confortável com a programação e e a implementação de projetos com um Arduino, eu decidi construir um robô. Eu não tinha qualquer tipo particular de robô em mente, então eu vasculhei meu cérebro (e a internet) procurando por ideias novas. Eventualmente, de alguma forma, a ideia surgiu na minha cabeça e decidi construir um robô que poderia escalar árvores. No começo eu descartei a idéia como algo além do meu nível de habilidade, mas depois de muita reflexão e algum tempo no prancheta, eu decidi dar uma chance ao desafio. Este é o resultado dos meus esforços."




Gostaria de usar esse exemplo de projeto para falar da usabilidade de projetos desse tipo. O desenvolvimento de base de habilidades com robótica abre precedentes para aplicações em diversas áreas. Muitos pesquisadores da área de biologia, ecologia, meteorologia e áreas afins, podem usar esse projeto para ampliar suas pesquisas através da coleta de dados em locais onde uma pessoa não pode (ou não deve) ir. Além disso, deve ser muito legal acoplar uma câmera e tirar fotos da natureza do topo de uma árvore gigantesca, concorda? O projeto inteiro para montagem está no site Instructables. Basta seguir o link.


sábado, 22 de agosto de 2015

Começando do zero!







Sempre que adentramos um mundo desconhecido, é natural chegarmos cheios de dúvidas e questionamentos. O mundo maker agrega novos adeptos todos os dias. E uma das questões mais comuns que escutamos é: por onde começar? Isso sempre segue a pergunta qual dispositivo é o melhor? Essas perguntas têm respostas muito subjetivas, por causa da variedade de opções de plataformas e kits disponíveis. Basicamente qualquer placa que você adquirir como início vai te dar a mesma satisfação. O mais empolgante no desenvolvimento de projetos embarcados com plataformas do tipo Arduino e RaspberryPi é a prazer de ver funcionar algo que você mesmo fez. Daí começam as idéias. É importante saber que a partilha de conhecimentos é que vai fazer a diferença no decorrer do tempo. Você aprende partilhando e conhecendo as descobertas dos outros makers. Quando for adquirir uma plataforma, adquira a que mais se adequa ao seu bolso ou se já possui algo em mente, algo adequado ao seu projeto. Não tenha medo de errar. O erro também é aprendizado. 


Comunicação USB embarcada: conheça o Arduino LEONARDO



Quando criamos algo, a idéia pode vir à frente do modo de implementação. Mas o contrário também acontece com frequência: quando enxergamos as possibilidades de um dispositivo, muitas idéias surgem. Por isso é necessário conhecer os limites e também a capacidade de várias plataformas e dispositivos, para que possamos escolher bem. O Arduino UNO é uma placa básica, mas é possível construir inúmeros projetos com ela e, mesmo assim, não exaurir o limite de possibilidades que ela traz. Mas existem outras versões do Arduino e a que trazemos hoje para apresentar possui propriedades bastante úteis em determinados projetos. O Arduino Leonardo utiliza o microcontrolador ATmega32u4 que já possui comunicação USB integrada. Isto permite que o Leonardo apareça, quando conectado a um computador, como um mouse ou um teclado USB. Esta funcionalidade é uma mão na roda quando se trata de comunicação com um PC. Projetos como, dispositivos de reconhecimento de voz para dar comandos a um computador, teclados alternativos (como um teclado para deficientes visuais, ou pessoas que tem algum tipo de debilidade física), mouses comandados por voz ou sensíveis a diferentes movimentos, e muitos outros, podem ser implementados com esse dispositivo. Além de ter uma pinagem similar ao UNO, que já é bastante conhecida.




sexta-feira, 21 de agosto de 2015

Dispositivo: GEMMA, mais um mini!


As placas miniaturizadas são as mais adequadas para projetos vestíveis, por motivos óbvios. Adafruit lançou há alguns meses uma nova placa compatível com Arduino chamada Adafruit GEMMA v2. Agora a mesma empresa Adafruit anuncia uma placa com o mesmo hardware da GEMMA v2 chamada Arduino GEMMA. A diferença é que a placa Arduino GEMMA será oficialmente suportada na IDE do Arduino, sem a necessidade de se instalar nenhum plugin ou driver a mais e, claro, terá o logo Arduino. É a primeira placa Arduino fruto da parceria com a Adafruit firmada há alguns meses e a primeira placa Arduino fabricada nos Estados Unidos. Ela é uma placa bem pequena com formato circular, de 28 mm. de diamêtro, feita para que se possa contruir vestíveis de maneira fácil utilizando o poder da programação Arduino. 
Essa nova placa conta com as seguintes características:


  • Microcontrolador ATTiny85
  •  Pode operar a até 8MHz
  • 8KB de Memória Flash (dos quais 2.75KB são usados para bootloader)
  • 512 bytes de SRAM
  • 512 bytes de EEPROM
  • Tensão de alimentação: 4 a 16V via bateria
  • Tensão de operação: 3.3V 
  • 3 Pinos digitais 
  • 3 canais de PWM
  • 1 entrada analógica
  • Conector Micro-USB para o bootloader via USB 
  • Conector de liga desliga 
  • Led indicativo de funcionamento 


quinta-feira, 20 de agosto de 2015

Dispositivo: Conheça o Omega-Onion



Que tal um dispositivo que integra WiFi, biblioteca SDK e um Console Web para controle dos dispositivos, além de uma infraestrutura em nuvem que conecta os diversos dispositivos embarcados e suporta a Python e NodeJS? Eis o Omega Onion! Apesar de tudo, é de um tamanho incrivelmente reduzido (28mm x 42mm). Utiliza um Sistema Operacional OpenWRT Linux, processador que trabalha a 400MHz (25 vezes mais rápido que o Arduino UNO), o que o torna candidato a aplicações que exigem maior poder de processamento. O Onion ainda vem com 64MB de memória RAM e 16MB de memória flash. Possui 18 pinos de entrada e saída. O projeto do Onion ainda fornece uma estação de trabalho para adaptar o dispositivo aos shields compatíveis com o Arduino. Para conhecer mais acesse o link


quarta-feira, 19 de agosto de 2015

RetroPie 3.0: Mais de 20 emuladores no seu RaspberryPi



A onda vintage tem muitos adeptos, e quando se fala em jogos, fala-se de uma questão afetiva. Quem nunca viveu a situação de ver um Nintendo antigo na casa de um amigo e relembrar tantos momentos bons. Tem até a famosa frase dita a cada release dos jogos de futebol: "Nossa! os gráficos são perfeitos!". O fato é que por mais perfeitos e realistas que os gráficos dos videogames atuais tenham se tornado, a memória afetiva de quem curtiu esses jogos antigos sempre fala muito forte. Então que tal ter à sua disposição mais de 20 consoles antigos em um dispositivo que você pode conectar à sua TV com um cabo HDMI? Pois é. O projeto RetroPie transforma o pequeno  Raspberry Pi em um multi console de jogos vintage. Desde Atari até à Playstation passando, pela Amiga, NES/SNES, Mega drive, e outros. Isto tudo com suporte à maioria dos gamepads e joysticks disponíveis no mercado. o RetroPie está agora na sua versão 3.0 e é compatível com Raspberry Pi A, A +, B, B + e Raspberry Pi 2 B. Para fazer o download, basta acessar o link.







terça-feira, 18 de agosto de 2015

Tirando uma idéia do papel





Para algumas pessoa é muito difícil falar de si mesmas. Se você tem dificuldade de elencar atributos que o definam, pode mudar de idéia quanto a si mesmo se começar a tomar atitudes práticas em relação a alguns aspectos de sua vida. Você com certeza se considera uma pessoa de bom senso, e isso se deve ao fato de você ter que tomar decisões todos os dias. Certamente já errou em algumas decisões e aprendeu a tomar o caminho certo na próxima vez. Assim como o bom senso se alimenta de erros e acertos para se desenvolver, a criatividade é um talento a ser desenvolvido. Uma boa idéia não é, nada mais, do que a união de uma necessidade com uma solução. Considere uma coisa: existem boas idéias que podem levar anos pra serem desenvolvidas e implementadas, e existem idéias simples que, às vezes, podem resolver somente parte de um problema. Mas se essas idéias são concretizáveis, elas têm maior valor que aquelas que tomam muito tempo ou recursos. O fato é que, pequenas idéias que saem do papel são melhores do que idéias muito custosas e que podem nunca sair da sua fase conceitual. Quer ter uma idéia? pense em um problema. Pesquise, investigue, escreva. Sua mente quando se abre às soluções já encontradas é capaz de produzir novas respostas, a partir do seu ponto de vista e do seu conhecimento adquirido.

segunda-feira, 17 de agosto de 2015

Projeto: RaspberryPi e Arduino, em uma Missão de Controle Espacial!

Uma das publicações mais interessante para os makers é a americana Make:. Ela traz projetos muito interessantes e abrangentes, e é uma das melhores fontes de inspiração. Esse projeto, disponível para apreciação no site em inglês (How to Build a Mission Control Desk) é um dos mais completos e sofisticados. Une um conceito bastante interessante, mexe com o imaginário infantil (mas tenho certeza que muito adulto vai querer também!) e ainda foi elaborado de uma maneira bastante requintada, deixando o projeto com um aspecto extremamente profissional. 
Nas palavras do próprio pai: "Meu filho mais velho recentemente começou a estudar e precisou de uma escrivaninha para ele. Eu queria fazer algo mais legal do que simplesmente uma mesinha, e percebi que eu poderia também construir algo divertido para quando ele terminasse sua tarefa de casa."

Foi aí que ele teve a idéia de construir algo inspirado na NASA, algo nascido de uma viagem que eles haviam feito para o Centro Espacial Kennedy, durante o verão. Não há muito o que explicar, assista o vídeo e perceba a riqueza de detalhes do projeto. Esse projeto já havia sido publicado pela revista Make:, mas desta vez disponibilizaram o passo-a-passo do projeto, incluindo o software utilizado.


domingo, 16 de agosto de 2015

Dispositivo: Conhecendo as partes do Arduino Uno




Dentre as diversas versões do Arduino, o Arduino UNO é a mais conhecida e talvez tenha sido a responsável pela maior parte da expansão e da popularização da plataforma. É possível comprar em diversos e-commerces versões diferenciadas de kits didáticos contendo diferentes sensores e componentes eletrônicos para os mais diversos tipos de projetos. Via de regra, os kits vendidos acompanham também tutoriais contendo os projetos que o maker pode implementar com aquele kit. Mas não é difícil encontrar na internet os tutoriais para inúmeros outros projetos. A placa padrão, traz as funcionalidades básicas da linha. Baseada no microcontrolador ATmega 328, possui 13 pinos de entrada e saida (I/O) digital do quais 6 tem suporte a PWM e 6 entradas analógicas ( normalmente utilizada para sensores ). O UNO é uma versão melhorada do Arduino Duemilanove. Veja na figura abaixo os diversos componentes da placa Arduino UNO (Clique para aumentá-la).



Projeto: ClimaDuino - Sistema de monitoramento climático distribuído



Como percebemos muitas vezes, analisando a natureza dos projetos e suas aplicações, o uso dos novos dispositivos embarcados extrapola todo e qualquer limite de campo de aplicação. Um dos campos mais interessante que ele alcança, permitindo um desenvolvimento que é capaz de mudar muitos conceitos e paradigmas, é o campo da pesquisa científica. O Grupo Open Hardware Brasil apresenta em seu blog o projeto Monitora Cerrado. Este projeto é de criação de uma rede de sensores distribuída para captação de dados climáticos formada pela junção de hardware e software livre, a parte de das estações é feitas com o hardware livre Arduino. Os dados são gerados pelas estações e enviados a um servidor central. O projeto tem embasamento no conceito de sistemas distribuídos, aplicando padrões de Internet das Coisas – (IoT - Internet of The Things).


O dispositivo que vemos na foto é uma versão reduzida do ClimaDuino, que utiliza o Attiny85 (aquele mesmo que já falamos aqui), DHT22 (um sensor de baixo custo para temperatura e umidade do ar) e Bluetooth. O ClimaDuino é o hardware físico que faz as medições e coletas de dados como temperatura, umidade, pressão atmosférica dentre outras medições possíveis. Clique no link se deseja conhecer mais o projeto e também ver o tutorial completo de como montá-lo, configurá-lo e implementá-lo.