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/
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.
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.
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.
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.
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 umagrade Visual -esque Farmville, permitindo que você arraste e solte o tipo de plantas que você quer em seu jardim digital.Gênesis tem33 culturas comunscarregados 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.
O que é surpreendente é que o Gênesis é um projeto de códigototalmenteaberto.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.
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 passadasugere 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 doNew Times SLOsugere 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.
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.