2 Motores + Joystick

Dependencies:   X_NUCLEO_IHM01A1 TextLCD

Fork of HelloWorld_IHM01A1_2Motors_mbedOS by ST

Files at this revision

API Documentation at this revision

Comitter:
digo1234
Date:
Thu May 17 18:31:29 2018 +0000
Parent:
48:76ccfa408a33
Commit message:
motor integrado com ihm

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Thu May 17 17:22:35 2018 +0000
+++ b/main.cpp	Thu May 17 18:31:29 2018 +0000
@@ -67,7 +67,10 @@
 #define SPEED_1 1300
 #define SPEED_2 1300
 
-
+//(digo)
+/*#include "TextLCD.h"
+#define apertado 0
+#define solto 1/*
 
 /* Variables -----------------------------------------------------------------*/
 //InterruptIn sensorX1(PC_9); 
@@ -85,6 +88,11 @@
 DigitalIn salva_pos (PC_1);
 DigitalIn vai_cami (PC_0);
 
+//(digo)
+/*DigitalIn button1(D5);
+DigitalIn button2(D4);
+DigitalIn button3(D6);
+DigitalIn button4(D7);*/
 
 
 
@@ -160,6 +168,13 @@
 L6474 *motor2;
 L6474 *motor3;
 
+//digo: TextLCD_I2C lcd(&i2c_lcd, 0x7E, TextLCD::LCD20x4); // I2C exp: I2C bus, PCF8574 Slaveaddress, LCD Type
+
+/*int menu=0;
+float x=0.0, y=0.0, z=0.0;(não vai)
+int inicial= 1;
+int pisca = 0;*/
+
 
 /* Main ----------------------------------------------------------------------*/
 /*
@@ -330,7 +345,70 @@
         exit(EXIT_FAILURE);
     }
 
- 
+//(digo)
+ /*    
+    lcd.setBacklight(TextLCD::LightOn);
+    lcd.setCursor(TextLCD::CurOff_BlkOff);
+    while (inicial==1)
+    {
+        lcd.setCursor(TextLCD::CurOff_BlkOff);
+            lcd.setAddress(0,0);
+            lcd.printf("INICIANDO PROGRAMA!");
+                  if(pisca==0)
+                {
+                  lcd.setAddress(0,2);
+                  lcd.printf("Aguarde***");
+                  pisca=1;
+                  wait(0.2);
+                  }
+                  if(pisca==1)
+                {
+                  lcd.setAddress(0,2);
+                  lcd.printf("Aguarde.**");
+                  pisca=2;
+                  wait(0.2);
+                  }
+                  if(pisca==2)
+                {
+                  lcd.setAddress(0,2);
+                  lcd.printf("Aguarde..*");
+                  pisca=3;
+                  wait(0.2);
+                  }
+                  if(pisca==3)
+                {
+                  lcd.setAddress(0,2);
+                  lcd.printf("Aguarde...");
+                  pisca=0;
+                  wait(0.2);
+                  }      
+            //printf("dentro do menurodando programa\r\n");
+            wait(5);
+          inicial=0;
+            }
+        lcd.cls(); */
+        
+//(digo)        
+/*    while(inicial==0){
+        
+        if (menu<0){
+            menu=0;
+            printf("menu %d \r\n",menu);  
+        }
+       
+        while ((menu==0)&& (button1==solto) && (button2==solto) && (button3==solto) && (button4==solto)){
+            lcd.setAddress(3,0);
+            lcd.printf("MENU PRINCIPAL");
+            lcd.setAddress(0,2);
+            lcd.printf("1-SALVAR PONTOS");
+            lcd.setAddress(0,3);
+            lcd.printf("2-INICIAR PROGRAMA");
+            if(button1==apertado)
+            {menu=1;}
+            if(button2==apertado)
+            {menu=7;}
+        }
+        lcd.cls();*/
 
 
 
@@ -440,8 +518,263 @@
                 
                }
 
