S2A, Scratch

Raspberry Pi e Scratch Juntos em português.

Escrito por: ­ 10 de maio de 2018 ­ 7.435 views

Você sabia que é possível controlar os pinos do seu Raspberry Pi, usando o Scratch 2.0?
A última versão Raspbian para Raspberry Pi já vem com o Scratch 2.0 (na verdade uma versão offiline e modificada do ScratchX) pré-instalada.

Essa versão (Abril/18) poderá ser baixada clicando aqui:

A extensão do Scratch foi criada pelo MrYsLab e está disponível para download na versão em inglês clicando aqui:

Acabamos de fazer um “fork” desse desenvolvimento e disponibilizamos para vocês em nosso Github.
Esse artigo foi baseado no trabalho disponibilizado por MrYslab e poderá ser encontrado aqui

Neste artigo veremos:

 

O que você vai precisar?

Baixar a imagem do Raspbian, caso ainda não tenha (opte pela versão com Desktop)

https://downloads.raspberrypi.org/raspbian_latest

Instale a imagem em um cartão SD, nós utilizamos o programa Etcher para esse propósito:

https://etcher.io/

Após esse processo coloque o cartão SD no seu Raspberry Pi e pronto, deixo-o inicializar e fazer as instalações necessárias.

Após alguns minutos o sistema estará pronto para o próximo passo.

 

Abrindo Scratch 2.0

Verifique se o Scratch já está disponível. Ele deve estar localizado em: Menu–>Desenvolvimento–>Scratch 2.0

Inicialmente, você notará que não há nenhum extensão instalada.
Os próximos passos mostrará como instalar as extensões necessária para comunicação.

 

Copiando arquivo do nosso Github

Abra o terminal:

 

Digite:

git clone https://github.com/HackEduca/s2-pi.git

Agora você deve ter uma cópia de nosso diretório no Github.

 

Inciando a Instalação

Digite agora os seguintes comandos na sequencia: (você pode copiar e colar, caso esteja já utilizando o seu Raspberry Pi).

cd /home/pi/s2-pi

sudo python3 setup.py install

sudo systemctl enable pigpiod

sudo systemctl start pigpiod

cd /usr/lib/scratch2/scratch_extensions

sudo curl -o s2_pi.js https://raw.githubusercontent.com/HackEduca/s2-pi/master/s2_pi/s2_pi.js

sudo curl -o extensions.json https://raw.githubusercontent.com/HackEduca/s2-pi/master/additional_files/extensions.json

cd /usr/lib/scratch2/medialibrarythumbnails

sudo curl -o hackeduca.png https://raw.githubusercontent.com/HackEduca/s2-pi/master/docs/images/hackeduca.png

cd && sudo rm -r s2-pi Se tiver alguma pergunta como, por exemplo: protegido contra escrita?, digite Y e depois a tecla ENTER

 

Caso queira utilizar um comando único, cole o comando abaixo em seu terminal

cd /usr/local/lib/python3.5/dist-packages/ && sudo rm -f *.egg ; sudo rm -r s2_pi* ; cd && sudo rm -r s2-pi ; git clone https://github.com/HackEduca/s2-pi.git && cd /home/pi/s2-pi && sudo python3 setup.py install && sudo systemctl enable pigpiod && sudo systemctl start pigpiod && cd /usr/lib/scratch2/scratch_extensions && sudo rm s2_pi.js ; sudo rm extensions.json ; sudo curl -o s2_pi.js https://raw.githubusercontent.com/HackEduca/s2-pi/master/s2_pi/s2_pi.js && sudo curl -o extensions.json https://raw.githubusercontent.com/HackEduca/s2-pi/master/additional_files/extensions.json && cd /usr/lib/scratch2/medialibrarythumbnails && sudo rm hackeduca.png ; sudo curl -o hackeduca.png https://raw.githubusercontent.com/HackEduca/s2-pi/master/docs/images/hackeduca.png && cd && sudo rm -r s2-pi ; s2pi

 

Vamos verificar se tudo deu certo:

Digite:

s2pi

Você estará iniciando o servidor e na sequencia o Scratch 2.0 irá se abrir:

  • Clique em More Blocks ou Mais Blocos, caso você já tenha mudado o idioma para português.
  • Clique em Add an Extension ou Adicionar uma Extensão, caso você já tenha mudado o idioma para português.

 

