Índice:

Controlador Arduino para fotografia automatizada de produtos em 360 °: 5 etapas (com imagens)
Controlador Arduino para fotografia automatizada de produtos em 360 °: 5 etapas (com imagens)

Vídeo: Controlador Arduino para fotografia automatizada de produtos em 360 °: 5 etapas (com imagens)

Vídeo: Controlador Arduino para fotografia automatizada de produtos em 360 °: 5 etapas (com imagens)
Vídeo: Arduino Controller for DIY Automated Turntable with Camera Shutter for 360° Product Photography 2024, Julho
Anonim
Image
Image
Reúna peças e arquivos
Reúna peças e arquivos

Vamos construir um controlador baseado em Arduino que controle um motor de passo e um obturador de câmera. Junto com uma mesa giratória acionada por motor de passo, este é um sistema poderoso e de baixo custo para fotografia automatizada de produtos em 360 ° ou fotogrametria. O obturador automático da câmera é baseado em uma grande biblioteca de „Sebastian Setz“e funciona para câmeras com disparo infravermelho da Nikon, Canon, Minolta, Olympus, Pentax, Sony.

Preparei duas versões do controlador:

  • Uma versão básica que é operada com um botão simples e um led de status.
  • Uma versão avançada que utiliza um teclado 16x2 LCD + escudo e, portanto, possui um menu para alterar as variáveis „on the fly“e não apenas no código fonte.

O que o controlador faz?

Se você acionar um „photoshooting“pressionando o botão, o toca-discos executa uma revolução completa, dividida em uma quantidade predefinida de etapas. Após cada etapa de rotação, o controlador faz uma pequena pausa e aciona a câmera. Você poderá alterar as variáveis da velocidade de rotação, o tempo de atraso e o número de etapas no código-fonte (para versão de controlador simples) ou no menu de exibição (versão de controlador avançado).

Etapa 1: reunir peças e arquivos

Reúna peças e arquivos
Reúna peças e arquivos
Reúna peças e arquivos
Reúna peças e arquivos

Partes:

  • Arduino Uno (ou similar)
  • Placa de ensaio (encaixe de placa de ensaio de meio tamanho)
  • Driver do motor de passo Easydriver
  • 2X dissipador de calor para Easydriver (opcional, mas ALTAMENTE recomendado) https://www.sparkfun.com/products/11510Você precisará de fita térmica para fixar o dissipador de calor no chip. Se você encomendar o seu dissipador de calor, certifique-se de que a fita térmica está incluída ou pode ser encomendada separadamente.
  • LED infravermelho 950nm (para gatilho de câmera infravermelho)
  • Resistor 220 ohms (pré-resistores para LED infravermelho)
  • Elemento de som piezo (opcional, se você quiser sons de feedback)
  • Alguns fios de ligação
  • Fonte de alimentação externa para motor de passo Fiz boas experiências com um adaptador de alimentação 12V 1A para acionar um motor de passo 1A NEMA 17 da Trinamic. Eu também usei um adaptador de energia 24V 3A. A placa Easydriver suporta até 30 V e 750 mA por fase. Mais sobre as especificações do easydriver aqui:
  • Soquete para fonte de alimentação externa do motor de passo
  • Bipolar NEMA 17 Steppermotor and Turntable, por exemplo o FluxGarage „Plataforma giratória automatizada com Steppermotor“Link:

Adicionar para botão de controle básico …

  • Botão de apertar
  • Resistor de 10k ohms (para o botão)
  • LED (led de status)
  • Resistor 220 ohms (pré-resistores para LED de status)

… OU adicione para controlador avançado com menu display + teclado:

Kit Adafruit LCD Shield com display de caracteres 16x2, por ex

Baixe os códigos do Arduino e os diagramas Fritzing para o controlador básico e avançado:

Se você deseja abrir o documento Fritzing para o controlador avançado, certifique-se de baixar e instalar os elementos adafruit:

Observação: nas fotos estou usando o FluxGarage „Tinkerer's Baseplate“e o FluxGarage „Front Plate for 16x2 LCD + Keypad Shield“. Usar esses elementos é opcional, se você também quiser usá-los, clique nos links para os respectivos instructables.

Etapa 2: montar o circuito