+/*while ((menu==1)&& (button1==solto) && (button2==solto) && (button3==solto) && (button4==solto)){
+            //lcd.setAddress(0,0);
+            //lcd.printf("SELECIONE O PONTO 1"); // Ponto 1
+            lcd.setCursor(TextLCD::CurOff_BlkOff);
+            lcd.setAddress(0,0);
+            lcd.printf("1-SALVAR PONTO 1");
+            lcd.setAddress(0,1);
+            lcd.printf("2-VOLTAR");
+            lcd.setAddress(0,2);
+            lcd.printf("3-CANCELAR ");
+            lcd.setAddress(11,1);
+            lcd.printf("X:%.2f",x);
+            lcd.setAddress(11,2);
+            lcd.printf("Y:%.2f",y);
+            lcd.setAddress(11,3);
+            lcd.printf("Z:%.2f",z);
+           // previous1 = 1;
+            printf("dentro do menu1\r\n");
+            if(button1==apertado)
+            {
+            listaX[index] = motor2->get_position();
+            listaY[index] = motor1->get_position();
+            listaZ[index] = motor3->get_position();
+            for (int j=0; j<=index; j++) {
+                printf("posX%d %d: \r\n", j, listaX[j]);
+                printf("posY%d %d: \r\n", j, listaY[j]);
+                printf("posZ%d %d: \r\n", j, listaZ[j]);
+                }
+            index = index+1;
+            //wait_ms(DELAY_2);   
+            menu=2;
+            }
+            if(button2==apertado)
+            {menu=0;}
+            if(button3==apertado)
+            {menu=0;}
+        }
+        lcd.cls();
+        
+        while ((menu==2)&& (button1==solto) && (button2==solto) && (button3==solto) && (button4==solto)){
+            //lcd.setAddress(0,0);
+            //lcd.printf("SELECIONE O PONTO 2"); // Ponto 2
+            //x=x+0.42;
+            //y=y+0.17;
+            //z=z+0.21;
+            lcd.setCursor(TextLCD::CurOff_BlkOff);
+            lcd.setAddress(0,0);
+            lcd.printf("1-SALVAR PONTO 2");
+            lcd.setAddress(0,1);
+            lcd.printf("2-VOLTAR");
+            lcd.setAddress(0,2);
+            lcd.printf("3-CANCELAR");
+            lcd.setAddress(0,3);
+            lcd.printf("4-CONCLUIR");
+            lcd.setAddress(11,1);
+            lcd.printf("X:%.2f",x);
+            lcd.setAddress(11,2);
+            lcd.printf("Y:%.2f",y);
+            lcd.setAddress(11,3);
+            lcd.printf("Z:%.2f",z);
+           // previous1 = 1;
+            printf("dentro do menu2\r\n");   
+            if(button1==apertado)
+            {
+            listaX[index] = motor2->get_position();
+            listaY[index] = motor1->get_position();
+            listaZ[index] = motor3->get_position();
+            for (int j=0; j<=index; j++) {
+                printf("posX%d %d: \r\n", j, listaX[j]);
+                printf("posY%d %d: \r\n", j, listaY[j]);
+                printf("posZ%d %d: \r\n", j, listaZ[j]);
+                }
+            index = index+1;
+            //wait_ms(DELAY_2);   
+             menu=3;}   
+            if(button2==apertado)
+            {menu=1;}
+            if(button3==apertado)
+            {menu=0;}
+            if(button4==apertado)
+            {menu=6;}
+        }
+        lcd.cls();
+        
+        while ((menu==3)&& (button1==solto) && (button2==solto) && (button3==solto) && (button4==solto)){
+           // lcd.setAddress(0,0);
+            //lcd.printf("SELECIONE O PONTO 3"); // Ponto 3
+            //x=x+0.42;
+            //y=y+0.17;
+            //z=z+0.21;
+            lcd.setCursor(TextLCD::CurOff_BlkOff);
+            lcd.setAddress(0,0);
+            lcd.printf("1-SALVAR PONTO 3");
+            lcd.setAddress(0,1);
+            lcd.printf("2-VOLTAR");
+            lcd.setAddress(0,2);
+            lcd.printf("3-CANCELAR");
+            lcd.setAddress(0,3);
+            lcd.printf("4-CONCLUIR");
+            lcd.setAddress(11,1);
+            lcd.printf("X:%.2f",x);
+            lcd.setAddress(11,2);
+            lcd.printf("Y:%.2f",y);
+            lcd.setAddress(11,3);
+            lcd.printf("Z:%.2f",z);
+            //previous1 = 1;
+            printf("dentro do menu3\r\n");   
+            if(button1==apertado)
+            {
+            listaX[index] = motor2->get_position();
+            listaY[index] = motor1->get_position();
+            listaZ[index] = motor3->get_position();
+            for (int j=0; j<=index; j++) {
+                printf("posX%d %d: \r\n", j, listaX[j]);
+                printf("posY%d %d: \r\n", j, listaY[j]);
+                printf("posZ%d %d: \r\n", j, listaZ[j]);
+                }
+            index = index+1;
+            //wait_ms(DELAY_2);
+             menu=4;}   
+            if(button2==apertado)
+            {menu=2;}
+            if(button3==apertado)
+            {menu=0;}
+            if(button4==apertado)
+            {menu=6;}
+        }
+        lcd.cls();
+        
+        while ((menu==4)&& (button1==solto) && (button2==solto) && (button3==solto) && (button4==solto)){
+           // lcd.setAddress(0,0);
+            //lcd.printf("SELECIONE O PONTO 3"); // Ponto 3
+            lcd.setCursor(TextLCD::CurOff_BlkOff);
+            lcd.setAddress(0,0);
+            lcd.printf("1-SALVAR PONTO 4");
+            lcd.setAddress(0,1);
+            lcd.printf("2-VOLTAR");
+            lcd.setAddress(0,2);
+            lcd.printf("3-CANCELAR");
+            lcd.setAddress(0,3);
+            lcd.printf("4-CONCLUIR");
+            lcd.setAddress(11,1);
+            lcd.printf("X:%.2f",x);
+            lcd.setAddress(11,2);
+            lcd.printf("Y:%.2f",y);
+            lcd.setAddress(11,3);
+            lcd.printf("Z:%.2f",z);
+            //previous1 = 1;
+            printf("dentro do menu3\r\n");   
+            if(button1==apertado)
+            {
+            listaX[index] = motor2->get_position();
+            listaY[index] = motor1->get_position();
+            listaZ[index] = motor3->get_position();
+            for (int j=0; j<=index; j++) {
+                printf("posX%d %d: \r\n", j, listaX[j]);
+                printf("posY%d %d: \r\n", j, listaY[j]);
+                printf("posZ%d %d: \r\n", j, listaZ[j]);
+                }
+            index = index+1;
+            //wait_ms(DELAY_2);   
+            menu=5;}   
+            if(button2==apertado)
+            {menu=3;}
+            if(button3==apertado)
+            {menu=0;}
+            if(button4==apertado)
+            {menu=6;}
+        }
+        lcd.cls();
+        while ((menu==5)&& (button1==solto) && (button2==solto) && (button3==solto) && (button4==solto)){
+           // lcd.setAddress(0,0);
+            //lcd.printf("SELECIONE O PONTO 3"); // Ponto 3
+            lcd.setCursor(TextLCD::CurOff_BlkOff);
+            lcd.setAddress(0,0);
+            lcd.printf("1-SALVAR PONTO 5");
+            lcd.setAddress(0,1);
+            lcd.printf("2-VOLTAR");
+            lcd.setAddress(0,2);
+            lcd.printf("3-CANCELAR");
+            lcd.setAddress(0,3);
+            lcd.printf("4-CONCLUIR");
+            lcd.setAddress(11,1);
+            lcd.printf("X:%.2f",x);
+            lcd.setAddress(11,2);
+            lcd.printf("Y:%.2f",y);
+            lcd.setAddress(11,3);
+            lcd.printf("Z:%.2f",z);
+            //previous1 = 1;
+            printf("dentro do menu3\r\n");   
+            if(button1==apertado)
+            {
+            listaX[index] = motor2->get_position();
+            listaY[index] = motor1->get_position();
+            listaZ[index] = motor3->get_position();
+            for (int j=0; j<=index; j++) {
+                printf("posX%d %d: \r\n", j, listaX[j]);
+                printf("posY%d %d: \r\n", j, listaY[j]);
+                printf("posZ%d %d: \r\n", j, listaZ[j]);
+                }
+            index = index+1;
+            //wait_ms(DELAY_2);   
+            menu=6;}   
+            if(button2==apertado)
+            {menu=4;}
+            if(button3==apertado)
+            {menu=0;}
+            if(button4==apertado)
+            {menu=6;}
+        }
+        lcd.cls();
+        while ((menu==6)&& (button1==solto) && (button2==solto) && (button3==solto) && (button4==solto)){
+            lcd.setCursor(TextLCD::CurOff_BlkOff);
+            lcd.setAddress(3,0);
+            lcd.printf("PONTOS SALVOS!");
+            lcd.setAddress(0,2);
+            lcd.printf("1-VOLTAR AO MENU");
+            lcd.setAddress(0,3);
+            lcd.printf("2-RESSALVAR PONTOS");
+            printf("dentro do menu4\r\n");
+            if(button1==apertado)
+            {menu=0;}   
+            if(button2==apertado)
+            {menu=1;}
+        }
+        lcd.cls();
+
+       while ((menu==7)&& (button1==solto) && (button2==solto) && (button3==solto) && (button4==solto)){
+            if((x>0 or y>0 or z>0 or x<0 or y<0 or z<0))
+            {
+        vai_caminho_desejado(listaX, listaY, listaZ, index);
+        printf("Vai caminho pressionado %d \r\n", index);
+        wait_ms(DELAY_2);
+            lcd.setCursor(TextLCD::CurOff_BlkOff);
+            lcd.setAddress(0,0);
+            lcd.printf("RODANDO PROGRAMA!");
+            lcd.setAddress(0,2);
+            lcd.printf("Aguarde...");
+            printf("dentro do menu rodando programa\r\n");
+            wait(5);
+            menu=0;
+            }
+            if(x==0 or y==0 or z==0 or x==0 or y==0 or z==0)
+            {
+             lcd.setCursor(TextLCD::CurOff_BlkOff);
+            lcd.setAddress(0,0);
+            lcd.printf("NAO TEM PONTO SALVOS");
+            lcd.setAddress(0,2);
+            wait(3);
+            menu=0;
+            }
+        }
+        lcd.cls();*/
+        
+
     
-  if (salva_pos) {
+ if (salva_pos) {
             listaX[index] = motor2->get_position();
             listaY[index] = motor1->get_position();
             listaZ[index] = motor3->get_position();
@@ -455,7 +788,7 @@
            } 
             
             
-    if (vai_cami) {
+   if (vai_cami) {
         vai_caminho_desejado(listaX, listaY, listaZ, index);
         printf("Vai caminho pressionado %d \r\n", index);
         wait_ms(DELAY_2);