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 haofan Zheng

Revision:
3:c8867972ffc7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Camera.h	Wed Feb 01 00:35:48 2017 +0000
@@ -0,0 +1,45 @@
+#pragma once
+#include "mbed.h"
+#include <vector>
+
+#define CAM_MAX_ROW 480
+#define CAM_MAX_COL 640
+
+class Camera
+{
+public:
+
+    Camera();
+
+    ~Camera();
+    
+    bool HasPicture() const;
+    
+    const unsigned char * GetPicture() const;
+    
+private:
+    
+    void OnPixelClock();
+    
+    void OnFrameClock();
+    
+    void OnHorizontalClock();
+    
+    InterruptIn m_pClock;
+    
+    InterruptIn m_href;
+    
+    InterruptIn m_vsnyc;
+    
+    std::vector<DigitalIn> m_dIn;
+    
+    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;
+};