Índice:

Guincho controlado Art-Net: 6 etapas
Guincho controlado Art-Net: 6 etapas
Anonim
Guincho Controlado Art-Net
Guincho Controlado Art-Net

Olá a todos, neste instrutível estarei explicando como criei meu guincho controlado por rede de arte. "Seu o quê?" eu ouço você perguntar, bem, deixe-me explicar muito rapidamente. Há alguns anos, demos uma festa com a casa da juventude local, e como cenografia tivemos a ideia de fazer um telhado móvel.

Com 9 guinchos (takels) levantamos um pano branco gigante e através do protocolo dmx os controlamos. Mas na época os guinchos que usávamos eram controlados por 3 fases. Então, para fazê-lo subir e descer, tivemos que criar um sistema de relais controlado por um mega Arduino central que foi controlado usando dmx. Os relés onde comutam tensões de 230 V e 12 amperes.

Para colocá-lo em termos mais compreensíveis, tivemos que criar uma bagunça gigante de fios e relais que era superinstável, não confiável e muito perigoso na verdade.

Então pensamos que deveria haver uma maneira melhor de fazer isso. Começamos a pensar e chegamos à conclusão que a melhor maneira de fazer isso seria através de um sistema modular de guinchos, controlado sobre o protocolo Art-Net de forma que precisaríamos apenas de uma fonte de tensão e de um cabo ethernet.

Então foi exatamente isso que eu criei e vou tentar explicar como fiz isso. Toda a configuração depende de um pi de framboesa que controla o processo de configuração. Após sua configuração o controle é entregue a um computador leve (Chamsys, etc.) que controlará os guinchos a partir daí.

Estou supondo que você tenha conhecimento básico de python, arduino e raspberry pi, assim como entende algo sobre o protocolo e os controladores art-net.

Suprimentos

O que você precisará:

  • Raspberry Pi
  • Arduino
  • Escudo Ethernet Arduino
  • Blindagem do motor Arduino
  • Qualquer tela OLED
  • Cabo Ethernet
  • switch ethernet
  • Motor DC com codificador integrado

Etapa 1: Configurando o Raspberry Pi

Ok, então o jeito que isso vai funcionar é que o raspberry pi estará rodando um servidor Apache e um MariaDB. O servidor apache é para hospedar o site, o MariaDB é para manter um banco de dados onde armazenaremos os dados dos guinchos.

Não vou te guiar por todo o processo de configuração do pi com ssh, se você não conhece, aqui está um bom tutorial.

Então, primeiro, vamos ter certeza de que o raspberry pi está todo configurado, em sua execução de terminal:

Para instalar o apache

sudo apt install apache2 -y

Para instalar o mariaDB

sudo apt-get install servidor mariadb

Estas são todas as extensões Python de que precisaremos

pip3 instalar mysql-connector-python

pip3 instale flask-socketio pip3 instale flask-cors pip3 instale gevent pip3 instale gevent-websocket pip3 instale netifaces

Para o display OLED, precisamos de um processo de configuração um pouco mais difícil, que pode ser encontrado aqui.

Ok, o pi está pronto!

Etapa 2: Compreendendo como a instalação funcionará

Portanto, você deseja configurar o guincho, fornecendo a ele uma posição inicial e uma posição final. Ele será atribuído a um determinado canal e com este canal você só poderá se mover entre a estatística escolhida e a posição final.

Para selecionar essas posições, você precisará mover o guincho até eles, uma vez lá, você mudará um determinado canal para o valor de 56. Quando este canal exato atingir esse valor, ele saberá que esta é sua posição inicial / final final, se ele precisa se mover para cima ou para baixo ou se precisa alterar seus valores artnet. Mover o guincho também é feito definindo um determinado canal para 56. "E por que 56" ouço você se perguntar, bem, eu tive que escolher algo:).

A posição é calculada através do encoder que está no motor DC.

Etapa 3: Backend do Pi

Backend do Pi
Backend do Pi

O back-end do sistema pode ser encontrado no meu github. Eu escrevi minha própria biblioteca para o protocolo art-net, então fique à vontade para usá-la. Eu não vou te guiar por tudo linha por linha, mas vou te dar uma ideia geral de tudo isso.

O código executa um servidor flask que se comunica com o servidor apache em execução no pi. Ele usa o módulo flask-socketio para enviar e receber dados para o frontend. O art-net lib usa o módulo de soquete do python para enviar pacotes UDP de e para o arduino.

