Código para o menu no LCD

Dependencies:   mbed SDFileSystemSD TextLCD

Fork of TextLCD_HelloWorld2 by Wim Huiskamp

Committer:
lucasfontenla
Date:
Mon May 21 17:11:55 2018 +0000
Revision:
28:b3c51076ebe8
Parent:
27:83d2a710cc2f
Child:
29:558eccdfc079
Enviando GCODE para machine

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lucasfontenla 17:0b8e489fac36 1 #define tx PC_10
lucasfontenla 17:0b8e489fac36 2 #define rx PC_11
lucasfontenla 17:0b8e489fac36 3
lucasfontenla 17:0b8e489fac36 4 Serial Mach(tx, rx);
lucasfontenla 28:b3c51076ebe8 5 Timer t;
lucasfontenla 17:0b8e489fac36 6
lucasfontenla 17:0b8e489fac36 7 class Machine {
lucasfontenla 17:0b8e489fac36 8 int n;
lucasfontenla 17:0b8e489fac36 9 string buffer;
lucasfontenla 17:0b8e489fac36 10 char buffer_char[2];
lucasfontenla 17:0b8e489fac36 11
lucasfontenla 17:0b8e489fac36 12 public:
lucasfontenla 17:0b8e489fac36 13 int debug;
lucasfontenla 17:0b8e489fac36 14
lucasfontenla 17:0b8e489fac36 15 // PUBLIC FUNCTIONS ----------------------------------------------------------------------------------------------------------------------------------------
lucasfontenla 17:0b8e489fac36 16 void move_to(float x, float y, float z, string type, int speed){
lucasfontenla 17:0b8e489fac36 17
lucasfontenla 17:0b8e489fac36 18 }
lucasfontenla 17:0b8e489fac36 19
lucasfontenla 17:0b8e489fac36 20 void move(int x_axis, int y_axis, int z_axis, float pct_speed){
lucasfontenla 17:0b8e489fac36 21 buffer = "";
lucasfontenla 17:0b8e489fac36 22
lucasfontenla 17:0b8e489fac36 23 buffer.append("f");
lucasfontenla 17:0b8e489fac36 24
lucasfontenla 17:0b8e489fac36 25 //buffer.append("X");
lucasfontenla 17:0b8e489fac36 26 n = sprintf(buffer_char, "%d", x_axis);
lucasfontenla 17:0b8e489fac36 27 buffer.append(buffer_char);
lucasfontenla 17:0b8e489fac36 28
lucasfontenla 17:0b8e489fac36 29 //buffer.append("Y");
lucasfontenla 17:0b8e489fac36 30 n = sprintf(buffer_char, "%d", y_axis);
lucasfontenla 17:0b8e489fac36 31 buffer.append(buffer_char);
lucasfontenla 17:0b8e489fac36 32
lucasfontenla 17:0b8e489fac36 33 //buffer.append("Z");
lucasfontenla 17:0b8e489fac36 34 n = sprintf(buffer_char, "%d", z_axis);
lucasfontenla 17:0b8e489fac36 35 buffer.append(buffer_char);
lucasfontenla 17:0b8e489fac36 36
lucasfontenla 17:0b8e489fac36 37 buffer.append("F");
lucasfontenla 17:0b8e489fac36 38 n = sprintf(buffer_char, "%.2f", pct_speed);
lucasfontenla 17:0b8e489fac36 39 buffer.append(buffer_char);
lucasfontenla 17:0b8e489fac36 40
lucasfontenla 17:0b8e489fac36 41 send(buffer);
lucasfontenla 17:0b8e489fac36 42 }
lucasfontenla 17:0b8e489fac36 43
lucasfontenla 17:0b8e489fac36 44 void save_point(int mode, float pct_speed){
lucasfontenla 17:0b8e489fac36 45 buffer = "";
lucasfontenla 17:0b8e489fac36 46
lucasfontenla 17:0b8e489fac36 47 buffer.append("s");
lucasfontenla 17:0b8e489fac36 48
lucasfontenla 17:0b8e489fac36 49 n = sprintf(buffer_char, "M%d", mode);
lucasfontenla 17:0b8e489fac36 50 buffer.append(buffer_char);
lucasfontenla 17:0b8e489fac36 51
lucasfontenla 17:0b8e489fac36 52 n = sprintf(buffer_char, "F%.2f", pct_speed);
lucasfontenla 17:0b8e489fac36 53 buffer.append(buffer_char);
lucasfontenla 17:0b8e489fac36 54
lucasfontenla 17:0b8e489fac36 55 send(buffer);
lucasfontenla 17:0b8e489fac36 56 }
lucasfontenla 17:0b8e489fac36 57
lucasfontenla 17:0b8e489fac36 58 void start_program(void){
claraluques 20:ccbd80b668ce 59 send("b");
claraluques 20:ccbd80b668ce 60 printf("b\n\r");
lucasfontenla 17:0b8e489fac36 61 }
lucasfontenla 17:0b8e489fac36 62
lucasfontenla 17:0b8e489fac36 63 void cancel_program(void){
lucasfontenla 17:0b8e489fac36 64 send("c");
lucasfontenla 17:0b8e489fac36 65 }
lucasfontenla 17:0b8e489fac36 66
lucasfontenla 17:0b8e489fac36 67 void get_status(void){
lucasfontenla 17:0b8e489fac36 68 send("s");
lucasfontenla 17:0b8e489fac36 69 }
lucasfontenla 17:0b8e489fac36 70
lucasfontenla 17:0b8e489fac36 71 void machine_zero(void){
claraluques 26:59081efdce79 72 send("zm");
lucasfontenla 17:0b8e489fac36 73 }
lucasfontenla 17:0b8e489fac36 74
lucasfontenla 17:0b8e489fac36 75 void set_zero(string axis){
claraluques 27:83d2a710cc2f 76 buffer = "";
lucasfontenla 17:0b8e489fac36 77 buffer.append("z");
lucasfontenla 17:0b8e489fac36 78 buffer+=axis;
lucasfontenla 17:0b8e489fac36 79 send(buffer);
lucasfontenla 17:0b8e489fac36 80 }
lucasfontenla 17:0b8e489fac36 81
claraluques 19:2c890ae2d187 82 void jog(void){
claraluques 19:2c890ae2d187 83 send("j");
claraluques 20:ccbd80b668ce 84 printf("j\n\r");
claraluques 19:2c890ae2d187 85 }
claraluques 19:2c890ae2d187 86
claraluques 20:ccbd80b668ce 87 void kill_jog(void){
claraluques 20:ccbd80b668ce 88 send("jk");
claraluques 20:ccbd80b668ce 89 printf("jk\n\r");
claraluques 20:ccbd80b668ce 90 }
claraluques 20:ccbd80b668ce 91
claraluques 26:59081efdce79 92 void reset (void){
claraluques 26:59081efdce79 93 send("r");
claraluques 26:59081efdce79 94 }
claraluques 26:59081efdce79 95
lucasfontenla 28:b3c51076ebe8 96 void upload_gcode(string gcode){
lucasfontenla 28:b3c51076ebe8 97 buffer = "";
lucasfontenla 28:b3c51076ebe8 98 buffer.append("u");
lucasfontenla 28:b3c51076ebe8 99 buffer.append(gcode);
lucasfontenla 28:b3c51076ebe8 100
lucasfontenla 28:b3c51076ebe8 101 send(buffer);
lucasfontenla 28:b3c51076ebe8 102 }
claraluques 20:ccbd80b668ce 103
lucasfontenla 17:0b8e489fac36 104 private:
lucasfontenla 17:0b8e489fac36 105
lucasfontenla 17:0b8e489fac36 106 // PRIVATE FUNCTIONS ----------------------------------------------------------------------------------------------------------------------------------------
lucasfontenla 17:0b8e489fac36 107 void send(string msg){
lucasfontenla 17:0b8e489fac36 108 msg.append("x");
lucasfontenla 17:0b8e489fac36 109
lucasfontenla 17:0b8e489fac36 110 for(int i = 0; i < msg.length(); i++){
lucasfontenla 17:0b8e489fac36 111 Mach.putc(msg[i]);
claraluques 20:ccbd80b668ce 112 wait_ms(20);
lucasfontenla 17:0b8e489fac36 113 }
lucasfontenla 17:0b8e489fac36 114 }
claraluques 18:5338b83b4de9 115 };
claraluques 18:5338b83b4de9 116
claraluques 18:5338b83b4de9 117
lucasfontenla 28:b3c51076ebe8 118 Machine machine;
lucasfontenla 28:b3c51076ebe8 119
lucasfontenla 28:b3c51076ebe8 120 SDFileSystem sd(PB_15, PB_14, PB_13, PB_1, "sd"); //MOSI - D4, MISO - D5, SCLK - D3, CS - D7
lucasfontenla 28:b3c51076ebe8 121 DIR *dp;
lucasfontenla 28:b3c51076ebe8 122
lucasfontenla 28:b3c51076ebe8 123 string savedString = "Programas Salvos";
lucasfontenla 28:b3c51076ebe8 124 string gcodeString = "Programas GCODE";
lucasfontenla 28:b3c51076ebe8 125
lucasfontenla 28:b3c51076ebe8 126 class SDCard{
lucasfontenla 28:b3c51076ebe8 127 public:
lucasfontenla 28:b3c51076ebe8 128 int save_GCODE(string name, string gcode){
lucasfontenla 28:b3c51076ebe8 129 string file_path = "/sd/" + savedString + "/" + name;
lucasfontenla 28:b3c51076ebe8 130 char * path = str_to_char(file_path);
lucasfontenla 28:b3c51076ebe8 131
lucasfontenla 28:b3c51076ebe8 132 printf(path);
lucasfontenla 28:b3c51076ebe8 133
lucasfontenla 28:b3c51076ebe8 134 printf("going...\n\r");
lucasfontenla 28:b3c51076ebe8 135
lucasfontenla 28:b3c51076ebe8 136 FILE *fp = fopen(path, "w");
lucasfontenla 28:b3c51076ebe8 137
lucasfontenla 28:b3c51076ebe8 138 if(fp == NULL) {
lucasfontenla 28:b3c51076ebe8 139 error("Could not open file for write\n\r");
lucasfontenla 28:b3c51076ebe8 140 return 0;
lucasfontenla 28:b3c51076ebe8 141 }
lucasfontenla 28:b3c51076ebe8 142
lucasfontenla 28:b3c51076ebe8 143 char * write_file = str_to_char(gcode);
lucasfontenla 28:b3c51076ebe8 144
lucasfontenla 28:b3c51076ebe8 145 fprintf(fp, write_file);
lucasfontenla 28:b3c51076ebe8 146 fclose(fp);
lucasfontenla 28:b3c51076ebe8 147
lucasfontenla 28:b3c51076ebe8 148 printf("Cool\n\r");
lucasfontenla 28:b3c51076ebe8 149
lucasfontenla 28:b3c51076ebe8 150 return 1;
lucasfontenla 28:b3c51076ebe8 151 }
lucasfontenla 28:b3c51076ebe8 152
lucasfontenla 28:b3c51076ebe8 153 int send_gcode(string name){
lucasfontenla 28:b3c51076ebe8 154 string file_path = "/sd/" + gcodeString + "/" + name;
lucasfontenla 28:b3c51076ebe8 155 char * path = str_to_char(file_path);
lucasfontenla 28:b3c51076ebe8 156 unsigned char c;
lucasfontenla 28:b3c51076ebe8 157 string buffer;
lucasfontenla 28:b3c51076ebe8 158
lucasfontenla 28:b3c51076ebe8 159 printf(path);
lucasfontenla 28:b3c51076ebe8 160
lucasfontenla 28:b3c51076ebe8 161 printf("going...\n\r");
lucasfontenla 28:b3c51076ebe8 162
lucasfontenla 28:b3c51076ebe8 163 FILE *fp = fopen(path, "r");
lucasfontenla 28:b3c51076ebe8 164
lucasfontenla 28:b3c51076ebe8 165 if(fp == NULL) {
lucasfontenla 28:b3c51076ebe8 166 error("Could not open file for write\n\r");
lucasfontenla 28:b3c51076ebe8 167 return 0;
lucasfontenla 28:b3c51076ebe8 168 }
lucasfontenla 28:b3c51076ebe8 169
lucasfontenla 28:b3c51076ebe8 170 t.start();
lucasfontenla 28:b3c51076ebe8 171
lucasfontenla 28:b3c51076ebe8 172 while(1){
lucasfontenla 28:b3c51076ebe8 173 if(t.read() > 4){
lucasfontenla 28:b3c51076ebe8 174 fclose(fp);
lucasfontenla 28:b3c51076ebe8 175 return 0;
lucasfontenla 28:b3c51076ebe8 176 }
lucasfontenla 28:b3c51076ebe8 177 c = fgetc(fp);
lucasfontenla 28:b3c51076ebe8 178 printf("%c\n\r", c);
lucasfontenla 28:b3c51076ebe8 179 buffer.push_back(c);
lucasfontenla 28:b3c51076ebe8 180
lucasfontenla 28:b3c51076ebe8 181 if(c == ';'){
lucasfontenla 28:b3c51076ebe8 182 fclose(fp);
lucasfontenla 28:b3c51076ebe8 183 break;
lucasfontenla 28:b3c51076ebe8 184 }
lucasfontenla 28:b3c51076ebe8 185 }
lucasfontenla 28:b3c51076ebe8 186 fclose(fp);
lucasfontenla 28:b3c51076ebe8 187
lucasfontenla 28:b3c51076ebe8 188 printf("%s\n\r", buffer);
lucasfontenla 28:b3c51076ebe8 189
lucasfontenla 28:b3c51076ebe8 190 machine.upload_gcode(buffer);
lucasfontenla 28:b3c51076ebe8 191 return 1;
lucasfontenla 28:b3c51076ebe8 192 }
lucasfontenla 28:b3c51076ebe8 193
lucasfontenla 28:b3c51076ebe8 194 int check_name_available(string name){
lucasfontenla 28:b3c51076ebe8 195 string file_path = "/sd/" + savedString;
lucasfontenla 28:b3c51076ebe8 196 char * dir = str_to_char(file_path);
lucasfontenla 28:b3c51076ebe8 197 struct dirent *dirp;
lucasfontenla 28:b3c51076ebe8 198 string filename;
lucasfontenla 28:b3c51076ebe8 199
lucasfontenla 28:b3c51076ebe8 200 printf(dir);
lucasfontenla 28:b3c51076ebe8 201
lucasfontenla 28:b3c51076ebe8 202 dp = opendir(dir);
lucasfontenla 28:b3c51076ebe8 203
lucasfontenla 28:b3c51076ebe8 204 while((dirp = readdir(dp)) != NULL) {
lucasfontenla 28:b3c51076ebe8 205 filename = (dirp->d_name);
lucasfontenla 28:b3c51076ebe8 206 printf("%s\n\r", filename);
lucasfontenla 28:b3c51076ebe8 207 if(filename == name){
lucasfontenla 28:b3c51076ebe8 208 closedir(dp);
lucasfontenla 28:b3c51076ebe8 209 return 0;
lucasfontenla 28:b3c51076ebe8 210 }
lucasfontenla 28:b3c51076ebe8 211 }
lucasfontenla 28:b3c51076ebe8 212 closedir(dp);
lucasfontenla 28:b3c51076ebe8 213 return 1;
lucasfontenla 28:b3c51076ebe8 214 }
lucasfontenla 28:b3c51076ebe8 215
lucasfontenla 28:b3c51076ebe8 216 int create_folders(void){
lucasfontenla 28:b3c51076ebe8 217 int gotSaved = 0;
lucasfontenla 28:b3c51076ebe8 218 int gotFiles = 0;
lucasfontenla 28:b3c51076ebe8 219 string filename;
lucasfontenla 28:b3c51076ebe8 220 struct dirent *dirp;
lucasfontenla 28:b3c51076ebe8 221
lucasfontenla 28:b3c51076ebe8 222 dp = opendir("/sd");
lucasfontenla 28:b3c51076ebe8 223
lucasfontenla 28:b3c51076ebe8 224 t.start();
lucasfontenla 28:b3c51076ebe8 225
lucasfontenla 28:b3c51076ebe8 226 while((dirp = readdir(dp)) != NULL) {
lucasfontenla 28:b3c51076ebe8 227 if(t.read() > 2){
lucasfontenla 28:b3c51076ebe8 228 t.stop();
lucasfontenla 28:b3c51076ebe8 229 return 0;
lucasfontenla 28:b3c51076ebe8 230 }
lucasfontenla 28:b3c51076ebe8 231 filename = (dirp->d_name);
lucasfontenla 28:b3c51076ebe8 232 printf("%s\n\r", filename);
lucasfontenla 28:b3c51076ebe8 233 if(filename == savedString){
lucasfontenla 28:b3c51076ebe8 234 printf("Saved OK\n\r");
lucasfontenla 28:b3c51076ebe8 235 gotSaved = 1;
lucasfontenla 28:b3c51076ebe8 236 } else if(filename == gcodeString){
lucasfontenla 28:b3c51076ebe8 237 printf("GCODE OK\n\r");
lucasfontenla 28:b3c51076ebe8 238 gotFiles = 1;
lucasfontenla 28:b3c51076ebe8 239 }
lucasfontenla 28:b3c51076ebe8 240 }
lucasfontenla 28:b3c51076ebe8 241
lucasfontenla 28:b3c51076ebe8 242 if(!gotSaved){
lucasfontenla 28:b3c51076ebe8 243 char * path = str_to_char(("/sd/" + savedString));
lucasfontenla 28:b3c51076ebe8 244 mkdir(path, 0777);
lucasfontenla 28:b3c51076ebe8 245 }
lucasfontenla 28:b3c51076ebe8 246 if(!gotFiles){
lucasfontenla 28:b3c51076ebe8 247 char * path2 = str_to_char(("/sd/" + gcodeString));
lucasfontenla 28:b3c51076ebe8 248 mkdir(path2, 0777);
lucasfontenla 28:b3c51076ebe8 249 }
lucasfontenla 28:b3c51076ebe8 250
lucasfontenla 28:b3c51076ebe8 251 closedir(dp);
lucasfontenla 28:b3c51076ebe8 252 return 1;
lucasfontenla 28:b3c51076ebe8 253 }
lucasfontenla 28:b3c51076ebe8 254
lucasfontenla 28:b3c51076ebe8 255 private:
lucasfontenla 28:b3c51076ebe8 256 char * str_to_char(string str){
lucasfontenla 28:b3c51076ebe8 257 char * path = new char[str.length() + 1];
lucasfontenla 28:b3c51076ebe8 258 std::strcpy(path, str.c_str());
lucasfontenla 28:b3c51076ebe8 259 return path;
lucasfontenla 28:b3c51076ebe8 260 }
lucasfontenla 28:b3c51076ebe8 261 };
lucasfontenla 28:b3c51076ebe8 262
lucasfontenla 28:b3c51076ebe8 263 SDCard sdcard;
lucasfontenla 28:b3c51076ebe8 264
claraluques 18:5338b83b4de9 265 //criar classe "menu" (funções para as telas)
claraluques 18:5338b83b4de9 266 class Menu{
claraluques 19:2c890ae2d187 267
claraluques 18:5338b83b4de9 268 public:
claraluques 18:5338b83b4de9 269 int linha;
claraluques 18:5338b83b4de9 270 int func;
claraluques 23:19c67758032d 271
claraluques 18:5338b83b4de9 272
claraluques 18:5338b83b4de9 273 void movercursor(int min, int max, int col){ //função para mover cursor de seleção
claraluques 18:5338b83b4de9 274 linha = min;
claraluques 18:5338b83b4de9 275 lcd.locate(col,min);
claraluques 18:5338b83b4de9 276 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 277 while (bot_enter==penter){
claraluques 18:5338b83b4de9 278 if (bot_cima==1){
claraluques 18:5338b83b4de9 279 if (linha==min){
claraluques 18:5338b83b4de9 280 lcd.locate(col,min);
claraluques 18:5338b83b4de9 281 lcd.printf(" ");
claraluques 18:5338b83b4de9 282 linha=max;
claraluques 18:5338b83b4de9 283 lcd.locate(col, linha);
claraluques 18:5338b83b4de9 284 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 285 }
claraluques 18:5338b83b4de9 286 else {
claraluques 18:5338b83b4de9 287 lcd.locate(col,linha);
claraluques 18:5338b83b4de9 288 lcd.printf(" ");
claraluques 18:5338b83b4de9 289 linha--;
claraluques 18:5338b83b4de9 290 lcd.locate(col, linha);
claraluques 18:5338b83b4de9 291 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 292 }
claraluques 18:5338b83b4de9 293 bot_cima = 0;
claraluques 18:5338b83b4de9 294 }
claraluques 18:5338b83b4de9 295 else if (bot_baixo==1){
claraluques 18:5338b83b4de9 296 if (linha==max){
claraluques 18:5338b83b4de9 297 lcd.locate(col,max);
claraluques 18:5338b83b4de9 298 lcd.printf(" ");
claraluques 18:5338b83b4de9 299 linha=min;
claraluques 18:5338b83b4de9 300 lcd.locate(col, linha);
claraluques 18:5338b83b4de9 301 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 302 }
claraluques 18:5338b83b4de9 303 else {
claraluques 18:5338b83b4de9 304 lcd.locate(col,linha);
claraluques 18:5338b83b4de9 305 lcd.printf(" ");
claraluques 18:5338b83b4de9 306 linha++;
claraluques 18:5338b83b4de9 307 lcd.locate(col, linha);
claraluques 18:5338b83b4de9 308 lcd.printf("%c", 0x3E);
claraluques 18:5338b83b4de9 309 }
claraluques 18:5338b83b4de9 310 bot_baixo = 0;
claraluques 18:5338b83b4de9 311 }
claraluques 26:59081efdce79 312 //função para printar as coordenadas nas telas 2 e 8
claraluques 19:2c890ae2d187 313 else if (func==2 || func==8){
claraluques 26:59081efdce79 314 //x
claraluques 26:59081efdce79 315 if (cx<=-1 && cx>=-9){
claraluques 26:59081efdce79 316 lcd.locate(2,1);
claraluques 27:83d2a710cc2f 317 lcd.printf(" %.2f ", cx);
claraluques 26:59081efdce79 318 }
claraluques 26:59081efdce79 319 if (cx<=-10 && cx>=-99){
claraluques 26:59081efdce79 320 lcd.locate(2,1);
claraluques 27:83d2a710cc2f 321 lcd.printf(" %.2f ", cx);
claraluques 26:59081efdce79 322 }
claraluques 26:59081efdce79 323 if (cx<=-100){
claraluques 26:59081efdce79 324 lcd.locate(2,1);
claraluques 27:83d2a710cc2f 325 lcd.printf("%.2f ", cx);
claraluques 25:af1f99666ca9 326 }
claraluques 26:59081efdce79 327 if (cx<=9 && cx>=0){
claraluques 25:af1f99666ca9 328 lcd.locate(2,1);
claraluques 27:83d2a710cc2f 329 lcd.printf(" %.2f ", cx);
claraluques 25:af1f99666ca9 330 }
claraluques 25:af1f99666ca9 331 if (cx>=10 && cx<=99){
claraluques 25:af1f99666ca9 332 lcd.locate(2,1);
claraluques 27:83d2a710cc2f 333 lcd.printf(" %.2f ", cx);
claraluques 25:af1f99666ca9 334 }
claraluques 25:af1f99666ca9 335 if (cx>=100){
claraluques 25:af1f99666ca9 336 lcd.locate(2,1);
claraluques 27:83d2a710cc2f 337 lcd.printf(" %.2f ", cx);
claraluques 25:af1f99666ca9 338 }
claraluques 26:59081efdce79 339 //y
claraluques 26:59081efdce79 340 if (cy<=-1 && cy>=-9){
claraluques 26:59081efdce79 341 lcd.locate(2,2);
claraluques 27:83d2a710cc2f 342 lcd.printf(" %.2f ", cy);
claraluques 26:59081efdce79 343 }
claraluques 26:59081efdce79 344 if (cy<=-10 && cx>=-99){
claraluques 26:59081efdce79 345 lcd.locate(2,2);
claraluques 27:83d2a710cc2f 346 lcd.printf(" %.2f ", cy);
claraluques 26:59081efdce79 347 }
claraluques 26:59081efdce79 348 if (cy<=-100){
claraluques 26:59081efdce79 349 lcd.locate(2,2);
claraluques 27:83d2a710cc2f 350 lcd.printf("%.2f ", cy);
claraluques 25:af1f99666ca9 351 }
claraluques 26:59081efdce79 352 if (cy<=9 && cy>=0){
claraluques 25:af1f99666ca9 353 lcd.locate(2,2);
claraluques 27:83d2a710cc2f 354 lcd.printf(" %.2f ", cy);
claraluques 25:af1f99666ca9 355 }
claraluques 25:af1f99666ca9 356 if (cy>=10 && cx<=99){
claraluques 25:af1f99666ca9 357 lcd.locate(2,2);
claraluques 27:83d2a710cc2f 358 lcd.printf(" %.2f ", cy);
claraluques 25:af1f99666ca9 359 }
claraluques 25:af1f99666ca9 360 if (cy>=100){
claraluques 25:af1f99666ca9 361 lcd.locate(2,2);
claraluques 27:83d2a710cc2f 362 lcd.printf(" %.2f ", cy);
claraluques 25:af1f99666ca9 363 }
claraluques 26:59081efdce79 364 //z
claraluques 26:59081efdce79 365 if (cz<=-1 && cz>=-9){
claraluques 26:59081efdce79 366 lcd.locate(2,3);
claraluques 27:83d2a710cc2f 367 lcd.printf(" %.2f ", cz);
claraluques 26:59081efdce79 368 }
claraluques 26:59081efdce79 369 if (cz<=-10 && cx>=-99){
claraluques 26:59081efdce79 370 lcd.locate(2,3);
claraluques 27:83d2a710cc2f 371 lcd.printf(" %.2f ", cz);
claraluques 26:59081efdce79 372 }
claraluques 26:59081efdce79 373 if (cz<=-100){
claraluques 26:59081efdce79 374 lcd.locate(2,3);
claraluques 27:83d2a710cc2f 375 lcd.printf("%.2f ", cz);
claraluques 26:59081efdce79 376 }
claraluques 26:59081efdce79 377 if (cz<=9 && cz>=0){
claraluques 25:af1f99666ca9 378 lcd.locate(2,3);
claraluques 27:83d2a710cc2f 379 lcd.printf(" %.2f ", cz);
claraluques 25:af1f99666ca9 380 }
claraluques 25:af1f99666ca9 381 if (cz>=10 && cx<=99){
claraluques 25:af1f99666ca9 382 lcd.locate(2,3);
claraluques 27:83d2a710cc2f 383 lcd.printf(" %.2f ", cz);
claraluques 25:af1f99666ca9 384 }
claraluques 25:af1f99666ca9 385 if (cz>=100){
claraluques 25:af1f99666ca9 386 lcd.locate(2,3);
claraluques 27:83d2a710cc2f 387 lcd.printf(" %.2f ", cz);
claraluques 25:af1f99666ca9 388 }
claraluques 26:59081efdce79 389 } //até aqui, para alinhar os números
lucasfontenla 22:22ddb0b21d48 390 if (Mach.readable()){
claraluques 21:7603fe283ba4 391 readSerial();
claraluques 21:7603fe283ba4 392 }
claraluques 18:5338b83b4de9 393 }
claraluques 26:59081efdce79 394
claraluques 18:5338b83b4de9 395 }
claraluques 18:5338b83b4de9 396
claraluques 18:5338b83b4de9 397 //func 0
claraluques 18:5338b83b4de9 398 void inicializar(){ //função tela incial de boas-vindas
lucasfontenla 28:b3c51076ebe8 399 int status;
lucasfontenla 28:b3c51076ebe8 400
lucasfontenla 28:b3c51076ebe8 401 printf("Starting...\n\r");
lucasfontenla 28:b3c51076ebe8 402
claraluques 26:59081efdce79 403 machine.reset();
claraluques 18:5338b83b4de9 404 lcd.cls();
claraluques 18:5338b83b4de9 405 lcd.locate(4,0);
claraluques 18:5338b83b4de9 406 lcd.printf("Bem-vindo(a)");
claraluques 18:5338b83b4de9 407 lcd.locate(0,1);
claraluques 18:5338b83b4de9 408 lcd.printf("Utilize seu EPI para operar a maquina.");
lucasfontenla 28:b3c51076ebe8 409
claraluques 18:5338b83b4de9 410 wait(1);
lucasfontenla 28:b3c51076ebe8 411
lucasfontenla 28:b3c51076ebe8 412 status = sdcard.create_folders();
lucasfontenla 28:b3c51076ebe8 413 if(!status){
lucasfontenla 28:b3c51076ebe8 414 printf("SD Error: creating files\n\r");
lucasfontenla 28:b3c51076ebe8 415 }
lucasfontenla 28:b3c51076ebe8 416
lucasfontenla 28:b3c51076ebe8 417 wait(0.25);
lucasfontenla 28:b3c51076ebe8 418
lucasfontenla 28:b3c51076ebe8 419 status = sdcard.send_gcode("New.txt");
lucasfontenla 28:b3c51076ebe8 420 if(!status){
lucasfontenla 28:b3c51076ebe8 421 printf("SD Error: sending files\n\r");
lucasfontenla 28:b3c51076ebe8 422 }
lucasfontenla 28:b3c51076ebe8 423
lucasfontenla 28:b3c51076ebe8 424 wait(0.5);
lucasfontenla 28:b3c51076ebe8 425
claraluques 18:5338b83b4de9 426 func = 1;
claraluques 18:5338b83b4de9 427 }
claraluques 18:5338b83b4de9 428
claraluques 18:5338b83b4de9 429 //func 1
claraluques 18:5338b83b4de9 430 void menuprincipal(){ //função menu principal
claraluques 18:5338b83b4de9 431 bot_enter = 0;
claraluques 18:5338b83b4de9 432 lcd.cls();
claraluques 18:5338b83b4de9 433 lcd.locate(1,0);
claraluques 18:5338b83b4de9 434 lcd.printf("Modo JOG");
claraluques 18:5338b83b4de9 435 lcd.locate(1,1);
claraluques 18:5338b83b4de9 436 lcd.printf("Modo Automatico");
claraluques 18:5338b83b4de9 437 lcd.locate(1,2);
claraluques 26:59081efdce79 438 lcd.printf("Zerar");
claraluques 18:5338b83b4de9 439 lcd.locate(1,3);
claraluques 26:59081efdce79 440 lcd.printf("Config");
claraluques 18:5338b83b4de9 441 movercursor(0,3,0);
claraluques 18:5338b83b4de9 442 if (bot_enter!=penter){
claraluques 18:5338b83b4de9 443 if (linha==0){
claraluques 18:5338b83b4de9 444 func = 2;
claraluques 18:5338b83b4de9 445 }
claraluques 18:5338b83b4de9 446 else if (linha==1) {
claraluques 18:5338b83b4de9 447 func = 3;
claraluques 18:5338b83b4de9 448 }
claraluques 18:5338b83b4de9 449 else if (linha==2) {
claraluques 26:59081efdce79 450 func = 8;
claraluques 18:5338b83b4de9 451 }
claraluques 18:5338b83b4de9 452 else if (linha==3) {
claraluques 26:59081efdce79 453 func = 4;
claraluques 18:5338b83b4de9 454 }
claraluques 18:5338b83b4de9 455 }
claraluques 18:5338b83b4de9 456 }
claraluques 18:5338b83b4de9 457
claraluques 18:5338b83b4de9 458 //func 2
claraluques 18:5338b83b4de9 459 void jog(){ //função tela jog
claraluques 18:5338b83b4de9 460 bot_enter = 0;
claraluques 20:ccbd80b668ce 461 machine.kill_jog();
claraluques 20:ccbd80b668ce 462 wait(0.1);
claraluques 19:2c890ae2d187 463 machine.jog();
claraluques 18:5338b83b4de9 464 lcd.cls();
claraluques 18:5338b83b4de9 465 lcd.locate(4,0);
claraluques 18:5338b83b4de9 466 lcd.printf("Coordenadas:");
claraluques 18:5338b83b4de9 467 lcd.locate(0,1);
claraluques 18:5338b83b4de9 468 lcd.printf("X:");
claraluques 18:5338b83b4de9 469 lcd.locate(0,2);
claraluques 18:5338b83b4de9 470 lcd.printf("Y:");
claraluques 18:5338b83b4de9 471 lcd.locate(0,3);
claraluques 18:5338b83b4de9 472 lcd.printf("Z:");
claraluques 18:5338b83b4de9 473 lcd.locate(11,1);
claraluques 18:5338b83b4de9 474 lcd.printf("Salvar");
claraluques 18:5338b83b4de9 475 lcd.locate(11,2);
claraluques 18:5338b83b4de9 476 lcd.printf("Concluir");
claraluques 18:5338b83b4de9 477 lcd.locate(11,3);
claraluques 18:5338b83b4de9 478 lcd.printf("Cancelar");
claraluques 19:2c890ae2d187 479 movercursor(1,3,10);
claraluques 18:5338b83b4de9 480 if (bot_enter!=penter){
claraluques 20:ccbd80b668ce 481 if (linha==1){
claraluques 26:59081efdce79 482 if (pontos==0 && maxpontos>=1){
claraluques 26:59081efdce79 483 cx_salva = 0;
claraluques 26:59081efdce79 484 cy_salva = 0;
claraluques 26:59081efdce79 485 cz_salva = 0;
claraluques 26:59081efdce79 486 pontos++;
claraluques 26:59081efdce79 487 maxpontos--;
claraluques 26:59081efdce79 488 func = 5;
claraluques 26:59081efdce79 489 }
claraluques 26:59081efdce79 490 else if (pontos>=1 && maxpontos>=1){
claraluques 18:5338b83b4de9 491 cx_salva = cx;
claraluques 18:5338b83b4de9 492 cy_salva = cy;
claraluques 18:5338b83b4de9 493 cz_salva = cz;
claraluques 26:59081efdce79 494 pontos++;
claraluques 26:59081efdce79 495 maxpontos--;
claraluques 18:5338b83b4de9 496 func = 5;
claraluques 18:5338b83b4de9 497 }
claraluques 26:59081efdce79 498 else if (maxpontos==0){
claraluques 18:5338b83b4de9 499 func = 16;
claraluques 18:5338b83b4de9 500 }
claraluques 18:5338b83b4de9 501 }
claraluques 18:5338b83b4de9 502 else if (linha==2) {
claraluques 27:83d2a710cc2f 503 machine.kill_jog();
claraluques 26:59081efdce79 504 func = 17;
claraluques 18:5338b83b4de9 505 }
claraluques 18:5338b83b4de9 506 else if (linha==3) {
claraluques 20:ccbd80b668ce 507 machine.kill_jog();
claraluques 26:59081efdce79 508 wait(0.1);
claraluques 26:59081efdce79 509 machine.cancel_program();
claraluques 18:5338b83b4de9 510 func = 1;
claraluques 18:5338b83b4de9 511 pontos = 10;
claraluques 18:5338b83b4de9 512 }
claraluques 18:5338b83b4de9 513 }
claraluques 18:5338b83b4de9 514 }
claraluques 18:5338b83b4de9 515
claraluques 18:5338b83b4de9 516 //func 3
claraluques 18:5338b83b4de9 517 void automatico(){ //tela modo automatico
claraluques 18:5338b83b4de9 518 lcd.cls();
claraluques 18:5338b83b4de9 519 bot_enter = 0;
claraluques 18:5338b83b4de9 520 lcd.printf("Modo automatico");
claraluques 18:5338b83b4de9 521 lcd.locate(7,2);
claraluques 18:5338b83b4de9 522 lcd.printf("OK");
claraluques 18:5338b83b4de9 523 lcd.locate(7,3);
claraluques 18:5338b83b4de9 524 lcd.printf("Voltar");
claraluques 18:5338b83b4de9 525 movercursor(2,3,6);
claraluques 18:5338b83b4de9 526 if (bot_enter!=penter) {
claraluques 18:5338b83b4de9 527 if (linha==2){
claraluques 18:5338b83b4de9 528 func = 12;
claraluques 18:5338b83b4de9 529 }
claraluques 18:5338b83b4de9 530 else if (linha==3){
claraluques 18:5338b83b4de9 531 func = 1;
claraluques 18:5338b83b4de9 532 }
claraluques 18:5338b83b4de9 533 }
claraluques 18:5338b83b4de9 534 }
claraluques 18:5338b83b4de9 535
claraluques 18:5338b83b4de9 536 //func 4
claraluques 18:5338b83b4de9 537 void config() {
claraluques 18:5338b83b4de9 538 lcd.cls();
claraluques 18:5338b83b4de9 539 bot_enter = 0;
claraluques 27:83d2a710cc2f 540 //printf("%d,tela\n\r", penter);
claraluques 18:5338b83b4de9 541 lcd.locate(1,0);
claraluques 18:5338b83b4de9 542 lcd.printf("Definir velocidade");
claraluques 18:5338b83b4de9 543 lcd.locate(1,1);
claraluques 18:5338b83b4de9 544 lcd.printf("Limpar seringa cola");
claraluques 18:5338b83b4de9 545 lcd.locate(1,2);
claraluques 26:59081efdce79 546 lcd.printf("Origem maquina");
claraluques 18:5338b83b4de9 547 lcd.locate(1,3);
claraluques 18:5338b83b4de9 548 lcd.printf("Voltar");
claraluques 18:5338b83b4de9 549 movercursor(0,3,0);
claraluques 18:5338b83b4de9 550 if (bot_enter!=penter){
claraluques 18:5338b83b4de9 551 if (linha==0) {
claraluques 18:5338b83b4de9 552 func = 13;
claraluques 18:5338b83b4de9 553 }
claraluques 18:5338b83b4de9 554 else if (linha==1) {
claraluques 18:5338b83b4de9 555 func = 14;
claraluques 18:5338b83b4de9 556 }
claraluques 18:5338b83b4de9 557 else if (linha==2) {
claraluques 27:83d2a710cc2f 558 home = 1;
claraluques 27:83d2a710cc2f 559 func = 18;
claraluques 18:5338b83b4de9 560 }
claraluques 18:5338b83b4de9 561 else if (linha==3) {
claraluques 18:5338b83b4de9 562 func = 1;
claraluques 18:5338b83b4de9 563 }
claraluques 18:5338b83b4de9 564 }
claraluques 18:5338b83b4de9 565 }
claraluques 18:5338b83b4de9 566
claraluques 18:5338b83b4de9 567 //func 5
claraluques 18:5338b83b4de9 568 void telasalvamento(){ //função para quando salvar um ponto
claraluques 18:5338b83b4de9 569 lcd.cls();
claraluques 18:5338b83b4de9 570 lcd.locate(0,0);
claraluques 18:5338b83b4de9 571 lcd.printf("Voce salvou");
claraluques 18:5338b83b4de9 572 lcd.locate(1,1);
claraluques 25:af1f99666ca9 573 lcd.printf("X:%.2f ", cx_salva);
claraluques 18:5338b83b4de9 574 lcd.locate(1,2);
claraluques 25:af1f99666ca9 575 lcd.printf("Y:%.2f ", cy_salva);
claraluques 18:5338b83b4de9 576 lcd.locate(1,3);
claraluques 25:af1f99666ca9 577 lcd.printf("Z:%.2f ", cz_salva);
claraluques 18:5338b83b4de9 578 lcd.locate(13,1);
claraluques 18:5338b83b4de9 579 lcd.printf("Pontos");
claraluques 18:5338b83b4de9 580 lcd.locate(13,2);
claraluques 18:5338b83b4de9 581 lcd.printf("livres");
claraluques 18:5338b83b4de9 582 lcd.locate(16,3);
claraluques 26:59081efdce79 583 lcd.printf("%d", maxpontos);
claraluques 18:5338b83b4de9 584 wait(1);
claraluques 18:5338b83b4de9 585 if (pontos>0){
claraluques 18:5338b83b4de9 586 func = 6;
claraluques 18:5338b83b4de9 587 }
claraluques 18:5338b83b4de9 588 else if (pontos==0){
claraluques 18:5338b83b4de9 589 func = 2;
claraluques 18:5338b83b4de9 590 }
claraluques 18:5338b83b4de9 591 }
claraluques 18:5338b83b4de9 592
claraluques 18:5338b83b4de9 593 //func 6
claraluques 18:5338b83b4de9 594 void telacola(){ //tela para escolher o tipo de sequencia da cola
claraluques 18:5338b83b4de9 595 lcd.cls();
claraluques 18:5338b83b4de9 596 bot_enter = 0;
claraluques 18:5338b83b4de9 597 lcd.printf("P/ o proximo ponto:");
claraluques 18:5338b83b4de9 598 lcd.locate(3,1);
claraluques 18:5338b83b4de9 599 lcd.printf("Sem cola");
claraluques 18:5338b83b4de9 600 lcd.locate(3,2);
claraluques 18:5338b83b4de9 601 lcd.printf("Cola no ponto");
claraluques 18:5338b83b4de9 602 lcd.locate(3,3);
claraluques 18:5338b83b4de9 603 lcd.printf("Cola continua");
claraluques 18:5338b83b4de9 604 movercursor(1,3,2);
claraluques 18:5338b83b4de9 605 if (bot_enter!=penter){
claraluques 18:5338b83b4de9 606 if (linha==1){
claraluques 18:5338b83b4de9 607 cola = 0;
claraluques 18:5338b83b4de9 608 func = 2;
claraluques 18:5338b83b4de9 609 }
claraluques 18:5338b83b4de9 610 else if (linha==2) {
claraluques 18:5338b83b4de9 611 cola = 1;
claraluques 18:5338b83b4de9 612 func = 2;
claraluques 18:5338b83b4de9 613 }
claraluques 18:5338b83b4de9 614 else if (linha==3) {
claraluques 18:5338b83b4de9 615 cola = 2;
claraluques 18:5338b83b4de9 616 func = 2;
claraluques 18:5338b83b4de9 617 }
claraluques 20:ccbd80b668ce 618 machine.save_point(cola,2);
claraluques 18:5338b83b4de9 619 }
claraluques 18:5338b83b4de9 620 }
claraluques 18:5338b83b4de9 621
claraluques 18:5338b83b4de9 622 //func 7
claraluques 18:5338b83b4de9 623 void executarprograma() { //tela para selecionar se deseja executar o programa
claraluques 18:5338b83b4de9 624 lcd.cls();
claraluques 18:5338b83b4de9 625 bot_enter = 0;
claraluques 18:5338b83b4de9 626 lcd.locate(2,0);
claraluques 18:5338b83b4de9 627 lcd.printf("VOCE CONCLUIU SEU");
claraluques 18:5338b83b4de9 628 lcd.locate(5,1);
claraluques 18:5338b83b4de9 629 lcd.printf("PROGRAMA.");
claraluques 18:5338b83b4de9 630 lcd.locate(0,2);
claraluques 18:5338b83b4de9 631 lcd.printf("Deseja");
claraluques 18:5338b83b4de9 632 lcd.locate(0,3);
claraluques 18:5338b83b4de9 633 lcd.printf("executa-lo?");
claraluques 18:5338b83b4de9 634 lcd.locate(14,2);
claraluques 18:5338b83b4de9 635 lcd.printf("Sim");
claraluques 18:5338b83b4de9 636 lcd.locate(14,3);
claraluques 18:5338b83b4de9 637 lcd.printf("Voltar");
claraluques 18:5338b83b4de9 638 movercursor(2,3,13);
claraluques 18:5338b83b4de9 639 if (bot_enter!=penter) {
claraluques 18:5338b83b4de9 640 if (linha==2){
claraluques 21:7603fe283ba4 641 machine.kill_jog();
claraluques 21:7603fe283ba4 642 wait(0.1);
claraluques 27:83d2a710cc2f 643 //machine.start_program();
claraluques 18:5338b83b4de9 644 exec = 1;
claraluques 18:5338b83b4de9 645 func = 9;
claraluques 18:5338b83b4de9 646 }
claraluques 18:5338b83b4de9 647 else if (linha==3){
claraluques 18:5338b83b4de9 648 exec = 0;
claraluques 18:5338b83b4de9 649 func = 2;
claraluques 18:5338b83b4de9 650 }
claraluques 18:5338b83b4de9 651 }
claraluques 18:5338b83b4de9 652 }
claraluques 18:5338b83b4de9 653
claraluques 18:5338b83b4de9 654 //func 8
claraluques 18:5338b83b4de9 655 void telazerar(){ //tela para zerar a máquina
claraluques 18:5338b83b4de9 656 lcd.cls();
claraluques 18:5338b83b4de9 657 bot_enter = 0;
claraluques 26:59081efdce79 658 machine.kill_jog();
claraluques 26:59081efdce79 659 machine.jog();
claraluques 18:5338b83b4de9 660 lcd.locate(2,0);
claraluques 19:2c890ae2d187 661 lcd.printf("Zerar:");
claraluques 19:2c890ae2d187 662 lcd.locate(0,1);
claraluques 19:2c890ae2d187 663 lcd.printf("X:");
claraluques 19:2c890ae2d187 664 lcd.locate(0,2);
claraluques 19:2c890ae2d187 665 lcd.printf("Y:");
claraluques 19:2c890ae2d187 666 lcd.locate(0,3);
claraluques 19:2c890ae2d187 667 lcd.printf("Z:");
claraluques 19:2c890ae2d187 668 lcd.locate(13,0);
claraluques 19:2c890ae2d187 669 lcd.printf("X");
claraluques 19:2c890ae2d187 670 lcd.locate(13,1);
claraluques 19:2c890ae2d187 671 lcd.printf("Y");
claraluques 19:2c890ae2d187 672 lcd.locate(13,2);
claraluques 19:2c890ae2d187 673 lcd.printf("Z");
claraluques 19:2c890ae2d187 674 lcd.locate(13,3);
claraluques 19:2c890ae2d187 675 lcd.printf("Voltar");
claraluques 19:2c890ae2d187 676 movercursor(0,3,12);
claraluques 18:5338b83b4de9 677 if (bot_enter!=penter) {
claraluques 19:2c890ae2d187 678 if (linha==0){
claraluques 18:5338b83b4de9 679 cx = 0;
claraluques 19:2c890ae2d187 680 func = 10;
claraluques 19:2c890ae2d187 681 machine.set_zero("X");
claraluques 19:2c890ae2d187 682 }
claraluques 19:2c890ae2d187 683 else if (linha==1){
claraluques 18:5338b83b4de9 684 cy = 0;
claraluques 19:2c890ae2d187 685 func = 10;
claraluques 19:2c890ae2d187 686 machine.set_zero("Y");
claraluques 19:2c890ae2d187 687 }
claraluques 19:2c890ae2d187 688 else if (linha==2){
claraluques 18:5338b83b4de9 689 cz = 0;
claraluques 18:5338b83b4de9 690 func = 10;
claraluques 19:2c890ae2d187 691 machine.set_zero("Z");
claraluques 18:5338b83b4de9 692 }
claraluques 18:5338b83b4de9 693 else if (linha==3){
claraluques 18:5338b83b4de9 694 func = 1;
claraluques 26:59081efdce79 695 machine.kill_jog();
claraluques 18:5338b83b4de9 696 }
claraluques 18:5338b83b4de9 697 }
claraluques 18:5338b83b4de9 698 }
claraluques 18:5338b83b4de9 699
claraluques 18:5338b83b4de9 700 //func 9
claraluques 18:5338b83b4de9 701 void executando(){ //tela de executando
claraluques 18:5338b83b4de9 702 lcd.cls();
claraluques 27:83d2a710cc2f 703 machine.start_program();
claraluques 18:5338b83b4de9 704 lcd.locate(4,1);
claraluques 18:5338b83b4de9 705 lcd.printf("Executando");
claraluques 27:83d2a710cc2f 706 while (exec == 1){
claraluques 27:83d2a710cc2f 707 if (Mach.readable()){
claraluques 27:83d2a710cc2f 708 readSerial();
claraluques 27:83d2a710cc2f 709 }/*
claraluques 18:5338b83b4de9 710 lcd.locate(14,1);
claraluques 18:5338b83b4de9 711 lcd.printf(". ");
claraluques 18:5338b83b4de9 712 wait(0.5);
claraluques 18:5338b83b4de9 713 lcd.locate(14,1);
claraluques 18:5338b83b4de9 714 lcd.printf(".. ");
claraluques 18:5338b83b4de9 715 wait(0.5);
claraluques 18:5338b83b4de9 716 lcd.locate(14,1);
claraluques 18:5338b83b4de9 717 lcd.printf("...");
claraluques 18:5338b83b4de9 718 wait(0.5);
claraluques 18:5338b83b4de9 719 lcd.locate(14,1);
claraluques 18:5338b83b4de9 720 lcd.printf(" ");
claraluques 27:83d2a710cc2f 721 wait(0.5);*/
claraluques 18:5338b83b4de9 722 }
claraluques 27:83d2a710cc2f 723 printf("saiu\n\r");
claraluques 27:83d2a710cc2f 724 func = 11;
claraluques 18:5338b83b4de9 725 }
claraluques 18:5338b83b4de9 726
claraluques 18:5338b83b4de9 727 //func 10
claraluques 18:5338b83b4de9 728 void zerado() { //tela avisando que a máquina foi zerada
claraluques 18:5338b83b4de9 729 lcd.cls();
claraluques 18:5338b83b4de9 730 lcd.locate(5,1);
claraluques 18:5338b83b4de9 731 lcd.printf("Voce zerou");
claraluques 19:2c890ae2d187 732 lcd.locate(6,2);
claraluques 19:2c890ae2d187 733 lcd.printf("o eixo!");
claraluques 18:5338b83b4de9 734 wait(1);
claraluques 18:5338b83b4de9 735 func = 8;
claraluques 18:5338b83b4de9 736 }
claraluques 18:5338b83b4de9 737
claraluques 18:5338b83b4de9 738 //func 11
claraluques 18:5338b83b4de9 739 void finalizado() { //tela aviso programa finalizado
claraluques 18:5338b83b4de9 740 lcd.cls();
claraluques 18:5338b83b4de9 741 lcd.locate(6,1);
claraluques 18:5338b83b4de9 742 lcd.printf("PROGRAMA");
claraluques 18:5338b83b4de9 743 lcd.locate(5,2);
claraluques 18:5338b83b4de9 744 lcd.printf("FINALIZADO");
claraluques 18:5338b83b4de9 745 wait(1);
claraluques 18:5338b83b4de9 746 func = 1;
claraluques 18:5338b83b4de9 747 }
claraluques 18:5338b83b4de9 748
claraluques 18:5338b83b4de9 749 //func 12
claraluques 18:5338b83b4de9 750
claraluques 18:5338b83b4de9 751 //func 13
claraluques 18:5338b83b4de9 752
claraluques 18:5338b83b4de9 753 //func 14
claraluques 18:5338b83b4de9 754
claraluques 18:5338b83b4de9 755 //func 15
claraluques 27:83d2a710cc2f 756 void gohome(){
claraluques 27:83d2a710cc2f 757 lcd.cls();
claraluques 27:83d2a710cc2f 758 machine.machine_zero();
claraluques 27:83d2a710cc2f 759 while (home == 1){
claraluques 27:83d2a710cc2f 760 if (Mach.readable()){
claraluques 27:83d2a710cc2f 761 readSerial();
claraluques 27:83d2a710cc2f 762 }
claraluques 27:83d2a710cc2f 763 }
claraluques 27:83d2a710cc2f 764 func = 19;
claraluques 27:83d2a710cc2f 765 }
claraluques 18:5338b83b4de9 766
claraluques 18:5338b83b4de9 767 //func 16
claraluques 18:5338b83b4de9 768 void limitepontos(){ //tela para quando acabam os pontos
claraluques 18:5338b83b4de9 769 lcd.cls();
claraluques 26:59081efdce79 770 lcd.printf(" Voce atingiu o n%c maximo de pontos", 0xDF);
claraluques 26:59081efdce79 771 lcd.locate(9,2);
claraluques 26:59081efdce79 772 lcd.printf("(%d)", pontos);
claraluques 18:5338b83b4de9 773 lcd.locate(0,3);
claraluques 18:5338b83b4de9 774 lcd.printf("Conclua seu programa");
claraluques 18:5338b83b4de9 775 wait(1);
claraluques 18:5338b83b4de9 776 func = 2;
claraluques 21:7603fe283ba4 777 }
claraluques 26:59081efdce79 778
claraluques 26:59081efdce79 779 //func 17
claraluques 26:59081efdce79 780 void salvarprog(){
claraluques 26:59081efdce79 781 lcd.cls();
claraluques 26:59081efdce79 782 bot_enter = 0;
claraluques 26:59081efdce79 783 lcd.printf("Voce deseja salvar este programa?");
claraluques 26:59081efdce79 784 lcd.locate(5,2);
claraluques 26:59081efdce79 785 lcd.printf("Sim");
claraluques 26:59081efdce79 786 lcd.locate(5,3);
claraluques 26:59081efdce79 787 lcd.printf("Nao");
claraluques 26:59081efdce79 788 movercursor(2,3,4);
claraluques 26:59081efdce79 789 if (bot_enter!=penter){
claraluques 26:59081efdce79 790 if (linha==2){
claraluques 26:59081efdce79 791 salvar = 1;
claraluques 26:59081efdce79 792 func = 7;
claraluques 26:59081efdce79 793 }
claraluques 26:59081efdce79 794 if (linha==3){
claraluques 26:59081efdce79 795 salvar = 0;
claraluques 26:59081efdce79 796 func = 7;
claraluques 26:59081efdce79 797 }
claraluques 26:59081efdce79 798 }
claraluques 26:59081efdce79 799 }
claraluques 27:83d2a710cc2f 800
claraluques 27:83d2a710cc2f 801 //func 18
claraluques 27:83d2a710cc2f 802 void ctzhome(){
claraluques 27:83d2a710cc2f 803 lcd.cls();
claraluques 27:83d2a710cc2f 804 bot_enter = 0;
claraluques 27:83d2a710cc2f 805 lcd.printf("Certifique-se de que a maquina pode se");
claraluques 27:83d2a710cc2f 806 lcd.locate(5,2);
claraluques 27:83d2a710cc2f 807 lcd.printf("movimentar");
claraluques 27:83d2a710cc2f 808 lcd.locate(9,3);
claraluques 27:83d2a710cc2f 809 lcd.printf("OK");
claraluques 27:83d2a710cc2f 810 movercursor(3,3,8);
claraluques 27:83d2a710cc2f 811 if (bot_enter!=penter){
claraluques 27:83d2a710cc2f 812 if (linha==3){
claraluques 27:83d2a710cc2f 813 func = 15;
claraluques 27:83d2a710cc2f 814 }
claraluques 27:83d2a710cc2f 815 }
claraluques 27:83d2a710cc2f 816 }
claraluques 27:83d2a710cc2f 817
claraluques 27:83d2a710cc2f 818 //func 19
claraluques 27:83d2a710cc2f 819 void origem(){
claraluques 27:83d2a710cc2f 820 lcd.cls();
claraluques 27:83d2a710cc2f 821 lcd.locate(5,1);
claraluques 27:83d2a710cc2f 822 lcd.printf("A MAQUINA");
claraluques 27:83d2a710cc2f 823 lcd.locate(2,2);
claraluques 27:83d2a710cc2f 824 lcd.printf("ESTA NA ORIGEM");
claraluques 27:83d2a710cc2f 825 wait(1);
claraluques 27:83d2a710cc2f 826 func = 4;
claraluques 27:83d2a710cc2f 827 }
claraluques 26:59081efdce79 828
claraluques 26:59081efdce79 829 //função para ler os pontos
claraluques 21:7603fe283ba4 830 void readSerial(){
claraluques 21:7603fe283ba4 831 char recv;
lucasfontenla 24:46c3be0e8273 832 int points = 0;
lucasfontenla 24:46c3be0e8273 833 int pointx = 0;
lucasfontenla 24:46c3be0e8273 834 int pointy = 0;
lucasfontenla 24:46c3be0e8273 835 int pointz = 0;
claraluques 27:83d2a710cc2f 836 int action = 0;
lucasfontenla 24:46c3be0e8273 837 string coordx = "";
lucasfontenla 24:46c3be0e8273 838 string coordy = "";
lucasfontenla 24:46c3be0e8273 839 string coordz = "";
claraluques 26:59081efdce79 840
claraluques 21:7603fe283ba4 841
claraluques 21:7603fe283ba4 842 while(1){
claraluques 21:7603fe283ba4 843 recv = Mach.getc();
claraluques 27:83d2a710cc2f 844 printf("%c\n\r", recv);
claraluques 27:83d2a710cc2f 845 if (recv == 'a' /*&& points == 0*/){
claraluques 27:83d2a710cc2f 846 home = 0;
claraluques 27:83d2a710cc2f 847 exec = 0;
claraluques 26:59081efdce79 848 printf("oi\n\r");
claraluques 27:83d2a710cc2f 849 action = 1;
claraluques 26:59081efdce79 850 }
lucasfontenla 24:46c3be0e8273 851 if (recv == 'p'){
claraluques 21:7603fe283ba4 852 points = 1;
claraluques 23:19c67758032d 853 }
claraluques 23:19c67758032d 854 if (points){
lucasfontenla 24:46c3be0e8273 855 if (recv == 'X'){
claraluques 21:7603fe283ba4 856 pointx = 1;
lucasfontenla 24:46c3be0e8273 857 pointy = 0;
lucasfontenla 24:46c3be0e8273 858 pointz = 0;
claraluques 21:7603fe283ba4 859 }
lucasfontenla 24:46c3be0e8273 860 else if (recv == 'Y'){
claraluques 21:7603fe283ba4 861 pointy = 1;
lucasfontenla 24:46c3be0e8273 862 pointx = 0;
lucasfontenla 24:46c3be0e8273 863 pointz = 0;
claraluques 21:7603fe283ba4 864 }
lucasfontenla 24:46c3be0e8273 865 else if (recv == 'Z'){
claraluques 21:7603fe283ba4 866 pointz = 1;
lucasfontenla 24:46c3be0e8273 867 pointx = 0;
lucasfontenla 24:46c3be0e8273 868 pointy = 0;
claraluques 23:19c67758032d 869 }
lucasfontenla 24:46c3be0e8273 870 else if (recv == 'x'){
claraluques 23:19c67758032d 871 cx = atof(coordx.c_str());
claraluques 23:19c67758032d 872 cy = atof(coordy.c_str());
claraluques 23:19c67758032d 873 cz = atof(coordz.c_str());
claraluques 23:19c67758032d 874 printf("%s,%s,%s\n\r", coordx, coordy, coordz);
claraluques 21:7603fe283ba4 875 break;
claraluques 21:7603fe283ba4 876 }
claraluques 23:19c67758032d 877 }
claraluques 23:19c67758032d 878 if (pointx){
lucasfontenla 24:46c3be0e8273 879 if (recv!='X'){
claraluques 23:19c67758032d 880 coordx.push_back(recv);
claraluques 23:19c67758032d 881 }
claraluques 23:19c67758032d 882 }
claraluques 23:19c67758032d 883 if (pointy){
lucasfontenla 24:46c3be0e8273 884 if (recv!='Y'){
claraluques 23:19c67758032d 885 coordy.push_back(recv);
claraluques 23:19c67758032d 886 }
claraluques 23:19c67758032d 887 }
claraluques 23:19c67758032d 888 if (pointz){
lucasfontenla 24:46c3be0e8273 889 if (recv!='Z'){
claraluques 23:19c67758032d 890 coordz.push_back(recv);
claraluques 23:19c67758032d 891 }
claraluques 23:19c67758032d 892 }
claraluques 27:83d2a710cc2f 893 if (action){
claraluques 27:83d2a710cc2f 894 if (recv=='x'){
claraluques 27:83d2a710cc2f 895 break;
claraluques 27:83d2a710cc2f 896 }
claraluques 27:83d2a710cc2f 897 }
claraluques 23:19c67758032d 898 }
claraluques 21:7603fe283ba4 899 }
claraluques 23:19c67758032d 900
claraluques 26:59081efdce79 901
lucasfontenla 22:22ddb0b21d48 902
claraluques 21:7603fe283ba4 903 Menu(); //não apagar
lucasfontenla 17:0b8e489fac36 904 };