Lidar

Dependencies:   TS_DISCO_F746NG mbed BufferedSerial LCD_DISCO_F746NG mbed-rtos Trigo BSP_DISCO_F746NG

Committer:
Carminio
Date:
Wed Nov 23 17:01:03 2016 +0000
Revision:
2:8f71c97fe9d7
Parent:
1:1ff3fe3679c1
Child:
3:43ab856b5efa
Ver. OK con pulsanti e TFT

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Carminio 0:88706d6abbf7 1 #include "mbed.h"
Carminio 0:88706d6abbf7 2 #include "Serial.h"
Carminio 0:88706d6abbf7 3 #include "BufferedSerial.h"
Carminio 0:88706d6abbf7 4 #include "Communication.h"
Carminio 0:88706d6abbf7 5 #include "Motor.h"
Carminio 0:88706d6abbf7 6 #include <stdlib.h>
Carminio 0:88706d6abbf7 7 #include <stdio.h>
Carminio 0:88706d6abbf7 8 #include "LCD_DISCO_F746NG.h"
Carminio 1:1ff3fe3679c1 9 #include "TS_DISCO_F746NG.h"
Carminio 0:88706d6abbf7 10
Carminio 0:88706d6abbf7 11 //Dichiarazione oggetti
Carminio 0:88706d6abbf7 12 DigitalIn myStartButton(USER_BUTTON);
Carminio 0:88706d6abbf7 13 Motor lid_Motor(PWM_OUT);
Carminio 0:88706d6abbf7 14 Communication SendCommands;
Carminio 1:1ff3fe3679c1 15 LCD_DISCO_F746NG lcd;
Carminio 1:1ff3fe3679c1 16 TS_DISCO_F746NG ts;
Carminio 1:1ff3fe3679c1 17
Carminio 1:1ff3fe3679c1 18 //Dichiarazione variabili
Carminio 1:1ff3fe3679c1 19 uint16_t x, y;
Carminio 1:1ff3fe3679c1 20 uint8_t idx;
Carminio 2:8f71c97fe9d7 21 uint8_t start=1;
Carminio 0:88706d6abbf7 22
Carminio 0:88706d6abbf7 23 int main() {
Carminio 0:88706d6abbf7 24 // Initialize Display
Carminio 0:88706d6abbf7 25 lcd.Clear(LCD_COLOR_BLACK);
Carminio 0:88706d6abbf7 26 lcd.SetBackColor(LCD_COLOR_BLACK);
Carminio 0:88706d6abbf7 27 lcd.SetTextColor(LCD_COLOR_GREEN);
Carminio 0:88706d6abbf7 28 wait(0.3);
Carminio 0:88706d6abbf7 29 lcd.SetFont(&Font24);
Carminio 0:88706d6abbf7 30 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"SLAMTEC LIDAR A2", CENTER_MODE);
Carminio 2:8f71c97fe9d7 31 lcd.SetFont(&Font8);
Carminio 2:8f71c97fe9d7 32 lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"STMicroelectronics", RIGHT_MODE);
Carminio 2:8f71c97fe9d7 33 lcd.DisplayStringAt(0, LINE(2), (uint8_t *)"D. Ruggiero 2016", RIGHT_MODE);
Carminio 2:8f71c97fe9d7 34
Carminio 1:1ff3fe3679c1 35 // Configure buttons and TFT display
Carminio 1:1ff3fe3679c1 36 TS_StateTypeDef TS_State;
Carminio 1:1ff3fe3679c1 37 lcd.SetTextColor(LCD_COLOR_GREEN);
Carminio 2:8f71c97fe9d7 38 lcd.FillRect(136, 200, 200, 50); ///Disegna bottone Verde
Carminio 2:8f71c97fe9d7 39
Carminio 2:8f71c97fe9d7 40 lcd.SetFont(&Font24);
Carminio 1:1ff3fe3679c1 41 lcd.SetBackColor(LCD_COLOR_GREEN);
Carminio 1:1ff3fe3679c1 42 lcd.SetTextColor(LCD_COLOR_BLACK);
Carminio 2:8f71c97fe9d7 43 lcd.DisplayStringAt(202, LINE(9), (uint8_t *)"SCAN", LEFT_MODE);
Carminio 2:8f71c97fe9d7 44
Carminio 2:8f71c97fe9d7 45 while(start) {
Carminio 1:1ff3fe3679c1 46
Carminio 1:1ff3fe3679c1 47 // Initialize TFT display
Carminio 1:1ff3fe3679c1 48 ts.GetState(&TS_State);
Carminio 1:1ff3fe3679c1 49 if (TS_State.touchDetected) {
Carminio 1:1ff3fe3679c1 50 for (idx = 0; idx < TS_State.touchDetected; idx++) {
Carminio 1:1ff3fe3679c1 51 x = TS_State.touchX[idx];
Carminio 1:1ff3fe3679c1 52 y = TS_State.touchY[idx];
Carminio 1:1ff3fe3679c1 53 }
Carminio 2:8f71c97fe9d7 54
Carminio 2:8f71c97fe9d7 55 if((x>=136) && (x<=336) && (y>=200) && (y<=250)) {
Carminio 2:8f71c97fe9d7 56 lcd.Clear(LCD_COLOR_BLACK);
Carminio 0:88706d6abbf7 57
Carminio 0:88706d6abbf7 58 // Initialize UART
Carminio 0:88706d6abbf7 59 SendCommands.confUART();
Carminio 0:88706d6abbf7 60
Carminio 0:88706d6abbf7 61 // Perform a device reset
Carminio 0:88706d6abbf7 62 // SendCommands.Reset();
Carminio 0:88706d6abbf7 63
Carminio 0:88706d6abbf7 64 // Send Get_Health command
Carminio 0:88706d6abbf7 65 // SendCommands.Get_Health();
Carminio 0:88706d6abbf7 66
Carminio 0:88706d6abbf7 67 // Send Get_Info command
Carminio 0:88706d6abbf7 68 // SendCommands.Get_Info();
Carminio 0:88706d6abbf7 69
Carminio 0:88706d6abbf7 70 // Start motor (PWM: Frequency 25KHz, Duty cycle 60%)
Carminio 0:88706d6abbf7 71 lid_Motor.StartMotor_Scan();
Carminio 0:88706d6abbf7 72
Carminio 0:88706d6abbf7 73 // Start scan
Carminio 0:88706d6abbf7 74 SendCommands.Scan();
Carminio 0:88706d6abbf7 75
Carminio 0:88706d6abbf7 76 // SendCommands.Stop();
Carminio 0:88706d6abbf7 77 // wait_ms(100);
Carminio 0:88706d6abbf7 78 // lid_Motor.StopMotor_Scan();
Carminio 2:8f71c97fe9d7 79 start=0;
Carminio 2:8f71c97fe9d7 80 }
Carminio 1:1ff3fe3679c1 81 }
Carminio 0:88706d6abbf7 82 }
Carminio 0:88706d6abbf7 83 }
Carminio 0:88706d6abbf7 84