Selecione R_Pi_Hackeduca_GPIO:

Voilá! As extensões já estão disponíveis para o seu projeto!!!

 

 

Próximos Passos

Reinicie o sistema e abra o terminal em seguida.

Início

Digite: s2pi

Você deverá iniciar o seu projeto com o bloco Conectar ao servidor (o círculo mudará de cor, de amarelo para verde)

Gravando um projeto

Ao gravar um projeto ele irá obrigar automaticamente o uso da extensão .sbx, que não servirá para abrir o projeto com esse Scratch.
Isso ocorre devido a um bug (originalmente este é um ScratchX e não Scratch 2.0).

Desta forma, o arquivo deverá ser renomeado para uso futuro.

Siga os próximos passos:

  • No Scratch: Arquivo–>Salvar Projeto
  • Escolha o diretório de usuário (/home/pi)
 
  • Abra o terminal neste diretório e digite: sbx_to_sb2

Prontinho….

Agora é só você criar e compartilhar o seu projeto….

print
Previous Post Next Post

Você também pode gostar / You Might Also Like

6 Comments

  • Reply AiltonLopes 10 de maio de 2018 at 23:07

    Elaine e Edson quero deixar registrado aqui o meu agradecimento pela dedicação e empenho em atender ao meu pedido. Inicialmente era uma pergunta que se tornou um pedido e, para a minha surpresa, já foi atendida de prontidão no outro dia! Procurei várias soluções para programação por blocos no Raspberry mas não havia encontrado nenhuma como essa. No momento não estou próximo ao Raspberry que fiz a instalação dessa extensão do HackEduca mas lembro que havia um bloco que estava faltando se comparado ao print dessa página. Com mais calma (após passar o Scratch Day rs), dou um feedback sobre esse bloco. Agradeço mesmo pela atenção de vocês e parabenizo pelo projeto!

    • Reply Edson Sidnei Sobreira 10 de maio de 2018 at 23:31

      Olá Ailton, muito obrigado!
      Alguns meses atrás tínhamos iniciado um trabalho sobre Raspberry Pi, mas nunca tivemos um incentivo para terminá-lo (aparecia demandas mais urgentes.
      O bloco diferente entre ambas as extensões creio que seja a função PWM.

      Obrigado!

  • Reply AiltonLopes 31 de out de 2018 at 20:16

    Salve pessoal do Hackeduca!! Tenho um pedido a fazer. Gostaria de controlar servos motores através dessa aplicação do Scratch com Raspberry Pi pois tenho uma situação onde não teremos Arduinos disponíveis e não posso contar com soluções on line de programação por blocos. Seria possível desenvolver uma solução para programar servos motores através das portas GPIO do Raspberry? Desde já agradeço e parabenizo pelo trabalho! Abraço!

    • Reply Edson Sidnei Sobreira 31 de out de 2018 at 23:25

      Olá Ailton, conforme conversamos, conseguimos fazer o bloco.
      Obrigado pelos testes.

      Enviamos um Pull Request (github) para o autor (Alan) com as nossas modificações/inclusões. Essa funcionalidade ficará válida também para a versão em inglês.
      A posição 0º e 180º ficarão alinhadas?
      Percebemos que a calibração varia conforme a marca do Servo (diferente do Arduino).

  • Reply Luiz Gustavo Neri Bonfim 20 de ago de 2020 at 18:23

    Olá! Utilizando essa extensão, como eu poderia limpar a configuração das GPIO? Algo semelhante ao GPIO.cleanup() do python?

    • Reply Edson Sidnei Sobreira 20 de ago de 2020 at 22:09

      Olá, essa função coloca os pinos que por ventura estejam como output como input.
      Atualmente não há bloco que suporte essa função, mas creio que criando uma variável e dar um loop nela com todos os pinos colocando em input mode, teria o mesmo efeito.

      MAs de qualquer forma a idea é interessante, vamos pensar uma maneira de implementar

    Leave a Reply

    Show Buttons
    Siga-nos no Facebook
    Siga-nos no Twitter
    Siga-nos no Google Plus
    Siga-nos no Pintrest
    Siga-nos no Youtube
    Siga-nos no Scratch
    Hide Buttons
    Top
    HackEduca