Revista THT - 1ª Edição

Page 1

1

Revista

Out/2017

1

Edição nº 001 1

http://www.luartbaloes.com.br/images/baloes.png


Sumário Editorial .........................................................................................................................................................3 Nosso editor-chefe ........................................................................................................................................4 Andressa da Silva Siqueira.........................................................................................................................4 Programação .................................................................................................................................................5 Iniciando no Mundo da Programação .......................................................................................................5 Entendendo a interface Node Red ............................................................................................................8 Publicando container Node no Heroku ...................................................................................................12 Hardware .....................................................................................................................................................15 O melhor microcontrolador para seu projeto.........................................................................................15 Depoimentos ...............................................................................................................................................21 O que podemos aprender com hackathons ............................................................................................21 Semeando possibilidades ........................................................................................................................24 Projetos .......................................................................................................................................................25

2

Já pensou em conversar com seu carro? O que acha da ideai?..............................................................25


Editorial Essa é a primeira edição da revista bimestral do THT. Uma revista escrita por vocês e para vocês!

Ela foi idealizada, escrita e revisada com muito amor! Antes de começarmos, vou falar um pouco do nascimento dessa ideia e o objetivo da revista! O conceito da revista é compartilhar o conhecimento entre a comunidade de TI!!!! A ideia foi dada pelo nosso colega Ricardo em 13 de abril de 2017 no grupo do WhatsApp do THT (Yes, nós temos grupos no Whats)! Lógico que todo mundo amou!! Após algumas conversas entre o Ricardo, Marabesi, o Fernando e a Andressa ... a vida fez o projeto esfriar e ficar no armário...isso até agosto quando a ideia reviveu! Ao anunciar a revista, uma galera nova e cheia de vida topou participar do projeto! Já somos 10!!!!

Todos sem exceção irão se apresentar aqui na revista aos poucos para que vocês possam nos conhecer! Para as próximas edições teremos a identidade visual da revista definida, secções das matérias, além de artigos espetaculares para vocês! Casos alguém se interesse em escrever para a nossa revista e/ou participar como editor basta enviar um e-mail para thtrevista@gmail.com.

3

Beijos de toda equipe!


Nosso editor-chefe Andressa da Silva Siqueira Olá, pessoal! Meu nome é Andressa da Silva Siqueira, natural do estado do Rio de Janeiro! Sou uma apaixonada por desafios e tudo que envolve tecnologia e inovação. Sou fascinada pelo mundo da automação, robótica e drones. Sempre procuro ficar antenada às novidades do mundo tecnológico através de notícias, cursos, palestras, workshops, entre outros. Formei-me no curso de Engenharia Elétrica com ênfase em Sistema e Computação pela Universidade do Estado do Rio de Janeiro em 2014 estou finalizando o mestrado em Sistema e computação pelo Instituto Militar de Engenharia este ano (2017) na área de Defesa e Veículos aéreos não tripulados (VANT’s)! Minha escolha pela engenharia teve um motivo bem simples: eu não sabia dentro de qual área da tecnologia gostaria de trabalhar. Este foi o único curso no qual poderia ver um pouco de todos mundos e então decidir pelo que mais me fascinava. E um dos primeiros contatos que tive foi com a programação, uma coisa que amo muito fazer! Trabalho há mais de 10 anos com desenvolvimento de software possuindo atualmente conhecimento em várias linguagens de programação diferentes, além de outros conceitos como gerenciamento de projetos e design patterns. Atualmente, estou estudando a parte de desenvolvimento Web e Mobile. Além do mestrado, do trabalho e da revista, tenho um blog de tecnologia (https://siqandressa.wixsite.com/inovacaoparaofuturo) e estou atuando em três projetos, que são meus junto com tudo que faço na vida! Ah, e sempre que sobra tempo participo de eventos e hackathons. Estes projetos são: * A Poran (http://poran.strikingly.com/) * A Nanny Drive

4

* A Iubi (http://iubi.me/)


Programação Iniciando no Mundo da Programação Palavras chave: Algoritmo, Programação, Lógica. Todas as pessoas que estão dando os primeiros passos no mundo da deparam-se com uma questão: qual linguagem de programação aprender primeiro? Neste pequeno artigo tentarei, de alguma forma, dar uma resposta a essa pergunta. Mesmo que você já saiba programar em uma ou mais linguagens de programação, não deixe de ler este artigo, pois pode lhe fazer perceber que está fazendo da maneira errada ou mesmo lhe ajudar a melhorar a forma com que estuda programação.

A fase mais difícil na vida de um programador (especificamente de quem quer se tornar um) é no início, pois é quando surgem várias perguntas: “Qual linguagem escolher? ”, “Como devo preparar meu computador? ”, “Que cursos eu devo fazer? ”. Pois bem, amigo leitor, tenho aqui a solução para os seus problemas, vamos lá?

5

Antes de pensar em qual linguagem escolher, você precisa aprender como escrever nessas línguas, como falar com elas, como lê-las e como entendê-las. Imagine-se como uma criança que está aprendendo o “ABC”, com isso, você será capaz de aprender qualquer língua (com algumas exceções, claro!). Então, o “ABC” da programação chama-se Lógica de Programação. Mas o que é Lógica de Programação?


Lógica de Programação nada mais é que uma técnica de desenvolvimento de algoritmos (sequência lógica) para atingir certos objetivos dentro de regras baseadas em lógica matemática e que posteriormente venha a ser adaptada a uma linguagem de programação. Estudar lógica de programação irá estimular um raciocínio lógico mais apurado e esse é o primeiro passo para aprender programação.

Algoritmos? Do que se trata? O conceito de algoritmo pode ser facilmente ilustrado por uma receita de bolo, adicionando repetições ou tomadas de decisão, a depender do nível de complexidade. Porém, o que quero que você entenda nesse momento é a necessidade de exercitar bastante isso na prática antes de conhecer qualquer linguagem de programação. Vou citar um exemplo básico de um algoritmo: a troca de um pneu furado de um carro. Existem várias maneiras diferentes de fazer isso, então pense aí e monte seu algoritmo para trocar um pneu. Ex.: Parar o carro no acostamento; Trocar o pneu furado; Seguir viagem; Este meu exemplo acima não está incorreto, porém, pode ser mais detalhado. Imagine que esse meu algoritmo esteja em um manual de um carro e uma pessoa que nunca trocou um pneu. Você acha que ela conseguiria trocar? Acredito que não, pois faltam detalhes de como realmente se troca um pneu. Então, o que está esperando? Monte seu algoritmo e nos envie, estamos aqui para lhe ajudar (☺).

6

E depois de estudar algoritmos e lógica de programação?


O próximo passo depois disso é de fato escolher uma linguagem a se trabalhar como: Java, C, C++, C#, Python, Delphi, dentre outras tantas linguagens existentes. Escolhida a linguagem, você deve começar os estudos desta do zero (0). Lembra-se do início do artigo que eu disse que o pior estava por vir? Então, caro amigo, esta é, sem dúvida, a parte mais difícil para quem está iniciando. Mas por que? A resposta é simples: você estudou bastante lógica e algoritmo na ansiedade de chegar até a escolha da sua linguagem e criar um baita sistema de cadastros conectado a um banco de dados, mas você se depara com programinhas que imprimem mensagens no “prompt de comando”, fazendo você se perguntar: “era isso que queria para minha vida?”. Acalme-se, agora o melhor está por vir, porém, você deve engatinhar devagar, aprendendo os conceitos básicos da linguagem, criando pequenas calculadoras, fixando bem a sintaxe da sua linguagem, como se você estivesse domando uma “fera”. Depois, você vai perceber que já está bem avançado, que já é capaz de criar sistemas complexo sem ajuda de vídeos ou códigos em livros. Resumindo tudo isso, você deve seguir etapas de aprendizado, começando pela lógica, depois os conceitos básicos de programação para então avançar moderadamente. Não se aprende da noite para o dia, lembre-se sempre disso. Praticar bastante os conceitos básicos ajuda também na fixação da lógica/sintaxe da linguagem... Resolvi escrever este artigo, pois foi um grande erro que cometi quando iniciei neste mundo (pasmem) e já presenciei vários colegas de estudo/profissão cometendo esse erro, parece que nunca saíamos do lugar, sempre queria avançar, mas sem entender, chegando a conseguir criar sistemas complexos e depois não entender o que fiz. Depois parei e resolvi fazer da maneira correta, chegando ao êxito de vários trabalhos na área hoje. Atualmente trabalho como freelancer na programação com domínio de várias linguagens como: Java, C#, PHP, SQL etc.

Referências Bibliográficas: https://pt.wikibooks.org/wiki/Introdu%C3%A7%C3%A3o_%C3%A0_programa%C3%A7%C3%A3o/Defini %C3%A7%C3%B5es_sobre_L%C3%B3gica_de_Programa%C3%A7%C3%A3o Imagens citadas: Figura1: http://pad3.whstatic.com/images/thumb/a/ae/Start-Learning-Computer-Programming-Step-1Version-4.jpg/v4-728px-Start-Learning-Computer-Programming-Step-1-Version-4.jpg Figura2: 23460065.png

https://edivaldodeoliveira.files.wordpress.com/2014/06/algoritmo-com-o-homem-3d-

Autor: Felipe Casseb

7

E-mail para contato: felipe.casseb@hotmail.com


Programação Entendendo a interface Node Red Após fazer a instalação do Servidor Node Red em nossas maquinas ( Caso não tenha feito e queira aconselho que leia meu artigo anterior: Node Red ? Que coisa é isso ? onde explico o que é e como instalar o Node Red ), várias perguntas nos vem à cabeça, como por exemplo: "Pronto, e agora ?", "Aonde eu coloco meu código nisso ?", com esse artigo vamos aprender a nos localizar em cada parte dessa nova interface e entender como transitar por ela. 1.Iniciando o Servidor Node Red. Para se iniciar um servidor Node Red é bem fácil, basta abrir um terminal tanto no Windows quanto no Linux e chamar: node-red. 2. interface gráfica Node Red. Logo após "startar" seu servidor, abra o navegador de sua preferência e digite: localhost:1880 ou se for acessar essa máquina de forma externa porem na mesma rede utilize o IP:Porta. EX: "192.168.0.x" Ao abrir, a IDE se assim podemos chamala será essa a tela que você encontrará. Essa é a página inicial da programação Node Red, lembramos que o Node Red segue o sistema de flows para programação através de blocos lógicos, os famosos Nodes, ou Nós. No Node Red nós encontramos três tipos de nodes: Entrada, Transição e Saída. Node de entrada: São nodes que leem ou recebem valores externos. Nodes de transição: São nodes onde nós trabalhamos os dados para ser entregues a outros nodes de transição ou de saída. Node de saída: São nodes que expõem ou agem de acordo com os dados, sendo esses, tratados ou não.

8

Na nossa interface encontramos os nodes em um lugar chamado de Paletta, onde eles são armazenados e organizados de acordo com suas funções e APIs, nessa palleta nós temos a


possibilidade de encontrar nossos nodes rolando a barra ou de forma mais específica pesquisando seus nomes. Em sequência encontramos nossa área de trabalho, o lugar onde arrastamos e conectamos nossos nodes através de seus data hubs e data wires, eles são as pontes por onde os dados trafegam entre um node e outro.

Nossa área de trabalho é dividida em Flow para melhor organização onde um flow pode ou não interferir no outro de acordo com os dados. Alguns blocos quando presentes na área de trabalho criam caixas de ativação, bem como vemos no exemplo. Se essa caixa está ativa sua cor fica aparente de forma mais forte, caso não esteja sua cor fica mais opaca. No canto direito da tela encontramos a área de informações onde podemos entender mais o funcionamento de cada bloco bem como debugar seu funcionamento, apesar de não parecer, essa área é extremamente importante para observação e configuração de nodes mais avançados como os de Dashboard. No Canto superior direito também encontramos um dos elementos mais importantes de toda programação. O botão Deploy e ao seu lado o botão de configuração do Node Red.

9

O Deploy é responsável por iniciar, reinicia ou atualizar nossa programação podendo ser feito em tempo de execução para todos os nodes ou nodes específicos de acordo com o programador. Ele nos dá essas três opções:


Já o botão de configuração do Node Red nos traz várias possibilidades como: ✓ Visualizar as barras de informação e de Debug. ✓ Importar e exportar Flows externos feitos em outro servidor Node Red. ✓ Procurar por Flows ✓ Configurações de nodes específicos. ✓ Configurações de flows e subflows ✓ Gerenciador de paletta. ✓ Configurações ✓ Atalhos de teclado, site no Node Red e versão De todos esses nós vamos dar mais atenção a três, pois são os mais utilizados e necessitados dentre todos os outros e o primeiro é : 1.Importação e Exportação No Node Red no conseguimos trazer Flows ou até mesmo programas inteiros feitos em outros servidores node para o nosso ou vice versa, para isso basta que você selecione os nodes ou Flow que queira exportar e vir nessa opção seguido da opção clipboard, com isso uma nova janela se abrirá. Nessa janela você tem a opção de escolhe se quer exportar somente os nodes selecionados, se deseja exportar aquele flow específico ou todos os flows. Tudo isso ficara salvo dento de um grande JSON, bastará copiar e colar ele em um meio de comunicação e pronto, exportação concluída A importação segue o mesmo padrão, é só copiar o JSON que veio pelo seu meio de comunicação, escolher import, clipboard e colar em seguida clicar em import, clipboard e pronto, nodes importados.

10

2. Configuração de nodes Alguns nodes que trabalham com APIs e requerem alguma informações específicas como login de contas e configurações de hardwares como os nodes no Twitter e Arduino, possuem nodes ocultos, que ficam guardados nessa área, e por mais que você apague a utilização deles na área de trabalho, seus nodes de configuração ficam ativos nesse espaço, então quando não for mais utilizar alguns desses nodes,


lembre-se sempre de apaga-los aqui nas configurações também para diminuir os riscos de erros ou conflitos com outros nodes. 3.Gerenciador de paletta Esse local é utilizado para gerenciar seus pacotes de nodes, aqui você pode instalar e desinstalar pacotes específicos e também pesquisar por nodes de acordo com sua necessidade. Para instalar novos pacotes de APIs basta entrar nessa área, clicar na aba install e pesquisar o pacote, ao encontrar basta clicar install e aguardar que os nodes sejam instalados. Com isso aprendemos o funcionamento de todas as áreas da interface do Node Red, e já podemos sair construindo nossos flows em breve no também teremos todo esse material em vídeo no nosso canal. Nos sigam nas redes sociais para ficar por dentro das novidades do Node Red.

NodeRed-Brasil facebook.com/NodeREDBrasil/ instagram.com/noderedbrasil/ twitter.com/noderedbrasil Me sigam também nas redes Sociais.

Autor: Fernando Veiga

11

E-mail para contato: pfveiga7@gmail.com


Programação Publicando container Node no Heroku Neste artigo veremos como criar uma aplicação WEB em Node.js, a criação de imagem Docker e no final do artigo iremos publicá-la no Heroku . Palavras Chave: Node.js, Docker, Heroku. A cada dia que passa estamos mais e mais ouvindo falar nos benefícios de se trabalhar com containers, essa nova stack que está a cada dia sendo mais utilizada por pequenas e grandes empresas, além de nos ajudar a acabar com a frase “Funciona na minha máquina”, está nos auxiliando a chegar no mundo perfeito do devops. Para quem ainda não conhece esse conceito, devops em um resumo seria a equipe de infra trabalhando em conjunto com os Devs, sem aquelas famosas brigas por causa de egos. Bom, mas para trabalharmos com o Containers nós precisamos de endpoint para publicação e a maioria das hospedagens são pagas. Por esse motivo resolvemos escrever esse artigo para apresentar o Heroku, uma hospedagem muito utilizada pelos desenvolvedores por ser grátis e ainda garantir que os nossos serviços não caem. O objetivo deste artigo será a criação de uma imagem de uma aplicação WEB em Node.js, a criação de uma imagem Docker e a publicação dela no Heroku. Nosso primeiro passo será escolhermos um diretório para o nosso projeto e a criação de dois novos arquivos dentro dele o package.json e server.js. Com o diretório e os arquivos criados abra um editor de texto de sua preferência, em seguida vamos colar o código a baixo dentro no nosso arquivo package.json.

12

[code] { "name": "nodejs-docker", "version": "1.0.0", "description": "Node.js on Docker", "author": "tadriano.net@outlook.com", "main": "server.js", "scripts": { "start": "node server.js" }, "dependencies": { "express": "^4.13.3" } } [/code]

Agora adicione o código da próxima página no seu arquivo server.js. Agora execute o comando npm install para baixar os nossos pacotes, assim que ele finalizar execute npm start para que possamos verificar se o projeto está rodando corretamente.


Caso tudo estiver OK irá aparecer a mensagem a baixo no terminal do seu Visual Studio Code:

[code] 'use strict'; const express = require('express'); // Constants const PORT = process.env.PORT || 3000; const HOST = '127.0.0.1'; // App const app = express(); app.get('/', (req, res) => { res.send('Hello world\n'); }); app.listen(PORT, HOST);

Bom, até esse ponto não vimos nenhuma novidade, somente criamos uma aplicação simples em Node. Vamos agora criar o nosso arquivo DockerFile.

console.log(`Running

on

http://${HOST}:${PORT}`); [/code]

[code] FROM node:boron WORKDIR /app COPY . . CMD NODE_URLS=http://*:$PORT npm start [/code]

Vamos navegar pelas linhas do nosso arquivo: [code] FROM node:boron [/code]

Nessa primeira linha nós estamos definindo qual imagem iremos utilizar.

Nesse passo nós estamos definindo o diretório dentro da nossa aplicação que irá executar o nosso código.

[code] COPY . . [/code]

Nesse ponto iremos copiar os arquivos do nosso diretório local para dentro da nossa imagem.

Por fim estamos criando uma variável local para receber a porta dinamicamente e passando o comando que irá precisar ser executado para rodar o nosso container.

13

[code] WORKDIR /app [/code]

[code] CMD NODE_URLS=http://*:$PORT npm start [/code]

Com tudo OK vamos agora criar a nossa imagem. Para isso, execute o comando a baixo no seu terminal dentro do diretório do que você criou o seu arquivo DockerFile.


[code] docker build -t nodejs-docker . [/code]

Agora execute o comando docker images para verificar se a imagem foi criada corretamente.

Nosso próximo passo será executar a nossa imagem. Para isso execute o comando a baixo no seu terminal: [code] docker run -p 80:8080 nodejs-docker [/code]

Agora para verificarmos se o nosso container está executando corretamente iremos utilizar o comando docker ps, ele verificar os containers que estão sendo executados.

Abra no seu navegador o endereço http://localhost/ , caso tudo OK ira aparecer a mensagem Hello world. Vamos agora criar a tag da nossa imagem para que possamos subir ela no Heroku, execute o comando a baixo no seu terminal:

Nosso próximo passo será logar no Heroku. Para isso, execute o comando a baixo no seu terminal, assim que ele terminar execute o segundo comando para enviar a sua imagem. [code] heroku container:login docker push registry.heroku.com/nodejs-docker/web [/code]

Caso tudo esteja OK você irá receber o resultado a baixo no seu terminal:

Por fim, podemos abrir no nosso navegador a URL e ver o nosso container sendo executado no Heroku. https://nodejs-docker.herokuapp.com/

14

Autor: Thiago da Silva Adriano. E-mail para contato: tadriano.net@gmail.com


Hardware O melhor microcontrolador para seu projeto O microcontrolador certo em um projeto de sistemas eletrônicos embarcados deve levar em conta vários diferentes fatores. Os principais critérios de decisão sobre a escolha do uso do melhor microcontrolador para seu projeto será exposto nesse texto. Características técnicas do microcontrolador O microcontrolador deve satisfazer as características técnicas do projeto. É fundamental levar em consideração: - Arquitetura - Consumo, caso o projeto demande baixo consumo, ou seja, móvel - Periféricos - Velocidade e capacidade de processamento - Tamanho e encapsulamento - Escalabilidade Só para citar um exemplo de quão a arquitetura é importante, aliado à forma que o fabricante escolheu em projetar o circuito integrado, diversos microcontroladores têm um tempo alto de acesso à memória, o que penaliza sua performance, se comparada à velocidade de processamento matemático que o mesmo microcontrolador pode ter. Para projetos automotivos que envolvem segurança, é necessário que para tudo que o processador execute haja uma redundância. Algumas arquiteturas permitem que essa redundância seja feita por hardware. A escolha do dispositivo certo para a aplicação diminui o trabalho necessário para se adequar a determinadas normas.

15

A capacidade de escalabilidade também deve ser considerada. Ao começar a trabalhar com uma família de microcontroladores deve-se atentar para o fato da existência de microcontroladores da mesma família com mais memória FLASH e SRAM, ou capacidade de interfacear com uma memória externa para eventual expansão do projeto, sem grandes traumas. A previsão de dispositivos que poderão ser utilizados no futuro, o que demanda de antemão a reserva de alguns periféricos, também pode fazer parte do projeto, uma vez que mudanças de hardware podem ser caras e demoradas. Existe hoje uma grande briga pelo mercado de baixo consumo de microcontroladores. Várias aplicações estão exigindo menores consumos, principalmente para economia de bateria, e os fabricantes estão apresentando sempre novidades que chegam a marcas de nanoAmperes para microcontroladores operando em frequências de 10 MHz. Modos especiais de operação, além de alguns periféricos criados especificamente para esse fim, permitem que o projetista do


sistema tenha como aliadas diversas características interessantes que podem ser usadas na hora da criação do firmware. É importante verificar o conflito dos pinos que compartilham diversos periféricos. Dentre os periféricos mais comuns, destaco algumas interfaces de comunicação como UART, I2C, I2S, SPI, Ethernet, USB. Além disso, já é possível encontrarmos periféricos específicos para construção de teclas sensíveis ao toque (touch). Ao escolher um microcontrolador é interessante fazer uma simulação do uso dos pinos desse componente. Quase todos os fabricantes fornecem ferramentas que ajudam na escolha e no projeto do sistema eletrônico microcontrolado. Esses softwares diminuem, com certeza, o risco na hora da escolha do micro com determinado número de periféricos. É de fundamental importância verificar se existe diferença de desempenho entre dois periféricos que, à primeira vista, parecem ser iguais. Por exemplo: dois canais de comunicação de um mesmo tipo, como a SPI ou USART, disponíveis em um microcontrolador, podem apresentar diferenças em relação à máxima velocidade de transferência de dados ou características de registradores, por exemplo. Há também uma briga muito acirrada quando se trata de diferentes fabricantes entre os microcontroladores de capacidade média de processamento, com unidades de ponto flutuante e com mais de 4MB de Memória Flash Interna. Além das características, deve-se levar em conta que a escolha de um microcontrolador personalizado pode diminuir a lista de materiais do projeto, deixando-o mais barato, ou até mesmo escolhendo o melhor microcontrolador com o periférico correto à aplicação, o que demanda menos esforço da equipe de firmware e de hardware. Um exemplo é quando consideramos um microcontrolador para a interface USB que não demanda cristal externo, ou CI para trabalhar com ethernet e não necessita de CI externo, pois possui MAC+PHY internos. DMAs, que permitem que atividades sejam realizadas sem a interferência do core, possibilitam ao processador que o mesmo possa ser usado para atividades importantes que não a transferência de dados entre periféricos e memória, memória e memória ou entre periféricos. Com relação à escolha do encapsulamento, pode ser importante por diferentes motivos. Microcontroladores com encapsulamento BGA tem melhor performance com relação à compatibilidade eletromagnética. No entanto, diversas empresas no Brasil preferem utilizar encapsulamentos tradicionais, DIP, SO ou SOIC, devido a facilidade de montagem dos componentes. Encapsulamentos mini BGAs possibilitam placas de circuito impresso de dimensões ainda mais reduzidas. Encapsulamento BGA, QFN e LQFP podem não ser problema se utilizada montagem SMD por máquina.

16

Alguns equipamentos funcionam em ambientes com muito ruído eletromagnético, principalmente aqueles que trabalham com acionamento de determinados tipos de motor. Outros, além de imunidade a ruído, precisam também de faixas de operação de temperatura muito vastas, que é o caso de aplicações espaciais ou militares. Determinados microcontroladores atendem a esses requisitos, mas essas características vêm acompanhadas de maior preço, uma vez que não são vendidos na mesma escala que os microcontroladores de uso geral. No entanto, vale ressaltar que a indústria automobilística usa alguns desses micros imunes a ruídos e compram-nos em grandes quantidades. Às vezes esse fato provoca uma distorção nos preços e os micros utilizados em projetos automotivos chegam até a ser mais baratos que os de uso geral. Preço


É necessário que se pense comercialmente quando é feita a escolha de um microcontrolador para determinado projeto. O preço de um produto não indicado para novos desenvolvimentos pode ser muito caro. Por exemplo, atualmente os microcontroladores ARM7 têm um preço bem maior que os com core CORTEX M3, muitas vezes com poder de processamento maior e vasta gama de periféricos. Uma característica que contribui com o aumento do preço é a tecnologia em que a FLASH é construída. Em determinados microcontroladores é utilizada tecnologia de 90 nm, enquanto em outros, 63 nm. Essa diminuição permite que um maior número de componentes seja construído em uma mesma área de silício. Para um mesmo tamanho de flash, a área ocupada é menor – menos material é utilizado e o preço cai. Microcontroladores que acabam de ser lançados também tem preço mais atraente, apesar da disponibilidade ser crítica – os tempos de fornecimento tendem a ser bem altos. Tempo de fornecimento deste produto, disponibilidade O tempo é crítico para montagem de projetos eletrônicos. Ao mesmo tempo em que sabemos que microcontroladores são itens caros e que itens caros em estoque é dinheiro parado, o risco de compra conforme a demanda pode atrasar a montagem de equipamentos e cronograma de entrega ou conserto de produtos. Todos os CIs microcontroladores são importados e algumas empresas no Brasil trabalham com estoque local. É natural, então, que dependamos de processos de aduana e da Receita Federal de nosso país, o que aumenta o risco do negócio. Itens importados de forma não totalmente correta podem ter problemas para entrar no Brasil e ser entregues à empresa, o que causa transtornos e prejuízos financeiros, muitas vezes, irreparáveis. Além disso, tragédias naturais como tufões ou terremotos, além de feriados na Ásia, podem provocar atrasos na entrega de mercadorias ou até mesmo cancelamento de pedidos. Grandes distribuidores têm estoque na América do Norte e Ásia, o que permite uma confiança com relação a sabermos que o item existe, já foi fabricado - e, então, o tempo de fornecimento é bem reduzido. Além disso, podem trabalhar com programação de venda de chips, o que diminui o risco de fabricação, envio e de entrega dos componentes eletrônicos. O histórico de fornecimento de determinadas empresas, através muitas vezes de seus distribuidores e o bom relacionamento comercial, podem e devem influenciar na escolha do melhor microcontrolador. O bom relacionamento também propicia ótimo suporte dos fabricantes. O tempo de fornecimento de micros recém-lançados pode ser mais alto porque nem sempre se sabe qual foi a data exata em que a produção em larga escala foi realizada. Revisões no silício para corrigir alguns erros pequenos na implementação do chip podem fazer com que o lançamento seja postergado por algumas semanas ou até meses. Os objetivos internos das equipes de desenvolvimento das empresas de silício podem alterar os cronogramas e atrasar as datas de lançamento conhecidas pelo grande público.

17

Suporte Diversas empresas, além de disponibilizar tempo de engenharia, criam projetos personalizados experimentais para que os desenvolvedores possam acelerar o desenvolvimento de novos projetos. Em diversas oportunidades, um engenheiro ou especialista da própria empresa fabricante de um circuito integrado visita o cliente para dar suporte e até mesmo senta ao lado


da equipe responsável por determinado projeto e auxilia no start-up, trabalhando no esquema hands-on. São conhecidos e prestam serviço aos maiores consumidores ou às dúvidas de seu país ou continente. Experiência do time de desenvolvimento A experiência da equipe de desenvolvimento de uma determinada empresa conta muito para a escolha do melhor microcontrolador a ser utilizado no projeto de sistemas embarcados. Ter que aprender do zero sobre uma arquitetura nova ou sobre novas características pode consumir tempo precioso que poderia estar sendo aplicado ao projeto. Se a equipe já possui um bom domínio sobre a arquitetura, ferramentas de desenvolvimento, cross-compiladores e, em muitos casos, o RTOS utilizado, farão os projetos funcionarem muito mais rapidamente com microcontroladores similares aos atualmente utilizados do que escolher uma família nova de microcontroladores que deveria ser aprendida do zero. A ponderação que deveria ser feita é quando a família de microcontroladores não atende tecnicamente aos projetos propostos, suas ferramentas não são mais adequadas ou ultrapassadas para o desenvolvimento, os chips se tornaram muito caros e/ou não existe mais viabilidade econômica ou com relação ao lead-time – tempo de entrega dos itens. Documentação A documentação de uma família de microcontroladores e sua coleção de application notes disponíveis, códigos prontos para integração no projeto ou em ROM, auxiliam muito a equipe de desenvolvimento que (Erro gramatical: presença de vírgula antes do “que”) ganha um tempo precioso em testes de hardware e em seu primeiro firmware, que pode ser aplicado ao desenvolvimento do projeto. Deve-se verificar sempre a errata sheet antes da escolha do componente. Microcontroladores mais novos podem ter problemas escondidos, ainda não conhecidos ou não oficialmente reportados ou documentados. Os mais tradicionais já possuem erratas completas e auxiliam o desenvolvedor a se prevenir contra eventuais deslizes, que podem demandar muito tempo da equipe. Ressalto que é de fundamental importância ler o datasheet enquanto se projeta o hardware. Ser conservador e copiar trechos dos esquemáticos da placa de avaliação diminui riscos. É de fundamental importância respeitar os circuitos propostos no datasheet e user manual do microcontrolador, bem como os cálculos de componentes passivos externos. Time to market – ferramentas que proporcionam velocidade no desenvolvimento do projeto

18

A decisão de uso de um sistema operacional de tempo real proprietário para determinada linha de microcontroladores pode prejudicar uma eventual mudança de tecnologia e de fornecedor. No entanto, essa escolha pode ser benéfica se acelerar muito o desenvolvimento do projeto, através da utilização de bibliotecas prontas, reaproveitamento de código e muitas funções prontas para uso e integração. A escolha de um RTOS proprietário permite a criação de aplicações mais customizadas para a linha de microcontroladores escolhida. Por outro lado, a escolha de RTOSs comerciais ou livres que têm port para diversos microcontroladores ajuda a reaproveitar o código já desenvolvido pelos desenvolvedores para outros microcontroladores, caso ocorra uma mudança do fabricante do micro. Além disso, é, de certa forma, muito mais simples a busca por profissionais qualificados para trabalharem com RTOSs conhecidos como o FreeRTOS, o Micrium uC-OS III e CooCox. Ao utilizar RTOSs livres e gratuitos, tem-se também o apoio da comunidade de software livre e das universidades.


Ferramentas de debug A utilização de ferramentas de debug que permitem um completo monitoramento das variáveis internas de um microcontrolador em tempo de execução, aliado a ferramentas de software proprietárias ou grátis, além da possibilidade de monitoramento em tempo de execução de várias características do sistema utilizando um RTOS, auxiliam no tempo de desenvolvimento de sistemas embarcados, uma vez que se adiantam à correção de bugs e previnem de antemão eventuais erros. Existem disponíveis no mercado ferramentas de debug rápidas, que consomem poucos recursos do microcontrolador e via USB, utilizando placas de US$ 10,00 a US$ 20,00. Todas essas ferramentas apresentadas propiciam um melhor time to market e mais segurança ao desenvolvedor. É possível também com JTAG fazer um teste de boundary scan, que permite verificar a integridade da montagem do hardware. Claro que, em muitos casos, o bom e velho osciloscópio é indispensável para elucidação de algum erro de comunicação ou algum outro problema relacionado à instrumentação eletrônica. Possibilidade de Expansão Utilizar microcontroladores da mesma família ou do mesmo fabricante é uma ótima opção, caso seja necessária a mudança do CI principal do projeto. Como o tempo de aprendizado de um novo microcontrolador pode ser grande devido a diferentes ambientes de desenvolvimento, ferramentas e/ou datasheets, é desejável que, se possível, o fabricante continue sendo o mesmo do projeto original para se economizar em tempo de desenvolvimento. O reaproveitamento de código é, sem dúvida nenhuma muito grande quando se mantém a família de microcontroladores de um mesmo fabricante e o trauma gerado por uma mudança de arquitetura pode ser maior ainda. Apesar do uso de RTOS tornar o software de alto nível portável, ainda é necessário um longo período de maturação e testes de drivers de periféricos, mesmo que estes tenham sido fornecidos pelos próprios fabricantes ou venham em ROM no micro utilizado. Conclusão O melhor microcontrolador é aquele que permite um desenvolvimento rápido de uma solução eletrônica segura conforme os requisitos de projeto, desde que bem definidos, que seja fácil de encontrar para venda a um preço relativamente baixo (depende do volume de compra) e com tempo de entrega baixo no mercado internacional e que a equipe de desenvolvimento tenha intimidade e demonstre traquejo. É fundamental que disponha de diversas ferramentas para trabalhar com esse. E, claro, que resolva o problema proposto. É importante também que esse item tenha longo prazo de fornecimento, para que o produto tenha uma longa vida no mercado e possa se pensar em um plano de manutenção e assistência técnica adequado. No entanto, tecnologias que demandam longo período de aprendizado encarecem muito o projeto e podem acabar se tornando impeditivas.

19

No começo do projeto, é interessante escolher um microcontrolador com um pouco mais de recursos do que se pretende utilizar, principalmente memória SRAM e memória Flash. Isso permite que o desenvolvedor de firmware não passe sufoco e tenha uma margem para trabalhar. Ao terminar o projeto, pode-se enxugar os recursos do primeiro microcontrolador escolhido e, assim, escolher o mais barato possível para o projeto eletrônico.


Toda a escolha de micro, no entanto, não deve ser definitiva. Ao se perceber que não será possível cumprir o planejado, deve-se replanejar todo o projeto, avaliando a possibilidade de redução de escopo, replanejamento de tempo ou de disponibilidade de recursos para trabalhar no projeto eletrônico. Isso é percebido de forma mais rápida se houver um acompanhamento rígido da execução do projeto. Grandes mudanças podem ser necessárias, no entanto. Nesse momento, é fundamental revisar e agir. Claro que se antecipar a problemas ainda nas fases iniciais de projeto é menos custoso do que nas fases finais. O custo de um projeto, em todos os aspectos cresce exponencialmente conforme o projeto desenvolve-se. Deixo aqui um agradecimento especial a todas as discussões com meus colegas de profissão, especialmente as do fórum sis embarcados e do pessoal do editorial do Embarcados. E você? Quais os critérios que considera primordial na escolha de um microcontrolador? Mande e-mail para a revista do THT e deixe sua opinião. Esse texto foi adaptado pelo autor. Ele foi originalmente publicado no site Embarcados. Para acessar o artigo original, acesse : https://www.embarcados.com.br/

20

Autor: Thiago Lima


Depoimentos O que podemos aprender com hackathons Palavras Chaves: hackathon , marketing pessoal, imersão, desafio pessoal, network , trabalho em equipe , comunidade , coletivo , Evandro Peixoto

Hackathons tem sido a mais nova moda entre os jovens de tecnologia, que passam horas focado em desafios lançado pelos mais diversos tipos de empresas. Afinal o que realmente podemos aprender durante essa maratona de programação e como empresas entendem este novo conceito Hackathons são maratonas em que equipes formadas na grande maioria por jovens programadores, designs e outros profissionais são desafiadas a entregar soluções em um curto espaço de tempo, existem vários modelos, porém os mais conhecidos são onde jovens ficam confinados em um local e passam horas focados em resolver algum dos desafios que são propostos. Eu já participei dessas maratonas e ganhei um com minha filha Manoela de 9 anos que inclusive já foi juíza, mas isso é uma história para a próxima vez. Na sua grande maioria são empresas que buscam por novos modelos e até mesmo quebra de paradigmas. “Afinal o que leva uma pessoa a sair de casa, passar mais de 30 horas acordado, entregar seu intelecto a uma solução, trabalhar com pessoas que nunca viu na vida?”

Eu nunca fui pelo dinheiro, e acredito que a maioria também não foque nisso, mas sempre me dediquei em fazer o meu melhor. Eu percebi que o evento tem uma capacidade gigantesca de geração de network e marketing pessoal, você terá acesso a pessoas que normalmente você não tem por vias normais de processo seletivo. É muito comum o presidente da empresa, diretor, gerentes e outros profissionais estarem presentes e ali está a oportunidade de conhecê-los sem falar nos demais competidores e mentores que ficarão por toda a maratona e você terá tempo para trocar cartões.

21

“ Se você não tem um cartão pessoal, é um boa dica faça um.”

Meu primeiro hackathon foi na IBM, eu me inscrevi, fui selecionado acordei cedo e falei para minha esposa “Já volto”, demorei mais de 30 horas. Fui ficando pelo ambiente, pelo grupo, pela causa, pelo desafio e quando percebi já era madrugada. Trabalhamos em uma solução com o Watson (Inteligência Cognitiva) que conectava as pessoas através do que elas descreviam em seus sonhos chamada DreamShare. Normalmente ninguém tem somente uma função na equipe, mas a minha principal era modelar o banco de dados (DBA).


Arquivo Pessoal Dream Share Hackathon IBM [1] Depois trabalhei em uma solução gameficada para economia de água na Ambev que poderia ter um hardware para efetuar o desligamento do registro caso o usuário não tomasse uma decisão e continuei participando de tantos outros como C&A, Forum de Eventos, Drone, John Deere, etc.

Arquivo Pessoal. Hackathon Ambev Solução ECOA[2] Percebi que a cada novo evento, fortalecia laços com conhecidos e criava outros em um ano foram quase uma dezena de hackathons sendo que alguns deles acabei sendo mentor, A rede que construí neste período com certeza eu levaria uma década no mínimo para ter o mesmo resultado. O fato da minha filha ter ganho uma competição também foi um ponto importante pois ela acabou sendo convidada para contar sua história em um dos maiores eventos de tecnologia a Campus Party, depois juíza na IBM e palestras na Microsoft, Arduino Day, Scratch Day, Maker Fest e a mais recente Innovation Show onde ela falou como serão os eventos no futuro sendo que minha última palestra foi sobre wereables (vestíveis inteligentes) mas tudo foi através do networking que criei.

22

A grande maioria dos eventos que fomos são conexões que eu fiz em algum hackathon, de pessoas que me ligaram a outras pessoas. São troca de informações, experiências e aprendizado constante Vários profissionais que conheço foram selecionados neste tipo de evento, algumas empresas perceberam que poderiam avaliar vários pontos em um único processo, quer dizer,


comportamento em equipe, trabalho sobre pressão, competência técnica e pessoal dentro outro Você reúne quase 300 pessoas em um local e tem a chance como empresa de realmente ver como cada indivíduo se comporta.

Arquivo Pessoal: Palestra Wereables Senai SP É lógico que nem tudo são flores, às vezes você trabalha em projetos que não acredita, mas isso também acontecerá no seu dia a dia. As vezes existem soluções que você acredita mas descobre que na segunda-feira a vida seguiu o rumo e a equipe já não está tão disponível mas viver o coletivo traz uma satisfação enorme sem falar no sentimento de superação . As conexões criadas me permitem agora frequentar eventos, meetups, feiras e convenções coisas que eu não conseguia enxergar a real importância. Se você nunca participou de um hackathon faça um esforço e participe, comece a costurar sua rede de relacionamento, não se preocupe se você não sabe programar pois o evento precisa de pessoas que pensem fora da caixa e tenho certeza que você pode fazer a diferença, basta acreditar em você. Quem sabe a gente não se encontra em um próximo. Até breve !!! Referências [1] Peixoto, Evandro https://www.linkedin.com/pulse/o-que-aprendi-em-um-hackathonangelhack-2016-evandro-peixoto-da-silva [2016] [2]Peixoto, Evandro https://www.linkedin.com/pulse/tamagoshi-verde-gota-que-fazdiferen%C3%A7a-evandro-peixoto-da-silva [2016] Autor: Evandro Peixoto http://www.evandropeixoto.com.br

23

Serial empreendedor, palestrante, desenvolvedor , dba, empreteco curte inovação, hackathons , arduino e qualquer evento que possa aprender, ensinar e aprimorar conhecimento. Possui mais de 20 anos de experiência em projetos web, portais, extranets, e-commerce, banco de dados, SAP, ferramentas de conteúdo, SEO e campanhas digitais. Formado em T.I. com MBA em Marketing Digital. Fatuamente divide seu tempo em sua startup 99delivery focada no gerenciamento de pequenas empresas no certo de entregas, consultoria e palestras;

Já escreveu para portais como Mundo do Marketing, Embarcados , Metropóles e 4Daddy.


Depoimentos Semeando possibilidades Estamos convivendo em um mundo cheio de tecnologias emergentes, vivenciamos eventos fantásticos com pessoa apaixonadas por aquilo que fazem, e isso é ótimo! Mas... Existe uma outra realidade, muitas crianças que nasceram com a curiosidade acentuada estão com uma visão limitada sobre suas possibilidades e inevitavelmente vão matar seus próprios sonhos. E como ajudar essas crianças a terem os sonhos realizados e viverem nesse mesmo mundo fantástico? A resposta para essa pergunta é simples, basta plantar possibilidades. Quando o conhecimento é compartilhado com aqueles que estão longe é que a magia acontece, e você? O que tem feito para que o mundo seja um lugar melhor? Aqui vai algumas dicas. • • •

Realizar oficinas em escolas públicas Palestrar em eventos gratuitos Criar vídeos no Youtube com conteúdo relevante

Seja a mudança que você quer ver no mundo! Links: http://www.teteusbionic.com.br http://www.cybereduca.com.br

Autor: Michael J. Moraes

24

E-mail para contato: michaeljmoraes@gmail.com


Projetos Já pensou em conversar com seu carro? O que acha da ideai? Palavras Chaves: Kmart IOT, Bluemix, Hackthon, Assistente Virtual, Inteligência Artificial, Watson, Cognitivo, NannyDrive, Nissan, IBM, Bluhack Imagine se fosse possível conversar com seu carro, pedir informações e “ele” te responder podendo lhe ajudar nas questões cotidianas. Seria uma tremenda mão na roda! Ai que entra o NannyDrive… O nome NannyDrive (ND) remete a um mordomo ou babá que identifique as demandas que venham a surgir do próprio veículo, trajeto ou necessidades pessoais.

A ideia A ND surgiu da ideia de criar um aplicativo que pudesse nos auxiliar nas mais diversas tarefas usando informações do próprio carro. O embrião deste APP nasceu durante o desafio “Smart IOT com Nissan Kicks” proposto pela IBM e NISSAN no BlueHack 2017 Rio de Janeiro. O desafio Criar um modo de se comunicar com o veículo usando interação cognitiva de modo seguro que garanta a prevenção contra fraudes, interceptações e/ou ataques indesejados.

25

As funcionalidades a. Responder o clima de um determinado lugar. b. Informar qual a localidade no momento. c. Informar o tempo estimado de viagem até algum local partindo de um ponto especificado ou da localização atual. d. Alertar o próximo compromisso de acordo com sua agenda. e. Informar sobre as condições gerais e possíveis avarias no veículo. f. Realizar chamadas de voz e vídeo. g. Lembrete sobre esquecimento de itens no porta malas ou outras portas e crianças no banco traseiro. h. Indicador de possível fadiga por parte do condutor.


i.

Alertar sobre velocidade nas vias, utilização de faróis entre outros.

As funcionalidades descritas até a letra “d” foram implementadas parcialmente durante o desafio, enquanto as outras estavam no brainstorm do projeto para implementações futuras. Pensando na segurança do motorista e possíveis ocupantes do veículo, toda interação com a ND é feita somente por comandos de voz. Inteligência artificial Por trás disso tudo usamos diversas tecnologias para desenvolver a ND. • • • •

Node-Red Watson 2 Accuweather3 Central de comunicação do veículo

O Sistema Operacional escolhido como base do App foi o Android pelo maior facilidade de uso no âmbito mundial. O time ✓ ✓ ✓ ✓ ✓

Andressa Siqueira Brunna Paldês Danillo Ribeiro Eduardo Alonso Menezes Rachel Reuters

LINKS Hackdash

-

https://hackdash.org/projects/592ac5ca4545fa01a8db1805 Autores: Andressa Siqueira, Eduardo Menezes e Bruna Paldes E-mail para contato: siq.andressa@gmail.com, eduardo@alonsomenezes.com,

brunnapaldes@gmail.com

26

2Presentes na plataforma Bluemix. 3Presentes na plataforma Bluemix.


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.