SmartWheels self-driving race car. Designed for NXP Cup. Uses FRDM-KL25Z, area-scan camera, and simple image processing to detect and navigate any NXP spec track.
Dependencies: TSI USBDevice mbed-dev
Fork of SmartWheels by
Hardwares/Camera.h
- Committer:
- hazheng
- Date:
- 2017-02-08
- Revision:
- 13:7dcb1642ef99
- Parent:
- 9:b72e18f80f49
- Child:
- 25:6f63053cee81
File content as of revision 13:7dcb1642ef99:
#pragma once #include "mbed.h" #include <vector> #include "OV7725RegBuf.h" #define CAM_MAX_ROW 480 #define CAM_MAX_COL 640 namespace SW { class Core; } class Camera { public: Camera(SW::Core & core); ~Camera(); bool HasPicture() const; const unsigned char * GetPicture() const; //Blocking method. Do not use during the running state!! void ReadRegisters(); private: Camera(); void OnPixelClock(); void OnFrameClock(); void OnHorizontalClock(); //Blocking method. Do not use during the running state!! void SCCBWrite(const uint8_t RegAddr, uint8_t Data); //Blocking method. Do not use during the running state!! uint8_t SCCBRead(const uint8_t RegAddr); SW::Core & m_core; InterruptIn m_pClock; InterruptIn m_href; InterruptIn m_vsnyc; I2C m_sccbCtrl; //unsigned char m_pics[2][(CAM_MAX_ROW + 1) * (CAM_MAX_COL + 1)]; unsigned char m_currentIndex; unsigned int m_currentRow; unsigned int m_currentCol; bool m_hasPic; OV7725RegBuf m_regBuf; };