Todo método que começa com @ socketio.on ('F2B _ ***') está esperando por uma chamada F2B do frontend. Assim que for recebido, ele executará a ação correspondente. Seja enviando um comando artnet ou obtendo dados do banco de dados e enviando-os de volta para a frente.

O método oled_show_info () é usado para exibir o ip do ip (nas interfaces wlan e ethernet).

então apenas execute o código com

python3 app.py

Etapa 4: Frontend do Pi

Frontend do Pi
Frontend do Pi

Para poder editar o frontend do pi, você primeiro precisa dar acesso ao diretório / var / www / html /. É aqui que o apache obtém seus arquivos para exibir em seu site. Para obter acesso execute:

sudo chmod 777 / var / www / html /

Agora que está tudo feito, pegue o código para o frontend do meu github e coloque-o no diretório / var / www / html /.

O frontend usa o mesmo princípio do backend, mas agora envia os comandos F2B _ *** quando um botão é pressionado ou o controle deslizante é movido.

E o front-end está pronto!

Etapa 5: o Arduino

O arduino
O arduino
O arduino
O arduino
O arduino
O arduino

Para usar o arduino, você precisará usar a blindagem Ethernet e a blindagem do motor. Basta empurrá-los suavemente para o arduino. Certifique-se de não empurrar a blindagem do motor muito para a blindagem ethernet ou você causará um curto nos 2 pinos do motor na conexão ethernet!

O código para o arduino também pode ser encontrado no meu github. Faça upload do arquivo artnet_winch.ino e tudo ficará bem.

Certifique-se de definir os pinos corretos para os pinos corretos de seu motor. Os pinos da blindagem do motor são escolhidos com os pinos do cabeçote no topo da blindagem. Esses pinos são escolhidos em // --- configuração do motor. Assim como os pinos do codificador que precisam ser conectados aos pinos certos do arduino.

Verifique também se o endereço MAC do escudo está correto. Isso pode ser encontrado em um adesivo embaixo do escudo e editado na variável MAC. O IP que você usa para o pi precisa estar no mesmo intervalo do PI, isso normalmente pode ser encontrado na tela do oled.

O código parece um pouco demais, mas não é tão difícil de entender. Basicamente, o escudo Ethernet lê constantemente os pacotes udp que chegam. Se esse pacote for um pacote Artnet, ele o decodifica e obtém as informações de que precisa. Os diferentes pacotes artnet são bem descritos no site da Art-Net, então, se estiver interessado, você pode ler o que todos eles fazem.

Se receber um pacote ArtPoll, ele responderá com um ArtPollReply. isso é usado na função callout no back-end para descobrir quais dispositivos estão na rede.

Se receber um pacote ArtDMX, ele decodificará o pacote e usará os dados fornecidos para executar certos comandos de configuração ou mover o guincho na posição.

A função move_takel transforma o valor DMX dado (entre 0-255) para uma posição entre a posição inicial e final (0 sendo o final e 255 o início). Se a posição do codificador não for igual ao valor transformado, o guincho se moverá para cima / para baixo dependendo de onde você estiver.

Eu estava trabalhando em um loop de feedback entre o PI e o arduino para que ele pudesse acompanhar sua posição, mas bem, meu arduino ficou sem memória para armazenar o programa:).

Montando tudo

Para sua montagem, fixei o motor em um suporte de metal e coloquei uma espécie de tubo em cima. Em seguida, basta prender um cordão no tubo e usar um rolo de fita adesiva como peso. Isso é muito básico e você pode ser muito criativo na maneira como deseja montá-lo.

Etapa 6: conectando tudo

Depois que o arduino e o pi estiverem todos configurados, basta conectar os dois cabos Ethernet em seu switch e pronto!

Você pode testá-lo navegando até o ip wlan fornecido na tela do oled e deverá ver o site. Pressione localizar dispositivos para ver se você pode encontrar o dispositivo. Se não mostrar nada, seu arduino não está bem conectado ou o IP que você escolheu não está na mesma faixa do PI.

Depois de ver o dispositivo, basta pressionar configuração. No menu de configuração, você pode mover o guincho usando as setas e testar se as posições inicial e final estão corretas com o controle deslizante.

Certifique-se de que seu controlador também esteja conectado à blindagem e que seu IP esteja ao alcance do PI e do arduino.

É isso!

Recomendado: