SPI read Pixi Cam V1

pixyUART.h

Committer:
altb2
Date:
2021-08-28
Revision:
5:d109b094d4bb

File content as of revision 5:d109b094d4bb:

#pragma once
#include "mbed.h"
 
#define INVALID_BLOCK 20
#define CENTER_X 160
#define CENTER_Y 100
#define NUM_BLOCKS 10
//a class to aid in SPI communication with the pixy camera
 
//this details the object block format of returned data as described in
//http://www.cmucam.org/projects/cmucam5/wiki/Pixy_Serial_Protocol
 
//blatantly stole this from their code
struct Block 
{
  uint16_t signature;
  uint16_t x;
  uint16_t y;
  uint16_t width;
  uint16_t height;
};
 
class pixyUART
{
private:
    BufferedSerial *uart;
    short sync; //the block signature. 16 bits
    int8_t readTwoBytesLSB(uint16_t *);
    void readNBytes(char* buf, int num);
    int numBlocks; //amt
    uint8_t buffer[200];
public:
    pixyUART(BufferedSerial * );
    ~pixyUART();
    void capture(); //fills in the blocks pointer
    Block* getBlocks();
    int captured_blocks;
    Block blocks[NUM_BLOCKS]; //where the blocks are stored
};