Índice:

Controle do braço do robô com TLV493D, joystick e Arduino: 3 etapas
Controle do braço do robô com TLV493D, joystick e Arduino: 3 etapas

Vídeo: Controle do braço do robô com TLV493D, joystick e Arduino: 3 etapas

Vídeo: Controle do braço do robô com TLV493D, joystick e Arduino: 3 etapas
Vídeo: openSUSE Conference 2018 - Fantastic Arm boards and how to use them 2024, Julho
Anonim
Controlando o braço do robô com TLV493D, joystick e Arduino
Controlando o braço do robô com TLV493D, joystick e Arduino
Controlando o braço do robô com TLV493D, joystick e Arduino
Controlando o braço do robô com TLV493D, joystick e Arduino
Controlando o braço do robô com TLV493D, joystick e Arduino
Controlando o braço do robô com TLV493D, joystick e Arduino

Um controlador alternativo para seu robô com um sensor TLV493D, um sensor magnético com 3 graus de liberdade (x, y, z) com estes você pode controlar seus novos projetos com comunicação I2C em seus microcontroladores e placa eletrônica que Bast Pro Mini M0 com um Microcontrolador SAMD21 em Arduino IDE.

O objetivo é ter um joystick alternativo para controlar seus projetos, no caso, um braço robótico com 3 graus de liberdade. Eu usei um MeArm Robot Arm, este é um projeto de código aberto e você pode torná-lo fácil e você pode encontrá-lo aqui. Pode fazer seu próprio braço controlador ou outro aplicativo com esse conhecimento que tenho o prazer de compartilhar com você.

Todos os componentes eletrônicos possuem links para adquirir na loja, arquivos para impressora 3D e código para o IDE do Arduino.

O TLV493D pode ser um Joystick O sensor magnético 3D TLV493D-A1B6 oferece detecção tridimensional precisa com consumo de energia extremamente baixo em um pequeno pacote de 6 pinos. Com sua detecção de campo magnético nas direções x, y e z, o sensor mede com segurança os movimentos tridimensionais, lineares e de rotação.

Os aplicativos incluem joysticks, elementos de controle (linha branca, botões multifuncionais) ou medidores elétricos (anti-adulteração) e qualquer outro aplicativo que requeira medições angulares precisas ou baixo consumo de energia. Além disso, o sensor de temperatura integrado pode ser usado para verificações de plausibilidade. As principais características são a detecção magnética 3D com baixíssimo consumo de energia durante as operações.

O sensor tem uma saída digital através de uma interface I2C padrão baseada em 2 fios de até 1 MBit / seg e resolução de dados de 12 bits para cada direção de medição (medição de campo linear Bx, By e Bz até + -130mT). TLV493D-A1B6 3DMagnetic é um motor de popa autônomo.

Você pode conectá-lo facilmente a qualquer microcontrolador de sua escolha que seja compatível com Arduino IDE e tenha um nível lógico de 3,3V. Neste projeto, usamos o breakout Electronic Cats e uma placa de desenvolvimento que explicarei mais tarde.

electroniccats.com/store/tlv493d-croquette…

A vantagem de usar um sensor TLV493D é que apenas dois cabos com I2C são usados para receber as informações, por isso é uma opção muito boa quando temos poucos pinos disponíveis na placa, também graças aos benefícios do I2C podemos conectar mais sensores. Você pode encontrar o repositório para este projeto aqui. Para este projeto, usaremos um joystick que você pode imprimir em uma impressora 3D ou mandar imprimir na loja de impressão 3D mais próxima.

Os arquivos. STL são anexados no final do projeto. Sua montagem é muito simples, você pode ver em vídeo

Construa seu próprio robôNeste caso, eu construo o robô Mearm v1 que você pode encontrar neste projeto na página do autor aqui

Este é um robô fácil de fazer e controlar porque tem servomotores de 5 volts. Você pode construir ou usar qualquer robô de sua escolha, este projeto terá como foco o controle com o sensor TLV493D.

Suprimentos:

  • x1 Bast Pro Mini M0 Buy in
  • Compra de croquete x1 TLV493D
  • x1 Kit MeArm v1
  • x20 Cabos Dupont
  • x1 Protoboard
  • Botão x2
  • x1 Ímã de 5 mm de diâmetro x 1 mm de espessura

Etapa 1: Conectando o Sensor com Bast Pro Mini M0

Conectando o Sensor com Bast Pro Mini M0
Conectando o Sensor com Bast Pro Mini M0

Para controlar o braço do robô, uma placa de desenvolvimento Electronic Cats é usada, um Bast Pro Mini M0 com um microcontrolador SAMD21E ARM Cortex-M0.

Este chip opera a 48 MHz, com memória de programação de 256 KB, SRAM de 32 KB e opera em uma tensão de 1,6 V a 3,6 V. Graças às suas especificações podemos utilizá-lo para baixo consumo com bom desempenho e também programá-lo com CircuitPython ou alguma outra linguagem que permita microcontroladores.

