fbpixel
Etiquetas: ,

A câmera Pixy2 é um sistema de reconhecimento visual assistido por computador. Ela permite ao microcontrolador detectar cores ou linhas, para criar um robô que segue uma linha ou para apanhar objetos coloridos, por exemplo.

Material

  • Computador
  • Arduino UNO, Mega ou Nano
  • Cabo USB A Macho/B Macho
  • Câmera Pixy2

Princípio de funcionamento

A câmera Pixy2 é um sistema de visão completo, equipado com um sensor de imagem e um microprocessador. Ela inclui algoritmos de aprendizagem e detecção de cores, linhas, interseções e de pequenos códigos de barras. A Pixy2 incorpora toda a tecnologia necessária para o reconhecimento visual.

Especificações técnicas

  • Processador: NXP LPC4330, 204 MHz, núcleo duplo
  • Sensor de imagem: Aptina MT9M114, resolução 1296×976 com processador de fluxo de imagem integrado
  • Consumo de energia: 140 mA típico
  • Consumo de energia: entrada USB (5V) ou entrada não regulada (6V a 10V)
  • Dados disponíveis: Série UART, SPI, I2C, USB, digital, analógico
  • Dimensões: 38,1 x 41,91 x 15,24mm
  • Peso : 10g
fetch.php?w=640&tok=bfa5e6&media=wiki:v2:pixy2_front_labeled Visão computacional com o Arduino e a câmera Pixy2
fetch.php?w=640&tok=1ad7a1&media=wiki:v2:pixy2_back_labeled Visão computacional com o Arduino e a câmera Pixy2

Esquema

A câmera Pixy2 comunica facilmente com microcontroladores por meio das suas interfaces de comunicação (UART, SPI, I2C, USB). Ela se conecta à entrada ICSP da placa Arduino.

arduino-icsp-port Visão computacional com o Arduino e a câmera Pixy2
arduino-mega-pixy2-connexion-icsp Visão computacional com o Arduino e a câmera Pixy2

Configuração da câmera Pixy2

Faça o download do software pixymon.

Abra o software PixyMon v2.

software-pixymonv2-color-connected Visão computacional com o Arduino e a câmera Pixy2

Aprendizagem de reconhecimento

Antes de poder utilizar a Pixy2, é preciso ensiná-la a reconhecer os objetos de interesse e atribuir-lhes uma assinatura (identificador). É possível registrar até 7 assinaturas.

  • pressione o botão na parte superior da câmera até o LED ficar vermelho, então solte-o.
  • coloque um objeto em frente à câmera
software-pixymonv2-color-connected-setting Visão computacional com o Arduino e a câmera Pixy2
  • pressione o botão novamente para registrar o objeto
software-pixymonv2-color-connected-set Visão computacional com o Arduino e a câmera Pixy2

Terminada a aprendizagem, podemos ver o objeto emoldurado por um retângulo com a assinatura escrita no centro.

Se tiver problemas para reconhecer o objeto aprendido, é possível definir a sensibilidade do reconhecimento nas configurações. Vá para file -> configure na aba tuning e manipule as configurações para obter o resultado desejado.

Alguns objetos não são facilmente reconhecíveis. Tente encontrar objetos com formas diferenciadas e cores fortes e distintas.

Código

Instale a biblioteca Pixy2 do Arduino. A função mais importante é a getBlocks(), que devolve o número de elementos detectados e informações como as suas assinaturas (identificador após a aprendizagem) e dimensões.

//Libraries
#include <Pixy2.h>//https://github.com/charmedlabs/pixy2/raw/master/releases/arduino/arduino_pixy2-1.0.3.zip

//Variables
Pixy2 pixy;

void setup() {
  //Init Serial USB
  Serial.begin(9600);
  Serial.println(F("Initialize System"));
  //Init Pixy2
  pixy.init();
}

void loop() {
  testPixy();
}

void testPixy() { /* function testPixy */
  //// Get blocks from Pixy2
  // grab blocks!
  pixy.ccc.getBlocks();

  // If there are detect blocks, print them!
  if (pixy.ccc.numBlocks) {
    Serial.print("Detected ");
    Serial.println(pixy.ccc.numBlocks);
    for (int i = 0; i < pixy.ccc.numBlocks; i++) {
      Serial.print("  block ");
      Serial.print(i);
      Serial.print(": ");
      pixy.ccc.blocks[i].print();
    }
  }
}

Se encontrar problemas de compilação, pode apagar os arquivos zumobuzzzer e zumomotor (.h e .cpp) na pasta da biblioteca Documents\Arduino\libraries\Pixy2

Resultado

Uma vez carregado o código, a câmera envia mensagens ao Arduino assim que o objeto aparece no seu campo de visão. Desse modo, é possível obter a assinatura do objeto, suas dimensões e sua posição.

arduino-pixy2-color-tracking-result Visão computacional com o Arduino e a câmera Pixy2

Aplicações

Fontes

Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie