본문 바로가기

모듈/Pixy2

Pixy2 cam 아두이노와 통신하기

728x90
반응형

Pixy2 cam 통신


 

Pixy2 cam과 아두이노 통신을 위해 기본 포트로 ICSP SPI를 이용했는데요.  간단하게 리본 케이블로 연결만 해주면 되었습니다.

 

그 외에도 Slave Select를 사용하는 SPI with SS, I2C, UART통신을 이용할 수 있고,

anlaog/digital output도 제공하고 있습니다.

추천하는 순서는 USB → SPI → I2C →UART 라고하네요.

저는 I2C통신을 예시로 보여드리겠습니다.


I2C 통신


먼저 PixyMon에서 Data ouput port 선택을 해주어야 합니다.

 

그 다음, I2C의 경우 5V, ground, I2C SDA, I2C SCL의 핀이 필요합니다.

제가 사용한 핀은 위의 그림 4가지입니다.

  • 5V
  • ground(6)
  • I2C SCL(5)
  • I2C SDA(9)

pixy I2C SCL 5번핀은 아두이노우노의 I2C SCL핀인 A5 핀에,

pixy I2C SDA 9번핀은 아두이노 우노의 I2C SDA핀인 A4 핀에 연결하면 됩니다.

아두이노 메가의 경우 각각 디지털 21,20번 핀입니다.

 

아두이노의 <Pixy2.h> 라이브러리는 <Pixy2I2C.h>의 라이브러리를 써주면 됩니다.

#include <Pixy2I2C.h>
Pixy2I2C pixy;

void setup() {
  Serial.begin(115200);

  Serial.print("Starting...\n");
  
  pixy.init();
}

void loop() {

  int i; 
  // 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 (i=0; i<pixy.ccc.numBlocks; i++)
    {
      Serial.print("  block ");
      Serial.print(i);
      Serial.print(": ");
      pixy.ccc.blocks[i].print();
    }
  }  
 
}

 

시리얼 모니터를 통해 결과를 확인할 수 있습니다.


 

 

그외 다른 통신의 필요한 핀과 코드는 다음과 같습니다.

 

 

SPI 통신


  • 5V
  • ground(6)
  • SPI MISO(1)
  • SPI MOSI(4)
  • SPI SCK(3)
  • SPI SS(7)(SS를 사용하는 경우) 
#include <Pixy2SPI_SS.h>
Pixy2SPI_SS pixy;

 


UART 통신


  • 5V
  • ground(6)
  • UART RX(1)
  • UART TX(4)
#include <Pixy2UART.h>
Pixy2UART pixy;

 

주의할점은 아두이노 우노의 경우 Pixy2UART 라이브러리를 사용할 수 없습니다.

(Serial1을 메가부터 사용할 수 있기 때문)


 

analog/digital output


Pixy 신호는

pin 8을 통해 analog 신호를,

pin 1을 통해 digital 신호 ouput을 사용할 수 있습니다.

역시 PixyMon을 통해 analog/digital x 또는 analog/digital y를선택해주어야합니다.

 


 

참고문서

728x90
반응형