- Pré-requisitos:
- Instalando VPython em seu computador:
- Programando VPython:
- Preparando seu Arduino:
- Trabalhando:
Em nosso tutorial anterior, aprendemos como instalar o python em nossa máquina Windows e como fazer a interface do Arduino com o python usando um projeto simples de controle de LED. Se você for novo, eu recomendo fortemente que você volte para o tutorial anterior, pois este tutorial é uma continuação do mesmo.
Você já deve ter começado a se perguntar por que precisaríamos do Python com Arduino se tudo o que ele poderia fazer é simplesmente se comunicar pela porta serial. Mas, Python é uma plataforma de desenvolvimento muito forte na qual muitos aplicativos interessantes nos quais aprendizado de máquina, visão computacional e muito mais podem ser integrados. Neste tutorial, aprenderemos como podemos criar uma pequena interface gráfica usando Python. Para fazer isso, precisaremos de um módulo chamado Vpython. O tutorial a seguir é aplicável apenas para usuários do Windows, pois para usuários do Mac ou Linux, o procedimento é diferente.
No final deste tutorial, aprenderemos como podemos criar GUI simples usando Python. Faremos uma pequena animação que responde ao valor do sensor ultrassônico que está conectado ao Arduino. Este aplicativo rastreia o objeto usando sensor ultrassônico e exibe-o de forma gráfica no computador usando VPython. Conforme movemos o objeto, o sensor ultrassônico detecta a distância e envia essas informações para o programa Python usando o Arduino e também moverá o objeto no computador. Parece interessante, certo! Então vamos começar…
Pré-requisitos:
- Arduino (qualquer versão)
- Sensor Ultrassônico HC-SR04
- Fios de conexão
- Computador com Python
- Conhecimento no tutorial anterior
Instalando VPython em seu computador:
Em nosso tutorial anterior, já aprendemos como instalar o Python em sua máquina e como movê-lo e criar um programa simples com o Arduino. Agora instalamos o Visual Python (VPython) em cima disso para que possamos criar gráficos interessantes usando Python para Arduino. Para as etapas simples abaixo para começar a usar VPython
Etapa 1. Certifique-se de que o Python já esteja instalado de acordo com as diretrizes do tutorial anterior.
Etapa 2. Clique em VPython para baixar o arquivo exe para Visual Python. Não opte por instalar uma versão de 64 bits, mesmo se sua máquina funcionar em 64 bits. Basta seguir o link fornecido.
Etapa 3. Inicie o arquivo exe e siga a configuração. Não altere o caminho do diretório padrão e certifique-se de ter selecionado “instalação completa”.
Etapa 4. Depois de instalado, você deve encontrar um novo aplicativo chamado “VIDLE (VPython)” em sua área de trabalho ou painel de aplicativo, conforme mostrado abaixo.
Etapa 5. Inicie o aplicativo e você deverá obter uma janela conforme mostrado abaixo.
Etapa 6. Esta é a janela onde digitaremos o programa para VPython. Mas, por enquanto, vamos verificar se o Vpython está funcionando abrindo um programa de exemplo. Para fazer isso, selecione Arquivo-> Abrir-> Bounce
Etapa 7. Você deve obter um programa de exemplo aberto. Tente iniciar o programa usando Run -> Run Module . Se tudo estiver funcionando conforme o esperado, você deverá obter a tela a seguir.
Você deve ver a janela Shell (esquerda) com dois >>> indicando a compilação bem-sucedida e a janela real (frontal) que mostra uma bola quicando.
Etapa 8. Você também pode tentar outros programas de exemplo para descobrir o poder do VPython, por exemplo, o programa de exemplo chamado “motor elétrico” irá surpreendê-lo com a tela a seguir.
Etapa 9. Isso significa que seu VPython está pronto para uso e você pode cair no tópico “ Programando seu Vpython ”.
Etapa 10. Caso contrário, se você for como um dos muitos que recebem um "erro numpy" , não perca a esperança, pois resolveremos esse problema nas próximas etapas
Etapa 11. Abra Meu computador -> unidade C -> Python 27 -> Scripts -> local.bat . Isso iniciará um prompt de comando conforme mostrado abaixo
Etapa 12. Agora digite “pip install --upgrade numpy” e pressione Enter. A nova versão do Numpy deve ser instalada em sua máquina. Pode ser necessário aguardar algum tempo se a conexão com a Internet estiver lenta.
Etapa 13. Uma vez feito isso, você pode voltar para a etapa 4 e tentar um programa de exemplo e você deve ser capaz de fazê-lo funcionar.
Programando VPython:
Em seguida, começamos a programação em nossa janela VPython. Neste programa iremos criar dois objetos retangulares 3D, um será colocado no centro da tela de referência ao sensor ultrassônico estacionário e o outro estará em uma localização dinâmica baseada na distância entre o sensor US e o objeto (papel).
O código Python completo pode ser encontrado no final desta página. Mais adiante, expliquei esse código python dividindo-os em pequenos juncos significativos.
A primeira linha seria importar a Biblioteca visual para que possamos criar objetos 3D. A linha abaixo faz o mesmo.
da importação visual *
Você deve estar familiarizado com as próximas quatro linhas, uma vez que já as usamos em nosso tutorial anterior. Eles são usados para importar a biblioteca serial e de tempo e também estabelecer uma conexão serial com o Arduino em COM18 com 9600 como baudrate
import serial #Serial importado para comunicação serial tempo de importação #Required to use delay functions ArduinoSerial = serial.Serial ('com18', 9600) #Create Serial port object chamado arduinoSerialData time.sleep (2) #wait for 2 secounds for the communication to se estabelecer
Agora é hora de criar objetos. Eu criei dois retângulos 3D chamados obj e parede. A paredeL é uma parede estacionária na cor ciano colocada no centro da tela e o obj é o objeto móvel na cor branca. Também coloquei um texto “US sensor” perto do objeto da parede.
obj = caixa (pos = (- 5,0,0), tamanho = (0,1,4,4), cor = color.white) wallL = box (pos = (- 1,0,0), tamanho = (0,2, 12,12), color = color.cyan) text (text = 'US sensor', axis = (0,1,0), pos = (- 2, -6,0), depth = -0,3, color = color.cyan)
Tenho certeza de que as três linhas acima teriam aparecido em grego e latim para a maioria dos leitores iniciantes, mas com o tempo você seria capaz de entendê-las. Tudo o que é mencionado entre colchetes são coordenadas (x, y, z). E essas coordenadas são muito semelhantes às que encontramos em nossa classe de geometria do ensino médio, conforme mostrado abaixo.
Agora que a porta serial e gráfica está pronta basta ler os dados e colocar o “obj” (retângulo branco) em um local de acordo com os dados vindos do Arduino. Isso pode ser feito pelas seguintes linhas, onde obj.pos.x controla a posição da coordenada X do objeto (retângulo branco).
t = int (ArduinoSerial.readline ()) #ler os dados seriais e imprimi-los como linha t = t * 0,05 obj.pos.x = t
Preparando seu Arduino:
O script Python está pronto para ouvir os valores da porta COM e animar os gráficos de acordo, mas nosso Arduino ainda não está pronto. Primeiro, temos que conectar o sensor ultrassônico ao Arduino de acordo com o seguinte diagrama de circuito. Se você é completamente novo no sensor dos EUA e no Arduino, então você deve recorrer ao tutorial de medição de distância com base em sensores ultrassônicos e Arduino.
Em seguida, carregue o Programa Arduino fornecido no final desta página. O programa é autoexplicado usando linhas de comentários. Sabemos que o sensor ultrassônico funciona calculando o tempo que o pulso leva para atingir um objeto e retornar. Este valor é calculado usando a função PulseIn no Arduino. Posteriormente, o tempo gasto é convertido em distância usando a linha abaixo.
dist = (cronometrado / 2) / 2,91;
Aqui, a distância é calculada em milímetros (mm).
Trabalhando:
O funcionamento do projeto é simples. Inicie o programa Python e coloque um objeto antes do sensor dos EUA, conforme mostrado abaixo:
Agora inicie o programa python e você deverá ser capaz de notar o retângulo branco se movendo junto com o seu papel, a distância entre o seu papel e o sensor também será exibida na janela do shell, conforme mostrado na imagem abaixo.
É assim que podemos rastrear o movimento do objeto usando sensor ultrassônico e Python com Arduino.
Espero que você tenha entendido o projeto e gostado de construir um. Este é apenas um passo sutil em direção ao python, mas você pode construir muito mais coisas criativas usando isso. Se você tem alguma ideia do que construir com isso, poste-os na seção de comentários e use os fóruns para obter ajuda técnica. Vejo você em outro projeto Python interessante.