Coursework

Committer:
sesa514652
Date:
Wed Jan 05 20:57:32 2022 +0000
Revision:
6:f7f30e0e3bed
Parent:
5:9b2c976ca318
Child:
7:ce70a873aa70
Testing with structs to work out string struct;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sesa514652 0:1f799c7cce2b 1 #include "mbed.h"
sesa514652 0:1f799c7cce2b 2 #include "Joystick.h"
sesa514652 0:1f799c7cce2b 3 #include "N5110.h"
sesa514652 0:1f799c7cce2b 4 #include "hcsr04.h"
sesa514652 3:6ecb75a2675c 5 #include "Piezo.h"
sesa514652 5:9b2c976ca318 6 // y x button
sesa514652 0:1f799c7cce2b 7 Joystick joystick(PTB10,PTB11,PTC16);
sesa514652 0:1f799c7cce2b 8 HCSR04 sensor(D14, D15);
sesa514652 3:6ecb75a2675c 9 Piezo Buzzer(PTC10);
sesa514652 0:1f799c7cce2b 10
sesa514652 5:9b2c976ca318 11 //rows,cols
sesa514652 0:1f799c7cce2b 12 int sprite[8][5] = {
sesa514652 0:1f799c7cce2b 13 { 0,0,1,0,0 },
sesa514652 0:1f799c7cce2b 14 { 0,1,1,1,0 },
sesa514652 0:1f799c7cce2b 15 { 0,0,1,0,0 },
sesa514652 0:1f799c7cce2b 16 { 0,1,1,1,0 },
sesa514652 0:1f799c7cce2b 17 { 1,1,1,1,1 },
sesa514652 0:1f799c7cce2b 18 { 1,1,1,1,1 },
sesa514652 0:1f799c7cce2b 19 { 1,1,0,1,1 },
sesa514652 0:1f799c7cce2b 20 { 1,1,0,1,1 },
sesa514652 5:9b2c976ca318 21 };
sesa514652 6:f7f30e0e3bed 22
sesa514652 4:167ce930c9d5 23 //Test Void after research C++ lanuage 05/01/22
sesa514652 4:167ce930c9d5 24 int cube(int num){
sesa514652 4:167ce930c9d5 25 int result;
sesa514652 4:167ce930c9d5 26 result = num*num;
sesa514652 4:167ce930c9d5 27 return result;
sesa514652 5:9b2c976ca318 28 };
sesa514652 4:167ce930c9d5 29
sesa514652 5:9b2c976ca318 30 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
sesa514652 5:9b2c976ca318 31
sesa514652 0:1f799c7cce2b 32 int main() {
sesa514652 5:9b2c976ca318 33 //initialise Joystic
sesa514652 5:9b2c976ca318 34 joystick.init();
sesa514652 5:9b2c976ca318 35
sesa514652 5:9b2c976ca318 36 //first need to initialise display
sesa514652 5:9b2c976ca318 37 lcd.init();
sesa514652 5:9b2c976ca318 38
sesa514652 5:9b2c976ca318 39 //change set contrast in range 0.0 to 1.0
sesa514652 5:9b2c976ca318 40 //0.5 appears to be a good starting point
sesa514652 5:9b2c976ca318 41 lcd.setContrast(0.5);
sesa514652 5:9b2c976ca318 42
sesa514652 5:9b2c976ca318 43 //Buzzer.period(10.0f);
sesa514652 5:9b2c976ca318 44 //Buzzer.pulsewidth(1);
sesa514652 6:f7f30e0e3bed 45 //Test Struct after research 05/01/22
sesa514652 6:f7f30e0e3bed 46 struct ObjectDefine{
sesa514652 6:f7f30e0e3bed 47 //td::string Object;
sesa514652 6:f7f30e0e3bed 48 float Distance;
sesa514652 6:f7f30e0e3bed 49 };
sesa514652 6:f7f30e0e3bed 50 ObjectDefine Object1;
sesa514652 6:f7f30e0e3bed 51 // Object1.Object ="Wall";
sesa514652 6:f7f30e0e3bed 52 Object1.Distance = 34;
sesa514652 0:1f799c7cce2b 53 while(1) {
sesa514652 5:9b2c976ca318 54 //Tune(Buzzer,So6,8);
sesa514652 5:9b2c976ca318 55 //Stop_tunes(Buzzer);
sesa514652 5:9b2c976ca318 56 Buzzer.play(200,120);
sesa514652 5:9b2c976ca318 57 wait_ms(5);
sesa514652 5:9b2c976ca318 58 Buzzer.play(200,120);
sesa514652 1:757728321abd 59 long distanced = sensor.distance();
sesa514652 1:757728321abd 60 if (distanced >= 400 || distanced <= 2)
sesa514652 5:9b2c976ca318 61 {
sesa514652 1:757728321abd 62 printf("Out of range");
sesa514652 5:9b2c976ca318 63 //Calling dummy function 05/01/22
sesa514652 4:167ce930c9d5 64 int answer = cube(2);
sesa514652 5:9b2c976ca318 65 printf("%f\n",answer);
sesa514652 1:757728321abd 66 wait(1.0);
sesa514652 5:9b2c976ca318 67 }
sesa514652 5:9b2c976ca318 68 else
sesa514652 5:9b2c976ca318 69 {
sesa514652 5:9b2c976ca318 70 printf("Distance : %d cm",distanced);
sesa514652 5:9b2c976ca318 71 wait(1.0); // 1 sec
sesa514652 1:757728321abd 72 }
sesa514652 5:9b2c976ca318 73 lcd.drawCircle(WIDTH/2,HEIGHT/2,distanced,FILL_BLACK);
sesa514652 5:9b2c976ca318 74 //lcd.refresh must be used to update the lcd Display
sesa514652 5:9b2c976ca318 75 lcd.refresh();
sesa514652 5:9b2c976ca318 76 wait(5.0);
sesa514652 5:9b2c976ca318 77 //these are default settings so not strictly needed
sesa514652 0:1f799c7cce2b 78 lcd.normalMode(); // normal colour mode
sesa514652 5:9b2c976ca318 79 lcd.setBrightness(0.5); // put LED backlight on 50%
sesa514652 0:1f799c7cce2b 80 lcd.clear();
sesa514652 0:1f799c7cce2b 81 lcd.printString("Hello, World!",0,0);
sesa514652 0:1f799c7cce2b 82 Vector2D coord = joystick.get_coord();
sesa514652 0:1f799c7cce2b 83 lcd.refresh();
sesa514652 0:1f799c7cce2b 84 printf("Coord = %f,%f\n",coord.x,coord.y);
sesa514652 0:1f799c7cce2b 85 char buffer[14];
sesa514652 0:1f799c7cce2b 86 Vector2D mapped_coord = joystick.get_mapped_coord();
sesa514652 0:1f799c7cce2b 87 printf("Mapped coord = %f,%f\n",mapped_coord.x,mapped_coord.y);
sesa514652 0:1f799c7cce2b 88
sesa514652 5:9b2c976ca318 89 int length = sprintf(buffer,"T = %2f",coord.x);
sesa514652 5:9b2c976ca318 90 //it is important the format specifier ensures the length will fit in the buffer
sesa514652 0:1f799c7cce2b 91 if (length <= 14) // if string will fit on display (assuming printing at x=0)
sesa514652 5:9b2c976ca318 92 lcd.printString(buffer,0,1); // display on screen
sesa514652 0:1f799c7cce2b 93 lcd.refresh();
sesa514652 5:9b2c976ca318 94 lcd.clear();
sesa514652 5:9b2c976ca318 95 //times by 50 to try get the point moving across screen
sesa514652 0:1f799c7cce2b 96 float x50 = mapped_coord.x*5;
sesa514652 0:1f799c7cce2b 97 float y50 = mapped_coord.y*8;
sesa514652 5:9b2c976ca318 98 //to see what the values are
sesa514652 5:9b2c976ca318 99 printf(" *50 = %f,%f\n",x50,y50);
sesa514652 5:9b2c976ca318 100 //example of how to draw circles
sesa514652 1:757728321abd 101 lcd.printChar('o',WIDTH/2,HEIGHT/2);
sesa514652 5:9b2c976ca318 102 lcd.refresh();
sesa514652 0:1f799c7cce2b 103 float mag = joystick.get_mag();
sesa514652 0:1f799c7cce2b 104 float angle = joystick.get_angle();
sesa514652 0:1f799c7cce2b 105 printf("Mag = %f Angle = %f\n",mag,angle);
sesa514652 0:1f799c7cce2b 106 Direction d = joystick.get_direction();
sesa514652 0:1f799c7cce2b 107 printf("Direction = %i\n",d);
sesa514652 0:1f799c7cce2b 108 if (joystick.button_pressed() ) {
sesa514652 0:1f799c7cce2b 109 printf("Button Pressed\n");
sesa514652 0:1f799c7cce2b 110 }
sesa514652 0:1f799c7cce2b 111 }
sesa514652 0:1f799c7cce2b 112 }
sesa514652 5:9b2c976ca318 113