Documentação sobre o BIPES

Documentos e dicas


Como BIPES Funciona

Como Isaac Newton falou, "Se enxerguei mais além, foi por ter me apoiado nos ombros de gigantes.". Desse Modo, BIPES é como um passo adiante graças ao desenvolvimento de otimos projetos de código aberto, especialmente Google Blockly e MicroPython.

O diagrama em nossa pagina de Inicio da uma boa visão geral de como BIPES fuciona: Usando a lingua de programação em blocos Blockly do google, nós podemos programar com blocos padrões e costomizados. Em seguida, o próprio Blockly gera automaticamente o código Python, que o BIPES envia para o hardware de destino usando WebSockets e o protocolo WebREPL, que é apoiado nativamente pela MicroPython. O programa é copiado e executado na Placa, para que você possa até mesmo desconectar ou fechar o navegador, que o programa continuará em execução. No entanto, o programa não está salvo - para isso, use a opção Arquivos para enviar/receber arquivos das placas.

A figura a seguir dá uma ideia do ecossistema BIPES.

BIPES é totalmente de código aberto, licenciado sob a Licença Pública GNU (GPL), e ainda está em Desenvolvimento mas já utilizável. mas já utilizável. Ele pode gerar código Python ou MicroPython e executá-lo em um dispositivo embarcado em milisegundos, ou mesmo usar um esquema de nuvem para compilar código C gerado a partir de blocos e implantar no Hardware. A tabela a seguir mostra algum hardware suportado (algumas placas já foram testadas ou são Trabalho em andamento). A arquitetura BIPES permite que praticamente qualquer hardware ou dispositivo IOT seja programado e monitorado virtualmente.

Usando BIPES Com ESP32, ESP8266 e placas DEV semelhantes

Para usar ESP32, ESP8266 e placas similares, é primeiro necessário carregar o firmware do MicroPython nas placas. Ao acessar o site oficial da MicroPython, selecione o firmware correto para sua placa e baixe-o.

pagina de download do MicroPython

Depois de baixar o firmware MicroPython correto, grave-o na placa. Há várias maneiras de fazer isso. Se você não quiser usar o terminal, você pode baixar e usar uPyCraft. Usando o uPyCraft, você pode usar o menu Tools -> Burn Firmware, e, em seguida, selecionar a placa e o firmware baixado. Se firmware enviado estiver ok, você poderá interagir com o MicroPython shell direto do uPyCraft.

Se você preferir o terminal, você pode gravar as placas usando esptool. Adafruit tem ótimas instruções sobre como grava-lo. link para instruções. Os links acima ajudarão você a colocar o MicroPython na sua placa ESP.

Depois que a placa ESP estiver executando o MicroPython, você tem que habilitar o servidor WebREPL, para que a placa possa ser acessada e programada usando WebSockets. Para isso, conecte-se à placa usando um cabo USB e abra um terminal serial. Você pode usar o uPyCraft logo após queimar o firmware, para isso. Quando você acessar a Python shell e ver ">>>", basta digitar:

import webrepl_setup
		    

Siga as instruções para ativar o WebREPL e defina uma senha. Depois acesse Ambiente de Programação BIPES . Em seguida, conecte-se à rede criada pela MicroPython, que é algo semelhante ao MicroPython-*. Vá para o console BIPES e, no host, digite ws://192.168.4.1:8266/. Clique em Conectar e você deve obter o MicroPython Shell por wi-fi! A propósito, a senha do wi-fi é micropythoN, e a senha do console é aquela que você digitou minutos atrás. De agora em diante, você pode construir seu programa e executá-lo usando blocos!

Observe que a conexão diretamente com a placa que executa o MicroPython irá desconectá-lo de outro Ponto de Acesso Wifi, limitando seu acesso à Internet. No entanto, você pode configurar sua placa para se conectar diretamente a um Ponto de Acesso. Use estes comandos para isso:

import network
sta_if = network.WLAN(network.STA_IF); sta_if.active(True)
sta_if.connect("", "")
		    

Os comandos acima conectarão a placa à Internet usando AP_name com a senha dada. Você pode verificar o IP que a placa foi configurada usando o comando: sta_if.ifconfig()

