Scissor Drive Servo Hat: 4 etapas (com imagens)
Scissor Drive Servo Hat: 4 etapas (com imagens)
Anonim
Image
Image

Esta impressão 3D simples e projeto de servo motor é um sentimento de melhora para Simone Giertz, uma fabricante incrível que acabou de passar por uma cirurgia de remoção de tumor cerebral. O dispositivo de tesoura é acionado por um micro servo motor e microcontrolador Trinket rodando um pequeno código Arduino e é alimentado por uma bateria 3xAAA. Este projeto é uma colaboração com Leslie Birch!

Monte 3D e Servo Mecanismo
Monte 3D e Servo Mecanismo

Eu modelei a placa de base e o suporte do motor usando o Tinkercad, uma ferramenta de modelagem 3D grátis e fácil, que tem um painel de componentes eletrônicos comuns embutidos. Consegui arrastar um micro servo e modelar a base para caber em torno dele e ver onde ele se alinharia com o mecanismo da tesoura.

A cobra tesoura foi projetada por ricswika no Thingiverse, e foi fácil trazê-la para o Tinkercad e modificar a alça e as pontas da garra para se encaixarem em nossa peça base.

Para este projeto, você precisará de:

  • Micro servo motor
  • Chapéu bobo
  • Bola de golfe de plástico
  • Fio de aço com cortadores apropriados
  • Agulha de costura e linha
  • Tesoura
  • Microntrolador Trinket 5V
  • Suporte de bateria 3xAAA
  • Tubulação termorretrátil
  • Ferro de solda e solda
  • Ajudando a ferramenta de terceira mão
  • Decapantes de arame
  • Cortadores diagonais nivelados
  • Fios de conexão fêmea ou alguns pinos de cabeçalho (para conectar ao conector servo padrão)
  • Cola quente

Para acompanhar o que estou fazendo, siga-me no YouTube, Instagram, Twitter, Pinterest e inscreva-se no meu boletim informativo. Como um associado da Amazon, ganho com as compras qualificadas que você faz usando meus links de afiliados.

Encontre este circuito no Tinkercad

O diagrama e a simulação mostram o microcontrolador Attiny85, a bateria e o servo do Trinket. Clique em Iniciar simulação para executar o código e ver a rotação do servo.

Circuitos Tinkercad é um programa baseado em navegador gratuito que permite construir e simular circuitos. É perfeito para aprender, ensinar e criar protótipos.

Etapa 1: modelo Tinkercad

Eu carreguei o modelo básico de cobra tesoura no Tinkercad, em seguida, modifiquei arrastando uma forma de orifício do painel lateral e moldando-os para cobrir cada alça e as garras no final, depois agrupando os orifícios com a forma original. Em seguida, criei novas guias nas extremidades da base e orifícios para prender a bola de golfe de plástico, bem como na base / servo.

A peça base foi modelada do zero usando os componentes de circuito embutidos do Tinkercad. Tirei um micro servo motor do painel de componentes eletrônicos e modelei em torno dele, criando uma interface para proteger o motor e prender a cobra tesoura. Também fiz alguns furos na base para costurá-la no chapéu.

Você pode copiar este design do Tinkercad e exportar cada peça para imprimir você mesmo. A cobra tesoura vertical é para fins de demonstração - não tente imprimir esta parte duplicada. = D

Divulgação: no momento da redação deste artigo, sou funcionário da Autodesk, que fabrica o Tinkercad.

Etapa 2: montar 3D e servo-mecanismo

Monte 3D e Servo Mecanismo
Monte 3D e Servo Mecanismo

Usamos arame de aço rígido para ligar o lado fixo da cobra da tesoura à base e a parte móvel ao servo. Depois de dobrar um ângulo em um pequeno pedaço de arame, usamos contas de joalheria e um pouco de cola quente para prender as outras pontas de nossos "eixos". O próprio servo motor é mantido no lugar com mais do mesmo fio e um pouco de cola quente. Tivemos que fazer algumas experiências com o posicionamento do chifre do servo para permitir que sua amplitude de movimento se sobrepusesse à da cobra tesoura.

Etapa 3: circuito e código do Arduino

Código de circuito e Arduino
Código de circuito e Arduino
Código de circuito e Arduino
Código de circuito e Arduino

As conexões do circuito são as seguintes:

  • Trinket BAT + para alimentação do servo motor
  • Trinket GND para aterramento do servo motor
  • Trinket pino # 0 para sinal do servo motor
  • Energia do pacote de bateria 3xAAA (fio vermelho) para Trinket BAT + (na parte inferior da placa)
  • 3 baterias AAA aterradas (fio preto) para Trinket GND (na parte inferior da placa)

O código do Arduino para este projeto é baseado no exemplo da SoftServo no tutorial Trinket Servo. Você precisará instalar a biblioteca SoftServo para usá-la, o que pode ser feito pesquisando no Gerenciador de Bibliotecas (Sketch -> Incluir Bibliotecas -> Gerenciar Bibliotecas…). Para obter mais informações sobre como instalar e usar bibliotecas de código no Arduino, verifique minha aula gratuita Instructables Arduino, lição 4.

/*******************************************************************

Esboço da SoftServo para Trinket Adafruit. (0 = zero graus, total = 180 graus) A biblioteca necessária é a biblioteca Adafruit_SoftServo disponível em https://github.com/adafruit/Adafruit_SoftServo A biblioteca servo IDE Arduino padrão não funcionará com microcontroladores AVR de 8 bits como Trinket e Gemma devido a diferenças no hardware de temporizador disponível e programação. Nós simplesmente atualizamos pegando carona no contador timer0 millis (). Hardware necessário inclui um microcontrolador Adafruit Trinket um servo motor. pin mapeamentos Trinket: BAT + Gnd Pin # 0 Conexão: Servo + - Servo1 ************************************* ********************************* / #include // SoftwareServo (funciona em pinos não PWM) // Demonstramos dois servos ! #define SERVO1PIN 0 // Linha de servo controle (laranja) no Trinket Pin # 0 int pos = 40; // variável para armazenar a posição do servo Adafruit_SoftServo myServo1; // cria o objeto servo void setup () {// Configure a interrupção que irá atualizar o servo para nós automaticamente OCR0A = 0xAF; // qualquer número está OK TIMSK | = _BV (OCIE0A); // Liga a interrupção de comparação (abaixo!) MyServo1.attach (SERVO1PIN); // Anexe o servo ao pino 0 em Trinket myServo1.write (pos); // Diz ao servo para ir para a posição por quirk delay (15); // Espere 15ms para o servo atingir a posição} void loop () {for (pos = 40; pos = 40; pos- = 3) // vai de 180 graus para 0 graus {myServo1.write (pos); // diz ao servo para ir para a posição na variável 'pos' delay (15); // espera 15ms para o servo alcançar a posição}} // Aproveitaremos o timer interno millis () que dispara // para controlar o tempo e atualizaremos o servo a cada 20 milissegundos volátil uint8_t counter = 0; SIGNAL (TIMER0_COMPA_vect) {// é chamado a cada 2 milissegundos contador + = 2; // a cada 20 milissegundos, atualize os servos! if (contador> = 20) {contador = 0; myServo1.refresh (); }}