Circuito de montagem
Circuito de montagem
Circuito de montagem
Circuito de montagem
Circuito de montagem
Circuito de montagem

Placa de solda Easydriver para uso em protoboard: Para usar o easydriver em uma protoboard, você precisa soldar alguns pinos machos na placa. A melhor maneira é colocar os conectores de pinos machos na placa de ensaio, colocar a chave fácil em cima e soldar os pinos.

Fiação: Faça a fiação das peças conforme mostrado no gráfico de Fritzing referente ao controlador básico ou avançado. Baixe os diagramas do Firtzing no github, encontre os links na etapa 1.

Verifique se tudo está conectado da seguinte maneira:

  • Arduino digital pin 02 = dir pin do Easydriver
  • Arduino digital pin 03 = step pin do Easydriver
  • Pino digital do Arduino 09 = saída para piezo
  • Pino digital 12 do Arduino = saída para LED infravermelho (coloque o pré-resistor de 220 ohms antes do led)

+ para controlador básico:

  • Pino digital do Arduino 04 = entrada para o botão de pressão (coloque o resistor de 10k ohms antes do aterramento do botão)
  • Pino digital 13 do Arduino = saída para LED de status (coloque o pré-resistor de 220 ohms antes do led)

+ para controlador avançado:

Empilhe a tela + proteção do teclado no arduino, na verdade esses pinos são usados: pino analógico do Arduino A4 + A5 e 5V + GND

Conecte o motor de passo: A fiação de motores de passo bipolares (4 fios) consiste em conectar as duas bobinas (A e B) do motor aos pinos direitos da placa easydriver. Dê uma olhada no gráfico no meio desta página e no especificações de seu motor de passo específico:

Você também pode encontrar mais informações sobre a fiação de seu motor de passo e do Easydriver aqui:

Conecte a fonte de alimentação externa A placa Easydriver possui dois pinos de alimentação separados no lado superior direito (M + e aterramento). Enquanto a própria placa ganha energia do Arduino, a entrada separada fornece energia para o motor de passo. Se você usar um adaptador de força "pronto para uso" típico e um soquete, você deve conectar o fio "+" ao pino "M +" do easydriver e o fio "-" ao pino "GND" do easydriver. Normalmente o „+“está no lado interno, enquanto o „-“está no lado externo do plugue. Mas tenha cuidado, alguns adaptadores de energia permitem mudar a polaridade! Se você ligar o seu easydriver incorretamente, ele pode e provavelmente será danificado, tenha isso em mente.

Etapa 3: fazer upload do código fonte para o Arduino

Carregar código fonte para o Arduino
Carregar código fonte para o Arduino

Baixe o código fonte do Arduino no Github:

Baixe o IDE do Arduino:

www.arduino.cc/en/Main/Software

Baixe as bibliotecas de terceiros e copie-as para a pasta da biblioteca do seu IDE:… para o obturador da câmera: https://github.com/dharmapurikar/Arduino/tree/mast…… para o monitor Adafruit 16x2 + proteção do teclado: https:// github.com/adafruit/Adafruit-RGB-LCD-Shiel…

O código foi testado e funciona bem com o Arduino IDE mais recente (1.8.7 no Windows) e Arduino Uno + Driver do motor de passo Easydriver + Monitor Adafruit 16x2 + Proteção do teclado, + um motor de passo Trinamic e uma câmera Nikon D60.

Ajuste o código para trabalhar com sua câmera específica: Como mencionado, usei a biblioteca „multiCameraIrControl.h“de Sebastian Setz. Para que funcione para a sua câmera, você deve excluir as barras de comentário antes do nome do fabricante da câmera e, claro, adicionar barras antes de todos os outros nomes de fabricante:

// Definir tipo de câmeraNikon D5000 (12); // Canon D5 (12); // Minolta A900 (12); // Olympus E5 (12); // Pentax K7 (12); // Sony A900 (12);

Faça o ajuste semelhante na função "snap":

// Faça um snap picturevoid () {D5000.shotNow (); // D5.shotNow (); // A900.shotNow (); // E5.shotNow (); // K7.shotNow (); // A900.shotNow ();}

