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:
Fri Feb 03 04:06:50 2017 +0000
Revision:
6:0682e1c90119
Parent:
4:25e028102625
Parent:
5:577b582e4fe9
Child:
8:92f6baeea027
Solved Merge Conflicts.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hazheng 3:c8867972ffc7 1 #include "mbed.h"
hazheng 5:577b582e4fe9 2
Bobymicjohn 4:25e028102625 3 //#include "Motor.h"
hazheng 3:c8867972ffc7 4
hazheng 6:0682e1c90119 5 //#include "Camera.h"
hazheng 5:577b582e4fe9 6
hazheng 5:577b582e4fe9 7 #include "USBHIDServer.h"
hazheng 3:c8867972ffc7 8
Bobymicjohn 4:25e028102625 9 PwmOut servo(PTE20);
Bobymicjohn 4:25e028102625 10 //DigitalOut DIR_L(PTA13, 1);
Bobymicjohn 4:25e028102625 11 //DigitalOut DIR_R(PTC9, 1);
Bobymicjohn 4:25e028102625 12 //PwmOut PWM_L(PTD0);
Bobymicjohn 4:25e028102625 13 //PwmOut PWM_R(PTD5);
hazheng 5:577b582e4fe9 14 DigitalOut led(LED1, 1);
hazheng 5:577b582e4fe9 15
hazheng 3:c8867972ffc7 16 int main(void) {
Bobymicjohn 4:25e028102625 17 servo.period(0.020);
hazheng 6:0682e1c90119 18
hazheng 5:577b582e4fe9 19 //Camera cam;
hazheng 6:0682e1c90119 20
Bobymicjohn 4:25e028102625 21 //Motor motor;
Bobymicjohn 4:25e028102625 22
Bobymicjohn 4:25e028102625 23 //PWM_L.period_us(60);
Bobymicjohn 4:25e028102625 24 //PWM_R.period_us(60);
Bobymicjohn 4:25e028102625 25
hazheng 5:577b582e4fe9 26 USBHIDServer server;
hazheng 6:0682e1c90119 27
hazheng 5:577b582e4fe9 28 unsigned int testCount = 0;
hazheng 5:577b582e4fe9 29 unsigned int testCount2 = 0;
hazheng 5:577b582e4fe9 30 char buf[5];
hazheng 5:577b582e4fe9 31
hazheng 6:0682e1c90119 32 //motor.setLeftSpeed(20);
hazheng 6:0682e1c90119 33 //motor.setRightSpeed(20);
hazheng 6:0682e1c90119 34 //PWM_L.pulsewidth_us(60);
hazheng 6:0682e1c90119 35 //PWM_R.pulsewidth_us(60);
hazheng 6:0682e1c90119 36 //servo.pulsewidth(0.0015);
hazheng 3:c8867972ffc7 37
hazheng 5:577b582e4fe9 38 while (1)
hazheng 5:577b582e4fe9 39 {
hazheng 5:577b582e4fe9 40 led = 0;
hazheng 5:577b582e4fe9 41 server.Update(0.0f);
hazheng 5:577b582e4fe9 42 testCount++;
hazheng 5:577b582e4fe9 43 if(testCount >= 10000)
hazheng 5:577b582e4fe9 44 {
hazheng 5:577b582e4fe9 45 testCount2++;
hazheng 5:577b582e4fe9 46 sprintf(buf, "%d", testCount2);
hazheng 5:577b582e4fe9 47 //server.PushUnreliableMsg('D', "Test Message!");
hazheng 5:577b582e4fe9 48 server.PushUnreliableMsg('D', buf);
hazheng 5:577b582e4fe9 49 testCount = 0;
hazheng 3:c8867972ffc7 50 }
hazheng 3:c8867972ffc7 51
hazheng 3:c8867972ffc7 52 wait(0.1);
hazheng 3:c8867972ffc7 53 }
hazheng 3:c8867972ffc7 54 }
hazheng 3:c8867972ffc7 55
hazheng 3:c8867972ffc7 56 /*
hazheng 3:c8867972ffc7 57 PwmOut servo(PTE20);
hazheng 3:c8867972ffc7 58
hazheng 3:c8867972ffc7 59 int main() {
hazheng 3:c8867972ffc7 60 servo.period(0.020); // servo requires a 20ms period
hazheng 3:c8867972ffc7 61
hazheng 3:c8867972ffc7 62 while (1) {
hazheng 3:c8867972ffc7 63 for(float offset=0.0; offset<0.001; offset+=0.0001) {
hazheng 3:c8867972ffc7 64 servo.pulsewidth(0.001 + offset); // servo position determined by a pulsewidth between 1-2ms
hazheng 3:c8867972ffc7 65 wait(0.25);
hazheng 3:c8867972ffc7 66 }
hazheng 3:c8867972ffc7 67 }
hazheng 3:c8867972ffc7 68
hazheng 3:c8867972ffc7 69 }
hazheng 3:c8867972ffc7 70 */