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

Committer:
hazheng
Date:
Tue Feb 21 22:27:10 2017 +0000
Revision:
27:c68f711e5b67
Parent:
26:5814404856e2
Finished the code to get picture from the camera, and push the data to computer side. (however, entire picture shows black.)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hazheng 3:c8867972ffc7 1 #pragma once
hazheng 3:c8867972ffc7 2 #include "mbed.h"
hazheng 3:c8867972ffc7 3 #include <vector>
hazheng 3:c8867972ffc7 4
hazheng 13:7dcb1642ef99 5 #include "OV7725RegBuf.h"
hazheng 13:7dcb1642ef99 6
hazheng 26:5814404856e2 7 #define CAMERA_PIXEL_WIDTH 160
hazheng 26:5814404856e2 8 #define CAMERA_PIXEL_HEIGHT 120
hazheng 27:c68f711e5b67 9 #define PICTURE_ARRAY_SIZE ((CAMERA_PIXEL_WIDTH / 8) * CAMERA_PIXEL_HEIGHT)
hazheng 3:c8867972ffc7 10
hazheng 13:7dcb1642ef99 11 namespace SW
hazheng 13:7dcb1642ef99 12 {
hazheng 13:7dcb1642ef99 13 class Core;
hazheng 13:7dcb1642ef99 14 }
hazheng 13:7dcb1642ef99 15
hazheng 3:c8867972ffc7 16 class Camera
hazheng 3:c8867972ffc7 17 {
hazheng 3:c8867972ffc7 18 public:
hazheng 3:c8867972ffc7 19
hazheng 13:7dcb1642ef99 20 Camera(SW::Core & core);
hazheng 3:c8867972ffc7 21
hazheng 3:c8867972ffc7 22 ~Camera();
hazheng 3:c8867972ffc7 23
hazheng 26:5814404856e2 24 void Update(float deltaTime);
hazheng 26:5814404856e2 25
hazheng 3:c8867972ffc7 26 bool HasPicture() const;
hazheng 3:c8867972ffc7 27
hazheng 3:c8867972ffc7 28 const unsigned char * GetPicture() const;
hazheng 3:c8867972ffc7 29
hazheng 26:5814404856e2 30 void StartReceivingPic();
hazheng 26:5814404856e2 31
hazheng 26:5814404856e2 32 void StopReceivingPic();
hazheng 26:5814404856e2 33
hazheng 3:c8867972ffc7 34 private:
hazheng 3:c8867972ffc7 35
hazheng 13:7dcb1642ef99 36 Camera();
hazheng 13:7dcb1642ef99 37
hazheng 13:7dcb1642ef99 38 SW::Core & m_core;
hazheng 13:7dcb1642ef99 39
hazheng 3:c8867972ffc7 40 InterruptIn m_pClock;
hazheng 3:c8867972ffc7 41
hazheng 3:c8867972ffc7 42 InterruptIn m_href;
hazheng 3:c8867972ffc7 43
hazheng 3:c8867972ffc7 44 InterruptIn m_vsnyc;
hazheng 3:c8867972ffc7 45
hazheng 25:6f63053cee81 46 OV7725RegBuf * m_regBuf;
hazheng 26:5814404856e2 47
hazheng 26:5814404856e2 48 float m_debugOutputTimer;
hazheng 3:c8867972ffc7 49 };