Manual
do
Maker
.
com
Há alguns artigos anteriores a esse em que introduzi o controle de motores de passo com o HBS860H. Bem, trata-se de um projeto de um cliente, que apresentarei em artigos posteriores. O problema foi que quando o "Hybrid Servo Drive" foi adquirido, o motor de passo não tinha o encoder. Leia o artigo "Motor de passo com HBS860H" para detalhes. Assim sendo, o motor foi adquirido à parte, no Brasil mesmo. Mas Brasil é sempre Brasil e esse motor de passo vinha como cabo serial DB9. Logo, qual seria o pinout do encoder? Senta que lá vem história.
Após adquirir o motor de passo, seria necessário saber o pinout para fazer o encoder funcionar. Entrando em contato com o fornecedor do motor (a Kalatec automação) disseram que não dariam nenhum tipo de suporte. Apenas deram os datasheets do motor, sem a interconexão com o Hybrid Servo Drive - que para ter suporte, deveria ser adquirido deles. Ok, lá foi o cliente comprar o drive das mãos deles, para ter o cabo serial compatível com a conexão de cores. Logo, pensando que o cabo já viria atrelado ao dispositivo. Nem cabo veio.
Ao receber o drive sem o cabo serial, mais uma vez o cliente teve que entrar em contato e solicitar o cabo. Haja paciência. Depois de uns 14 dias de clamor, finalmente estava nas mãos do cliente o cabo também. Ainda falta fazer o wiring. mas repararam na imagem de destaque? Os drives só tem diferença no silk. Pensei: Não é possível que eles sejam tão caras-de-pau.
Obviamente que tendo os dois em mãos não poderia deixar de abrir e comparar. Bem, a semelhança interna também é notória, mas não são idênticos. Um usa uma MCU TMS320F280x (Texas Instruments) ea outra usa um ARM Cortex-M4 GD32F330 cuja marca nunca vi, mas não sou o maior especialista na "fauna" digital. Só olhei para os datasheets, não comparei nada, portanto não sei se há semelhança na arquitetura e se um pode substituir o outro, mas considerando a semelhança do hardware, é bem provável que utilizem a mesma lógica, independente de compatibilidade. O funcionamento de ambos sim, poderei testar e se forem iguais, recomendaria o HBS860H. A indústria brasileira não se ajuda (não em sua totalidade, mas uma grande parte). O atendimento da Kalatec é ruim, demorado e eventualmente dará ainda alguns transtornos, a depender do que acontecer enquanto escrevo e filmo o procedimento.
Se não sabe a diferença de malha aberta e malha fechada, recomendo fortemente a leitura do artigo anterior relacionado, onde descrevo pontos importantes sobre diversos aspectos de operação e referencio diversos outros artigos relacionados a motores de passo e drives para motores de passo.
O propósito final é controlar esse dispositivo com Raspberry - isso é, se o nível lógico for compatível, porque não faz muito sentido adicionar mais componentes a um projeto pronto. Nesse caso, tem uma outra opção que pode ser viável a esse projeto em específico, que é adicionar o Arduino como ponte entre o Raspberry e o drive. Esse é o plano C, mas tudo já está previsto e considerando essa possibilidade e a possibilidade de usar apenas Arduino, estou utilizando o Arduino Leonardo, que pode ser substituído pelo UNO de forma transparente sem alterar código ou wiring.
O wiring do encoder depende das especificações. Se porventura tive a desventura de ter adquirido da Kalatec, ao menos por ventura você poderá seguir exatamente esse tutorial. Tendo adquirido o motor, cabo serial e controladora, as conexões serão essas:
No vídeo mostrarei claramente as conexões e explicarei as tabelas que estão sobre a tampa do drive. O código para utilizar com Arduino Uno ou Leonardo é esse a seguir, mas para usar com outras plataformas com diferentes pinouts basta usar a IDE do Arduino ou PlatformIO no VS Code e mudar os pinos descritos nessa struct:
struct pcon{
uint8_t EN = 5;
uint8_t DIR = 6;
uint8_t PUL = 7;
} pins_num;
Enfim, para fazer o teste de funcionamento inicial, recomendo que use esse código sem modificar nada e após comprovar o funcionamento, modifique-o para que atenda suas necessidades. Veremos esse motor atuando no projeto em outros artigos relacionados que disporei em mais algumas semanas.
O código completo de teste, incluindo o wiring do Arduinco com o drive. Onde estiver VCC, coloque 5V do Arduino. Não esqueça de colocar um GND do Arduino ao GND da fonte de alimentação:
#include <Arduino.h>
/*
Se estiver configurado para 400 no dip switch (ON ON ON ON _ _ _ _) e o valor em sw_conf for mantido em 400, teremos 1 volta completa.
Se a configuração for 800 (OFF ON ON ON _ _ _ _) e for mantido 400, será dada meia volta. Para uma volta completa na metade da velocidade inicial, use 800 e OFF ON ON ON _ _ _ _.
Lembre-se: A tabela mostra pulsos por revolução, então podemos controlar velocidade e avanço.
WIRING (UNO Leonardo etc) e Control Signal:
Arduino / Drive
D5 ---> ENA-
VCC ---> ENA+
GND ---> DIR-
D6 ---> DIR+
D7 ---> PUL-
VCC ---> PUL+
*/
unsigned int sw_conf = 400; //Configuração de pulsos, conforme tabela sobre o drive. No exemplo, estamos dando 1 volta completa.
struct pcon{
uint8_t EN = 5;
uint8_t DIR = 6;
uint8_t PUL = 7;
} pins_num;
void setup(){
for (uint8_t i = 5; i < 8; i++){
pinMode(i, OUTPUT);
}
digitalWrite(pins_num.EN, HIGH);
}
void loop(){
digitalWrite(pins_num.DIR, LOW);
for (int i=0; i<sw_conf; i++){
digitalWrite(pins_num.PUL, HIGH);
delayMicroseconds(sw_conf);
digitalWrite(pins_num.PUL, LOW);
delayMicroseconds(sw_conf);
}
digitalWrite(pins_num.DIR, HIGH);
delay(1000);
for (int i=0; i<sw_conf; i++){
digitalWrite(pins_num.PUL, HIGH);
delayMicroseconds(sw_conf);
digitalWrite(pins_num.PUL, LOW);
delayMicroseconds(sw_conf);
}
delay(40000);
}
Apesar de ter sido obrigado a comprar o drive para ter acesso ao wiring, pelo menos está funcionando. Mas, será que o HBS860H também é compatível? Já pensou se for só conectar os fios nele e usar? Quer saber se pode ser substituído de forma transparente? Então inscreva-se em nosso canal DobitaobyteBrasil no Youtube e clique no sininho para receber a notificação do vídeo. Aproveite pra dar uma olhada nos vídeos do canal e repare que não tem enrolação. São vídeos sucintos com algum VFX, SFX, tratamento de cor, uma pitada de humor e bastante informação. Não acredita? - Nem eu. Deixa eu conferir se é isso mesmo.
Continue acompanhando a série. Aqui sempre apresento material original e experimentado. Quando ver algo parecido por aí, confira as datas. Estamos às margens dos 1000 artigos publicados, fora os excluídos (por não atenderem mais aos critérios de qualidade) e os artigos publicados para outros blogs, desde 1997. Aqui você encontra tudo, Manual do Maker.
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.