Índice:

Arduino Controlled Servo Robot (SERB): 7 etapas (com imagens)
Arduino Controlled Servo Robot (SERB): 7 etapas (com imagens)

Vídeo: Arduino Controlled Servo Robot (SERB): 7 etapas (com imagens)

Vídeo: Arduino Controlled Servo Robot (SERB): 7 etapas (com imagens)
Vídeo: DIY Servo Robotic Arm | Record and play | Arduino projet 2024, Novembro
Anonim
Servo-robô controlado por Arduino (SERB)
Servo-robô controlado por Arduino (SERB)
Servo-robô controlado por Arduino (SERB)
Servo-robô controlado por Arduino (SERB)
Servo-robô controlado por Arduino (SERB)
Servo-robô controlado por Arduino (SERB)
Servo-robô controlado por Arduino (SERB)
Servo-robô controlado por Arduino (SERB)

Qual a melhor maneira de começar a experimentar microcontroladores de código aberto (Arduino) do que construir seu próprio robô de código aberto (CC (SA -BY))? O que fazer com seu SERB?

  • (aqui) - Como conectar seu SERB à Internet e conduzi-lo por meio de uma chamada de vídeo do Skype.
  • (aqui) - Como controlar seu SERB usando acelerômetros de nunchuck de Wii
  • (aqui) - Como adicionar bigodes de detecção de obstáculos ao seu robô
  • (aqui) - Como fazer 30 kits (Manufatura Aberta)

Recursos:

  • Totalmente programável usando um microcontrolador Arduino Duemilanove (ou outro microcontrolador de sua escolha).
  • Não há necessidade de soldar.
  • Escolha de opções de corte para peças de acrílico. (serra de rolagem, acesso a um cortador a laser, compra de peças pré-cortadas)
  • Facilmente expansível e modificável com orifícios de parafuso extras e placa de ensaio incluída.
  • Roda traseira com rolamento duplo de esferas.
  • Instalado e funcionando em 1 a 2 horas. (do kit)
  • Design de código aberto (construa quantos quiser)

(Shameless Plug) No Reino Unido e gosta de coisas do Arduino? confira nossa loja da web recém-inaugurada oomlout.co.uk. Um vídeo rápido de um robô servo controlado por Arduino concluído - (SERB) executando o programa de teste incluído (etapa 6) Nota: Os arquivos de origem estão disponíveis em um Instructable paralelo (Arquivos de origem para) - Como fazer um servo-robô controlado por Arduino - (SERB)

Etapa 1: Peças e Ferramentas

Peças e Ferramentas
Peças e Ferramentas

Todos os parafusos podem ser encontrados no Home Depot local. As outras peças podem ser encontradas online (incluí um link para minha fonte favorita para cada uma). Lista de peças: Um pacote contendo todos os itens de hardware pode ser comprado na loja de oomlout.com (aqui) ($ 120) Porcas e parafusos:

  • Parafuso de 3 mm x 15 mm (x 20)
  • Parafuso de 3 mm x 10 mm (x 12)
  • Porca de 3 mm (x34)
  • Arruela de 3 mm (x12)
  • Parafuso de 8 mm x 25 mm (x2)
  • Porca de 8 mm (x2)
  • Rolamentos de patins (x2) (VXB) (são rolamentos de patins padrão para que possam ser recuperados de um par de patins ou de um skate)

