
Provavelmente muitos dos que descobriram o mundo da eletrônica, mais cedo ou mais tarde, pensam em criar algum tipo de robô, ou apenas em automação doméstica ou modelos controlados por rádio. Mas se tudo estava mais ou menos claro com a mecânica, o desenvolvimento de um programa para controlar esse dispositivo, no qual um grande número de servos deveria trabalhar juntos, causava muitas dificuldades. O complexo de software e hardware ServoStudio 12 permitirá apenas controlar esse dispositivo, controlar 12 servos ao mesmo tempo e criar sequências de movimento usando o editor visual. Além disso, esse complexo se tornará uma ferramenta conveniente para depurar a mecânica do dispositivo e criar seu próprio programa.
Se necessário, a sequência de movimentos criada pode ser exportada como um esboço do Arduino IDE, para operação independente, sem um PC. Ou simplesmente como uma matriz de valores-chave para uso posterior em seu programa. O ServoStudio 12 possui uma interface intuitiva e até um iniciante pode descobrir. E o uso da placa Arduino como um dispositivo de controle executivo tornou esse sistema facilmente acessível em repetição e fabricação.
Um pouco de fundo. Inspirado na idéia de criar um servo testador conveniente
de Sergey Grishchenko , decidi criar meu próprio sistema, que seria fácil de usar e, ao mesmo tempo, conveniente e funcional. Ao contrário do servo testador acima, o software ServoStudio 12 é responsável por todo o controle em um computador pessoal, e a placa Arduino suporta até 12 servos simultaneamente. O hardware é uma placa Arduino Nano ou Arduino Uno generalizada. Além disso, este software contém o trabalho com o servo testador acima.
Inicialmente, planejei criar um pequeno programa no qual a sequência de valores do sinal de controle dos servos fosse reproduzida, mas durante o desenvolvimento tive novas idéias e um programa simples se transformou em uma unidade de controle completa para a mecânica do robô, com a capacidade de definir a velocidade dos movimentos e reproduzir movimentos usando movimentos quentes. chaves.
Servo - ao contrário do motor coletor, permite fazer uma rotação em um determinado ângulo. O ângulo de rotação é definido pela largura de pulso do sinal de controle. A largura desses pulsos pode variar entre 800 - 2300 μs.
Para começar, precisamos do seguinte:O diagrama de conexão é muito simples. Os pinos D2-D13 são conectados às entradas de controle dos servos. A energia está conectada aos pinos de energia do Arduino.
Com grande consumo de corrente por servos, é necessário conectar uma fonte de energia externa.
Antes de tudo, no menu do programa ServoStudio 12, é necessário selecionar o item “Code Generator” e o subitem “Create a ServoStudio HardWare sketch”, salve esse sketch em disco e abra-o no Arduino IDE e preencha-o em Arduino Nano / Uno. Tudo, o hardware está pronto! Essa ação é executada apenas uma vez, com a nova placa Arduino.
Para começar, você precisa criar um novo projeto (menu Arquivo / Novo). Na caixa de diálogo, selecione o número necessário de canais PWM (número de servos), selecione o tipo de placa do testador e escreva o nome do seu dispositivo (por conveniência).
Agora sobre a interface do programa
Na parte inferior, existem ferramentas para criar uma sequência de pontos-chave. Movendo os controles deslizantes dos controladores para os canais correspondentes, é definido o valor da largura de pulso do sinal de controle (o ângulo de rotação do servoconversor) no canal correspondente. Se você marcar a caixa de seleção "controle em tempo real", quando mover o controle deslizante do controlador, o servoconversor conectado a esse canal se moverá, o que é muito conveniente, pois a posição do inversor nesse momento é imediatamente visível. Depois que o sinal de controle tiver sido definido em todos os canais necessários, você precisará criar o próximo "quadro" (o próximo ponto-chave) usando o botão "Adicionar". E da mesma maneira, com a ajuda dos reguladores, crie um novo ponto-chave e o quanto for necessário. O tempo durante o qual os servos devem girar em um determinado ângulo é definido separadamente para cada quadro, no campo "step time", o tempo é definido em milissegundos. Quanto maior o valor, mais lento será o movimento, menor será o mais rápido. O campo da etapa exibe o quadro atual da sequência. Se necessário, alterando o número da etapa neste campo, você pode editar as etapas anteriores. Por conveniência, os nomes dos canais podem ser alterados clicando duas vezes no nome do canal à esquerda do botão.
Na parte superior, no gráfico, a alteração na largura do sinal de controle dos servos é exibida visualmente.
E quando algum tipo de movimento finalizado é criado (por exemplo, um passo adiante), você pode salvar a sequência atual como uma sequência finalizada separada clicando no botão "adicionar" no painel "Sequências", no lado direito da janela do programa. Por exemplo, você pode criar várias seqüências para avançar, retroceder, esquerda, direita etc. E essas seqüências podem ser reproduzidas independentemente uma da outra, clicando duas vezes no mouse ou no menu de contexto, bem como na janela "controle remoto" (mais sobre isso posteriormente). Assim, reproduzindo essas seqüências, o dispositivo (robô) é controlado. Você também pode adicionar sequências salvas à sequência principal, criando uma grande sequência de ações. Isso pode ser muito útil para demonstrar a operação do dispositivo.
Além disso, a sequência principal (atualmente aberta no editor) pode ser exportada como um esboço para o Arduino IDE, para reprodução offline pela placa Arduino, sem um PC. Para fazer isso, selecione o item "Exportar sequência" no menu "Gerador de código" e clique no botão "Gerar" na caixa de diálogo, após o qual esse esboço pode ser copiado para a área de transferência ou salvo como um esboço para o Arduino IDE. Além disso, esse esboço pode ser preenchido da maneira usual no controlador da placa Arduino.