As figuras abaixo mostram um exemplo de como ler o Conversor Digital para Analógico de ESP8266 ou ESP32, enquanto o LED pisca, e enviar o valor de leitura para o serviço de uso da nuvem e IOT e visualizar os dados em tempo real! A guia IOT do BIPES permite que os dados coletados sejam vistos em um gráfico em tempo real, gráfico histórico, visualização de tabela ou até mesmo exportar os dados.




O BIPES permite que os programas sejam facilmente compartilhados! Se você quiser visualizar, executar ou editar o programa a partir da figura, simplesmente acesse este link: http://bipes.net.br/beta2/ui/#rqq47n

Para obter mais informações sobre o MicroPython, use help() no console.

Usando BIPES com dispositivos baseados em Linux

Esta instrução se aplica a qualquer dispositivo baseado em Linux! Pode ser um Raspberry Pi, um BeagleBone, Placa Toradex ou até mesmo um Computador! A chave é usar SocketServerWebREPL, que dá um console Python sobre WebSocket para BIPES, permitindo que os blocos sejam convertidos em código Python e executados na máquina de destino, por rede.

Primeiro Baixe e execute socketServerWebREPL. Usando um terminal, emita os seguintes comandos:

git clone https://github.com/rafaelaroca/SocketServerWebREPL.git

cd SocketServerWebREPL

python socketserverWebREPL.py
		    

Em seguida, vá para o BIPES e construa seu programa por blocos. Em seguida, vá para a guia Console, digite o IP correto e a porta do seu dispositivo Linux e conecte-se. Em seguida, basta clicar em Executar, e o programa será convertido em Python, enviado para o dispositivo e executado. A saída pode ser vista no terminal. Você pode executar socketServerWebREPL em sua máquina local e conectar-se ao localhost, por isso o teste é mais fácil.

As figuras a seguir mostram um programa de exemplo feito com BIPES e sua saída no console quando o botão Executar foi clicado. Observe que mesmo quando os blocos para uma determinada funcionalidade ainda não estão disponíveis, um comando Python personalizado pode ser usado usando o bloco "Execute Python Code". Neste exemplo, lemos a BeagleBone Black ADC mesmo sem ter blocos para ele!

Alerta de segurança: observe que quando o SocketServerWebREPL estiver em execução, qualquer pessoa na sua rede pode acessar o dispositivo e enviar comandos Python. Por favor, fique atento ao ambiente que você usa/ teste o dispositivo. Em breve, adicionaremos autenticação ao SocketServerWebREPL.

PS.: Os comandos mencionados também funcionam no Windows e MAC!

Usando BIPES com dispositivos MBed

Os dispositivos MBed podem ser usados com BIPES graças à implementação do MicroPython para ele. Existem alguns firmwares MicroPython prontos para uso, para dispositivos MBed - placas NUCLEO-32, NUCLEO-64, NUCLEO-144 e DISCOVERY por boochow.

Para usar, primeiro va para a URL https://blog.boochow.com/micropython-firmware-for-mbed-boards, elecione um firmware, baixe-o, extraia e conecte a placa MBed ao seu PC. Em seguida, basta copiar o arquivo .bin para o USB MBed Disk. Meu STM32nucleo, por exemplo, mostra como NODE_F446RE pen drive.

Depois de copiar o firmware, sua porta MBed Serial deve ter um console/shell MicroPython funcionando. Você pode testá-lo com qualquer programa de emulação terminal. No Windows, PuTTY pode ser usado. No Linux, teste-o com minicom. Você pode usar dmesg ou lsusb comandos para verificar a porta serial associada com sua placa MBed.

minicom -D /dev/ttyACM0 -b 115200
		    

Depois de acessar o shell, tente pressionar ENTER às vezes para ver o prompt Python ">>>". Se você vê-lo, você tem MicrPython rodando em seu dispositivo MBed. Divirta-se com ele! ;-)

Você pode verificar sua versão MicroPython / placa com o comando: machine.reset()

