Inovação e tecnologia em BIT Mineradoras de Bitcoin, Infraestrutura, Internet, Ciência de Dados, Livros Games e muito mais..
quarta-feira, 28 de março de 2018
mineradora de bit coin: MINDSTORMS
MINDSTORMS ATRAVÉS DO GPIO
![](https://www.raspberrypi.org/magpi/wp-content/uploads/2018/02/circuitDiagram.png)
O LEGO Mindstorms é uma ótima ferramenta para ganhar experiência na compreensão da robótica, mas e se você quisesse criar seu próprio sensor de entrada? Neste guia, mostraremos como é simples construir um circuito para controlar um robô Mindstorms através do GPIO em Raspberry Pi.
Vamos mostrar cada passo desde conectar o robô até escrever o código. O resultado será um programa em Ch, um intérprete superconjunto de C / C ++, para controlar a direção do robô com um botão.
Você precisará
- Robô LEGO Mindstorms (NXT ou EV3)
- Tábua de pão
- Fios para breadboard
- 1 × LED
- 1 × botão de pressão
- 1 × 220 Ω resistor (vermelho-vermelho-marrom)
- Resistor 1 × 10 kΩ (castanho-preto-laranja)
- Código para este projeto
Programas
Para fazer uso das ferramentas de programação do C-STEM, você deve instalar o sistema operacional C-STEMbian, que contém o C-STEM Studio. Este sistema operacional gratuito e de código aberto contém todas as ferramentas necessárias para robótica e computação física. Além disso, é um superconjunto do Raspbian, então todos os recursos familiares ainda estarão lá. Se você já tiver o Raspbian instalado, os módulos C-STEM podem ser instalados separadamente na parte superior. Tudo isso está disponível na seção C-STEMbian do site C-STEM . Guias passo a passo irão ajudá-lo a configurar e acessar o Raspberry Pi, se necessário.
Conectando-se ao robô Mindstorms
Conectar-se ao seu robô Mindstorms é bastante simples com o software C-STEM.
Primeiro, você precisará abrir o C-STEM Studio e iniciar o Ch Mindstorms Controller. Encontre o grande 'C' no topo da tela depois de fazer o login no seu Raspberry Pi. Clique no 'C' e navegue até 'Ch Mindstorms Controller' no lado esquerdo do menu no C-STEM Studio. Clique em Launch para abri-lo.
O Controlador Ch Mindstorms pode conectar-se a robôs EV3 e NXT. Basta pressionar o botão Scan Robot e adicionar os robôs encontrados na lista do gerenciador de robôs. Siga as instruções na tela para emparelhar os robôs com o seu Raspberry Pi. Devido às limitações do Bluetooth, o Controlador Ch Mindstorms pode conectar-se a um máximo de sete robôs de cada vez.(Certifique-se de que os robôs estejam ligados e que o Bluetooth esteja ativado!)
Depois que os robôs forem digitalizados e adicionados à lista, selecione os que você gostaria de conectar e pressione Conectar. Os robôs aos quais você está conectado terão um ponto verde ao lado de seus nomes.
Construindo o circuito simples
O programa neste tutorial requer um circuito físico para funcionar. Nosso circuito consistirá de uma entrada de botão para controlar a direção do movimento do robô. Uma saída de LED dará uma indicação visual da mudança de direção ao pressionar o botão.
Olhando para o circuito, existem dois lados: entrada e saída. O lado da entrada, mostrado à direita, tem um botão em série com um resistor de 10 kΩ. O botão de pressão está conectado a 5 V para energia. O GPIO 18 é conectado entre eles para ler a entrada do botão.
O lado da saída, à esquerda, tem um LED em série com um resistor de 220.. O GPIO 4 controla essa luz.
Se você tiver um, use uma placa de fuga para tornar o processo de fiação mais claro. Caso contrário, ligue os pinos diretamente do Pi. Pegue um fio do GPIO 4 e conecte-o a uma linha vazia da breadboard. Em seguida, conecte a perna positiva (mais longa) de um LED a essa linha. Da perna negativa do LED, conecte um resistor de 220 Ω (vermelho-vermelho-marrom) ao terra.
Para o botão, insira-o sobre a calha da tábua de pão. Conecte 5 V a uma derivação e conecte um resistor de 10 kΩ (marrom-preto-laranja) do terra à perna adjacente.Por fim, conecte um fio do GPIO 18 à fileira da resistência e da perna do botão de pressão. Isso carregará o sinal de entrada quando o botão for pressionado.
Antes de programar, podemos usar o GPIOviewer, um recurso útil do sistema operacional C-STEMbian. Para usá-lo, navegue novamente para o grande 'C' na parte superior da janela da área de trabalho.
Uma vez aberto, navegue até Ch Raspberry Pi e clique em Launch no canto inferior direito. Isso abrirá o GPIOviewer, que permite o controle total de todos os pinos GPIO no Raspberry Pi. Nessa visualização, você pode alterar os modos de pinos entre entrada, saída e PWM (com um controle deslizante).
Para este circuito, encontre o GPIO 4 e configure-o para saída.
Certifique-se de que o LED esteja configurado e funcionando corretamente alternando entre as saídas altas e baixas. Se a luz acender, você pode passar para testar a entrada. Coloque o GPIO 18 no modo de entrada. Então, tente pressionar o botão. Se a entrada mudar, o circuito está pronto para programação.
Codificação em Ch
A programação no Ch inicia abrindo o C-STEM Studio novamente no seu Raspberry Pi. Na v4.0, navegue até Código no currículo> LearnPiprogram> mindstormsDirectionBot.ch. Se você quiser fazer alterações no arquivo, copie e cole em outro local antes de abrir! Para abrir o programa com o ChIDE, basta clicar duas vezes nele. O código para o projeto segue, que pode ser modificado dentro do painel de edição.
Ao executar o código, certifique-se de que o robô Mindstorms ainda esteja conectado por meio do CMC! Caso contrário, o IDE não reconhecerá que o bot está conectado e, portanto, não executará o código nele. O código deve conduzir o robô para frente ou para trás continuamente a uma velocidade constante. Quando o usuário dá entrada através de um botão, o robô deve mudar de direção negando sua velocidade. O LED também altera os estados pressionando um botão, verificando se a velocidade é positiva ou negativa. Vamos dar uma olhada no código Ch para entender como isso é feito ...
A primeira coisa a notar são os dois cabeçalhos, wiringPi.h e mindstorms.h.Usamos o cabeamento de cabeamento para obter entradas e saídas mais facilmente a partir dos pinos do GPIO. Ele permite que o código se assemelhe ao código do Arduino. Para usar a plataforma Mindstorms, incluímos mindstorms.h, que contém todas as funcionalidades do robô, como mover e girar.
CMindstorms robot;
Agora, o programa precisa declarar um robô. Em Ch, CMindstorms é uma classe que pode ser instanciada como uma variável. Para este programa, o robô Mindstorms é referido como 'robô'; todas as funções relacionadas a ele serão chamadas usando o formato robot.function.
1
2
|
double radius = 1.1 ;
double speed = 5.0 ;
|
The first variable holds the radius of the wheels on the Mindstorms robot in units of inches. Remember that the radius of a circle, or wheel, is the distance from its centre to the edge. After that, a variable for speed is set to 5 inches (12.5 cm) per second. Depending on the Mindstorms wheels attached, the radius may be different. By storing the value in a variable and passing it to functions, the code is easily adaptable to various sizes. If unsure, the radius of the physical wheel can be measured, especially if using a custom wheel.
1
2
3
4
5
6
|
int switchVal ;
int directionPin = 18 ;
int ledPin = 4 ;
wiringPiSetupGpio ( ) ;
pinMode ( directionPin , INPUT ) ;
pinMode ( ledPin , OUTPUT ) ;
|
Variables for the current switch value as well as the input/output pins are declared similarly to previous projects. Then, the pins are set up and initialised.
robot.driveForeverNB();
Before entering the while loop, the robot is set to continuously move using the driveForeverNB() function in the CMindstormsI class. It will drive forever in whatever direction it is currently facing. Forcing the robot to move constantly makes this code and physical circuit easier since the only input needed is the direction change. It is important not to use the driveForever() version without the ‘NB’ letters. For these functions, ‘NB’ stands for ‘non-blocking’, which allows the code to continue after the function has been called. Without the ‘NB,’ the code would stop at the function because it ‘blocks’ the program from continuing until it finishes.
1
2
3
4
5
6
7
8
9
|
while ( 1 ) {
switchVal = digitalRead ( directionPin ) ;
delay ( 50 ) ;
if ( switchVal == HIGH ) {
speed = - speed ;
robot . setSpeed ( speed , radius ) ;
robot . driveForeverNB ( ) ;
}
|
The first section inside the infinite while loop checks the direction-changing pin. There is a delay(50), meaning wait 50 milliseconds, to ensure a clean reading of the pin. Without this, it may switch directions multiple times on a single press. If the pin reads a value of ‘HIGH’ or ‘1’, it will reverse the direction of movement. To accomplish this, the speed is set equal to its negative counterpart. For example, if the speed was 5 inches/second, this will change it to -5 inches/second. Therefore, the Mindstorms robot will move just as fast in either direction. Writing a new speed to the robot also requires the setSpeed() function in the CMindstormsI class. Notice that this function also requires the radius of the wheel because it uses this value to calculate how fast the wheel must spin to achieve the correct distance. Finally, one more robot.driveForeverNB() call is made to ensure the robot continues to move.
1
2
3
4
5
6
7
|
if ( speed >= 0 ) {
digitalWrite ( ledPin , HIGH ) ;
}
else {
digitalWrite ( ledPin , LOW ) ;
}
}
|
To end the while loop, an if statement controls the state of the LED. When the robot’s speed is greater than zero, it must be moving forward. In this case, the LED turns on. The LED turns off while the robot is moving backwards by checking if speed is less than zero.
If you want to take this project a step further, try connecting multiple robots and control them with the same circuit! Additionally, you can add LED traffic lights and make the robot move according to the lights. Or, come up with your own idea! Now you have the tools to make circuits that can interact with robots.
quarta-feira, 21 de março de 2018
MINERADORA -ROEDORA DE BIT COIN: Como fazer placa de Ruídos
FONTE:http://www.newtoncbraga.com.br/index.php/eletronica/57-artigos-e-projetos/6888-geradores-de-ruidos-art1006
Geradores de ruídos (ART1006)
Os ruídos não são responsáveis apenas por prejudicar o funcionamento de determinados tipos de equipamentos. Fontes de ruído, a propósito podem ser usadas como base de muitos projetos, entre os quais instrumentos de teste, instrumentos musicais, geradores de efeitos sonoros e mesmo em equipamentos destinados à pesquisa científica. O principal tipo de gerador usado é o que produz ruído branco, no entanto, para variar temos ainda os geradores de ruído rosa. Neste artigo, apresentamos alguns circuitos práticos de geradores de ruído que podem ser utilizados como base para projetos.
Os físicos definem o ruído branco como aquele que possui um espectro de frequências contínuo e uniforme numa faixa especificada de frequências. Isso significa que em qualquer ponto da faixa considerada temos igual potência por hertz.
Uma outra forma de definir um ruído branco aditivo gaussiano é: "aquele o que tem uma função de autocorrelação igual a zero em todos os pontos, exceto no zero", e que também é chamado de Ruído de Johnson.
Na figura 1 temos uma representação simplificada do que seria o ruído branco numa faixa de frequências entre f1 e f2.
Espectro do ruído branco
Uma outra espécie de ruído é aquela em que a intensidade ou potência em uma determinada frequência se reduz à medida que esta se torna mais elevada. Este tipo de ruído, cujo espectro entre f1 e f2 é mostrado na figura 2, denomina-se "ruído rosa".
Espectro de ruído rosa.
Na linguagem popular o "ruído branco" também pode ser definido como toda espécie de estímulo ambiental-social-cultural presente no mundo em que vivemos.
Considerando-se que o que nos interessa aqui é o aspecto técnico do ruído branco, é dele que trataremos em nossos circuitos práticos.
FONTES DE RUÍDO BRANCO
Os ruídos brancos são gerados naturalmente por diversos tipos de dispositivos eletrônicos e mesmo por fenômenos naturais.
A agitação térmica dos átomos num material condutor ou semicondutor libera portadores de carga aleatoriamente, produzindo ruído branco. Qualquer componente eletrônico que esteja a uma temperatura acima do zero absoluto gera estes portadores produzindo assim ruído branco.
Descargas estáticas na atmosfera geram pulsos de frequências indeterminadas ocupando de forma aleatória o espectro eletromagnético causando assim ruído branco.
O ruído que ouvimos quando sintonizamos um rádio entre estações é o ruído branco causado por estas descargas somado ao ruído provocado pela agitação térmica dos próprios componentes do circuito.
Resistores, diodos, transistores e muitos outros componentes eletrônicos podem gerar ruído branco em maior ou menor quantidade.
OS CIRCUITOS PRÁTICOS
Para aumentar a intensidade do ruído gerado por um componente podemos fazer uso de diversos artifícios como, por exemplo, empregar etapas de amplificação, ou mesmo polarizar o componente que gera o ruído, de modo a aumentar a intensidade da corrente produzida quando da liberação aleatória dos portadores de carga.
Na prática, polarizando-se uma junção semicondutora de um diodo de silício ou de um transistor temos uma excelente fonte de ruído branco, que pode ser usada como base para projetos.
Na figura 3 mostramos como esta polarização pode ser feita.
Fontes de ruído branco.
Esta configuração será justamente usada em nossos projetos práticos que podem ser empregados como base para projetos mais avançados que necessitem deste tipo de fonte de ruído.
CIRCUITOS
a) Gerador de Ruído Branco/Rosa
Nosso primeiro circuito, exemplificado na figura 4, faz uso de dois transistores.
Gerador de ruído branco/rosa.
O primeiro é usado como gerador de ruído branco, podendo ser de qualquer tipo NPN de silício, de uso geral, ou mesmo um diodo de silício de uso geral polarizado no sentido inverso.
O segundo transistor funciona como etapa amplificadora com um bom ganho de maneira a se obter um sinal de saída que possa ser usado para excitar amplificadores de áudio.
A chave S1 quando fechada, coloca o capacitor C2 no circuito de forma a cortar as componentes de frequências mais altas do ruído gerado.
Isso significa uma redução da amplitude do sinal gerado com a frequência, o que caracteriza a produção do ruído rosa.
O leitor poderá alterar o valor deste capacitor, conforme a atenuação desejada com a frequência.
A placa de circuito impresso para este circuito é apresentada na figura 5.
Placa de circuito impresso do gerador de ruído branco/rosa.
O circuito não é crítico e pode ser alimentado com uma bateria de 9 V, já que o consumo é muito baixo, caso a unidade seja usada como fonte independente de ruído.
Se o circuito for agregado a um projeto mais complexo, a alimentação poderá ser feita com tensões de 8 a 15 V, com eventual necessidade de se alterar R4.
R1 também pode ser experimentado na faixa de 220 kΩ a 1 MΩ.
b) Gerador de Ruído II
O segundo circuito que apresentamos utiliza dois transistores amplificadores e um terceiro como gerador de ruído branco. Este circuito também produz ruído rosa, bastando para isso fechar a chave S1.
O circuito completo deste gerador, que pode funcionar com tensões de 9 a 12 V nesta configuração, é visto na figura 6.
Gerador de ruído II
Para funcionar com tensões maiores basta agregar em série com a alimentação um resistor de 2,2 k Ω a 4,7 k Ω, de modo a reduzir a tensão no circuito para algo entre 10 e 12 V. Considerando que o consumo é muito baixo, o circuito admite como fonte uma bateria de 9 V.
Neste caso também, o fechamento da chave S1 leva à alteração do tipo de ruído que passa a ser rosa.
Este circuito não tem controle da intensidade do ruído produzido, mas nada impede que isso seja acrescentado. Basta trocar R7 por um potenciômetro de 10 k Ω ligando ao seu cursor o capacitor C4.
Na figura 7 damos uma sugestão de placa de circuito impresso para este gerador, caso ele seja usado como aparelho independente.
Sugestão de placa do Gerador de ruído II
Os componentes que podem ser alterados de forma a adequar o circuito a cada aplicação são:
R1 que pode ficar entre 220 k Ω e 2,2 M Ω, R3 que pode ficar entre 220 k Ω e 1 M Ω, e R6 que pode ficar entre 22 k Ω e 1 M Ω.
c) Gerador de Ruído III
Nosso terceiro circuito prático, ilustrado na figura 8, tem configuração semelhante ao anterior, mas com desempenho levemente diferente.
Gerador de ruído branco III
Neste circuito temos também um transistor como gerador de ruído, e duas etapas amplificadoras com transistores na configuração de emissor comum.
A montagem pode ser feita numa placa de circuito impresso com o padrão mostrado na figura 9, caso o aparelho deva ser usado como fonte independente de ruído.
Sugestão de placa do Gerador de ruído branco III
O circuito tem dois ajustes: o primeiro, feito em P1 ajusta a polarização e ganho de Q2 de modo a determinar a simetria do sinal de ruído produzido. O segundo é feito em P2 e serve para ajustar a intensidade do sinal de saída.
A alimentação deste circuito pode ser feita com tensões de 9 a 12 V de bateria ou fonte. O consumo é muito baixo.
Para alimentar o circuito com tensões maiores basta aumentar o valor de R6.
A chave S1 serve para colocar o capacitor C5 no circuito, produzindo assim ruído branco. Outros valores de capacitores diferentes do indicado podem ser experimentados para modificar a faixa dinâmica do ruído produzido, conforme a aplicação.
d) Gerador de Ruído com Amplificador Operacional
Nosso quarto circuito, ilustrado na figura 10, faz uso de um transistor de silício (ou diodo de silício) para gerar o sinal básico e um amplificador operacional no sentido de aumentar sua intensidade.
Gerador de ruído com amplificador
O amplificador operacional sugerido é o 741, mas os equivalentes, inclusive com transistores de efeito de campo como o CA3140 podem ser usados.
A fonte de alimentação deve ser simétrica e o nível do sinal é ajustado no potenciômetro P1.
O resistor R1 pode ser alterado na faixa de 220 k Ω a 1 M Ω, conforme o componente usado como fonte de ruído.
Observe que a fonte de alimentação deve ser simétrica, e que sua tensão deve ficar entre 9 e 15 V.
Se o aparelho for usado como fonte independente de ruído, pode-se fazer sua montagem na placa de circuito impresso com o padrão apresentado na figura 11.
Sugestão de placa do Gerador de ruído branco com amplificador operacional.
Sugestão de uma segunda versão.
APLICAÇÕES PRÁTICAS
Os geradores de ruído branco servem de base para diversos tipos de projetos, que envolvem tanto o teste de equipamentos e componentes, quanto os instrumentos musicais e os efeitos sonoros.
Uma aplicação interessante para aqueles que desejam um projeto de uso pessoal é no relaxamento.
Os ruídos brancos, como o ruído do mar e do vento, têm um efeito importante sobre a nossa capacidade de relaxamento e, se forem produzidos em grande intensidade, podem cobrir ruídos ambientes desagradáveis.
Desta forma, um gerador de ruído branco acoplado a um pequeno amplificador de áudio pode funcionar como solução terapêutica para a falta de sono.
Basta ligar o gerador e o amplificador ao lado de uma pessoa, que a indução do sono, principalmente em ambientes barulhentos, pode ser facilitada.
Indo além, o gerador de ruído branco pode ter seu sinal misturado ou modulado de modo a se obter variações de nível, que lembram o quebrar das ondas do mar numa praia. Este tipo de som tem um efeito bastante relaxante e pode servir de base para um importante projeto neste campo.
Na verdade, em revistas especializadas pode-se encontrar este equipamento de relaxamento já pronto e indicado com finalidades terapêuticas.
Outra aplicação é em instrumentos musicais onde o som do prato é obtido justamente com a mixagem de um ruído branco ao sinal de um oscilador.
Finalmente, temos os pesquisadores dos fenômenos paranormais que têm empregado fontes de ruído branco das mais diversas espécies na pesquisa do denominado EVP (Electronic Voice Phenomenon) (*). Onde e como usar os geradores de ruído branco fica por conta dos nossos leitores.
(*) Os leitores interessados em informações sobre EVP podem encontrar uma infinidade de documentos na Internet digitando "Electronic Voice Phenomenon" no mecanismo de busca Alta Vista. O livro Eletrônica Paranormal de Newton C. Braga é outra boa referência.
Assinar:
Postagens (Atom)