sábado, 25 de julho de 2015

Raspberry pelo mundo: A popularização da computação em países subdesenvolvidos

O Raspberry Pi foi lançado no mercado de sistemas embarcados com um objetivo bastante complicado em especial: tornar-se popular em países subdesenvolvidos, onde o ensino de informática de qualidade é uma tarefa difícil de ser cumprida. Em países onde a educação é escassa o ensinamento de informática básica, eletrônica, programação, etc., torna-se uma lenda, o que faz com que essas as pessoas desses países tenham dificuldades com trabalho e conhecimento. Cientes disso, muitos pequenos empreendedores aceitaram a árdua missão de popularizar a computação nesse meio com o auxílio do Raspberry Pi, que funciona tanto como um computador tanto como uma placa de sistema embarcado, capaz que ser uma plataforma de ensino de eletrônica.
Por ser uma placa barata e multiuso ela foi a mais indicada para ser a plataforma de ingresso no ensino de computação em países subdesenvolvidos. Mas como todos nós sabemos: sem dinheiro não é possível fazer muita coisa, por mais que seja uma placa barata. A saída que muitas pessoas encontraram para poder arrecadar dinheiro para esse projeto foi o uso de plataformas de doação pela internet, e auxílio do próprio time desenvolvimento da equipe do Raspberry. Toda essa solidariedade conjunta contribuiu para o sucesso desses projetos, e aqui listaremos alguns dos sucessos feitos pelo Raspberry Pi.
Um desses projetos que ganhou bastante fama no fim de 2014 dentre os usuários do Raspberry e entre a mídia foi a criação de um laboratório de computação em uma escola secundária em Joanesburgo, na África do Sul. Era algo bastante comum as escolas não terem acesso energia elétrica nessa cidade, o que dificultava o processo de instalação de computadores. Porém foi com ajuda da empresa Solar Powered Learning que este projeto foi possível, criando instalação que funcionavam a base da energia solar, não precisando ser dependente da escassa rede elétrica do país.
Com isso os novos laboratórios de computação, equipados com placas Raspberry Pi, estavam prontos para serem usados, onde os alunos poderiam aprender mais sobre lógica, programação e eletrônia.



Sensor de Presença no Raspberry Pi B+

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()


(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!

sábado, 18 de julho de 2015

Scratch Game com GPIO

    Saudações leitores do blog, sabemos que o nosso Raspberry PI foi inicialmente projetado para fins didáticos e uma das plataformas de programação já disponíveis junto com SO Raspibian é o Scratch. 

     Para quem não sabe o que é, o Scratch é uma linguagem de programação que possui uma interface gráfica extremamente descomplicada onde pode-se desenvolver histórias interativas, jogos, animações e muitas outras coisas. Foi idealizada por Mitchel Resnick e sua equipe do Lifelong Kindergarten do Massachusetts Institute of Technology - MIT e hoje conta com uma imensa comunidade e fóruns pelo mundo. Abaixo seguem alguns links úteis para quem quiser ir mais a fundo:

Site Oficial: https://scratch.mit.edu
Scratch Brasilhttp://www.scratchbrasil.net.br

    Feitas as rápidas apresentações, vamos dar início a mais um tutorial do nosso blog que vai mostrar como fazer uso das nossas conhecidas portas GPIO do Raspberry para interagir o meio físico com um jogo feito em Scratch.

Material:
  • Dois push bottons;
  • 3 LED´s;
  • 2 Resistores de 1Kohm;
  • 3 Resistores de 330ohms;
  • Jumpers de conexão macho-fêmea;
  • Protoboard.


Instale o Scratch GPIO através do terminal com os comandos:

wget https://raw.github.com/cymplecy/scratch_gpio/master/install_scratchgpio4.sh -O isgh.sh

sudo sh isgh.sh

Após feito isso irá aparecer em desktop o ícone do aplicativo Scratch GPIO

Faça o download do arquivo gpiogame.zip e extraia o arquivo gpiogame.sb para uma das pastas do seu Raspberry, dê preferência pelo caminho /home/pi/scratch/Documents/Scratch Projects

Agora vamos para a montagem do circuito:

Nós usamos as portas GPIO 2 (Pino 3), GPIO 3 (Pino 5), GPIO 17(Pino 11) , GPIO 18(Pino 12) e GPIO 27(Pino 13) do nosso Rasp. Através deste link você pode obter informações e o diagrama completo da distribuição das portas GPIO, mas seguindo fielmente o esquema montado no software Fritzing abaixo, a montagem do seu circuito irá se desenvolver sem problemas:

Esquema eletrônico

Esquema da montagem no protoboard
Montagem feita em nosso laboratório



Fazendo o programa rodar:

1 - Abra a aplicação Scratch GPIO4
2 - Clique em OK na caixa de diálogo que diz "Remote sensor connections enabled"
3 - Vá em File > Open
4 - Escolha o arquivo que você extraiu: gpiogame.sb

5 - Clique na bandeira verde para o jogo rodar
Com os dois botões você controla o nosso amigo gato para cima e para baixo para desviar dos rex que vem da direita da tela. O programa checa o estado das GPIO's 2 e 3 (alto ou baixo) para determinar a ação. Quando o gato perde vida, os LED's vão sendo desligados um a um até o jogo acabar.



Este foi um exemplo pronto do que pode ser feito com a interação Raspberry + Scratch, você pode ir mais a fundo para entender detalhes da programação acessando o site dos desenvolvedores do Scratch GPIO.

E isso é tudo pessoal, qualquer questionamento fiquem à vontade para utilizar os comentários.

Referências:

http://computers.tutsplus.com/tutorials/learn-how-to-use-raspberry-pi-gpio-pins-with-scratch--mac-59941
http://elinux.org/RPi_Low-level_peripherals#General_Purpose_Input.2FOutput_.28GPIO.29

segunda-feira, 13 de julho de 2015

Habilitar seu Raspberry PI para acesso via FTP com VSFTPD

Olá pessoal, meu nome é João Roberto  estudante de engenharia da computação, vamos aprender hoje uma coisa que possa facilitar a transferência de arquivos  de seu raspberry para o computador sem a utilização do pendrive. Já ouviram falar de servidor FTP?

Antes mesmo dos sistemas de armazenamento em nuvem na qual é um sistema conhecido pela maioria hoje em dia, existia o servidor FTP que é responsável por enviar arquivos para web e armazena-lo por meio de um endereço no computador ou um software em seu PC.
Hoje vamos primeiro  aprender como habilitar o seu Raspberry PI  para acesso  o acesso  via FTP com VSFTPD.

Comandos necessários a seguir em seu terminal:

sudo bash (Digite, aperte enter e a seguir)
sudo apt-get install vsftpd (Enter)
Sudo nano  /etc/vsftpd.conf (Vai aparecer uma edição de texto)

Edite ou descomente  as seguinte linhas na edição de texto:

Anonymous_enable = NO
Local_enable = Yes
Write_enable = Yes
Ascii_upload_enable = Yes
Ascii_download_enable = Yes

Logo depois feita as modificações certas:

CTRL + O (Para salvar)
CTRL + X (Para sair)

Digite:  /etc/init.d/vsftpd restart

Pronto, agora você está pronto!

Em um programa  para conexão  FTP, digite  seu IP  de seu Raspberry com login e senha.

Obrigado pela atenção e até próxima.