Pneus

  • Anel de vedação grande (4,5 "ID 3/16" Bead Dash # 349) (x2) (McMaster-Carr Product # 9452K407)
  • Anel de vedação pequeno (3/4 "ID 3/16" Bead Dash # 314) (x1) (produto McMaster-Carr # 9452K387)

Eletrônicos

  • Arduino Duemilanove (x1) (galpão do fabricante)
  • Servo de rotação contínua (x2) (paralaxe)
  • 400 Placa de teste de contato (x1) (todos os eletrônicos))
  • Caixa de bateria quad AA (x1) (todos os eletrônicos)
  • Clipe de bateria de 9 V (x1) (todos os eletrônicos)
  • Plugue de 2,1 mm (x1) (todos os eletrônicos)
  • Conector de 3 pinos (x2) (todos os eletrônicos)
  • Cabo USB A-B - estilo impressora (x1) (todos os eletrônicos) (não incluído no kit)

Baterias:

  • Bateria AA (x4) (não incluída no kit)
  • Bateria 9v (x1) (não incluída no kit)

Fio: (todos os fios são 22 AWG sólidos, comprei o meu através da McMaster-Carr)

  • 15 cm roxo (x2)
  • 15 cm Preto (x1)
  • 5 cm Preto (x2)
  • 5 cm Vermelho (x2)

Ferramentas

  • Chave de fenda (x1) (Philips)
  • Alicate de ponta fina (x1)

Etapa 2: Corte de peças

Peças de corte
Peças de corte
Peças de corte
Peças de corte
Peças de corte
Peças de corte
Peças de corte
Peças de corte

Escolha quais etapas seguir com base na opção de corte que você escolheu. Opção 1 (Compra de peças pré-cortadas)

Compre um chassi pré-cortado na loja de oomlout.com (aqui) ($ 60 incluindo frete para os EUA e Canadá)

Opção 2 (Fabricação digital (ou seja, Ponoko) / Acesso a um cortador a laser)

  • Baixe o layout do cortador a laser ("03 SERB Ponoko Cutting Layout P2.eps" ou "03- (SERB) -Ponoko Cutting Layout (P2).cdr")
  • Corte os arquivos usando Ponoko ou em seu próprio cortador a laser (usando acrílico de 3 mm, 0,118 "(às vezes vendido como 0,125")

Opção 3 (serra giratória e broca)

  • Baixe e imprima o padrão PDF (escolha o arquivo correspondente ao tamanho do papel) 03- (SERB) -ScrollSaw Pattern (letter).pdf 03- (SERB) -ScrollSaw Pattern (A4).pdf (é importante não dimensionar o desenho durante a impressão)
  • Meça a régua na impressão em relação a uma régua em que você confia, se elas não corresponderem ao padrão foi dimensionado e você precisa verificar as configurações da impressora antes de reimprimir. Se eles corresponderem, em diante.
  • Cole o padrão na folha de acrílico (3 mm, 0,118 "(às vezes vendida como 0,125").
  • Faça furos.
  • Peças recortadas usando uma serra circular

Etapa 3: Montagem

conjunto
conjunto
conjunto
conjunto
conjunto
conjunto

Parabéns por ter chegado até aqui 90% do processo está completo, basta baixar as instruções de montagem nesta etapa (04- (SERB) -Assembly Guide.pdf) e depois de uma pequena montagem no estilo lego / mecano você estará pronto para conectar. Para entretê-lo ao longo do caminho, aqui está um lapso de tempo da minha assembléia:

Etapa 4: Fiação

Fiação
Fiação
Fiação
Fiação

Com todas as peças grandes juntas é hora de adicionar os veios elétricos que permitirão que nosso robô seja controlado. Para fazer isso baixe e imprima o diagrama de fiação (05- (SERB) -Wiring Diagram.pdf). À primeira vista, pode parecer um tanto assustador, no entanto, se você fizer cada conexão sequencialmente e levar o seu tempo, ela se formará muito rapidamente. A fiação é bastante simples e nenhum dano pode ocorrer ao seu circuito até que você adicione as baterias. Portanto, conecte tudo, verifique e adicione energia.

Etapa 5: Teste e solução de problemas

Teste e solução de problemas
Teste e solução de problemas

Se você solicitou um kit, seu Arduino veio pré-carregado com um programa de teste. Basta colocar 4 baterias AA e conectar a bateria de 9 V ao Arduino. E se tudo tiver sido feito corretamente, seu robô começará a se mover (ele girará em uma direção aleatória por um tempo entre 0,1 e 1 segundo antes de avançar por um tempo aleatório entre 1 e 2 segundos e então pausará por 2 segundos antes de começar novamente). Se você não adquiriu um kit, uma etapa adicional é necessária. Baixe o arquivo zip anexado (07- (SERB) - SERB-Test Arduino Program.zip). Em seguida, descompacte-o no diretório de esboço do Arduino (padrão "my Documents / Arduino \") e baixe-o para a placa do arduino. (se você for novo no Arduino, pule uma etapa onde há links para ótimos tutoriais de introdução) Problemas comuns: Meu SERB se move lentamente quando deveria ser interrompido. Este é o resultado de seus servos não estarem calibrados corretamente, para calibrar seus servos espere até que seu programa tenha os servos parados, então com uma pequena chave de fenda gire o potenciômetro dentro do servo (a pequena abertura na caixa do servo logo acima de onde os fios estão) Gire para a esquerda ou direita até que o servo esteja realmente parado. As coisas não estão funcionando bem. Envie-nos um e-mail com seus sintomas e nós tentaremos ajudá-lo, enquanto você espera por uma resposta, verifique todos os seus fios com o diagrama de fiação da etapa 4. Se você encontrar qualquer problema, por favor, adicione um comentário para este Instructable ou envie um e-mail para [email protected] e faremos o possível para ajudá-lo a colocar o seu SERB em funcionamento

Etapa 6: Programação

Programação
Programação

O robô físico terminou a hora de começar a dar-lhe um cérebro. Antes de entrarmos nos detalhes da programação de um Arduino Controlled Servo Robot - (SERB) - alguns links para alguns excelentes recursos de programação do Arduino na internet. Arduino Starter Guide - Um guia para ajudá-lo a começar com o Arduinos, desde o download do ambiente de programação até a escrita do seu primeiro programa. Arduino Programming Reference - Um guia completo e fácil de consultar para a linguagem de programação do Arduino. Como funcionam os servos - Um guia rápido de como funcionam os servo motores. Arduino Servo Library - Como funciona a biblioteca Arduino Servo (como controlamos nossos servos). Tudo bem com o aprendizado fora do caminho, vamos programar. Existem três maneiras de começar a programar seu Arduino Controlled Servo Robot - (SERB). Opção 1: (Modificando SERB_Test.pde) Às vezes, ao programar, a coisa mais fácil de fazer é pegar um programa funcional e começar a adicionar seu próprio código a ele. Para fazer isso, baixe o programa compactado SERB_Test (07- (SERB) - SERB-Test Arduino Program.zip). Prossiga para descompactá-lo na pasta de esboço do Arduino (padrão "Meus Documentos / Arduino \"). Por fim, abra o ambiente de programação Arduino e baixe-o para o seu Arduino. (), setSpeed (int) etc.). Para isso baixe as rotinas no arquivo texto (07- (SERB) - Simple Routines Text.txt). 1. Copie e cole a parte do preâmbulo no início do seu programa.2. Copie e cole a parte da rotina no corpo do seu programa.3. Adicione uma chamada para serbSetup (); para sua rotina setup (). Opção 3: (Criando seu próprio programa do zero) Isso não é muito difícil. Tudo o que é necessário é se familiarizar com a Arduino Servo Library. Em seguida, o servo direito é conectado ao pino 9 e o servo esquerdo ao pino 10. Nota: Programas adicionais serão adicionados aqui à medida que forem desenvolvidos; ou se você desenvolve algo e gostaria que fosse apresentado, envie-me uma mensagem privada e ela poderá ser adicionada. Apêndice: (Código SERB_Test.pde)

/ * * Arduino Controlled Servo Robot (SERB) - Programa de Teste * Para obter mais detalhes, visite: https://www.oomlout.com/serb * * Comportamento: Um programa de teste simples que faz com que o SERB * gire aleatoriamente para a esquerda ou direita por um * período de tempo aleatório entre 0,1 e 1 segundo. * O SERB irá então avançar por um período de tempo aleatório * entre 1 e 2 segundos. Finalmente * pausando por 2 segundos antes de começar novamente. * * Fiação: Sinal Servo Direito - pino 9 * Sinal Servo Esquerdo - pino 10 * * Licença: Este trabalho está licenciado sob a Creative Commons * Licença de Atribuição-Compartilhamento pela mesma Licença 3.0 Unported. Para * visualizar uma cópia desta licença, visite * https://creativecommons.org/licenses/by-sa/3.0/ * ou envie uma carta para Creative Commons, 171 Second * Street, Suite 300, San Francisco, California 94105, * EUA. * * / // --------------------------------------------- ----------------------------- // INÍCIO DO ARDUINO CONTROLLED SERVO ROBOT (SERB) PREÂMBULO # include #define LEFTSERVOPIN 10 #define RIGHTSERVOPIN 9Servo deixouServo; Servo direitoServo; velocidade interna = 100; // define a velocidade do robô (ambos os servos) // uma porcentagem entre 0 e 100 // FIM DO SERVO ROBÔ CONTROLADO DE ARDUINO (SERB) PREÂMBULO // ---------------- -------------------------------------------------- -------- / * * define os pinos nos estados apropriados e conecta os servos. Em seguida, faz uma pausa * por 1 segundo antes de o programa iniciar * / void setup () {serbSetup (); // define o estado de todos os // pinos necessários e adiciona servos ao seu esboço randomSeed (analogRead (0)); // define a semente do número aleatório com // algo de atraso levemente aleatório (1000);} / * * gira o robô para a esquerda ou direita (aleatoriamente) por um período entre * 0,1 e 1 segundo. Antes de prosseguir por um período de tempo aleatório * entre 1 e 4 segundos. Antes de fazer uma pausa de dois segundos e depois começar * novamente. * / Void loop () {turnRandom (100, 1000); // Vira aleatoriamente para a esquerda ou direita por um // período aleatório entre 0,1 segundo // e um segundo goForwardRandom (1000, 2000); // Avança por um período de tempo aleatório // entre // 1 e 2 segundos goStop (); // Pára o atraso do robô (2000); // pausa por 2 segundos (enquanto parado)} / * * vira o robô aleatoriamente para a esquerda ou direita por um período de tempo aleatório entre * minTime (milissegundos) e maxTime (milissegundos) * / void turnRandom (int minTime, int maxTime) {int escolha = aleatório (2); // Número aleatório para decidir // entre esquerda (1) e direita (0) int turnTime = random (minTime, maxTime); // Número aleatório para a pausa // tempo if (choice == 1) {goLeft ();} // Se random number = 1 then turn // left else {goRight ();} // Se random number = 0 then turn // right delay (turnTime); // atraso para tempo aleatório} / * * avança por um período de tempo aleatório entre minTime (milissegundos) * e maxTime (milissegundos) * / void goForwardRandom (int minTime, int maxTime) {int forwardTime = random (minTime, maxTime); // determina um tempo aleatório para // avançar goForward (); // define o atraso de encaminhamento do SERB (forwardTime); // atrasos para período de tempo aleatório} // ---------------------------------------- -------------------------------- // INÍCIO DAS ROTINAS DO SERVO ROBÔ CONTROLADO POR ARDUINO (SERB) / * * configura seu arduino para endereçar seu SERB usando as rotinas incluídas * / void serbSetup () {setSpeed (speed); pinMode (LEFTSERVOPIN, OUTPUT); // define o pino do servo-sinal esquerdo // para output pinMode (RIGHTSERVOPIN, OUTPUT); // define o pino do sinal servo direito // para a saída leftServo.attach (LEFTSERVOPIN); // anexa o servo esquerdo rightServo.attach (RIGHTSERVOPIN); // anexa o servo direito goStop ();} / * * define a velocidade do robô entre 0- (parado) e 100- (velocidade total) * NOTA: a velocidade não mudará a velocidade atual, você deve alterar a velocidade * e então chamar um dos métodos go antes que as alterações ocorram. * / void setSpeed (int newSpeed) {if (newSpeed> = 100) {newSpeed = 100;} // se a velocidade for maior que 100 // torná-la 100 if (newSpeed <= 0) {newSpeed = 0;} // se a velocidade for menor que 0, torne // 0 speed = newSpeed * 0.9; // dimensiona a velocidade para ser // entre 0 e 90} / * * envia o robô para frente * / void goForward () {leftServo.write (90 + velocidade); rightServo.write (90 - velocidade);} / * * envia o robô para trás * / void goBackward () {leftServo.write (90 - velocidade); rightServo.write (90 + velocidade);} / * * envia o robô para a direita * / void goRight () {leftServo.write (90 + velocidade); rightServo.write (90 + velocidade);} / * * envia o robô para a esquerda * / void goLeft () {leftServo.write (90 - velocidade); rightServo.write (90 - velocidade);} / * * pára o robô * / void goStop () {leftServo.write (90); rightServo.write (90);} // FIM DAS ROTINAS DO SERVO ROBÔ CONTROLADO DE ARDUINO (SERB) // ---------------------------- -----------------------------------------------

Etapa 7: Terminado, Outros que Terminaram e o Futuro

Terminado, outros que terminaram e o futuro
Terminado, outros que terminaram e o futuro
Terminado, outros que terminaram e o futuro
Terminado, outros que terminaram e o futuro
Terminado, outros que terminaram e o futuro
Terminado, outros que terminaram e o futuro
Terminado, outros que terminaram e o futuro
Terminado, outros que terminaram e o futuro

Parabéns por chegar até aqui e espero que você esteja se divertindo com seu Arduino Controlled Servo Robot - (SERB). SERB de Michael Beck -Michael encontrou os planos para o SERB em Thingiverse.com e cortou de acrílico amarelo e vermelho. Acho que parece ótimo. SERB de Mike - Mike (do clube de robôs ROBOMO de St. Louis Area) pediu a um amigo que cortou um chassi SERB a laser e usou seu próprio conhecimento robótico para colocá-lo em funcionamento. Eu acho que fica incrível feito em azul. (verifique seu site para obter detalhes sobre isso, bem como seus outros robôs (aqui) Esta seção terá detalhes sobre desenvolvimentos e anexos futuros (eles serão apresentados aqui antes de serem devidamente documentados). Mas eu também gostaria de mostrar fotos de SERBs de outras pessoas. Então, se você terminou, envie-me uma mensagem privada com uma foto e algumas palavras (seja uma descrição ou um link para seu site) e eu adicionarei aqui. (Shameless Plug) Se você gostou este pode ser instruído em oomlout.com para outros divertidos projetos de código aberto.

Primeiro prêmio no concurso SANYO eneloop a bateria

Recomendado: