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:
Bobymicjohn
Date:
Fri Feb 03 19:40:27 2017 +0000
Revision:
8:92f6baeea027
Parent:
6:0682e1c90119
Child:
10:fedb5786a109
Finished code for Motor class.

Who changed what in which revision?

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