Este artigo do IEEE Spectrum trata de Beamforming, preconizado como o conceito por trás da entrega de dados de forma mais eficiente para os usuários móveis, sendo uma das tecnologias de base para as redes de próxima geração 5G.
O artigo trás um vídeo que sumariza esta tecnologia, o qual compartilhamos aqui:
Para os que quiserem ler, segue abaixo o link para o texto:
5G Bytes: Beamforming Explained: Future 5G networks will transmit data through targeted beams and advanced signal processing that could speed up data rates and boost bandwidth
[Poder das Pontas - fenômeno eletromagnético consistindo na capacidade das pontas em aglutinar cargas elétricas, aumentando o campo elétrico no entorno]. O Poder das Pontas é o blog aglutinador dos conhecimentos em Engenharia Elétrica.
sábado, 15 de julho de 2017
sexta-feira, 14 de julho de 2017
Phreaking Out Ma Bell
Curiosa história da IEEE Spectrum sobre hack do sistema telefônico, antes do advento da Internet. Boa leitura para se conhecer a respeito da sinalização telefônica.
Phreaking Out Ma Bell: How a buccaneering young engineer built the little blue box that broke into the biggest network in the world
Phreaking Out Ma Bell: How a buccaneering young engineer built the little blue box that broke into the biggest network in the world
sábado, 8 de julho de 2017
Desenvolvendo para a placa STM32F4 (Uso do botão) - Parte IV
Até o momento, nos posts anteriores, os pinos da GPIO foram utilizados apenas como saídas. Para ilustrar o uso da GPIO como entrada, será usado o botão do tipo pushbutton, que representa a forma mais simples de adentrar uma informação, pois será monitorado apenas dois estados: pressionado ou não. Para tanto, a placa STM32F4Discovery disponibiliza um botão para uso: o botão B1 (User), que pode ser acessado através da porta A, pino 0.
Face da placa onde pode ser observado o botão azul (User), próximo ao botão preto (Reset) |
Note que há presente na placa um segundo botão, de cor
preta. Trata-se do reset, utilizado
apenas para reinicializar a execução do código residente em flash.
Do ponto de vista da programação, a configuração
da porta/ pino é similar a de um pino de saída, respeitadas as devidas peculiaridades,
como será explicado a seguir, a partir do código fonte proposto, exibido
abaixo. Neste, a aplicação será a monitoração do botão de usuário, de forma que
se estiver pressionado, ele acenderá todos os LEDs da placa. Caso contrário, permanecerão
desligados.
Na linha 36, é configurado, como de costume, o clock da
porta A, habilitando-a para fins do propósito de uso do botão. Segue que na
linha 39 é indicado o pino 0 (conforme mencionado previamente) e na linha 41 é habilitado
obviamente o modo de entrada.
Especial atenção deve ser dada à configuração presente na
linha 45. Sendo o botão da placa ligado à tensão de alimentação, trata-se assim
de um dispositivo do tipo “pull-up”. Desta forma, do lado do software, o
pino deve ser declarado como uma entrada do tipo “pull-down”, exatamente ao
contrário do tipo de ligação física do dispositivo, como mostrado na linha 45. Deve-se
por isso tomar cuidado ao se usar botões externos conectados aos pinos, uma vez
que estes podem ser conectados à placa tanto em modo pull-up como pull-down,
devendo-se fazer a devida correspondência reversa no respectivo código.
Por fim, conclui-se a configuração desta porta de entrada
nas linhas 47, onde é definida a velocidade (lembrando que uma taxa mais baixa
implicará em maior economia de energia), sendo que na linha 49 a porta é
inicializada, como de praxe.
A fim de monitorar o botão para verificar seu
estado, dentro do propósito do programa, é usada a função GPIO_ReadInputDataBit embutida em uma chamada if,
concluindo assim as modificações importantes do código.
O resultado pode ser visto no vídeo abaixo, onde pode ser percebido a colocação de um botão externo conectado ao pino 0 da porta A (mesmo do botão User), funcionando em paralelo.
Com relação a este botão externo, deve-se atentar para que ele seja do tipo pull-up, ou seja, alimentado e não aterrado (observar que o botão é ligado ao pino de alimentação de 3 V disponibilizado pela placa). Além disso, notar o resistor colocado em série com este botão, a fim de prevenir uma corrente elevada que possa danificar a placa.O resultado pode ser visto no vídeo abaixo, onde pode ser percebido a colocação de um botão externo conectado ao pino 0 da porta A (mesmo do botão User), funcionando em paralelo.
Com este post, encerraremos a série relacionada à manipulação do periférico mais elementar disponibilizado pela placa, que são as portas de GPIO. Em posts futuros, abordaremos outros periféricos, a começar pela exploração mais aprofundada dos Timers, já abordado de forma simplificada em post anterior.
Assinar:
Postagens (Atom)