Code for our FYDP -only one IMU works right now -RTOS is working
Embed:
(wiki syntax)
Show/hide line numbers
remotecontrol_fnt.h
00001 void remotecontrol_fnt(int argc, char **argv) 00002 { 00003 int speed = 40; 00004 00005 bt.lock(); 00006 bt.printf("Remote Control Mode\r\n"); 00007 bt.printf("Controls:\r\n"); 00008 bt.printf(" wasd & qezc to move\r\n"); 00009 bt.printf(" r/f for speed +/-\r\n"); 00010 bt.printf(" enter key to exit\r\n"); 00011 bt.unlock(); 00012 00013 if(argc == 2){ 00014 speed = tinysh_atoxi(argv[1]); 00015 if( speed <= 0 || speed > 100) 00016 speed = 100; 00017 } 00018 00019 int Lspeed = 0; 00020 int Rspeed = 0; 00021 00022 char c = 0; 00023 00024 while(c != '\r' && c != '\n') 00025 { 00026 bt.lock(); 00027 00028 if(bt.readable()) 00029 { 00030 c = bt.getc(); 00031 bt.unlock(); 00032 00033 switch ( c ) { 00034 case 'w': 00035 Lspeed = speed; 00036 Rspeed = speed; 00037 break; 00038 case 'a': 00039 Lspeed = -speed; 00040 Rspeed = speed; 00041 break; 00042 case 's': 00043 Lspeed = -speed; 00044 Rspeed = -speed; 00045 break; 00046 case 'x': 00047 Lspeed = -speed; 00048 Rspeed = -speed; 00049 break; 00050 case 'd': 00051 Lspeed = speed; 00052 Rspeed = -speed; 00053 break; 00054 case 'q': 00055 Lspeed = 0; 00056 Rspeed = speed; 00057 break; 00058 case 'e': 00059 Lspeed = speed; 00060 Rspeed = 0; 00061 break; 00062 case 'c': 00063 Lspeed = -speed; 00064 Rspeed = 0; 00065 break; 00066 case 'z': 00067 Lspeed = 0; 00068 Rspeed = -speed; 00069 break; 00070 case 'r': 00071 speed += 10; 00072 if(speed > 100) 00073 speed = 100; 00074 bt.lock(); 00075 bt.printf("speed = %d\r\n", speed); 00076 bt.unlock(); 00077 Lspeed = 0; 00078 Rspeed = 0; 00079 break; 00080 case 'f': 00081 speed -= 10; 00082 if(speed < 0) 00083 speed = 0; 00084 bt.lock(); 00085 bt.printf("speed = %d\r\n", speed); 00086 bt.unlock(); 00087 Lspeed = 0; 00088 Rspeed = 0; 00089 break; 00090 default: 00091 Lspeed = 0; 00092 Rspeed = 0; 00093 break; 00094 } 00095 00096 moveMotors(Lspeed,Rspeed,100); 00097 00098 }else 00099 bt.unlock(); 00100 00101 Thread::wait(25); 00102 } 00103 }
Generated on Wed Jul 13 2022 10:32:23 by 1.7.2