É possível reproduzir esta sequência ciclicamente ou apenas uma vez, definindo ou desmarcando a caixa "repetir em ciclos". Também é possível exportar pontos-chave para um array, isso pode ser útil se você já possui seu próprio programa para o microcontrolador e precisa definir movimentos nele, e, opcionalmente, pode adicionar valores de tempo de configuração de posição ao array, definindo o sinalizador correspondente. Se, depois de exibir este esboço, a placa do Arduino precisar ser usada novamente com o programa ServoStudio 12, selecione novamente o item "Gerador de código" e o subitem "Criar esboço do ServoStudio HardWare" no menu, salve esse esboço em disco e abra-o no IDE do Arduino e faça o upload para o Arduino Nano / Uno.
Janela "painel de controle"
Permite usar teclas de atalho para reproduzir seqüências individuais. Primeiro, você precisa clicar no botão "Atribuir chaves", selecionar a sequência desejada na lista suspensa e atribuir uma tecla de atalho. Quando tudo estiver instalado, você deve clicar no botão "Lembrar". Agora, enquanto esta janela estiver aberta, pressionar a tecla de atalho reproduzirá a sequência atribuída a ela.
Não é sem importância o item de menu "Posição inicial" - esta é a posição dos servos quando ligada, ou simplesmente a "posição normal" para o ângulo de rotação dos servos. Em outras palavras, se você não quiser que seu robô incline quando ligado, use os reguladores para selecionar a posição ideal para ele e selecione o item de menu "Gravar quadro atual na EEPROM do Arduino como uma posição inicial", esta função está disponível apenas para placas Arduino. Existem também os pontos “Escreva o quadro atual como a posição inicial” e “Inserir a posição inicial no quadro atual”, será muito útil se você precisar iniciar uma nova sequência e o ponto inicial. A posição inicial é salva no arquivo do projeto e fica disponível quando o arquivo é aberto, portanto, não será necessário selecioná-lo novamente.

O programa também tem a capacidade de associar arquivos de projeto ao ServoStudio 12. Para fazer isso, você precisa executá-lo uma vez com direitos de administrador. O ServoStudio 12 é totalmente portátil, consiste em 1 arquivo (quando você fecha o programa, o arquivo do último projeto aberto ainda é criado) e não requer instalação.
Mais detalhes sobre o trabalho podem ser vistos no vídeo.
Link para download do software ServoStudio 12Um pouco sobre os planos para o futuro:
- Quero criar um aplicativo Android que possa abrir o arquivo do projeto e usar o telefone para controlar o robô. Gerenciar via BlueTooth ou WiFi através de um adaptador TCP-UART.
- Também quero criar uma versão para um número maior de canais para gerenciar dispositivos mais complexos.
- Adicione o processamento de sinal dos sensores conectados (por exemplo, se houver um obstáculo à frente, contorne-o).
- Adicione a capacidade de controlar saídas digitais (por exemplo, para ligar LEDs ou algo mais)
Mas se esses planos permanecerão apenas planos ou serão liberados no próximo lançamento do programa depende do interesse nesse complexo.