Descrição

Blog desenvolvido durante a disciplina de Fundamentos de Engenharia de Computação na UFS, ministrada pelo professor Renê Pereira de Gusmão. É alimentado pelos alunos Denisson Silva, Gustavo Bezerra, João Marcos, Leonam Matheus e Yann Trabuco

quinta-feira, 13 de outubro de 2016

Algumas das melhores Single Board Computers de 2016




 NOTA/DISCLAIMER: esta é uma tradução de parte da publicação de Cabe Atweel no EE Times, econtrado livremente na internet aqui. Este post não possui fins lucrativos, somente didáticos. O post não será monetizado. Para melhor legibilidade da tradução e completude dos fins do post, algumas informações serão omitidas, porém nenhuma será adicionada. Todos os direitos são reservados ao autor.

Desde de que as single board computers se tornaram populares, a cada ano mais e melhores SBC’s são lançadas, comparas com o ano anterior; e 2015 não ficou pra trás nessa corrida. Agora estamos em 2016, e aqui está a nossa seleção das melhores single-board computers. Observação: esta liste não pretende avaliar profundamente cada placa. Vamos somente fazer um pequeno resumo de cada uma, informá-lo onde achá-las e seu preço aproximado. Eu explicarei a minha decisão e quais fatores à influenciaram.

BeagleBone Green

a beaglebonegreen é um sucessor de 6 camadas da beagleBoneBlack. Com um preço de $39, A placa é construida ao redor de um processador AM335x 1GHz ARM Cortex-A8 Vem com 512MB de DDR3 RAM e 4GB memória flash eMMC. Infelizmente, não tem slot para Micro SD.

a BBG tem duas entradas e conta ainda com duas placas para periféricos.

O maior problema com a BBG é o fato de que, ao contrário de outras SBCs, ela não vem cuom uma saída de de display. Para ter acesso, você terá que comprar um cabo HDMI e conectar na placa.



 (Source and image: http://beagleboard.org/green)

Raspberry Pi 2

  O raspbarry Pi 2é equipado com processador ARM Cortex-A7 quadcore de 900MHz e 1 GB de RAM. Hoje é possivel encontrá-la por $35. Não possui memória flash embutuda, porém tem slot para Micro SD, então é bastante fácil adicionar memória a placa.


Se você decidir utilizar a raspbarry pi 2, você não estará sozinho; A comunidade desenvolvedores é ampla na plataforma.





(Source and image: https://www.raspberrypi.org/blog/raspberry-pi-2-on-sale/

 Banana Pi

Com um processador ARM A83T Cortex-A7 de 8 cores e 2GB de DDR3 RAM, a placa é pequena porém poderosa.

Possui Wi-Fi, Bluetooth, interface de câmera, 10/100/1000 Ethernet, entrada e saída de áudio, portas USB, slot para MicroSD, porta SATA, pinos 40 GPIO e porta HDMI. A Banana Pi roda a mesma gama de sistemas operacionais de outras SBCs, além de rodar Raspbian. Para usuários que já são familiarizados com com a Paspbarry Pi e querem conhecer uma nova placa com interface parecida, está é uma boa opção. Disponível na Amazon por $100 e na Tiny One Systems por $88. 






(Source and image: http://www.banana-pi.com/eacp_view.asp?id=87

quinta-feira, 6 de outubro de 2016

Lógica Booleana, Operadores Básicos e Tabela-Verdade

              Saindo um pouco do nosso foco, as single boards computers, vamos falar um pouco sobre lógica booleana, operadores básicos e tabela-verdade. Como eu disse, estamos nos afastando só um pouquinho do nosso foco, pois os estudos de Boole são fundamentais para que os microcontroladores e microprocessadores "decidam" o que fazer diante de determinadas demandas.

Lógica booleana
                                             
Nós, humanos, utilizamos o sistema decimal, que possui dez dígitos (0 ao 9). Por que escolhemos esse sistema numérico? Simples, quantos dedos temos somando ambas as mãos? Dez! Coincidência? Não, conveniência! Cada um usa o sistema numérico que mais lhe convêm.


Resultado de imagem para George boole
George Boole foi um filósofo britânico, criador da álgebra booliana, fundamental para o desenvolvimento da computação moderna.


             Mas, você nunca viu um processador com dez dedos, viu?! Os computadores de uma forma geral, e qualquer outra máquina controlada por um processador, trabalham com sistema binário, composto apenas pelos números um e zero. E foram estes dois números que deram origem à lógica booleana.

Como vimos em um dos nossos primeiros posts, o sistema de numeração binária é composto apenas por uns e zeros. Os computadores, na verdade, trabalham apenas com esse sistema de numeração.

Se você pudesse abrir um processador e ver como ele trabalha, seriam zeros e uns para todos os lado, uma verdadeira "Matrix" binária. Assim como bem e mal, claro e escuro, fácil e difícil, certo e errado são opostos, com 0 e 1 não seria diferente.

Na lógica Booleana, o zero representa falso, enquanto o um representa verdadeiro. Para trabalhar com esses valores e torná-los algo lógico, que possa ser aplicado, são necessárias as chamados operadores lógicos.


Operadores lógicos

         As operações lógicas são ensinadas em vários cursos de tecnologia de diferentes formas, por exemplo, em cursos de eletrônica é ensinado portas lógicas, já em programação aprendemos os operadores lógicos. Mas no fundo é a mesma coisa e se você entender a ideia das operações lógicas você pode usar esse conhecimento em qualquer área da tecnologia.

As operações lógicas trabalham sobre valores booleanos, tanto os valores de entrada como o de saída são desse tipo. Os operadores lógicos são: E, OU, NÃO, NÃO-E, NÃO-OU, OU-EXCLUSIVO E NÃO-OU-EXCLUSIVO. Abaixo uma explicação de cada um.



      Resultado de imagem para o que é logica booleana

  • O Operador “E” ou “AND” resulta em um valor VERDADEIRO se os dois valores de entrada da operação forem VERDADEIROs, caso contrário o resultado é FALSO.
  • O Operador “OU” ou “OR” resulta em um valor VERDADEIRO se ao menos UM dos dois valores de entrada da operação for VERDADEIRO, caso contrário o resultado é FALSO.
  • O Operador “NÃO” ou “NOT” é o único operador que recebe como entrada apenas um valor, e sua função é simplesmente inverter os valores. Ou seja, se o valor de entrada for VERDADEIRO, o resultado será FALSO e se o valor de entrada for FALSO, o resultado será VERDADEIRO.
  • O Operador “NÃO-E” ou “NAND” é o contrário do operador E (AND), ou seja, resulta em VERDADEIRO, se ao menos um dos dois valores for FALSO, na verdade este é o operador E (AND) seguido do operador NÃO (NOT).
  • O Operador “NÃO-OU” ou “NOR” é o contrário do operador OU (OR), ou seja, resulta em VERDADEIRO, se os dois valores forem FALSO, na verdade este é o operador OU (OR) seguido do operador NÃO (NOT).
  • O Operador “OU-EXCLUSIVO” ou “XOR” é uma variação interessante do operador OU (OR), ele resulta em VERDADEIRO se apenas um dos valores de entrada for VERDADEIRO, ou seja, apenas se os valores de entrada forem DIFERENTES. 
  • O Operador “NÃO-OU-EXCLUSIVO” ou “XNOR” é o contrário do operador OU-EXCLUSIVO (XOR), ou seja, resulta VERDADEIRO se os valores de entrada forem IGUAIS. 
Operadores lógicos nas linguagens de programação

               
          Cada linguagem de programação tem uma forma de representar os operadores lógicos. A simbologia mais encontrada são ANDOR e NOT em linguagens como Pascal, Visual Basic e SQL, e &&|| e ! em linguagens como: Java, C/C++ e C#.

Algumas linguagens oferecem operadores lógicos para o nível de bit (também chamado de operadores bitwise). Ou seja, podemos fazer operações lógicas com os bits de dois números. Em java, por exemplo esses operadores são & e |. 

Tabela-Verdade

          A tabela-verdade é usada para determinar o valor lógico de uma proposição composta, sendo os valores das proposições simples já são conhecidos, pois o valor lógico da proposição composta depende do valor lógico da proposição simples.

Resultado de imagem para tabela verdade

       Conhecer a lógica booleana, os operadores lógicos e a tabela-verdade é muito importante para qualquer área da tecnologia que você for trabalhar. Em programação por exemplo, utilizamos essas ferramentas praticamente o tempo todo, principalmente para controle de fluxo de execução e tomadas de decisão. Então, estude e revise com frequência esses tópicos.

             
Referências:
www.techmundo.com.br
www.dicasdeprogramacao.com.br
www.wikipedia.com
www.ufes.br


terça-feira, 4 de outubro de 2016

Segurança Doméstica

Segurança Doméstica


Continuando a nossa jornada através das single board computers, nós do blog-sbc percebemos que um dos tipos de projetos que mais se faz é justamente sobre segurança doméstica. Com a facilidade que uma sbc oferece, pessoas com pouco conhecimento na área de computação podem colocar em prática projetos que tenham em mente. 
Mostraremos alguns pequeno projetos utilizando o Raspberry Pi e o Arduino, ambos com as maiores comunidades ativas. O intuito deste post é fazer com que o leitor perceba que não é difícil implementar um sistema de segurança na sua residência, e que com um pouco de pesquisa, qualquer pessoas deve ser capaz de conseguir.

Este pequeno vídeo que vemos abaixo esta em inglês, como a maioria do conteúdo disponível, mas dispensa tradução para entender. O projetista abre a porta e mostra que se em 15 segundos a senha não for digitada, o alarme dispara. Assim que a senha é inserida, o alarme para. Vamos assistir o vídeo?


Agora perceba que o projeto acima esta em apenas uma maquete, mas isso pode ser facilmente transportado para a vida real. O que pode ser feito também, é mudar o layout do dispositivo, adicionar funções, regular o tempo, entre outras coisas que cada projetista pode imaginar. Reforçando: seu potencial com uma single board computer depende exclusivamente da sua imaginação.

Nesse outro vídeo, nós vemos uma tranca de porta automatizada com um Raspberry Pi. O projetista tem um chip implantado na sua mão, e este é lido pelo sistema e destranca a porta. A opção de usar a chave é mantida, e em casos de emergência, o sistema pode ser levantado para o usuário utilizar a porta normalmente. Esse projeto vem sendo usado com sistema de alarme na casa do projetista durante mais de meio ano, e funciona perfeitamente. Vamos ver o vídeo para que você tire suas próprias conclusões.



Por último, esse outro vídeo utiliza o Arduino como sistema de segurança. Existe um painel que contém uma tela, e um teclado. Ao acionar um sensor de movimento ou separar dois sensores magnéticos o alarme é acionado, e somente para após a senha correta ser inserida. Nesse vídeo é mostrado também que dá pra mudar a senha que desarma o alarme. Vamos dar uma conferida:





O projetista disponibilizou o processo de montagem e os códigos, estes estarão nas referências deste post! Portanto, está aí um prato cheio para os hobbistas, ou preocupados com os adeptos da comunidade DIY (assunto para as próximas postagens).

Referências:
1. Youtube - www.youtube.com
2. Instruções para construir sistema 3 - Disponível em: http://www.instructables.com/id/Arduino-Password-Security-System-With-Magnetic-Doo/


domingo, 25 de setembro de 2016

O melhor microcontrolador para seu projeto

O melhor microcontrolador para seu projeto



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

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.

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.

Preços

É 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 sejam construídos 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.

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 voilume 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 o mesmo. 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 adequados.

No começo do projeto, é interessante escolher um microcontrolador com um pouco mais de recursos 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 se desenvolve.



Bibliografia:

quinta-feira, 22 de setembro de 2016

Linguagem de Programação

Linguagem de Programação


Conceito 


Podemos imaginar o computador como uma super calculadora, capaz de fazer cálculos muito mais rápido que nós, mas para isso devemos dizer para o computador o que deve ser calculado e como deve ser calculado. A função das linguagens de programação é exatamente essa, ou seja, servir de um meio de comunicação entre computadores e humanos. 



Tipos

Baixo nível:

As linguagens de baixo nível são interpretadas diretamente pelo computador, tendo um resultado rápido, porém é muito difícil e incômodo se trabalhar com elas. Exemplos de linguagens de baixo nível são a linguagem binária e a linguagem Assembly.


Alto nível:

São mais fáceis de se trabalhar e de entender, as ações são representadas por palavras de ordem (exemplo faça, imprima, etc) geralmente em inglês, foram feitos assim para facilitar a memorização e a lógica. Elas não são interpretadas diretamente pelo computador, sendo necessário traduzi-las para linguagem binária utilizando-se de um programa chamado compilador.

Cada linguagem de programação é diferente da outra, contendo palavras-chave próprias. Exemplos de linguagens de alto nível são C++, Java, C#, Delphi (Pascal), PHP, Visual Basic, etc.

 

Importância:  

Ensinar programação esta sendo apontado como uma matéria importante para o futuro dos alunos, mas por que especialistas e empresários de todo o mundo pensam e divulgam isso? Computação está cada vez mais ao nosso redor, está em nossas casas, trabalhos, transportes, lazer e por que não na nossa educação. No começo do uso da computação na educação foi feito de forma equivocada que somente reproduzia o modelo tradicional de educação, ou seja, educação expositiva não interativa em que o aluno não participava e portanto não tinha nada a acrescentar a mesma, porém a o ensino da programação ao aluno tem sido apontado como um alterador dessa realidade, não só porque o aluno terá que obrigatoriamente interagir com a linguagem de programação, mas também porque a linguagem de programação será uma alteradora de realidade do mesmo, sendo possível aplicável ao mundo do aluno e estimular a sua criatividade.

 

Bibliografia: 

http://www.corais.org

http://www.infoescola.com

 

domingo, 18 de setembro de 2016

As Single Boards Computers na Agricultura de Precisão

    A  Agricultura de Precisão é um tema abrangente, sistêmico e multidisciplinar. Não se limita a algumas culturas nem a algumas regiões. Trata-se de um sistema de manejo integrado de informações e tecnologias, fundamentado nos conceitos de que as variabilidades de espaço e tempo influenciam nos rendimentos dos cultivos. A agricultura de precisão visa o gerenciamento mais detalhado do sistema de produção agrícola como um todo, não somente das aplicações de insumos ou de mapeamentos diversos, mas de todo os processos envolvidos na produção. Esse conjunto de ferramentas para a agricultura pode fazer uso do GNSS (Global Navigation Satelite System), do SIG (Sistema de Informações Geográficas), de instrumentos e de sensores para medidas ou detecção de parâmetros ou de alvos de interesse no agroecossistema (solo, planta, insetos e doenças), de geoestatística e da mecatrônica.



Resultado de imagem para o que é agricultura de precisão


       Em escala reduzida, as Single Boards Computers nos possibilita produzir alimentos com a mesma eficiência vista no agronegócio. E o melhor exemplo disso é a fantástica FARM BOT.


genesis farmbot


O FarmBot Gênesis traz  a agricultura de precisão ao seu quintal


    Suas ambições pode ser menor do que as engenhocas que pode remotamente milhas de plantas de sementes, mas Gênesis parece incrivelmente impressionante. Desenvolvido por uma equipe de três da Califórnia, o kit é uma máquina autônoma que está instalada no topo e em torno de um pequeno jardim-em seu quintal, em um telhado, ou dentro de uma estufa ou laboratório. Uma vez construído, Gênesis realiza quase todo o processo de jardinagem antes da colheita, incluindo o plantio das sementes, regando cada planta precisa e em um cronograma definido, condições de monitoramento, e pulverizando ervas daninhas traquinas. Confira como funciona


         Como mostra o reboque, Gênesis desliza ao longo de trilhos instalados ao lado do campo para o jardim, com o braço principal também mudando esquerda e direita e aparecendo para baixo no solo para executar suas várias funções. Uma vez dado instruções, FarmBot pode ser deixado aos seus próprios dispositivos para seguir o plantio e horários de rega que você escolheu até que os legumes estão prontos para a colheita.
     Embora seja um aparelho muito high-tech, a interface é muito simples. O FarmBot conectado à Internet é controlado através de uma aplicação web que usa uma grade Visual -esque Farmville, permitindo que você arraste e solte o tipo de plantas que você quer em seu jardim digital. Gênesis tem 33 culturas comuns carregados em seu software até agora (alcachofras, acelga, batatas, ervilhas, etc) e ele automaticamente espaços das plantas variam de forma adequada, tendo as conjecturas fora de ter um jardim diversificado. E o aplicativo pode ser acessado a partir de um computador, telefone ou tablet, assim você pode ajustar seu plano de qualquer lugar e enviá-lo para o seu Farm Bot.
-Screen farmbot
farmbot-rendering
     O que é surpreendente é que o Gênesis é um  projeto de código totalmente aberto. Isso significa que os criadores liberaram o código fonte para o software e os planos para todas as peças de hardware, então programadores e engenheiros podem facilmente modificar Gênesis e construir suas próprias peças. Muitos componentes podem ser feitas usando impressoras 3D, e o software pode ser ajustado para adicionar recursos ou melhorar os implementados pela empresa.
    Gênesis é a primeira versão comercial deste ideia jardinagem autônoma, permitindo o plantio de espaços até 2,9 metros x 1,4 metros, com uma altura máxima de plantas de 0,5 metros. É um tudo-em-um kit com quase tudo que você precisa para começar, incluindo todo o metal e peças impressas 3D bicos, motores, correias, polias e um Raspberry Pi3, e muito mais. Você vai precisar para construir a sua própria orta seguindo as especificações, bem como fornecer as fontes de água, eletricidade e internet. Programador ou engenharia know-how não exigido: o kit vem com um guia passo-a-passo. Se você pode obter através de uma configuração de mobiliário IKEA, você deve ser capaz de utilizar Gênesis. Mas se você é um techie, você pode fazer muito mais com ele se quiser.
fambot-herói
      O kit Gênesis começará pré-encomendas nesta sexta-feira, 1º de julho de embora não esteja claro quando FarmBot começará a ser vendido, ou exatamente quanto o kit vai custar. Um post em seu site na semana passada sugere que o all-in a partir despesa para Gênesis será cerca de US $ 3.500, mas que inclui coisas como transporte, infra-estrutura, solo e outras despesas de instalação. Enquanto isso, um relatório do New Times SLO sugere que o próprio kit será vendido a cerca de US $ 2.900, mas o criador Rory Aronson diz que eles esperam, eventualmente, obter o custo próximo de US $ 1.000 para baixo da linha.
       Pode ser um buy-in caro para agora, mas o kit Gênesis é para iniciantes que querem a coisa toda pronta para instalar e não se importam em cavalgar na onda inicial de tecnologia não testada. Dada a abordagem de fonte aberta, não se surpreenda se você pode, eventualmente, comprar diferentes tipos de kits e complementá-los com suas próprias peças, expandir o kit de núcleo com seu próprio hardware extra, ou até mesmo construir seu próprio FarmBot a partir do zero.
Referências:
      http://modernfarmer.com/2016/06/farmbot-genesis/

Obs: A tradução apresenta pequenos problemas de concordância que se deram devido a problemas durante o upload dos arquivos para o blog. 
           Assim que possível o texto será revisado.

quinta-feira, 8 de setembro de 2016

Intel Curie

Apresentado na CES 2015, o novo módulo Intel Curie promete revolucionar o mercado de IoT. 



Minúsculo, ele é capaz de processar informação com pouquíssima energia, o que o torna bastante atrativo para o mercado de wearables. Aliás, esse foi uma das grandes motivações para o desenvolvimento. Após perder espaço no mercado dos smartsphones, a intel está investindo forte no mercado de IoT, o que culminou no desenvolvimento do módulo.



Embutido na peça, existe um Intel Quark 32 bits, giroscópio, acelerômetro e bluetooth. Isso tudo em menos de 4 cm². Já foi anunciado que o Arduino 101 possuirá a peça.

A Intel Curie promete revolucionar o mercade de single board computers e IoT.

Bibliografia:
http://www.intel.com/content/www/us/en/wearables/wearable-soc.html
http://www.intel.com/content/www/us/en/wearables/intel-curie-fact-sheet.html
https://tecnoblog.net/172417/intel-curie-anuncio/