>>> machine.reset()
MicroPython v1.9.4-691-g4f25a8b-dirty on 2018-12-02; NUCLEO-F446RE with STM32F4x
Type "help()" for more information.
>>>
		    

Em seguida, vamos usar SerialWebSocketServer bridge para dar acesso ao WebSocket à placa MBed! Abra um terminal, com mBed conectado ao USB e execute os comandos:

git clone https://github.com/rafaelaroca/SerialWebSocketServer.git

cd SerialWebSocketServer/

python serverSerial.py
		    

Pronto! Agora acesse BIPES,construa seus blocos. Vá para Console, digite o IP da máquina com MBed conectado a porta USB ad executando SerialWebSocketServer e clique em Conectar. Em seguida, você pode clicar em Executar e no programa que você executa no MBed!

As figuras abaixo mostram um exemplo para piscar o LED da placa MBed


Observe que serialWebSocketServer pode estar em qualquer máquina. Por exemplo, você pode ter uma placa Raspberry Pi longe da máquina de desenvolvimento com um MBed conectado à porta USB Raspberry Pi. Em seguida, você pode executar SerialWebSocketServer no Raspberry, e programar, controlar e monitorar MBed usando SerialWebSocketServer no Raspberry Pi como uma ponte.

PS.: Os comandos mencionados também funcionam no Windows e MAC!

Usando BIPES com BBC MicroBit

Instale o firmware MicroPython no MicroBit, conforme explicado aqui:

https://github.com/mcauser/microbit-tm1637/tree/master/firmware

A instalação é realmente simples - basta baixar o firmware e copiar para a unidade de placa MicroBit. Em seguida, conecte-se à placa usando a versão USB BIPES (https://bipes.net.br/beta2serial/ui/)

Documentação útil: https://microbit-micropython.readthedocs.io/en/latest/tutorials/introduction.html

Acesso direto à porta USB

Um recurso recente do Google Chrome (https://rafaelaroca.wordpress.com/2020/06/21/access-serial-devices-directly-from-the-browser/) permite acesso direto do navegador à porta USB. Este recurso (experimental) permite que o BIPES se comunique diretamente com a BBC MicroBit, ESP32 ou ESP8266, mBed ou qualquer outro dispositivo usando a porta USB/Serial!

Esse recurso já está disponível no Google Chrome padrão, mas os recursos experimentais da plataforma web devem ser ativados em chrome://flags (#enable-experimental-web-platform-features).

Depois de habilitar esse recurso e ter a placa com firmware MicroPython instalado, basta acessar BIPES Serial Version e se divertir com ele!! :-)

Roteiro de desenvolvimento de blocos

A infraestrutura básica do BIPES está pronta para o desenvolvimento de diversos programas para diversos hardwares-alvo! Estamos nos esforçando muito para incluir blocos práticos a serem usados pela comunidade. Embora alguns blocos não estejam prontos, tenha em mente que temos um roteiro para o desenvolvimento de blocos para várias funções de cada placa, e funcionalidades avançadas, como suporte ao OpenCV para dispositivos Linux, entre outras funções. Observe que mesmo que um bloco não exista, você pode invocar o comando Python desejado para fazer ações, como nos exemplos acima.

Se você quer nos ajudar a desenvolver blocos, você é muito bem-vindo! Nenhuma habilidade de programação é necessária, e você pode usar a BlockFactory para construir blocos facilmente. Se você quiser, você pode até acessar todo o projeto de blocos BIPES no BlockFactory e adicionar novos blocos para nos ajudar. Aqui está o link para o Desenvolvimento de blocos BIPES na BlockFactory

E Quanto ao Arduino?

A maioria das funções BIPES são baseadas no código Python e MicroPythom gerado automaticamente e enviados para as placas usando WebSockets. Infelizmente, Arduino não suporta Python ou MicroPython, então nos dirigimos ao Arduino e outras placas com uma abordagem diferente. Para Arduino, os Blocos são convertidos em código C, usando Arduino calls e o código gerado é enviado para um servidor de compilação em nuvem. Após ser compilado, o código binário gerado é baixado automaticamente e gravado na memória Flash do Arduino. Note que essa funcionalidade está em desenvolvimento!