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
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.
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.
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.
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.
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.
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 AND, OR 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.
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.
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/