electroniccats.com/store/bast-pro-mini-m0/

Se você estiver interessado em saber mais sobre este cartão, deixarei para você o link do seu repositório.

github.com/ElectronicCats/Bast-Pro-Mini-M0…

Para controlar o movimento dos servomotores, é utilizado o sensor magnético TLV493D que enviará o sinal para posicionar o servomotor nos graus correspondentes.

Com um único sensor, podemos mover dois servomotores, neste exemplo, usaremos apenas um único sensor e um botão de pressão para controlar a garra.

Outra proposta que você pode fazer é adicionar outro sensor TLV493D e mover o terceiro servo motor e a garra. Se sim, deixe sua experiência nos comentários e convido você a compartilhar o projeto.

A imagem mostra o circuito armado em um protoboard.

  • O primeiro servomotor é para a garra e se conecta ao pino 2
  • O segundo servomotor é para a base do robô e se conecta ao pino 3
  • O terceiro servomotor é para o ombro do robô e se conecta ao pino 4
  • O quarto servomotor é para o cotovelo do robô e se conecta ao pino 5
  • O primeiro botão é para parar qualquer movimento do robô e se conecta ao pino 8 no pull-down com uma resistência de 2.2Kohms.
  • O segundo botão é para o movimento de abertura e fechamento da pinça e é conectado ao pino 9 no pull-down com uma resistência de 2,2 Kohms.

Na imagem do circuito, o sensor TLV493D não aparece porque não foi adicionado para travar, mas um conector de 4 pinos foi adicionado para simular seus conectores VCC, GND, SCL, SDA. Na imagem, eles são colocados na mesma ordem.

  • O primeiro pino se conecta a 3,3 volts na placa
  • O segundo pino se conecta ao GND
  • O terceiro pino SCL se conecta ao pino A5 na placa
  • O quarto pino SDA se conecta ao pino A4 da placa

Graças à vantagem do chip SAMD21 podemos usar qualquer um de seus pinos digitais como saídas PWM, o que nos servirá para enviar a largura de pulso correta para mover o servomotor.

Outra informação importante que deve ser considerada é a alimentação externa para os servomotores, no circuito pode-se observar um conector plug que se conecta a uma fonte de 5volts de 2Amp, para evitar sobrecarregar a placa e danificá-la.

Também não se esqueça de juntar o sinal comum GND da placa e da fonte externa, caso contrário, você teria problemas para controlar os servo motores, pois eles não teriam a mesma referência.

Etapa 2: Codificando o IDE Arduino para Bast Pro Mini M0

Codificando o IDE Arduino para Bast Pro Mini M0
Codificando o IDE Arduino para Bast Pro Mini M0
Codificando o IDE Arduino para Bast Pro Mini M0
Codificando o IDE Arduino para Bast Pro Mini M0
Codificando o IDE Arduino para Bast Pro Mini M0
Codificando o IDE Arduino para Bast Pro Mini M0

A primeira coisa será instalar a placa Bast Pro Mini M0 no IDE do Arduino, os passos podem ser encontrados no repositório Electronic Cats e são importantes para o seu funcionamento.

github.com/ElectronicCats/Arduino_Boards_I…

Quando você tiver pronto o IDE do Arduino, é necessário instalar a biblioteca oficial do sensor TLV493D, acesse https://github.com/Infineon/TLV493D-A1B6-3DMagnet … e vá para Releases.

Na primeira parte do código são declaradas as bibliotecas utilizadas, neste caso, Servo.h para os servomotores e TLV493D.h para o sensor.

Ao usar a biblioteca Servo.h é importante declarar o número de servomotores, embora o robô tenha 4 neste momento, apenas 3 são usados.

Os pinos são declarados para os botões de pressão que irão parar qualquer movimento do robô e a abertura e fechamento da pinça. São declaradas algumas variáveis globais que servirão para saber o estado da garra e se há movimento.

Na segunda parte do código, mostraremos no monitor serial o valor do grau em que os motores estão. Outro ponto importante é estabelecer o limite dos graus em seus servomotores, para isso, é utilizada a função map () que converte o valor dos movimentos do sensor TLV493D para a faixa de 0 a 180 graus do servomotor.

Para a última parte do código, são estabelecidas as condições para acionar o movimento dos servomotores com o botão de pressão e saber em que estado a garra se encontra para seu próximo movimento quando o segundo botão é pressionado. Como você pode ver nas imagens anteriores, o código não é difícil de implementar e entender, no final do projeto você pode encontrar o código.

Você está aprendendo a usar o Circuit Python?

Se você estiver interessado em aprender como usar este IDE, você pode encontrar a placa Bast Pro Mini M0 no link a seguir para baixar o bootloader e começar a programá-lo com Python.

Etapa 3: peças 3D

Se você tem interesse em fazer o projeto, pode baixar as peças em.stl e imprimi-las. Você encontrará os arquivos para a base e o manípulo rotativo.

Recomendado: