Class to interface with the Disgruntled Car.

Dependencies:   FRDM-TFC MMA8451Q mbed-dsp mbed

Committer:
jmar11
Date:
Fri Mar 03 20:06:14 2017 +0000
Revision:
2:616e8ea9b3b0
Parent:
0:22435aad2270
fixed namespace issue

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jmar11 0:22435aad2270 1 #include "Disgruntled_Car.h"
jmar11 0:22435aad2270 2 #include "TFC.h"
jmar11 0:22435aad2270 3 #include "mbed.h"
jmar11 0:22435aad2270 4
jmar11 2:616e8ea9b3b0 5 disgruntledcar::disgruntledcar() : acc(MMA_SDA, MMA_SCL, MMA_ADDR) {
jmar11 2:616e8ea9b3b0 6 TFC_Init();
jmar11 0:22435aad2270 7 }
jmar11 0:22435aad2270 8
jmar11 2:616e8ea9b3b0 9 void disgruntledcar::initServo(float SerPWMin, float SerPWMax, float SerPer) {
jmar11 2:616e8ea9b3b0 10 TFC_InitServos(SerPWMin, SerPWMax, SerPer);
jmar11 2:616e8ea9b3b0 11 }
jmar11 2:616e8ea9b3b0 12
jmar11 2:616e8ea9b3b0 13 void disgruntledcar::initMotor(float SwFreq) {
jmar11 2:616e8ea9b3b0 14 TFC_InitMotorPWM(SwFreq);
jmar11 0:22435aad2270 15 }
jmar11 0:22435aad2270 16
jmar11 0:22435aad2270 17 bool disgruntledcar::getSwitch1() {
jmar11 0:22435aad2270 18 return TFC_GetDIP_Switch()&0x01;
jmar11 0:22435aad2270 19 }
jmar11 0:22435aad2270 20
jmar11 0:22435aad2270 21 bool disgruntledcar::getSwitch2() {
jmar11 0:22435aad2270 22 return (TFC_GetDIP_Switch()>>1)&0x01;
jmar11 0:22435aad2270 23 }
jmar11 0:22435aad2270 24
jmar11 0:22435aad2270 25 bool disgruntledcar::getSwitch3() {
jmar11 0:22435aad2270 26 return (TFC_GetDIP_Switch()>>2)&0x01;
jmar11 0:22435aad2270 27 }
jmar11 0:22435aad2270 28
jmar11 0:22435aad2270 29 bool disgruntledcar::getSwitch4() {
jmar11 0:22435aad2270 30 return (TFC_GetDIP_Switch()>>3)&0x01;
jmar11 0:22435aad2270 31 }
jmar11 0:22435aad2270 32
jmar11 0:22435aad2270 33 bool disgruntledcar::getButtonA() {
jmar11 0:22435aad2270 34 return TFC_ReadPushButton(0);
jmar11 0:22435aad2270 35 }
jmar11 0:22435aad2270 36
jmar11 0:22435aad2270 37 bool disgruntledcar::getButtonB() {
jmar11 0:22435aad2270 38 return TFC_ReadPushButton(1);
jmar11 0:22435aad2270 39 }
jmar11 0:22435aad2270 40
jmar11 0:22435aad2270 41 float disgruntledcar::getPotentA() {
jmar11 0:22435aad2270 42 return TFC_ReadPot(0);
jmar11 0:22435aad2270 43 }
jmar11 0:22435aad2270 44
jmar11 0:22435aad2270 45 float disgruntledcar::getPotentB() {
jmar11 0:22435aad2270 46 return TFC_ReadPot(1);
jmar11 0:22435aad2270 47 }
jmar11 0:22435aad2270 48
jmar11 0:22435aad2270 49 float disgruntledcar::getBatteryVolt() {
jmar11 0:22435aad2270 50 return TFC_ReadBatteryVoltage();
jmar11 0:22435aad2270 51 }
jmar11 0:22435aad2270 52
jmar11 0:22435aad2270 53 bool disgruntledcar::getCamImage(float comcam0[], float comcam1[]) {
jmar11 0:22435aad2270 54 if(TFC_LineScanImageReady>0){
jmar11 0:22435aad2270 55 for(int i=0; i<128; i++){
jmar11 0:22435aad2270 56 comcam0[i] = (float)(TFC_LineScanImage0[i]);
jmar11 0:22435aad2270 57 }
jmar11 0:22435aad2270 58 for(int i=0; i<128; i++){
jmar11 0:22435aad2270 59 comcam1[i] = (float)(TFC_LineScanImage1[i]);
jmar11 0:22435aad2270 60 }
jmar11 2:616e8ea9b3b0 61 return true;
jmar11 0:22435aad2270 62 }
jmar11 0:22435aad2270 63 else{
jmar11 2:616e8ea9b3b0 64 return false;
jmar11 0:22435aad2270 65 }
jmar11 0:22435aad2270 66 }
jmar11 0:22435aad2270 67
jmar11 0:22435aad2270 68 void disgruntledcar::setServoPos(float pos) {
jmar11 0:22435aad2270 69 TFC_SetServo(0, pos);
jmar11 0:22435aad2270 70 }
jmar11 0:22435aad2270 71
jmar11 0:22435aad2270 72 void disgruntledcar::setMotorSpeed(float spda, float spdb) {
jmar11 0:22435aad2270 73 TFC_SetMotorPWM(spda, spdb);
jmar11 0:22435aad2270 74 }
jmar11 0:22435aad2270 75
jmar11 0:22435aad2270 76 void disgruntledcar::setBatteryLED(uint8_t lvl) {
jmar11 0:22435aad2270 77 TFC_SetBatteryLED_Level(lvl);
jmar11 0:22435aad2270 78 }
jmar11 0:22435aad2270 79
jmar11 0:22435aad2270 80 void disgruntledcar::setLED(uint8_t msk) {
jmar11 0:22435aad2270 81 TFC_SetBatteryLED(msk);
jmar11 0:22435aad2270 82 }
jmar11 0:22435aad2270 83
jmar11 0:22435aad2270 84 float disgruntledcar::getAccX() {
jmar11 0:22435aad2270 85 return acc.getAccX();
jmar11 0:22435aad2270 86 }
jmar11 0:22435aad2270 87
jmar11 0:22435aad2270 88 float disgruntledcar::getAccY() {
jmar11 0:22435aad2270 89 return acc.getAccY();
jmar11 0:22435aad2270 90 }
jmar11 0:22435aad2270 91
jmar11 0:22435aad2270 92 float disgruntledcar::getAccZ() {
jmar11 0:22435aad2270 93 return acc.getAccZ();
jmar11 0:22435aad2270 94 }
jmar11 0:22435aad2270 95
jmar11 0:22435aad2270 96 void disgruntledcar::getAccReg(int addr, uint8_t * data, int len) {
jmar11 0:22435aad2270 97 acc.readRegs(addr, data, len);
jmar11 0:22435aad2270 98 }
jmar11 0:22435aad2270 99
jmar11 0:22435aad2270 100 void disgruntledcar::setAccReg(uint8_t * data, int len) {
jmar11 0:22435aad2270 101 acc.writeRegs(data, len);
jmar11 0:22435aad2270 102 }
jmar11 0:22435aad2270 103
jmar11 2:616e8ea9b3b0 104 void disgruntledcar::conv(float a[], int lena, float b[], int lenb, float out[]){
jmar11 0:22435aad2270 105 int len = (2*lena)-1;
jmar11 0:22435aad2270 106 float temp[len];
jmar11 0:22435aad2270 107 arm_correlate_f32(a, lena, b, lenb, temp);
jmar11 0:22435aad2270 108 for(int i = lenb-1; i<lena; i++){
jmar11 0:22435aad2270 109 out[i-lenb-1] = temp[i];
jmar11 0:22435aad2270 110 }
jmar11 0:22435aad2270 111 }