segunda-feira, 19 de março de 2018

sábado, 3 de março de 2018

Sistemas críticos - Redundância

Pessoal que tem medo que seu produto tenha mau funcionamento ou parada! Que pode prejudicar o usuário final. Você precisa avaliar o quão crítica é uma parada do seu sistema. A principal maneira de trantar um Sitema Crítico é com redundância. Redundância a grosso modo: É mais de um componente fazendo exatamente a mesma coisa, se um falhar o outro estará funcionando, ou são testados dois componentes e feita a escolha pelo melhor resultado de um deles. Essa redundância pode ser de hardware ou software.
De hardware para nós seria a leitura de mais de um sensor, o ideal seriam sensores diferentes, de materiais e/ou fabricantes diferentes. Já na redundância de software seria mais de um sistema, se possível feitos por equipes/pessoas diferentes mas que chegasse ao mesmo resultado.
Isso foi bem utilizado na ida do homem à lua! Imagina um sistema falhar!!! hehehe

sexta-feira, 19 de janeiro de 2018

Só é possível armazenar números nas variáveis

Você sabia que as variáveis só armazenam numeros? Sim e ainda só numeros inteiros (não fracionados) e não negativos!
Pois é, até as variáveis com tipos String ou char, que aparentemente guardam letra e texto.
Isso tem uma razão bem simples. Os dados das variáveis são armazenados na memória, que é composto por bytes que é um conjunto de bits. Cada byte representa um numero decimal de 0 a 255. Ou seja cada byte pode conter um numero inteiro e não negativo.
E o que é uma string? Uma string é apenas um conjunto de bytes.
E as letras? É o seguinte, por convenção cada letra e simbolo tem uma representação decimal, por exemplo a letra A maiusculo é representada pelo número 65 e o a minuzculo por 97.
A palavra AMOR realmente é isso: 65,77,79,82

Você pode ver mais de como um byte é armazenado na memória nesse link
http://alberiolima.blogspot.com/2018/01/como-os-dados-sao-armazenados-na-memoria.html

Como os dados são armazenados na memória

Antes vamos ao conceito de bit e byte
bit é menor unidade computacional, ela representa um estado de energização, com energia, ou sem energia! O que podemos padronizar com 1 e 0. Isso é algo que só permite dois estados, ou está 0 ou está 1.
O byte é o conjunto de 8 bits, isso é uma padronização, um byte poderia ter outro tamanho, mas esse foi o valor padronizado! E é suficiênte para seu propósito!
Então um bite pode ser 0 ou 1, e um byte pode ser de 00000000 a 11111111, então em um byte podemos ter 256 combinações diferentes, que seria 2^8 (dois elevado a 8).  Para ficar melhor intendivel para nós, convertemos de um numero binário de base 2, para um numero decimal, que estamos mais familiarizados, e é um padrão do mundo inteiro.
Cada combinação binária em um byte,  representa um numero decimal.
por exemplo: 00000001 é equivalente ao numero 1, 00000010 ao numero 2, 00000011 ao numero 3.

Então bit é a menor unidade e o byte é a unidade básica! Uma letra ou qualquer simbolo ocupa 1byte na memória.

E a memória?
É um conjunto de bytes, vamos pensar em um byte como uma caixinha, e essa caixinha tem 8 divisões, como aquelas gavetas de meias, cada divisão é um bit, e ele pode ou não estar presente, ou seja, quando o espaço estiver vazio podemos dizer que o bit está 0, e quando e espaço estiver preenchido o bit está 1. E isso pode ser modificado a qualquer momento pelo programa! Na realidade o bit em estado 0 é a falta de energia, está desenergizado, e quando está 1 está energizado. Pois é um aparelho elétrico, e usa energia elétrica em todos o seu funcionamento.

Caixinha com 8 bits, alguns em estado 1.
+-------------+   
| |X|X|X|   
+-------------+   

Cada caixinha, tem um  endereço e guarda um byte (8bits), se percisar guardar uma informação maior, por exemplo de 16bits, precisará de 2bytes (2 caixinhas), e se precisar guardar 32bits precisará de 4bytes. Se precisar armazenar a palavra amor, precisará de 5 bytes.

+-------------+
|0|0|0|0|0|0|0| Caixa de 8 bits vazia, valor 0
+-------------+

+-------------+
|1|1|1|1|1|1|1| Caixa de 8 bits cheia, valor 255
+-------------+

Como obter o valor da caixinha (byte):

cada bite representa um valor de base binária, já que só acaita dois valores, 0 e 1, sem energia e com energia.

Da direita para a esquerda <-----
( o simbolo ^ representa potência, um numero elevado a um valor)
2^0 =   1 (bit0)
2^1 =   2 (bit1)
2^2 =   4 (bit2)
2^3 =   8 (bit3)
2^4 =  16 (bit4)
2^5 =  32 (bit5)
2^6 =  64 (bit6)
2^7 = 128 (bit7)

Como pode perceber,o numero 0 ocupa a caixa inteira com nada dentro, mas ocupa, é um numero válido, tem um valor definido! 

Como converter o valor binario do byte em um valor decimal, que é o formato universal que usamos no dia a dia. 
Se o bite0 estiver ativo, então vai 1
Se o bite1 estiver ativo, vale 2
Se o bite2 estiver ativo, vale 4

Então um numero 00000111, equivale a soma de 1 + 2 +4, que é 7
00000000 é igual a 0
11111111 é igual a 255
E é assim que um unico byte pode guardar um valor de 0 a 255

terça-feira, 17 de outubro de 2017

Usar controle do PS2 como base para controle sem fio #2

Vamos direto ao assunto!
Esse é o desenho da montagem do controle, como é visto na imagem, são poucas conexões, será um trabalho bem simples.
Acima é o esquema do emissor. Vou descrever as conexões ao Arduino.
Os pinos ligados ao LT8900:
Arduino -> LT8900
 GND        GND
 3v3        VCC
 8          PKT
 9          CS
 10         RST
 11         MOSI
 12         MISO
 13         SCK

Os pinos ligados ao PS2
Arduino -> PS2
  DAT       6   //Marrom   (usar pull-up)
  CMD       5   //Laranja
  SEL       4   //Amarelho (usar pull-up)
  CLK       3   //Azul
  3.3V      VCC //Vermelho
  GND       GND //Preto
*verde e cinza,não serão usados.


O positivo (+) da bateria é ligado em um dos pinos da chave liga/desliga, geralmente no central, se a chave for de 3 pinos, pode ser uma chave com apenas 2 pinos, o outro pino da chave é ligado ao RAW do arduino, em alguns modelos poder ser VIN.
O negativo (-) da bateria é ligado ao GND, o GND é comum, pode ser ligado em qualquer lugar, contanto que todo GNDs estejam ligados uns aos outros. GND é o mesmo que (-).

Também é usado uma bateria recarregável de 3,7V 1200mah e um módulo carregador de bateria TP4056

Pronto. só isso!!!

Tutorial passo a passo em vídeo

segunda-feira, 16 de outubro de 2017

Construção Impressora 3D - (parte mecânica) #7

Ainda no eixo Y

Marcar os locais que ficará fixa a correia dentada



Prender uma das extremidades usando braçadeira de nylon.











Fixar ao eixo usando outra braçadeira de nylon, no local marcado anteriormente.

Barquino de controle remoto

Tutorial da construção e teste de um barquinho bi-motor de controle remoto http://www.informacional.com.br/p/barquinho-bi-motor-com-cont...