Sweep a servo according to Proximity sensor measure

Dependencies:   Servo X_NUCLEO_6180XA1 mbed

Fork of HelloWorld_6180XA1 by ST

Committer:
mfr16
Date:
Thu Oct 06 10:50:15 2016 +0000
Revision:
46:43aef8f6e9a0
Parent:
44:3c68d5aa842e
Example to sweep a servo according to Proximity sensor measure
;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gallonm 0:83c628a58feb 1 #include "mbed.h"
gallonm 8:4c05f7a5bb60 2 #include "x_nucleo_6180xa1.h"
gallonm 4:ccd62fd7e137 3 #include <string.h>
gallonm 4:ccd62fd7e137 4 #include <stdlib.h>
gallonm 4:ccd62fd7e137 5 #include <stdio.h>
gallonm 8:4c05f7a5bb60 6 #include <assert.h>
gallonm 8:4c05f7a5bb60 7
mfr16 46:43aef8f6e9a0 8 #include "Servo.h"
mfr16 46:43aef8f6e9a0 9
mfr16 46:43aef8f6e9a0 10 Servo myservo(D3);
mfr16 46:43aef8f6e9a0 11
mapellil 44:3c68d5aa842e 12 /* This VL6180X Expansion board test application performs a range measurement and als measurement in polling mode
mapellil 30:c8efec21544f 13 on the onboard embedded top sensor.
mapellil 44:3c68d5aa842e 14 The result of both the measures are printed on the serial over.
mapellil 44:3c68d5aa842e 15 GetDistance and GetLux are synchronous!. So they blocks the caller until the result will be ready
mapellil 44:3c68d5aa842e 16 */
gallonm 20:b2e0b41a0e6b 17
mapellil 37:724632fff9c1 18 #define VL6180X_I2C_SDA D14
mapellil 37:724632fff9c1 19 #define VL6180X_I2C_SCL D15
gallonm 5:fa65d931bd96 20
gallonm 27:2afb9baf718f 21 static X_NUCLEO_6180XA1 *board=NULL;
licio.mapelli@st.com 32:724d2afb0ca2 22
mapellil 35:8b4a5cc0fb1f 23 /*=================================== Main ==================================
mapellil 44:3c68d5aa842e 24 Prints on the serial over USB the measured distance and lux.
mapellil 44:3c68d5aa842e 25 The measures are run in single shot polling mode.
mapellil 35:8b4a5cc0fb1f 26 =============================================================================*/
mapellil 35:8b4a5cc0fb1f 27 int main()
mapellil 43:f03152407731 28 {
mapellil 44:3c68d5aa842e 29 int status;
mapellil 44:3c68d5aa842e 30 uint32_t lux, dist;
mapellil 44:3c68d5aa842e 31 DevI2C *device_i2c =new DevI2C(VL6180X_I2C_SDA, VL6180X_I2C_SCL);
mapellil 44:3c68d5aa842e 32 /* creates the 6180XA1 expansion board singleton obj */
mapellil 44:3c68d5aa842e 33 board=X_NUCLEO_6180XA1::Instance(device_i2c, A3, A2, D13, D2);
mapellil 44:3c68d5aa842e 34 /* init the 6180XA1 expansion board with default values */
mapellil 44:3c68d5aa842e 35 status=board->InitBoard();
mapellil 44:3c68d5aa842e 36 if(status) { printf("Failed to init board!\n\r"); return 0; }
mapellil 44:3c68d5aa842e 37 while(1)
mapellil 44:3c68d5aa842e 38 {
mapellil 44:3c68d5aa842e 39 board->sensor_top->GetDistance(&dist);
mapellil 44:3c68d5aa842e 40 board->sensor_top->GetLux(&lux);
mfr16 46:43aef8f6e9a0 41 myservo = (255.0-dist)/255.0;
mapellil 44:3c68d5aa842e 42 printf ("Distance: %d, Lux: %d\n\r",dist, lux);
mapellil 44:3c68d5aa842e 43 }
gallonm 4:ccd62fd7e137 44 }