Coursework

main.cpp

Committer:
sesa514652
Date:
2022-01-05
Revision:
4:167ce930c9d5
Parent:
3:6ecb75a2675c
Child:
5:9b2c976ca318

File content as of revision 4:167ce930c9d5:

#include "mbed.h"
#include "Joystick.h"
#include "N5110.h"
#include "hcsr04.h"
#include "Piezo.h"
//                  y     x     button
Joystick joystick(PTB10,PTB11,PTC16);
HCSR04 sensor(D14, D15); 
Piezo Buzzer(PTC10);

//      rows,cols
int sprite[8][5] =   {
    { 0,0,1,0,0 },
    { 0,1,1,1,0 },
    { 0,0,1,0,0 },
    { 0,1,1,1,0 },
    { 1,1,1,1,1 },
    { 1,1,1,1,1 },
    { 1,1,0,1,1 },
    { 1,1,0,1,1 },
};
//Test Void after research C++ lanuage 05/01/22
int cube(int num){
     int result;
     result = num*num;
     return result;
     };

N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); 
int main() {
    //initialise Joystick
    joystick.init();
        // first need to initialise display
   lcd.init();
    
    // change set contrast in range 0.0 to 1.0
    // 0.5 appears to be a good starting point
   lcd.setContrast(0.5);
    //     Buzzer.period(10.0f);
    //Buzzer.pulsewidth(1);   

  
    while(1) {
       // Tune(Buzzer,So6,8);
     //Stop_tunes(Buzzer);
    Buzzer.play(200,120);
    wait_ms(5);
    Buzzer.play(200,120);
        long distanced = sensor.distance(); 
        if (distanced >= 400 || distanced <= 2) 
    {
        printf("Out of range");
        // calling dummy function 05/01/22
        int answer = cube(2);
        printf("%f\n",answer);
                  
        wait(1.0);
    }
   
    else
    
    {
      printf("Distance :  %d cm",distanced);
      wait(1.0); // 1 sec  
    }
 lcd.drawCircle(WIDTH/2,HEIGHT/2,distanced,FILL_BLACK); 
 lcd.refresh();
 wait(5.0);
        // these are default settings so not strictly needed
        lcd.normalMode();      // normal colour mode
        lcd.setBrightness(0.5); // put LED backlight on 50%
        
        lcd.clear();
        lcd.printString("Hello, World!",0,0);
        Vector2D coord = joystick.get_coord();
        lcd.refresh();
        
        printf("Coord = %f,%f\n",coord.x,coord.y);
        char buffer[14];
        Vector2D mapped_coord = joystick.get_mapped_coord(); 
        printf("Mapped coord = %f,%f\n",mapped_coord.x,mapped_coord.y); 
        
          int length = sprintf(buffer,"T = %2f",coord.x);
                // it is important the format specifier ensures the length will fit in the buffer
        if (length <= 14)  // if string will fit on display (assuming printing at x=0)
           lcd.printString(buffer,0,1);           // display on screen
        lcd.refresh();
        
        
  
         lcd.clear();
         // times by 50 to try get the point moving across screen
         float x50 = mapped_coord.x*5;
         float y50 = mapped_coord.y*8;
         //  to see what the values are 
         printf(" *50 = %f,%f\n",x50,y50);
         // 
        // example of how to draw circles
        lcd.printChar('o',WIDTH/2,HEIGHT/2);
        lcd.refresh();
        
        
        float mag = joystick.get_mag();
        float angle = joystick.get_angle();
        printf("Mag = %f Angle = %f\n",mag,angle);
        
        Direction d = joystick.get_direction();
        printf("Direction = %i\n",d);
        
        if (joystick.button_pressed() ) {
            printf("Button Pressed\n");  
        }

   

      
    }
}