Initial Commit
Dependencies: mbed HC05 QEI MODSERIAL SWSPI mbed-rtos
main.cpp
- Committer:
- Throwbot
- Date:
- 2014-10-11
- Revision:
- 1:1da89c13dfa1
- Parent:
- 0:43331220df0d
- Child:
- 2:0f80c8a1c236
File content as of revision 1:1da89c13dfa1:
// FORMAT_CODE_START #include "QEI.h" #include "mbed.h" #include "robot.h" #include "rtos.h" #include "MPU6050.h" #include "I2Cdev.h" #include "tone.h" #include "ultrasonic.h" char c; char buffer[10]; int bit_size=20; int thetha1=300; int thetha=0; int stall=0; int bump=1; int UL_rR = 0; int UL_R = 0; int UL_F = 0; int UL_L = 0; int UL_rL = 0; int UL_B = 0; int dx1=100; int dy1=200; int linear_velocity_value ; int linear_velocity_direction; int rotational_velocity_value ; int rotational_velocity_direction; int Lspeed=1; int Rspeed=1; int main() { initRobot(); //motor_control((100),(-100)); while(buffer[3] != 'O') { while(buffer[3] != 'E') { if(bt.readable()) { bt.gets(buffer, 5); if(buffer[3] == 'E') { bt.printf(">>1B"); } else if(buffer[3] == '?') { bt.printf("K"); } } } if(bt.readable()) { bt.gets(buffer, 5); } } //imperial_march(); Thread IMU_th(Imu_yaw, NULL, osPriorityNormal, 2048, NULL); Thread Encoder_th(encoder_thread, NULL, osPriorityNormal, 2048, NULL); buzzer=0; //motor_control(lMotor*m_speed,rMotor*m_speed*0.8); //motor_control(lMotor*m_speed,0); while(1) { //bt.lock(); //bt.printf("LDR1_%lf;LDR2_%lf;Pulses is: %i Revolutions is: %i Pulses is: %i ultrasonic: , \r\n",ldrread1(),ldrread2(), left.getPulses(), left.getRevolutions(),right.getPulses());//, uL.read()*5*102.54*2.54); //bt.printf("s;LDR1_%lf;LDR2_%lf;Pulses is: %i ; %i:s\n\r",ldrread1(),ldrread2(),wheel.getPulses(), wheel.getRevolutions()); // motor_control(lMotor*m_speed,rMotor*m_speed); //bt.printf("a/g:\t %d:\t %d:\t %d:\t %d:\t %d:\t %d:\t\r\n",ax ,ay,az,gx,gy,gz); //bt.unlock(); if(bt.readable()) { bt.gets(buffer, 5); if(buffer[3] == 'S') { SRX=1; wait_ms(2); UL_rR=sensorvalue(urR); SRX=0; wait_ms(2); SRX=1; wait_ms(2); UL_R=sensorvalue(uR); SRX = 0; wait_ms(2); SRX=1; wait_ms(2); UL_F=sensorvalue(uF); SRX=0; wait_ms(2); SRX=1; wait_ms(2); UL_L=sensorvalue(uL); SRX=0; wait_ms(2); SRX=1; wait_ms(2); UL_rL=sensorvalue(urL); SRX=0; wait_ms(2); SRX=1; wait_ms(2); UL_B=sensorvalue(uB); SRX=0; bt.lock(); stdio_mutex.lock(); heading=heading*11.375; bt.printf(">>D%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", dx/256,dx%256,dy/256,dy%256,\ (heading)/256,(heading)%256,\ stall, bump,\ UL_rR/256,UL_rR%256,\ UL_R/256,UL_R%256, \ UL_F/256,UL_F%256,\ UL_L/256,UL_L%256,\ UL_rL/256,UL_rL%256,\ UL_B/256,UL_B%256); dx=0; dy=0; stdio_mutex.unlock(); bt.unlock(); } else if (buffer[3] == 'R') { Thread::wait(20); if(bt.readable()) { bt.gets(buffer, 10); linear_velocity_value = buffer[4]<<8|buffer[3]; linear_velocity_direction= buffer[5]; rotational_velocity_value = buffer[7]<<8|buffer[6]; rotational_velocity_direction= buffer[8]; if( linear_velocity_direction==0x01) { Lspeed=lMotor; Rspeed=rMotor; } else if( linear_velocity_direction==0x10) { Lspeed=-lMotor; Rspeed=-rMotor; } if( rotational_velocity_direction==0x01 && linear_velocity_value !=0) { motor_control((Lspeed*linear_velocity_value/35)-10,(Rspeed*linear_velocity_value/35) + 10); } else if( rotational_velocity_direction==0x10 && linear_velocity_value !=0) { motor_control((Lspeed*linear_velocity_value/35)+10,(Rspeed*linear_velocity_value/30) -10); } else motor_control((Lspeed*linear_velocity_value/30),(Rspeed*linear_velocity_value/30)); } } //memset(buffer, 0, sizeof buffer); } if(ldrread1()>0.6) { } if(ldrread2()>0.6) { Led_on(); } else { Led_off(); } Thread::wait(20); } }