O software do fundakit é escrito na linguagem de programação Python. Abre uma terminal, e segue os passos seguintes para preparar o computador anfitrião – basta uma vez só. As instruções estão escritas para sistemas Unix/Linux, como Raspian OS (Rassberry Pi) e Ubuntu. Se estas a usar outro tipo sistema, adapta como for necessário.
1. Verifica que tens Python 3 instalado com o seguinte comando:
$ python3 --version
O numero da versão pode variar, mas o ouput deve ser algo semilhante a isto:
Python 3.6.8
Se não tens Python 3, podes instalar 3.6 como o seguinte comando:
$ sudo apt install python3.6
2. Instalar pip3 para Python 3. Pip é um sistema de gestão de pacotes que simplifica a instalação e gestão de pacotes de software escrito em Python. Atualizar o índice de pacotes com o seguinte comando:
$ sudo apt update
Usar o seguinte comando para instalar pip para Python 3.
$ sudo apt install python3-pip
Quando a instalação estiver completa, verifique a versão pip para confirmar que tudo foi concluído com êxito:
$ pip3 --version
O numero de versão pode variar, mas o output deve ser algo perecido com isto:
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)
3. Instalar o pacote Python Xbee através do Python Package Index com pip3:
$ pip3 install XBee
Se não tiveres pyserial, pip também o instala. Podes saber mais sobre o pacote XBee aqui. O fundakit usa módulos XBee para construir as redes de sensores sem fios.
4. Copie a aplicação funda para o computador (não precisa instalação). Verifique que o diretório funda com todos os seus arquivos são copiados.
5. Se não tiveres Scratch 1.4, deves instalar. Podes obter uma cópia aqui. Se não conheces Scratch, lê o 1.4 Getting Started guide. A próxima secção assume conhecimento básico do Scratch.
1. Ligue o receptor XBee-para-USB a uma porta USB no computador.
2. Abra o Scratch e selecione a paleta Sensores.
3. Clique com o botão direito do rato num dos dois blocos de baixo – valor do sensor () ou sensor () (indicado pelo círculo vermelho na imagem seguinte).
4. Seleccione enable remote sensor connections na janela de contexto.
Nota: o Scratch pergunta automaticamente se pretende fazer esta acção sempre que abre um projecto Scratch-funda já existente.
5. No terminal, navegue para o diretório funda e inicialize a aplicação:
$ python3 funda.py
No arranque, o programa funda tentará estabelecer uma ligação em série com o receptor XBee-para-USB e uma ligação de socket com o Scratch. Se o receptor não estiver ligado ou o Scratch não tiver ligações de sensor remoto activadas, o software dará erro e oferece conselho para resolver.
6. Insere pilhas recentemente carregadas no leitor e liga o interruptor ON/OFF. O LED vermelho junto ao interruptor deve acender-se. Cerca de 15 segundos depois, devem também acender-se os dois LED verdes na frente do receptor: RSSI (Received Signal Strength Indicator) – uma luz contínua indica que existe ligação à rede; RX (Receive) – uma luz intermitente indica a recepção de pacotes de dados (sensor e bateria), transmitidos pelo leitor.
7. No menu Ficheiro do interface gráfica (GUI) funda, seleciona Adicionar Tag para adicionar um tag ao projeto. Aparecerá uma caixa de diálogo a pedir para ler o tag que pretende adicionar ao projecto. Aproxime o tag até cerca de 15 mm do módulo RFID no leitor, para que seja lido.
8. Assim que o leitor lê o tag, surge uma segunda caixa de diálogo que substitui a primeira. No campo Nome, introduza um nome para o tag. Escolha um nome que permita identifica-lo facilmente no Scratch – um nome relacionado com o seu papel no projecto costuma funcionar bem. No campo Numero, introduza o número externo que aparece no tag – o número do autocolante colado no tag.
9. Clique no botão OK para fechar a caixa de diálogo. O tag aparecerá selecionado no GUI como parte do projecto. O codigo único do tag esta apresentado ao lado do título Codigo. O numero do leitor que for usado para lêr o tag esta apresentado ao lado do título Leitor. Pode editar ou remover tags clicando no nome com o botão direito do rato. Para adicionar mais tags, repita os passos 7-9.
10. Quando estiver pronto para guardar o seu projecto, selecione Salvar no menu Ficheiro. Isto fará surgir uma caixa de diálogo de gravação standard, na qual poderá introduzir um nome para o projecto. Ao introduzi-lo, lembre-se de manter a extensão .pkl que aparece no nome predefinido untitled.pkl.
11. No Scratch, arraste um bloco quando receber () para a área do script. Leia novamente o tag (neste exemplo com o nome “grilo”) para o tornar disponível como mensagem de transmissão Scratch. Aceda e selecione esta mensagem no menu de contexto do bloco quando receber (). (O seu leitor terá um número diferente.) Por fim, importe o som do grilo da biblioteca de sons do Scratch (com nome Inglês “Cricket”), ligue um bloco toque o som () ao bloco quando receber () e selecione o som do grilo.
12. Deve agora conseguir ouvir o som do grilo quando ler o tag “grilo”. Se isso acontece, tudo foi definido corretamente e está preparado para começar a criar com o fundakit. Se não acontece, volte atrás e verifique se seguiu todos os passos pela ordem correta.
13. Grave o seu projecto Scratch. Geralmente é uma boa prática dar-lhe o mesmo nome que o do projecto funda correspondente, para que os dois fiquem claramente associados. É possível distinguir entre os dois olhando para as respetivas extensões: insetos.sb (Scratch) e insetos.pkl (funda).
Pacotes de dados emitidos pelos leitores incluem amostras das três portas de entrada e uma medida da voltagem das pilhas. É boa ideia criar os seus próprios ferramentas para representar dados, para ter acesso fácil para planear, experimentar e fazer ‘debugging’.
Segue estes passos para criar uma ferramenta para representar dados de um leitor:
1. Criar três novos variáveis, e nomeá-las usando o numero do leitor (ou o objeto em que o leitor esta embebido) e os números das portas de entrada.
2. Arraste três blocos valor do sensor () para a área do script e seleciona o leitor e as portas de entrada do janela de contexto – são listados no ultimo grupo em baixo (battery@readerN, sensorN@readerN).
3. Coloca os blocos valor do sensor () com o leitor e portas de entrada selecionados em blocos variáveis mude () para () com as variáveis correspondentes selecionadas.
4. Encaixar o conjunto do blocos mude () para () numa sempre loop e execute o script. As variáveis serão automaticamente atualizadas com os dados mais recentes do leitor – normalmente em cada 500 milissegundos em PANs com três nós.
5. Coloca as variáveis visíveis para visualizar os valores no palco Scratch. Dados dos sensores e pilhas podem também ser visualizados graficamente através de versões personalizadas dos métodos adotados nos telemóveis (por exemplo fatias da pizza, maças numa árvore, o por do sol).
6. Depois os dados podem ser então usados em programas, como por exemplo em construções condicionais para determinar o fluxo da programa:
ou para bloquear até uma certa condição tornar-se verdadeira:
Podes baixar o Manual Técnico (Inglês) aqui.