SPI read Pixi Cam V1

Committer:
altb2
Date:
Sat Aug 28 13:03:58 2021 +0000
Revision:
5:d109b094d4bb
Pixy Cam V1 Interface with UARt connection. Just connect the TX -> RX pin and power supply (see Pixy cam doc)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
altb2 5:d109b094d4bb 1 #pragma once
altb2 5:d109b094d4bb 2 #include "mbed.h"
altb2 5:d109b094d4bb 3
altb2 5:d109b094d4bb 4 #define INVALID_BLOCK 20
altb2 5:d109b094d4bb 5 #define CENTER_X 160
altb2 5:d109b094d4bb 6 #define CENTER_Y 100
altb2 5:d109b094d4bb 7 #define NUM_BLOCKS 10
altb2 5:d109b094d4bb 8 //a class to aid in SPI communication with the pixy camera
altb2 5:d109b094d4bb 9
altb2 5:d109b094d4bb 10 //this details the object block format of returned data as described in
altb2 5:d109b094d4bb 11 //http://www.cmucam.org/projects/cmucam5/wiki/Pixy_Serial_Protocol
altb2 5:d109b094d4bb 12
altb2 5:d109b094d4bb 13 //blatantly stole this from their code
altb2 5:d109b094d4bb 14 struct Block
altb2 5:d109b094d4bb 15 {
altb2 5:d109b094d4bb 16 uint16_t signature;
altb2 5:d109b094d4bb 17 uint16_t x;
altb2 5:d109b094d4bb 18 uint16_t y;
altb2 5:d109b094d4bb 19 uint16_t width;
altb2 5:d109b094d4bb 20 uint16_t height;
altb2 5:d109b094d4bb 21 };
altb2 5:d109b094d4bb 22
altb2 5:d109b094d4bb 23 class pixyUART
altb2 5:d109b094d4bb 24 {
altb2 5:d109b094d4bb 25 private:
altb2 5:d109b094d4bb 26 BufferedSerial *uart;
altb2 5:d109b094d4bb 27 short sync; //the block signature. 16 bits
altb2 5:d109b094d4bb 28 int8_t readTwoBytesLSB(uint16_t *);
altb2 5:d109b094d4bb 29 void readNBytes(char* buf, int num);
altb2 5:d109b094d4bb 30 int numBlocks; //amt
altb2 5:d109b094d4bb 31 uint8_t buffer[200];
altb2 5:d109b094d4bb 32 public:
altb2 5:d109b094d4bb 33 pixyUART(BufferedSerial * );
altb2 5:d109b094d4bb 34 ~pixyUART();
altb2 5:d109b094d4bb 35 void capture(); //fills in the blocks pointer
altb2 5:d109b094d4bb 36 Block* getBlocks();
altb2 5:d109b094d4bb 37 int captured_blocks;
altb2 5:d109b094d4bb 38 Block blocks[NUM_BLOCKS]; //where the blocks are stored
altb2 5:d109b094d4bb 39 };