Observação: infelizmente, ainda não fui capaz de testar outras câmeras acionadas por infravermelho além da minha Nikon D60. A biblioteca do obturador de câmera deve funcionar com várias câmeras de diferentes fabricantes, não apenas com os modelos de câmera específicos mencionados no código. Seria ótimo se você postasse um comentário sobre suas experiências com sua câmera Canon, Minolta, Olympus, Pentax ou Sony.

Etapa 4: operar o controlador

Operar o controlador
Operar o controlador
Operar o controlador
Operar o controlador

O que faz o código, respectivamente, o controlador faz? Se você apertar o botão, um "photoshooting" é acionado. Cada sessão de fotos é um loop finito da seguinte sequência:

  1. Câmera é acionada
  2. Atraso curto
  3. O motor de passo irá girar uma quantidade predefinida de graus
  4. Atraso curto

Uma sessão de fotos é baseada em um conjunto de variáveis que determinam seu comportamento exato. Você pode alterar essas variáveis no código-fonte (para versão do controlador simples) ou no menu de exibição (versão do controlador avançado).

Operando o controlador básico:

No controlador básico, o LED de status mostra quando o sistema está pronto para funcionar. O LED apaga quando você inicia uma sessão de fotos. Você pode interromper uma sessão de fotos segurando o botão até que o “som de interrupção” apareça e o toca-discos pare. Dê uma olhada no vídeo na seção superior deste instrutível para ver isso na "vida real".

As variáveis da sessão de fotos podem ser encontradas na seção superior do código e podem ser alteradas para modificar a sessão de fotos. Abaixo você pode ver os valores iniciais:

passos de tiro int = 20; // número de passos para uma revolução completa, deve ser 10, 20 ou 40float shootingspeed = 0.01; // velocidade de rotação: qualquer número de.01 -> 1 com 1 sendo mais rápido - Mais lento é mais forte (mais lento = melhor para objetos „pesados“) int shootingdelay = 1000; // quebra em milissegundos antes e depois de cada rotação

Operando o controlador avançado:

Ao ligar o controlador avançado, um logosplash do FluxGarage é mostrado por 4 segundos. Depois disso, o controlador está pronto para executar e mostra uma lista do conjunto ajustável de variáveis:

  • ST = Número de etapas, pode ser 10, 20 ou 40
  • SP = Velocidade de rotação, pode ser 1-5 enquanto 1 é o mais lento
  • DE = Atraso antes e depois de cada etapa em décimos de segundo, pode ser 5, 10, 25, 50
  • LI = Determina se a luz de fundo do monitor está ligada ou desligada durante a captura. Pode ser 1 = ligado ou 0 = desligado

Você pode navegar pelos tipos de variáveis com os botões esquerdo e direito e alterar os valores com os botões para cima e para baixo. Inicie uma sessão de fotos pressionando o botão selecionar e interrompa uma sessão de fotos segurando o botão selecionar até que apareça o “som de interrupção”. Dê uma olhada no vídeo na seção superior deste instrutível para ver isso na "vida real".

Etapa 5: comece a fotografar

Comece a atirar
Comece a atirar

Se você construiu seu próprio controlador + toca-discos e sua câmera está no lugar, você está pronto para começar a fotografar … quase. Deixe-me compartilhar algumas lições de minhas próprias experiências:

  • Use uma tenda leve para iluminar seus objetos uniformemente. Você pode encontrar muitos bons tutoriais aqui em instructables.com que mostram como criar uma caixa de luz DIY. Além disso, existem barracas leves de tecido de baixo custo que podem ser compradas em muitas lojas online.
  • Use lâmpadas com a mesma temperatura de cor (Kelvin)
  • Foque o objeto na plataforma giratória manualmente, desative o foco automático da sua câmera
  • Desligue o estabilizador de imagem da câmera, se estiver trabalhando com um tripé
  • Selecione uma faixa de medição no fundo, onde o objeto fotografado não aparecerá. Ao fazer isso, você evitará oscilações na sequência de imagens. Outra forma é definir manualmente os tempos de exposição da câmera, etc.
  • Se você quiser incluir suas imagens 360 em seu site, use plug-ins de javascript como „Jquery Reel Plugin“de Petr Vostřel alias „PISI” → https://jquery.vostrel.cz/reel Se360 Degrees Product Viewer “por„ Codyhouse “→

Este é o resultado de um dos meus tiroteios (criado com a configuração acima):

Recomendado: