São muitos os pequenos projetos que podem ser feitos na plataforma Raspberry. Já postamos tutoriais que vão desde a piscar um simples LED a até controlá-lo remotamente por meio de um computador. E uma coisa que acontece com bastante frequência é o pensamento de "eu já sei como usar tal periférico de tal forma, então já sei tudo sobre ele", e é aí que essas pessoas se enganam! Usando o conhecimento em uma área, é possível juntar com outra área e aumentar (e muito!) as possibildades de criação, e este tutorial servirá como base para que você, caro leitor, veja que as possibilidades são muito grandes caso você tenha vontade de criar coisas novas!
Ensinaremos agora como fazer um sensor de presença usando dois recursos que já postamos tutoriais sobre neste blog: piscar LED e usar o sensor de presença para medir distâncias. A ideia aqui é fazer um sensor que dada uma distância limite, caso um objeto esteja nesta distância ou mais próximo é passada essa informação de alguma forma para o usuário (no caso, o piscar de um LED). Escolhermos o LED arbitrariamente, mas como você só precisa passar essa informação de alguma forma isso pode ser feito de qualquer outro jeito. Você pode fazer ele emitir um som quando tiver que passar a informação.
Mas sem mais delongas, vamos ao tutorial! Que vai aparentemente ser curto, mas só aparentemente mesmo. Isso porque precisaremos dos conhecimentos e circuitos montados de dois tutoriais anteriores, que são:
Como é necessário que sejam
feitos dois circuitos para executar as funções poderão ser usadas duas
protoboards para facilitar o processo de montagem. Na foto abaixo mostramos o
circuito que montamos, usando apenas uma protoboard para poder economizar
espaço. Agora talvez isso não faça muito sentido já que são circuitos simples,
mas lembre-se: quanto mais espaço for economizado mais bem otimizado e montado
será o seu circuito elétrico. Chegará uma hora que suas protoboards vão acabar
caso não saiba otimizar o espaço.
(circuito que usamos para a execução desse projeto)
Os circuitos estão montados no
mesmo esquema dito nos tutoriais linkados, o único trabalho que tivemos (que
nem foi tão difícil assim) foi encaixar esses dois circuitos na mesma
protoboard. Com o circuito montado, é hora de partir para o código que será
compilado.
O código que usaremos também
segue a mesma ideia dos códigos dos tutoriais linkados, mas usaremos as
informações que eles dão para poder fazer as modificações necessárias. O código
do sensor ultrassônico mede distâncias, então podemos usar a distância medida
em uma verificação para poder verificar se o objeto encontrado está ou não na
distância limite. Caso esteja, o programa executará o piscar do led, do
contrário ele não fará nada. E como é um programa que precisa estar
constantemente em execução pusemos a verificação em um laço. Segue abaixo o
código comentado (não esquecendo de habilitar a função “ssh” do Raspberry, que
é o que possibilitará a comunicação entre o mesmo e o sensor ultrassônico).
import RPi.GPIO. as GPIO
import time
GPIO.setmode(GPIO.BCM)
TRIG = 23
ECHO = 24
GPIO.setup(TRIG,GPIO.OUT)
GPIO.setup(ECHO,GPIO.IN)
GPIO.setup(18,GPIO.OUT)
while(1):
GPIO.output(TRIG,False)
time.sleep(1.5)
GPIO.output(TRIG,True)
time.sleep(0.00001)
GPIO.output(TRIG,False)
while GPIO.input(ECHO)==0:
pulse_start = time.time()
while GPIO.input(ECHO)==1:
pulse_end = time.time()
pulse_duration = pulse_end - pulse_start
distance = pulse_duration * 17150
distamce = round(distance, 2)
if(distamce <= 20):
GPIO.output(18,True)
print "Objeto encontrado: ",distamce," cm"
else:
GPIO.output(18,False)
GPIO.cleanup()
import time
GPIO.setmode(GPIO.BCM)
TRIG = 23
ECHO = 24
GPIO.setup(TRIG,GPIO.OUT)
GPIO.setup(ECHO,GPIO.IN)
GPIO.setup(18,GPIO.OUT)
while(1):
GPIO.output(TRIG,False)
time.sleep(1.5)
GPIO.output(TRIG,True)
time.sleep(0.00001)
GPIO.output(TRIG,False)
while GPIO.input(ECHO)==0:
pulse_start = time.time()
while GPIO.input(ECHO)==1:
pulse_end = time.time()
pulse_duration = pulse_end - pulse_start
distance = pulse_duration * 17150
distamce = round(distance, 2)
if(distamce <= 20):
GPIO.output(18,True)
print "Objeto encontrado: ",distamce," cm"
else:
GPIO.output(18,False)
GPIO.cleanup()
(programa em funcionamento)
Lembrando que para parar a execução do programa é só
pressionar as teclas Ctrl+C no terminal.
E esse foi o tutorial de hoje! Além de ensinar algo novo
sobre o Raspberry, também foi feito para mostrar como você pode pegar algo que
já sabe para aplicar de uma maneira nova. Não basta apenas reproduzir o que já
está escrito e dito como funciona, mas sim inovar em novas funções que ainda
não foram exploradas. Seja criativo!
Até a próxima, pessoal!
Nenhum comentário:
Postar um comentário